@ -532,7 +532,9 @@ FORMS += \
|
|||||||
|
|
||||||
RESOURCES += \
|
RESOURCES += \
|
||||||
resources.qrc \
|
resources.qrc \
|
||||||
themes/qdarkstyle/style.qrc
|
themes/native/native.qrc \
|
||||||
|
themes/qdarkstyle/style.qrc \
|
||||||
|
themes/lightstyle/light.qrc
|
||||||
|
|
||||||
|
|
||||||
DISTFILES += Cutter.astylerc
|
DISTFILES += Cutter.astylerc
|
||||||
|
@ -21,9 +21,12 @@ static const QStringList cutterSpecificOptions = {
|
|||||||
"gui.dataoffset",
|
"gui.dataoffset",
|
||||||
"gui.navbar.code",
|
"gui.navbar.code",
|
||||||
"gui.navbar.empty",
|
"gui.navbar.empty",
|
||||||
"angui.navbar.str",
|
"gui.navbar.str",
|
||||||
"gui.disass_selected",
|
"gui.disass_selected",
|
||||||
"gui.breakpoint_background",
|
"gui.breakpoint_background",
|
||||||
|
"gui.overview.node",
|
||||||
|
"gui.tooltip.background",
|
||||||
|
"gui.tooltip.foreground"
|
||||||
"gui.overview.node"
|
"gui.overview.node"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -11,7 +11,8 @@
|
|||||||
|
|
||||||
const QList<CutterQtTheme> kCutterQtThemesList = {
|
const QList<CutterQtTheme> kCutterQtThemesList = {
|
||||||
{ "Native", static_cast<ColorFlags>(LightFlag | DarkFlag) },
|
{ "Native", static_cast<ColorFlags>(LightFlag | DarkFlag) },
|
||||||
{ "Dark", DarkFlag }
|
{ "Dark", DarkFlag },
|
||||||
|
{ "Light", LightFlag }
|
||||||
};
|
};
|
||||||
|
|
||||||
Configuration *Configuration::mPtr = nullptr;
|
Configuration *Configuration::mPtr = nullptr;
|
||||||
@ -199,7 +200,15 @@ bool Configuration::windowColorIsDark()
|
|||||||
void Configuration::loadBaseThemeNative()
|
void Configuration::loadBaseThemeNative()
|
||||||
{
|
{
|
||||||
/* Load Qt Theme */
|
/* Load Qt Theme */
|
||||||
qApp->setStyleSheet("");
|
QFile f(":native/native.qss");
|
||||||
|
if (!f.exists()) {
|
||||||
|
qWarning() << "Can't find Native theme stylesheet.";
|
||||||
|
} else {
|
||||||
|
f.open(QFile::ReadOnly | QFile::Text);
|
||||||
|
QTextStream ts(&f);
|
||||||
|
QString stylesheet = ts.readAll();
|
||||||
|
qApp->setStyleSheet(stylesheet);
|
||||||
|
}
|
||||||
|
|
||||||
/* Colors */
|
/* Colors */
|
||||||
// GUI
|
// GUI
|
||||||
@ -218,6 +227,8 @@ void Configuration::loadBaseThemeNative()
|
|||||||
setColor("gui.item_invalid", QColor(155, 155, 155));
|
setColor("gui.item_invalid", QColor(155, 155, 155));
|
||||||
setColor("gui.item_unsafe", QColor(255, 129, 123));
|
setColor("gui.item_unsafe", QColor(255, 129, 123));
|
||||||
setColor("gui.overview.node", QColor(200, 200, 200));
|
setColor("gui.overview.node", QColor(200, 200, 200));
|
||||||
|
setColor("gui.tooltip.background", QColor(250, 252, 254));
|
||||||
|
setColor("gui.tooltip.foreground", QColor(42, 44, 46));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Configuration::loadNativeTheme()
|
void Configuration::loadNativeTheme()
|
||||||
@ -232,6 +243,8 @@ void Configuration::loadNativeTheme()
|
|||||||
setColor("highlight", QColor(255, 255, 255, 15));
|
setColor("highlight", QColor(255, 255, 255, 15));
|
||||||
setColor("highlightWord", QColor(20, 20, 20, 255));
|
setColor("highlightWord", QColor(20, 20, 20, 255));
|
||||||
setColor("highlightPC", QColor(87, 26, 7));
|
setColor("highlightPC", QColor(87, 26, 7));
|
||||||
|
setColor("gui.tooltip.background", QColor(42, 44, 46));
|
||||||
|
setColor("gui.tooltip.foreground", QColor(250, 252, 254));
|
||||||
} else {
|
} else {
|
||||||
setColor("gui.border", QColor(0, 0, 0));
|
setColor("gui.border", QColor(0, 0, 0));
|
||||||
setColor("gui.background", QColor(255, 255, 255));
|
setColor("gui.background", QColor(255, 255, 255));
|
||||||
@ -243,12 +256,41 @@ void Configuration::loadNativeTheme()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Loads the Light theme of Cutter and modify special theme colors
|
||||||
|
*/
|
||||||
|
void Configuration::loadLightTheme()
|
||||||
|
{
|
||||||
|
/* Load Qt Theme */
|
||||||
|
QFile f(":lightstyle/light.qss");
|
||||||
|
if (!f.exists()) {
|
||||||
|
qWarning() << "Can't find Light theme stylesheet.";
|
||||||
|
} else {
|
||||||
|
f.open(QFile::ReadOnly | QFile::Text);
|
||||||
|
QTextStream ts(&f);
|
||||||
|
QString stylesheet = ts.readAll();
|
||||||
|
qApp->setStyleSheet(stylesheet);
|
||||||
|
}
|
||||||
|
|
||||||
|
setColor("gui.border", QColor(145, 200, 250));
|
||||||
|
setColor("gui.background", QColor(255, 255, 255));
|
||||||
|
setColor("gui.alt_background", QColor(245, 250, 255));
|
||||||
|
setColor("gui.disass_selected", QColor(255, 255, 255));
|
||||||
|
setColor("highlight", QColor(210, 210, 255, 150));
|
||||||
|
setColor("highlightWord", QColor(179, 119, 214, 60));
|
||||||
|
setColor("highlightPC", QColor(214, 255, 210));
|
||||||
|
setColor("gui.navbar.empty", QColor(220, 236, 245));
|
||||||
|
setColor("gui.navbar.err", QColor(3, 170, 245));
|
||||||
|
setColor("gui.tooltip.background", QColor(250, 252, 254));
|
||||||
|
setColor("gui.tooltip.foreground", QColor(42, 44, 46));
|
||||||
|
}
|
||||||
|
|
||||||
void Configuration::loadBaseThemeDark()
|
void Configuration::loadBaseThemeDark()
|
||||||
{
|
{
|
||||||
/* Load Qt Theme */
|
/* Load Qt Theme */
|
||||||
QFile f(":qdarkstyle/style.qss");
|
QFile f(":qdarkstyle/style.qss");
|
||||||
if (!f.exists()) {
|
if (!f.exists()) {
|
||||||
qWarning() << "Can't find dark theme stylesheet.";
|
qWarning() << "Can't find Dark theme stylesheet.";
|
||||||
} else {
|
} else {
|
||||||
f.open(QFile::ReadOnly | QFile::Text);
|
f.open(QFile::ReadOnly | QFile::Text);
|
||||||
QTextStream ts(&f);
|
QTextStream ts(&f);
|
||||||
@ -279,7 +321,7 @@ void Configuration::loadBaseThemeDark()
|
|||||||
setColor("gui.navbar.seek", QColor(233, 86, 86));
|
setColor("gui.navbar.seek", QColor(233, 86, 86));
|
||||||
setColor("gui.navbar.pc", QColor(66, 238, 244));
|
setColor("gui.navbar.pc", QColor(66, 238, 244));
|
||||||
setColor("gui.navbar.code", QColor(130, 200, 111));
|
setColor("gui.navbar.code", QColor(130, 200, 111));
|
||||||
setColor("angui.navbar.str", QColor(111, 134, 216));
|
setColor("gui.navbar.str", QColor(111, 134, 216));
|
||||||
setColor("gui.navbar.sym", QColor(221, 163, 104));
|
setColor("gui.navbar.sym", QColor(221, 163, 104));
|
||||||
setColor("gui.navbar.empty", QColor(100, 100, 100));
|
setColor("gui.navbar.empty", QColor(100, 100, 100));
|
||||||
|
|
||||||
@ -303,6 +345,8 @@ void Configuration::loadDarkTheme()
|
|||||||
// Disassembly line selected
|
// Disassembly line selected
|
||||||
setColor("highlight", QColor(21, 29, 29, 150));
|
setColor("highlight", QColor(21, 29, 29, 150));
|
||||||
setColor("highlightWord", QColor(52, 58, 71, 255));
|
setColor("highlightWord", QColor(52, 58, 71, 255));
|
||||||
|
setColor("gui.tooltip.background", QColor(42, 44, 46));
|
||||||
|
setColor("gui.tooltip.foreground", QColor(250, 252, 254));
|
||||||
}
|
}
|
||||||
|
|
||||||
const QFont Configuration::getFont() const
|
const QFont Configuration::getFont() const
|
||||||
@ -336,10 +380,13 @@ void Configuration::setTheme(int theme)
|
|||||||
loadNativeTheme();
|
loadNativeTheme();
|
||||||
} else if (themeName == "Dark") {
|
} else if (themeName == "Dark") {
|
||||||
loadDarkTheme();
|
loadDarkTheme();
|
||||||
|
} else if (themeName == "Light") {
|
||||||
|
loadLightTheme();
|
||||||
} else {
|
} else {
|
||||||
loadNativeTheme();
|
loadNativeTheme();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
emit themeChanged();
|
||||||
emit colorsUpdated();
|
emit colorsUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ private:
|
|||||||
void loadBaseThemeNative();
|
void loadBaseThemeNative();
|
||||||
void loadBaseThemeDark();
|
void loadBaseThemeDark();
|
||||||
void loadNativeTheme();
|
void loadNativeTheme();
|
||||||
|
void loadLightTheme();
|
||||||
void loadDarkTheme();
|
void loadDarkTheme();
|
||||||
void setColor(const QString &name, const QColor &color);
|
void setColor(const QString &name, const QColor &color);
|
||||||
|
|
||||||
@ -124,6 +125,7 @@ public:
|
|||||||
signals:
|
signals:
|
||||||
void fontsUpdated();
|
void fontsUpdated();
|
||||||
void colorsUpdated();
|
void colorsUpdated();
|
||||||
|
void themeChanged();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CONFIGURATION_H
|
#endif // CONFIGURATION_H
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "common/Helpers.h"
|
#include "common/Helpers.h"
|
||||||
|
#include "Configuration.h"
|
||||||
|
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <QPlainTextEdit>
|
#include <QPlainTextEdit>
|
||||||
@ -197,4 +198,33 @@ QByteArray applyColorToSvg(const QString &filename, QColor color)
|
|||||||
return applyColorToSvg(file.readAll(), color);
|
return applyColorToSvg(file.readAll(), color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief finds the theme-specific icon path and calls `setter` functor providing a pointer of an object which has to be used
|
||||||
|
* and loaded icon
|
||||||
|
* @param supportedIconsNames list of <object ptr, icon name>
|
||||||
|
* @param setter functor which has to be called
|
||||||
|
* for example we need to set an action icon, the functor can be just [](void* o, const QIcon &icon) { static_cast<QAction*>(o)->setIcon(icon); }
|
||||||
|
*/
|
||||||
|
void setThemeIcons(QList<QPair<void*, QString>> supportedIconsNames, std::function<void(void *, const QIcon &)> setter)
|
||||||
|
{
|
||||||
|
if (supportedIconsNames.isEmpty() || !setter) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const QString &iconsDirPath = QStringLiteral(":/img/icons/");
|
||||||
|
const QString &currTheme = Config()->getCurrentTheme()->name;
|
||||||
|
const QString &relativeThemeDir = currTheme.toLower() + "/";
|
||||||
|
QString iconPath;
|
||||||
|
|
||||||
|
foreach (const auto &p, supportedIconsNames) {
|
||||||
|
iconPath = iconsDirPath;
|
||||||
|
// Verify that indeed there is an alternative icon in this theme
|
||||||
|
// Otherwise, fallback to the regular icon folder
|
||||||
|
if (QFile::exists(iconPath + relativeThemeDir + p.second)) {
|
||||||
|
iconPath += relativeThemeDir;
|
||||||
|
}
|
||||||
|
setter(p.first, QIcon(iconPath + p.second));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // end namespace
|
} // end namespace
|
||||||
|
@ -4,7 +4,9 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
#include <QColor>
|
#include <QColor>
|
||||||
#include <QSizePolicy>
|
#include <QSizePolicy>
|
||||||
|
#include <functional>
|
||||||
|
|
||||||
|
class QIcon;
|
||||||
class QPlainTextEdit;
|
class QPlainTextEdit;
|
||||||
class QTextEdit;
|
class QTextEdit;
|
||||||
class QString;
|
class QString;
|
||||||
@ -45,6 +47,9 @@ int getMaxFullyDisplayedLines(QPlainTextEdit *plainTextEdit);
|
|||||||
|
|
||||||
QByteArray applyColorToSvg(const QByteArray &data, QColor color);
|
QByteArray applyColorToSvg(const QByteArray &data, QColor color);
|
||||||
QByteArray applyColorToSvg(const QString &filename, QColor color);
|
QByteArray applyColorToSvg(const QString &filename, QColor color);
|
||||||
}
|
|
||||||
|
void setThemeIcons(QList<QPair<void*, QString>> supportedIconsNames, std::function<void(void *, const QIcon &)> setter);
|
||||||
|
|
||||||
|
} // qhelpers
|
||||||
|
|
||||||
#endif // HELPERS_H
|
#endif // HELPERS_H
|
||||||
|
@ -129,6 +129,7 @@ void MainWindow::initUI()
|
|||||||
/*
|
/*
|
||||||
* Some global shortcuts
|
* Some global shortcuts
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Period goes to command entry
|
// Period goes to command entry
|
||||||
QShortcut *cmd_shortcut = new QShortcut(QKeySequence(Qt::Key_Period), this);
|
QShortcut *cmd_shortcut = new QShortcut(QKeySequence(Qt::Key_Period), this);
|
||||||
connect(cmd_shortcut, SIGNAL(activated()), consoleDock, SLOT(focusInputLineEdit()));
|
connect(cmd_shortcut, SIGNAL(activated()), consoleDock, SLOT(focusInputLineEdit()));
|
||||||
@ -171,9 +172,12 @@ void MainWindow::initUI()
|
|||||||
|
|
||||||
void MainWindow::initToolBar()
|
void MainWindow::initToolBar()
|
||||||
{
|
{
|
||||||
|
chooseThemeIcons();
|
||||||
|
|
||||||
// Sepparator between undo/redo and goto lineEdit
|
// Sepparator between undo/redo and goto lineEdit
|
||||||
QWidget *spacer3 = new QWidget();
|
QWidget *spacer3 = new QWidget();
|
||||||
spacer3->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
spacer3->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
|
spacer3->setStyleSheet("background-color: rgba(0,0,0,0)");
|
||||||
spacer3->setMinimumSize(20, 20);
|
spacer3->setMinimumSize(20, 20);
|
||||||
spacer3->setMaximumWidth(100);
|
spacer3->setMaximumWidth(100);
|
||||||
ui->mainToolBar->addWidget(spacer3);
|
ui->mainToolBar->addWidget(spacer3);
|
||||||
@ -193,8 +197,9 @@ void MainWindow::initToolBar()
|
|||||||
// Sepparator between undo/redo and goto lineEdit
|
// Sepparator between undo/redo and goto lineEdit
|
||||||
QWidget *spacer4 = new QWidget();
|
QWidget *spacer4 = new QWidget();
|
||||||
spacer4->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
spacer4->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
spacer4->setMinimumSize(20, 20);
|
spacer4->setStyleSheet("background-color: rgba(0,0,0,0)");
|
||||||
spacer4->setMaximumWidth(100);
|
spacer4->setMinimumSize(10, 10);
|
||||||
|
spacer4->setMaximumWidth(10);
|
||||||
ui->mainToolBar->addWidget(spacer4);
|
ui->mainToolBar->addWidget(spacer4);
|
||||||
|
|
||||||
// Omnibar LineEdit
|
// Omnibar LineEdit
|
||||||
@ -204,6 +209,7 @@ void MainWindow::initToolBar()
|
|||||||
// Add special separators to the toolbar that expand to separate groups of elements
|
// Add special separators to the toolbar that expand to separate groups of elements
|
||||||
QWidget *spacer2 = new QWidget();
|
QWidget *spacer2 = new QWidget();
|
||||||
spacer2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
spacer2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||||
|
spacer2->setStyleSheet("background-color: rgba(0,0,0,0)");
|
||||||
spacer2->setMinimumSize(10, 10);
|
spacer2->setMinimumSize(10, 10);
|
||||||
spacer2->setMaximumWidth(300);
|
spacer2->setMaximumWidth(300);
|
||||||
ui->mainToolBar->addWidget(spacer2);
|
ui->mainToolBar->addWidget(spacer2);
|
||||||
@ -211,14 +217,17 @@ void MainWindow::initToolBar()
|
|||||||
// Separator between back/forward and undo/redo buttons
|
// Separator between back/forward and undo/redo buttons
|
||||||
QWidget *spacer = new QWidget();
|
QWidget *spacer = new QWidget();
|
||||||
spacer->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
spacer->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
||||||
|
spacer->setStyleSheet("background-color: rgba(0,0,0,0)");
|
||||||
spacer->setMinimumSize(20, 20);
|
spacer->setMinimumSize(20, 20);
|
||||||
ui->mainToolBar->addWidget(spacer);
|
ui->mainToolBar->addWidget(spacer);
|
||||||
|
|
||||||
tasksProgressIndicator = new ProgressIndicator();
|
tasksProgressIndicator = new ProgressIndicator();
|
||||||
|
tasksProgressIndicator->setStyleSheet("background-color: rgba(0,0,0,0)");
|
||||||
ui->mainToolBar->addWidget(tasksProgressIndicator);
|
ui->mainToolBar->addWidget(tasksProgressIndicator);
|
||||||
|
|
||||||
QWidget *spacerEnd = new QWidget();
|
QWidget *spacerEnd = new QWidget();
|
||||||
spacerEnd->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
spacerEnd->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
||||||
|
spacerEnd->setStyleSheet("background-color: rgba(0,0,0,0)");
|
||||||
spacerEnd->setMinimumSize(4, 0);
|
spacerEnd->setMinimumSize(4, 0);
|
||||||
spacerEnd->setMaximumWidth(4);
|
spacerEnd->setMaximumWidth(4);
|
||||||
ui->mainToolBar->addWidget(spacerEnd);
|
ui->mainToolBar->addWidget(spacerEnd);
|
||||||
@ -231,6 +240,7 @@ void MainWindow::initToolBar()
|
|||||||
QObject::connect(configuration, &Configuration::colorsUpdated, [this]() {
|
QObject::connect(configuration, &Configuration::colorsUpdated, [this]() {
|
||||||
this->visualNavbar->updateGraphicsScene();
|
this->visualNavbar->updateGraphicsScene();
|
||||||
});
|
});
|
||||||
|
QObject::connect(configuration, &Configuration::themeChanged, this, &MainWindow::chooseThemeIcons);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::initDocks()
|
void MainWindow::initDocks()
|
||||||
@ -1197,3 +1207,21 @@ void MainWindow::messageBoxWarning(QString title, QString message)
|
|||||||
mb.setText(message);
|
mb.setText(message);
|
||||||
mb.exec();
|
mb.exec();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief When theme changed, change icons which have a special version for the theme.
|
||||||
|
*/
|
||||||
|
void MainWindow::chooseThemeIcons()
|
||||||
|
{
|
||||||
|
// List of QActions which have alternative icons in different themes
|
||||||
|
const QList<QPair<void*, QString>> kSupportedIconsNames {
|
||||||
|
{ ui->actionForward, QStringLiteral("arrow_right.svg") },
|
||||||
|
{ ui->actionBackward, QStringLiteral("arrow_left.svg") },
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// Set the correct icon for the QAction
|
||||||
|
qhelpers::setThemeIcons(kSupportedIconsNames, [](void *obj, const QIcon &icon) {
|
||||||
|
static_cast<QAction*>(obj)->setIcon(icon);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@ -185,6 +185,7 @@ private slots:
|
|||||||
bool eventFilter(QObject *object, QEvent *event) override;
|
bool eventFilter(QObject *object, QEvent *event) override;
|
||||||
void changeDebugView();
|
void changeDebugView();
|
||||||
void changeDefinedView();
|
void changeDefinedView();
|
||||||
|
void chooseThemeIcons();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CutterCore *core;
|
CutterCore *core;
|
||||||
|
@ -20,48 +20,7 @@
|
|||||||
<string notr="true">Cutter</string>
|
<string notr="true">Cutter</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">QHeaderView::section {
|
<string notr="true">
|
||||||
padding: 3px;
|
|
||||||
padding-left: 10px;
|
|
||||||
/* border: 2px solid white;*/
|
|
||||||
}
|
|
||||||
|
|
||||||
QMainWindow > QTabBar
|
|
||||||
{
|
|
||||||
qproperty-drawBase: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
QMainWindow > QTabBar::tab {
|
|
||||||
border-bottom-color: #2180a9;
|
|
||||||
border-top-left-radius: 0px;
|
|
||||||
border-top-right-radius: 0px;
|
|
||||||
min-width: 8px;
|
|
||||||
max-width: 200px;
|
|
||||||
padding: 5px;
|
|
||||||
margin-bottom: 3px;
|
|
||||||
margin-top: 3px;
|
|
||||||
}
|
|
||||||
|
|
||||||
QMainWindow > QTabBar::tab:selected {
|
|
||||||
background: #2180a9;
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
QMainWindow > QTabBar::tab:hover {
|
|
||||||
background: #2180a9; /* #3C879E; */
|
|
||||||
color: #FFFFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
QDockWidget::title {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
QToolTip {
|
|
||||||
background-color: #444;
|
|
||||||
border: 3px solid #444;
|
|
||||||
color: rgb(232, 232, 232);
|
|
||||||
font: 11pt "Monaco";
|
|
||||||
}
|
|
||||||
</string>
|
</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="documentMode">
|
<property name="documentMode">
|
||||||
@ -393,7 +352,7 @@ QToolTip {
|
|||||||
<action name="actionBackward">
|
<action name="actionBackward">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="resources.qrc">
|
<iconset resource="resources.qrc">
|
||||||
<normaloff>:/img/icons/arrow_left_light.svg</normaloff>:/img/icons/arrow_left_light.svg</iconset>
|
<normaloff>:/img/icons/arrow_left.svg</normaloff>:/img/icons/arrow_left.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Back</string>
|
<string>Back</string>
|
||||||
@ -405,7 +364,7 @@ QToolTip {
|
|||||||
<action name="actionForward">
|
<action name="actionForward">
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="resources.qrc">
|
<iconset resource="resources.qrc">
|
||||||
<normaloff>:/img/icons/arrow_right_light.svg</normaloff>:/img/icons/arrow_right_light.svg</iconset>
|
<normaloff>:/img/icons/arrow_right.svg</normaloff>:/img/icons/arrow_right.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Forward</string>
|
<string>Forward</string>
|
||||||
|
@ -208,6 +208,11 @@
|
|||||||
<string>Dark Theme</string>
|
<string>Dark Theme</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Light Theme</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QTreeWidget" name="toTreeWidget">
|
<widget class="QTreeWidget" name="toTreeWidget">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::Box</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShadow">
|
<property name="frameShadow">
|
||||||
<enum>QFrame::Plain</enum>
|
<enum>QFrame::Plain</enum>
|
||||||
@ -90,7 +90,7 @@
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QTreeWidget" name="fromTreeWidget">
|
<widget class="QTreeWidget" name="fromTreeWidget">
|
||||||
<property name="frameShape">
|
<property name="frameShape">
|
||||||
<enum>QFrame::NoFrame</enum>
|
<enum>QFrame::Box</enum>
|
||||||
</property>
|
</property>
|
||||||
<property name="frameShadow">
|
<property name="frameShadow">
|
||||||
<enum>QFrame::Plain</enum>
|
<enum>QFrame::Plain</enum>
|
||||||
|
@ -35,7 +35,6 @@ AppearanceOptionsWidget::AppearanceOptionsWidget(PreferencesDialog *dialog)
|
|||||||
ui(new Ui::AppearanceOptionsWidget)
|
ui(new Ui::AppearanceOptionsWidget)
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
updateFontFromConfig();
|
updateFontFromConfig();
|
||||||
updateThemeFromConfig(false);
|
updateThemeFromConfig(false);
|
||||||
|
|
||||||
|
@ -28,34 +28,36 @@ PreferencesDialog::PreferencesDialog(QWidget *parent)
|
|||||||
{
|
{
|
||||||
tr("Disassembly"),
|
tr("Disassembly"),
|
||||||
new AsmOptionsWidget(this),
|
new AsmOptionsWidget(this),
|
||||||
QIcon(":/img/icons/disas_light.svg"),
|
QIcon(":/img/icons/disas.svg"),
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
"Graph",
|
"Graph",
|
||||||
new GraphOptionsWidget(this),
|
new GraphOptionsWidget(this),
|
||||||
QIcon(":/img/icons/graph_light.svg")
|
QIcon(":/img/icons/graph.svg")
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tr("Debug"),
|
tr("Debug"),
|
||||||
new DebugOptionsWidget(this),
|
new DebugOptionsWidget(this),
|
||||||
QIcon(":/img/icons/bug_light.svg")
|
QIcon(":/img/icons/bug.svg")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tr("Appearance"),
|
tr("Appearance"),
|
||||||
new AppearanceOptionsWidget(this),
|
new AppearanceOptionsWidget(this),
|
||||||
QIcon(":/img/icons/polar_light.svg")
|
QIcon(":/img/icons/polar.svg")
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
tr("Plugins"),
|
tr("Plugins"),
|
||||||
new PluginsOptionsWidget(this),
|
new PluginsOptionsWidget(this),
|
||||||
QIcon(":/img/icons/plugins_light.svg")
|
QIcon(":/img/icons/plugins.svg")
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
for (auto &c : prefs)
|
for (auto &c : prefs)
|
||||||
|
{
|
||||||
c.addItem(*ui->configCategories, *ui->configPanel);
|
c.addItem(*ui->configCategories, *ui->configPanel);
|
||||||
|
}
|
||||||
|
|
||||||
connect(ui->configCategories,
|
connect(ui->configCategories,
|
||||||
SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
|
SIGNAL(currentItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)),
|
||||||
@ -66,6 +68,9 @@ PreferencesDialog::PreferencesDialog(QWidget *parent)
|
|||||||
|
|
||||||
QTreeWidgetItem *defitem = ui->configCategories->topLevelItem(0);
|
QTreeWidgetItem *defitem = ui->configCategories->topLevelItem(0);
|
||||||
ui->configCategories->setCurrentItem(defitem, 0);
|
ui->configCategories->setCurrentItem(defitem, 0);
|
||||||
|
|
||||||
|
connect(Config(), &Configuration::themeChanged, this, &PreferencesDialog::chooseThemeIcons);
|
||||||
|
chooseThemeIcons();
|
||||||
}
|
}
|
||||||
|
|
||||||
PreferencesDialog::~PreferencesDialog()
|
PreferencesDialog::~PreferencesDialog()
|
||||||
@ -99,3 +104,30 @@ void PreferencesDialog::changePage(QTreeWidgetItem *current, QTreeWidgetItem *pr
|
|||||||
if (index)
|
if (index)
|
||||||
ui->configPanel->setCurrentIndex(index - 1);
|
ui->configPanel->setCurrentIndex(index - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PreferencesDialog::chooseThemeIcons()
|
||||||
|
{
|
||||||
|
// List of QActions which have alternative icons in different themes
|
||||||
|
const QList<QPair<QString, QString>> kCategoryIconsNames {
|
||||||
|
{ QStringLiteral("Debug"), QStringLiteral("bug.svg") },
|
||||||
|
{ QStringLiteral("Assembly"), QStringLiteral("disas.svg") },
|
||||||
|
{ QStringLiteral("Graph"), QStringLiteral("graph.svg") },
|
||||||
|
{ QStringLiteral("Appearance"), QStringLiteral("polar.svg") },
|
||||||
|
{ QStringLiteral("Plugins"), QStringLiteral("plugins.svg") },
|
||||||
|
};
|
||||||
|
QList<QPair<void*, QString>> supportedIconsNames;
|
||||||
|
|
||||||
|
foreach (const auto &p, kCategoryIconsNames) {
|
||||||
|
QList<QTreeWidgetItem *> items = ui->configCategories->findItems(p.first, Qt::MatchContains|Qt::MatchRecursive, 0);
|
||||||
|
if (items.isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
supportedIconsNames.append( { items.first(), p.second } );
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the correct icon for the QAction
|
||||||
|
qhelpers::setThemeIcons(supportedIconsNames, [](void *obj, const QIcon &icon) {
|
||||||
|
// here we have our setter functor, in this case it is almost "unique" because it specified the column in `setIcon` call
|
||||||
|
static_cast<QTreeWidgetItem*>(obj)->setIcon(0, icon);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
@ -31,6 +31,7 @@ public slots:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<Ui::PreferencesDialog> ui;
|
std::unique_ptr<Ui::PreferencesDialog> ui;
|
||||||
|
void chooseThemeIcons();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //PREFERENCESDIALOG_H
|
#endif //PREFERENCESDIALOG_H
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
<path d="m16 32l5.7-5.7-6.3-6.3h16v-8h-17l6.3-6.3-5-5.7-16 16 16 16z" fill="#4d4d4f"/>
|
<path d="m16 32l5.7-5.7-6.3-6.3h16v-8h-17l6.3-6.3-5-5.7-16 16 16 16z" fill="#aaacaf"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 418 B |
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
<path d="m16 0l-5.7 5.7 6.3 6.3h-16v8h17l-6.3 6.3 5 6 16-16-16-16z" fill="#4d4d4f"/>
|
<path d="m16 0l-5.7 5.7 6.3 6.3h-16v8h17l-6.3 6.3 5 6 16-16-16-16z" fill="#aaacaf"/>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 416 B After Width: | Height: | Size: 416 B |
Before Width: | Height: | Size: 761 B After Width: | Height: | Size: 761 B |
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
<path d="m16 32l5.7-5.7-6.3-6.3h16v-8h-17l6.3-6.3-5-5.7-16 16 16 16z" fill="#aaacaf"/>
|
<path d="m16 32l5.7-5.7-6.3-6.3h16v-8h-17l6.3-6.3-5-5.7-16 16 16 16z" fill="#4d4d4f"/>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 418 B After Width: | Height: | Size: 418 B |
@ -1,4 +1,4 @@
|
|||||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
<path d="m16 0l-5.7 5.7 6.3 6.3h-16v8h17l-6.3 6.3 5 6 16-16-16-16z" fill="#aaacaf"/>
|
<path d="m16 0l-5.7 5.7 6.3 6.3h-16v8h17l-6.3 6.3 5 6 16-16-16-16z" fill="#4d4d4f"/>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 416 B After Width: | Height: | Size: 416 B |
@ -1,6 +1,6 @@
|
|||||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
<g fill="#4d4d4f">
|
<g fill="#aaacaf">
|
||||||
<polygon points="32 4 0 4 0 0 32 0"/>
|
<polygon points="32 4 0 4 0 0 32 0"/>
|
||||||
<polygon points="20 12 0 12 0 8 20 8"/>
|
<polygon points="20 12 0 12 0 8 20 8"/>
|
||||||
<polygon points="32 20 0 20 0 16 32 16"/>
|
<polygon points="32 20 0 20 0 16 32 16"/>
|
||||||
|
Before Width: | Height: | Size: 620 B After Width: | Height: | Size: 620 B |
@ -4,9 +4,9 @@
|
|||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
width="28px" height="32px" viewBox="0 0 28 32" enable-background="new 0 0 28 32" xml:space="preserve">
|
width="28px" height="32px" viewBox="0 0 28 32" enable-background="new 0 0 28 32" xml:space="preserve">
|
||||||
<g>
|
<g>
|
||||||
<path fill="#4d4d4f" d="M20,0v3.9c0,1.6-0.62,3.1-1.8,4.2l-11,11c-1.9,2-2.8,4-3,7h-4l6,6l6-6h-4c0.1-1.399,0.68-2.8,1.7-3.8l11-11
|
<path fill="#aaacaf" d="M20,0v3.9c0,1.6-0.62,3.1-1.8,4.2l-11,11c-1.9,2-2.8,4-3,7h-4l6,6l6-6h-4c0.1-1.399,0.68-2.8,1.7-3.8l11-11
|
||||||
c2-1.9,3-4.5,3-7.1V0.3h-4L20,0z"/>
|
c2-1.9,3-4.5,3-7.1V0.3h-4L20,0z"/>
|
||||||
<path fill="#4d4d4f" d="M24,26c-0.109-2.5-1.1-4.8-2.9-6.6L18.9,17.2l-3,3l2.199,2.2c1,1,1.601,2.399,1.7,3.8h-4l6,6l6-6h-4L24,26z
|
<path fill="#aaacaf" d="M24,26c-0.109-2.5-1.1-4.8-2.9-6.6L18.9,17.2l-3,3l2.199,2.2c1,1,1.601,2.399,1.7,3.8h-4l6,6l6-6h-4L24,26z
|
||||||
"/>
|
"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 793 B After Width: | Height: | Size: 793 B |
@ -4,9 +4,9 @@
|
|||||||
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
width="28px" height="32px" viewBox="0 0 28 32" enable-background="new 0 0 28 32" xml:space="preserve">
|
width="28px" height="32px" viewBox="0 0 28 32" enable-background="new 0 0 28 32" xml:space="preserve">
|
||||||
<g>
|
<g>
|
||||||
<path fill="#aaacaf" d="M20,0v3.9c0,1.6-0.62,3.1-1.8,4.2l-11,11c-1.9,2-2.8,4-3,7h-4l6,6l6-6h-4c0.1-1.399,0.68-2.8,1.7-3.8l11-11
|
<path fill="#4d4d4f" d="M20,0v3.9c0,1.6-0.62,3.1-1.8,4.2l-11,11c-1.9,2-2.8,4-3,7h-4l6,6l6-6h-4c0.1-1.399,0.68-2.8,1.7-3.8l11-11
|
||||||
c2-1.9,3-4.5,3-7.1V0.3h-4L20,0z"/>
|
c2-1.9,3-4.5,3-7.1V0.3h-4L20,0z"/>
|
||||||
<path fill="#aaacaf" d="M24,26c-0.109-2.5-1.1-4.8-2.9-6.6L18.9,17.2l-3,3l2.199,2.2c1,1,1.601,2.399,1.7,3.8h-4l6,6l6-6h-4L24,26z
|
<path fill="#4d4d4f" d="M24,26c-0.109-2.5-1.1-4.8-2.9-6.6L18.9,17.2l-3,3l2.199,2.2c1,1,1.601,2.399,1.7,3.8h-4l6,6l6-6h-4L24,26z
|
||||||
"/>
|
"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
Before Width: | Height: | Size: 793 B After Width: | Height: | Size: 793 B |
4
src/img/icons/light/arrow_left.svg
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
|
<path d="m16 32l5.7-5.7-6.3-6.3h16v-8h-17l6.3-6.3-5-5.7-16 16 16 16z" fill="#ffffff"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 418 B |
4
src/img/icons/light/arrow_right.svg
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
|
<path d="m16 0l-5.7 5.7 6.3 6.3h-16v8h17l-6.3 6.3 5 6 16-16-16-16z" fill="#ffffff"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 416 B |
4
src/img/icons/light/bug.svg
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8">
|
||||||
|
<path d="M3.5 0c-1.19 0-1.98 1.69-1.19 2.5-.09.07-.2.14-.28.22l-1.31-.66a.5.5 0 0 0-.34-.06.5.5 0 0 0-.09.94l1.16.56c-.09.16-.19.33-.25.5h-.69a.5.5 0 0 0-.09 0 .5.5 0 1 0 .09 1h.5c0 .23.02.45.06.66l-.78.41a.5.5 0 1 0 .44.88l.66-.34c.25.46.62.85 1.03 1.09.35-.19.59-.44.59-.72v-1.44a.5.5 0 0 0 0-.09v-.81a.5.5 0 0 0 0-.22c.05-.23.26-.41.5-.41.28 0 .5.22.5.5v.88a.5.5 0 0 0 0 .09v.06a.5.5 0 0 0 0 .09v1.34c0 .27.24.53.59.72.41-.25.79-.63 1.03-1.09l.66.34a.5.5 0 1 0 .44-.88l-.78-.41c.04-.21.06-.43.06-.66h.5a.5.5 0 1 0 0-1h-.69c-.06-.17-.16-.34-.25-.5l1.16-.56a.5.5 0 0 0-.31-.94.5.5 0 0 0-.13.06l-1.31.66c-.09-.08-.19-.15-.28-.22.78-.83 0-2.5-1.19-2.5z" fill="#039be5"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 761 B |
@ -1,6 +1,6 @@
|
|||||||
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
<g fill="#aaacaf">
|
<g fill="#039be5">
|
||||||
<polygon points="32 4 0 4 0 0 32 0"/>
|
<polygon points="32 4 0 4 0 0 32 0"/>
|
||||||
<polygon points="20 12 0 12 0 8 20 8"/>
|
<polygon points="20 12 0 12 0 8 20 8"/>
|
||||||
<polygon points="32 20 0 20 0 16 32 16"/>
|
<polygon points="32 20 0 20 0 16 32 16"/>
|
Before Width: | Height: | Size: 620 B After Width: | Height: | Size: 620 B |
12
src/img/icons/light/graph.svg
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
width="28px" height="32px" viewBox="0 0 28 32" enable-background="new 0 0 28 32" xml:space="preserve">
|
||||||
|
<g>
|
||||||
|
<path fill="#039be5" d="M20,0v3.9c0,1.6-0.62,3.1-1.8,4.2l-11,11c-1.9,2-2.8,4-3,7h-4l6,6l6-6h-4c0.1-1.399,0.68-2.8,1.7-3.8l11-11
|
||||||
|
c2-1.9,3-4.5,3-7.1V0.3h-4L20,0z"/>
|
||||||
|
<path fill="#039be5" d="M24,26c-0.109-2.5-1.1-4.8-2.9-6.6L18.9,17.2l-3,3l2.199,2.2c1,1,1.601,2.399,1.7,3.8h-4l6,6l6-6h-4L24,26z
|
||||||
|
"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 793 B |
54
src/img/icons/light/plugins.svg
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
style="enable-background:new 0 0 32 32"
|
||||||
|
xml:space="preserve"
|
||||||
|
height="32px"
|
||||||
|
width="32px"
|
||||||
|
version="1.1"
|
||||||
|
y="0px"
|
||||||
|
x="0px"
|
||||||
|
viewBox="0 0 32 32"
|
||||||
|
id="svg8"
|
||||||
|
sodipodi:docname="plugin.svg"
|
||||||
|
inkscape:version="0.92.4 5da689c313, 2019-01-14"><metadata
|
||||||
|
id="metadata14"><rdf:RDF><cc:Work
|
||||||
|
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||||
|
id="defs12">
|
||||||
|
|
||||||
|
|
||||||
|
</defs><sodipodi:namedview
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1"
|
||||||
|
objecttolerance="10"
|
||||||
|
gridtolerance="10"
|
||||||
|
guidetolerance="10"
|
||||||
|
inkscape:pageopacity="0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-width="1918"
|
||||||
|
inkscape:window-height="1042"
|
||||||
|
id="namedview10"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="10.429825"
|
||||||
|
inkscape:cx="-16.624731"
|
||||||
|
inkscape:cy="16.507785"
|
||||||
|
inkscape:window-x="1920"
|
||||||
|
inkscape:window-y="18"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg8"
|
||||||
|
inkscape:snap-bbox="true" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="rect5115"
|
||||||
|
d="M 13,0 C 10.784,0 9,1.784 9,4 V 6 H 4 C 1.784,6 0,7.784 0,10 v 5 h 2 c 2.216,0 4,1.784 4,4 0,2.216 -1.784,4 -4,4 H 0 v 5 c 0,2.216 1.784,4 4,4 h 5 v -2 c 0,-2.216 1.784,-4 4,-4 2.216,0 4,1.784 4,4 v 2 h 5 c 2.216,0 4,-1.784 4,-4 v -5 h 2 c 2.216,0 4,-1.784 4,-4 0,-2.216 -1.784,-4 -4,-4 H 26 V 10 C 26,7.784 24.216,6 22,6 H 17 V 4 C 17,1.784 15.216,0 13,0 Z"
|
||||||
|
style="display:inline;fill:#039be5;fill-opacity:1;stroke:none;stroke-width:1.9352982;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
inkscape:label="puzzle" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
11
src/img/icons/light/polar.svg
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'>
|
||||||
|
<svg style="enable-background:new 0 0 32 32" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" height="32px" width="32px" version="1.1" y="0px" x="0px" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32">
|
||||||
|
<g fill="#039be5">
|
||||||
|
<path d="m21 14l5.7-9.7c-3-2.6-7-4.3-11-4.3-1 0-2 0.12-2.9 0.29l8 14z"/>
|
||||||
|
<path d="m20 20h11c1-1 1-3 1-4 0-3.9-1.4-7.4-3.7-10l-8 14z"/>
|
||||||
|
<path d="m16 10l-5.4-9.2c-4.4 1.5-8 4.8-9.8 9.2h15z"/>
|
||||||
|
<path d="m16 22l5.4 9.1c4.4-1.5 8-4.8 9.8-9.1h-15z"/>
|
||||||
|
<path d="m12 12h-11c-0.77 1-1 3-1 4 0 3.9 1.4 7.4 3.8 10l8.2-14z"/>
|
||||||
|
<path d="m11 18l-5.7 9.8c2.7 2 6.7 4 11 4 1 0 2.1-0.12 3-0.3l-8-14z"/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 751 B |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 751 B After Width: | Height: | Size: 751 B |
@ -1,9 +1,11 @@
|
|||||||
<RCC>
|
<RCC>
|
||||||
<qresource prefix="/">
|
<qresource prefix="/">
|
||||||
<file>img/icons/arrow_left_light.svg</file>
|
<file>img/icons/dark/arrow_left.svg</file>
|
||||||
|
<file>img/icons/dark/arrow_right.svg</file>
|
||||||
<file>img/icons/arrow_left.svg</file>
|
<file>img/icons/arrow_left.svg</file>
|
||||||
<file>img/icons/arrow_right_light.svg</file>
|
|
||||||
<file>img/icons/arrow_right.svg</file>
|
<file>img/icons/arrow_right.svg</file>
|
||||||
|
<file>img/icons/light/arrow_right.svg</file>
|
||||||
|
<file>img/icons/light/arrow_left.svg</file>
|
||||||
<file>img/icons/sidebar.svg</file>
|
<file>img/icons/sidebar.svg</file>
|
||||||
<file>img/icons/undo.svg</file>
|
<file>img/icons/undo.svg</file>
|
||||||
<file>img/icons/redo.svg</file>
|
<file>img/icons/redo.svg</file>
|
||||||
@ -39,21 +41,23 @@
|
|||||||
<file>img/icons/load_light.svg</file>
|
<file>img/icons/load_light.svg</file>
|
||||||
<file>img/icons/save_light.svg</file>
|
<file>img/icons/save_light.svg</file>
|
||||||
<file>img/icons/trash_light.svg</file>
|
<file>img/icons/trash_light.svg</file>
|
||||||
<file>img/icons/disas_light.svg</file>
|
|
||||||
<file>img/icons/disas_white.svg</file>
|
|
||||||
<file>img/icons/disas.svg</file>
|
<file>img/icons/disas.svg</file>
|
||||||
<file>img/icons/graph_light.svg</file>
|
<file>img/icons/light/disas.svg</file>
|
||||||
|
<file>img/icons/disas_white.svg</file>
|
||||||
<file>img/icons/graph_white.svg</file>
|
<file>img/icons/graph_white.svg</file>
|
||||||
<file>img/icons/graph.svg</file>
|
<file>img/icons/graph.svg</file>
|
||||||
|
<file>img/icons/light/graph.svg</file>
|
||||||
<file>img/icons/hexdump_light.svg</file>
|
<file>img/icons/hexdump_light.svg</file>
|
||||||
<file>img/icons/hexdump_white.svg</file>
|
<file>img/icons/hexdump_white.svg</file>
|
||||||
<file>img/icons/bug_light.svg</file>
|
<file>img/icons/bug.svg</file>
|
||||||
|
<file>img/icons/light/bug.svg</file>
|
||||||
<file>img/icons/cog_light.svg</file>
|
<file>img/icons/cog_light.svg</file>
|
||||||
<file>img/icons/cog_white.svg</file>
|
<file>img/icons/cog_white.svg</file>
|
||||||
<file>img/icons/new_light.svg</file>
|
<file>img/icons/new_light.svg</file>
|
||||||
<file>img/icons/run_light.svg</file>
|
<file>img/icons/run_light.svg</file>
|
||||||
<file>img/icons/edit_light.svg</file>
|
<file>img/icons/edit_light.svg</file>
|
||||||
<file>img/icons/polar_light.svg</file>
|
<file>img/icons/polar.svg</file>
|
||||||
|
<file>img/icons/light/polar.svg</file>
|
||||||
<file>img/icons/radar_light.svg</file>
|
<file>img/icons/radar_light.svg</file>
|
||||||
<file>img/icons/polar_white.svg</file>
|
<file>img/icons/polar_white.svg</file>
|
||||||
<file>img/icons/radar_white.svg</file>
|
<file>img/icons/radar_white.svg</file>
|
||||||
@ -82,7 +86,8 @@
|
|||||||
<file>img/icons/previous.svg</file>
|
<file>img/icons/previous.svg</file>
|
||||||
<file>img/icons/list.svg</file>
|
<file>img/icons/list.svg</file>
|
||||||
<file>img/icons/fork.svg</file>
|
<file>img/icons/fork.svg</file>
|
||||||
<file>img/icons/plugins_light.svg</file>
|
<file>img/icons/plugins.svg</file>
|
||||||
|
<file>img/icons/light/plugins.svg</file>
|
||||||
<file>python/cutter.py</file>
|
<file>python/cutter.py</file>
|
||||||
<file>python/reg_qtres_importer.py</file>
|
<file>python/reg_qtres_importer.py</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
|
17
src/themes/lightstyle/light.qrc
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="qss_icons">
|
||||||
|
<file>rc/down_arrow.png</file>
|
||||||
|
<file>rc/down_arrow_disabled.png</file>
|
||||||
|
<file>rc/up_arrow.png</file>
|
||||||
|
<file>rc/up_arrow_disabled.png</file>
|
||||||
|
<file>rc/right_arrow.png</file>
|
||||||
|
<file>rc/right_arrow_disabled.png</file>
|
||||||
|
<file>rc/left_arrow.png</file>
|
||||||
|
<file>rc/left_arrow_disabled.png</file>
|
||||||
|
<file>rc/down_arrow_combo.png</file>
|
||||||
|
<file>rc/up_arrow_combo.png</file>
|
||||||
|
</qresource>
|
||||||
|
<qresource prefix="lightstyle">
|
||||||
|
<file>light.qss</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
741
src/themes/lightstyle/light.qss
Normal file
@ -0,0 +1,741 @@
|
|||||||
|
QColorDialog
|
||||||
|
{
|
||||||
|
background-color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTextEdit
|
||||||
|
{
|
||||||
|
background-color:#fafcfe;
|
||||||
|
color:#00162e;
|
||||||
|
}
|
||||||
|
|
||||||
|
QWidget
|
||||||
|
{
|
||||||
|
color:#00162e;
|
||||||
|
background-color:#fafcfe;
|
||||||
|
selection-background-color:#03a9f4;
|
||||||
|
selection-color:#ffffff;
|
||||||
|
background-clip:border;
|
||||||
|
border-image:none;
|
||||||
|
border:0 transparent #000;
|
||||||
|
outline:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDockWidget
|
||||||
|
{
|
||||||
|
background:#fafcfe;
|
||||||
|
border:1px solid #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDockWidget::title
|
||||||
|
{
|
||||||
|
background-color:#fafcfe;
|
||||||
|
border-top:1px solid #dee8f3;
|
||||||
|
text-align:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPlainTextEdit
|
||||||
|
{
|
||||||
|
selection-background-color:#03a9f4;
|
||||||
|
selection-color:#ffffff;
|
||||||
|
color:#00162e;
|
||||||
|
border-color:transparent;
|
||||||
|
border-style:solid;
|
||||||
|
border-width:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton
|
||||||
|
{
|
||||||
|
color:#00162e;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:#039be5;
|
||||||
|
border-style:solid;
|
||||||
|
border-width:1px;
|
||||||
|
padding:2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton::default
|
||||||
|
{
|
||||||
|
color:#00162e;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:transparent transparent #039be5;
|
||||||
|
border-width:1px;
|
||||||
|
padding:2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolButton
|
||||||
|
{
|
||||||
|
border-top-color:transparent;
|
||||||
|
border-right-color:transparent;
|
||||||
|
border-left-color:transparent;
|
||||||
|
color:#00162e;
|
||||||
|
background-color:transparent;
|
||||||
|
border-style:solid;
|
||||||
|
padding:2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolButton:hover
|
||||||
|
{
|
||||||
|
border-bottom-width:2px;
|
||||||
|
color:#00162e;
|
||||||
|
padding-bottom:1px;
|
||||||
|
background-color:transparent;
|
||||||
|
border-color:transparent transparent #03a9f4;
|
||||||
|
border-style:solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton:hover
|
||||||
|
{
|
||||||
|
border-bottom-width:1px;
|
||||||
|
color:#00162e;
|
||||||
|
padding-bottom:2px;
|
||||||
|
background-color:#fafafa;
|
||||||
|
border:1px solid #039be5;
|
||||||
|
border-color:transparent transparent #03a9f4;
|
||||||
|
border-style:solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton:pressed
|
||||||
|
{
|
||||||
|
border-bottom-width:2px;
|
||||||
|
color:#03a9f4;
|
||||||
|
padding-bottom:1px;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:transparent transparent #03a9f4;
|
||||||
|
border-style:solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPushButton:disabled
|
||||||
|
{
|
||||||
|
border-bottom-width:2px;
|
||||||
|
color:#808086;
|
||||||
|
padding-bottom:1px;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:#e2e3e4;
|
||||||
|
border-style:solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLineEdit
|
||||||
|
{
|
||||||
|
border-radius:4px;
|
||||||
|
color:#00162e;
|
||||||
|
background:#fff;
|
||||||
|
selection-background-color:#007ac1;
|
||||||
|
selection-color:#FFF;
|
||||||
|
border-color:#bdbdbd;
|
||||||
|
border-style:inset;
|
||||||
|
border-width:1px;
|
||||||
|
padding:0 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLabel
|
||||||
|
{
|
||||||
|
color:#00162e;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLCDNumber
|
||||||
|
{
|
||||||
|
color:#03a9f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
QProgressBar
|
||||||
|
{
|
||||||
|
text-align:center;
|
||||||
|
color:#f0f0f0;
|
||||||
|
border-radius:10px;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:#bdbdbd;
|
||||||
|
border-style:inset;
|
||||||
|
border-width:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QProgressBar::chunk
|
||||||
|
{
|
||||||
|
background-color:#039be5;
|
||||||
|
border-radius:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolBar
|
||||||
|
{
|
||||||
|
background-color:#03a9f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenuBar
|
||||||
|
{
|
||||||
|
background-color:#007ac1;
|
||||||
|
height:40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenuBar::item
|
||||||
|
{
|
||||||
|
background:transparent;
|
||||||
|
color:#fff;
|
||||||
|
height:40px;
|
||||||
|
max-width:40px;
|
||||||
|
text-align:center;
|
||||||
|
padding-left:10px;
|
||||||
|
padding-right:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenuBar::item:selected
|
||||||
|
{
|
||||||
|
background:transparent;
|
||||||
|
border-bottom:2px solid #fff;
|
||||||
|
background-color:#1386c9;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenuBar::item:pressed
|
||||||
|
{
|
||||||
|
border:1px solid #03a9f4;
|
||||||
|
background-color:#03a9f4;
|
||||||
|
color:#fff;
|
||||||
|
margin-bottom:-1px;
|
||||||
|
padding-bottom:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu
|
||||||
|
{
|
||||||
|
background-color:#fafcfe;
|
||||||
|
border:1px solid #cfcfcf;
|
||||||
|
padding:2px 2px 2px 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu::item
|
||||||
|
{
|
||||||
|
background-color:#fafcfe;
|
||||||
|
border-bottom-width:1px;
|
||||||
|
color:#00162e;
|
||||||
|
border-color:transparent;
|
||||||
|
border-style:solid;
|
||||||
|
padding:4px 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu::item:selected
|
||||||
|
{
|
||||||
|
border-left-color:#039be5;
|
||||||
|
border-left-width:2px;
|
||||||
|
color:#039be5;
|
||||||
|
background-color:#f4f9ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabWidget
|
||||||
|
{
|
||||||
|
color:#000;
|
||||||
|
background-color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabWidget::pane
|
||||||
|
{
|
||||||
|
background-color:#fff;
|
||||||
|
border-radius:6px;
|
||||||
|
border-color:#bdbdbd;
|
||||||
|
border-style:solid;
|
||||||
|
border-width:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabBar::tab
|
||||||
|
{
|
||||||
|
border-bottom-width:1px;
|
||||||
|
color:#007ac1;
|
||||||
|
margin-left:3px;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:transparent;
|
||||||
|
border-style:solid;
|
||||||
|
padding:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTabBar::tab:selected,QTabBar::tab:last:selected,QTabBar::tab:hover
|
||||||
|
{
|
||||||
|
border-bottom-width:2px;
|
||||||
|
color:#007ac1;
|
||||||
|
padding-left:3px;
|
||||||
|
padding-bottom:2px;
|
||||||
|
margin-left:3px;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:transparent transparent #039be5;
|
||||||
|
border-style:solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox
|
||||||
|
{
|
||||||
|
color:#00162e;
|
||||||
|
padding:2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox:disabled
|
||||||
|
{
|
||||||
|
color:#7e7e80;
|
||||||
|
padding:2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox:hover
|
||||||
|
{
|
||||||
|
border-radius:4px;
|
||||||
|
background-color:#fff;
|
||||||
|
border-color:#bdbdbd;
|
||||||
|
border-style:solid;
|
||||||
|
border-width:1px;
|
||||||
|
padding:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox::indicator:checked
|
||||||
|
{
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
color:#00162e;
|
||||||
|
background-color:#039be5;
|
||||||
|
border-color:#039be5;
|
||||||
|
border-style:solid;
|
||||||
|
border-width:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QCheckBox::indicator:unchecked
|
||||||
|
{
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
color:#00162e;
|
||||||
|
background-color:transparent;
|
||||||
|
border-color:#039be5;
|
||||||
|
border-style:solid;
|
||||||
|
border-width:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioButton
|
||||||
|
{
|
||||||
|
color:#00162e;
|
||||||
|
background-color:#fff;
|
||||||
|
padding:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioButton::indicator:checked
|
||||||
|
{
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
border-radius:5px;
|
||||||
|
color:#00162e;
|
||||||
|
background-color:#039be5;
|
||||||
|
border-color:#039be5;
|
||||||
|
border-style:solid;
|
||||||
|
border-width:1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioButton::indicator:!checked
|
||||||
|
{
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QStatusBar
|
||||||
|
{
|
||||||
|
color:#027f7f;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox
|
||||||
|
{
|
||||||
|
selection-background-color:#3daee9;
|
||||||
|
border:1px solid #76797C;
|
||||||
|
border-radius:2px;
|
||||||
|
min-width:75px;
|
||||||
|
color:#00162e;
|
||||||
|
background-color:#fff;
|
||||||
|
border-style:solid;
|
||||||
|
padding:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox:hover
|
||||||
|
{
|
||||||
|
border:1px solid #3daee9;
|
||||||
|
color:#00162e;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox:on
|
||||||
|
{
|
||||||
|
padding-top:3px;
|
||||||
|
padding-left:4px;
|
||||||
|
selection-background-color:#4a4a4a;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox QAbstractItemView
|
||||||
|
{
|
||||||
|
background-color:#efefef;
|
||||||
|
border-radius:2px;
|
||||||
|
border:1px solid #76797C;
|
||||||
|
selection-background-color:#18465d;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox::drop-down
|
||||||
|
{
|
||||||
|
subcontrol-origin:padding;
|
||||||
|
subcontrol-position:top right;
|
||||||
|
width:15px;
|
||||||
|
border-left-width:0;
|
||||||
|
border-left-color:#e0e0e0;
|
||||||
|
border-left-style:solid;
|
||||||
|
border-top-right-radius:3px;
|
||||||
|
border-bottom-right-radius:3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QAbstractSpinBox::down-arrow,QAbstractSpinBox::down-arrow:disabled,QAbstractSpinBox::down-arrow:off
|
||||||
|
{
|
||||||
|
image:url(:/qss_icons/rc/down_arrow.png);
|
||||||
|
width:10px;
|
||||||
|
height:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolButton::menu-indicator
|
||||||
|
{
|
||||||
|
image:url(:/qss_icons/rc/down_arrow.png);
|
||||||
|
top:-7px;
|
||||||
|
left:-2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QAbstractSpinBox::up-arrow,QSpinBox::up-arrow,QAbstractSpinBox::up-arrow:disabled,QAbstractSpinBox::up-arrow:off
|
||||||
|
{
|
||||||
|
image:url(:/qss_icons/rc/up_arrow_disabled.png);
|
||||||
|
width:10px;
|
||||||
|
height:10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::groove:horizontal
|
||||||
|
{
|
||||||
|
height:5px;
|
||||||
|
background:#039be5;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::groove:vertical
|
||||||
|
{
|
||||||
|
width:5px;
|
||||||
|
background:#039be5;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::handle:horizontal
|
||||||
|
{
|
||||||
|
border:1px solid #5c5c5c;
|
||||||
|
width:14px;
|
||||||
|
border-radius:7px;
|
||||||
|
background-color:#039be5;
|
||||||
|
margin:-5px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::handle:vertical
|
||||||
|
{
|
||||||
|
border:1px solid #5c5c5c;
|
||||||
|
height:14px;
|
||||||
|
border-radius:7px;
|
||||||
|
background-color:#039be5;
|
||||||
|
margin:0 -5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTreeView,QListView
|
||||||
|
{
|
||||||
|
border:1px solid #76797C;
|
||||||
|
background-color:#fff;
|
||||||
|
color:#00162e;
|
||||||
|
}
|
||||||
|
|
||||||
|
QListView::item:!selected:hover,QTreeView::item:!selected:hover
|
||||||
|
{
|
||||||
|
background:#BBDEFB;
|
||||||
|
outline:0;
|
||||||
|
color:#163f6b;
|
||||||
|
}
|
||||||
|
|
||||||
|
QListView::item:selected:hover,QTreeView::item:selected:hover
|
||||||
|
{
|
||||||
|
background:#2196F3;
|
||||||
|
color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTableView
|
||||||
|
{
|
||||||
|
border:1px solid #76797C;
|
||||||
|
gridline-color:#bdbdbd;
|
||||||
|
background-color:#fff;
|
||||||
|
color:#00162e;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTableView,QHeaderView
|
||||||
|
{
|
||||||
|
border-radius:0;
|
||||||
|
background-color:#fff;
|
||||||
|
color:#007ac1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTableCornerButton::section
|
||||||
|
{
|
||||||
|
background-color:#bdbdbd;
|
||||||
|
border:1px transparent #cdcdce;
|
||||||
|
border-radius:0;
|
||||||
|
color:#007ac1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::section
|
||||||
|
{
|
||||||
|
background-color:#fafcfe;
|
||||||
|
border-radius:0;
|
||||||
|
text-align:center;
|
||||||
|
padding:3px 3px 3px 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar:horizontal
|
||||||
|
{
|
||||||
|
height:15px;
|
||||||
|
border:1px transparent #9e9e9e;
|
||||||
|
border-radius:4px;
|
||||||
|
background-color:#efefef;
|
||||||
|
margin:3px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::handle:horizontal
|
||||||
|
{
|
||||||
|
background-color:#9e9e9e;
|
||||||
|
min-width:5px;
|
||||||
|
border-radius:4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::add-line:horizontal
|
||||||
|
{
|
||||||
|
border-image:url(:/qss_icons/rc/right_arrow_disabled.png);
|
||||||
|
width:10px;
|
||||||
|
height:10px;
|
||||||
|
subcontrol-position:right;
|
||||||
|
subcontrol-origin:margin;
|
||||||
|
margin:0 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::add-line:horizontal:hover,QScrollBar::add-line:horizontal:on
|
||||||
|
{
|
||||||
|
border-image:url(:/qss_icons/rc/right_arrow.png);
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
subcontrol-position:right;
|
||||||
|
subcontrol-origin:margin;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::sub-line:horizontal
|
||||||
|
{
|
||||||
|
border-image:url(:/qss_icons/rc/left_arrow_disabled.png);
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
subcontrol-position:left;
|
||||||
|
subcontrol-origin:margin;
|
||||||
|
margin:0 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::sub-line:horizontal:hover,QScrollBar::sub-line:horizontal:on
|
||||||
|
{
|
||||||
|
border-image:url(:/qss_icons/rc/left_arrow.png);
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
subcontrol-position:left;
|
||||||
|
subcontrol-origin:margin;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar:vertical
|
||||||
|
{
|
||||||
|
background-color:#efefef;
|
||||||
|
width:15px;
|
||||||
|
border:1px transparent #efefef;
|
||||||
|
border-radius:4px;
|
||||||
|
margin:15px 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::handle:vertical
|
||||||
|
{
|
||||||
|
background-color:#9e9e9e;
|
||||||
|
min-height:5px;
|
||||||
|
border-radius:4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::sub-line:vertical
|
||||||
|
{
|
||||||
|
border-image:url(:/qss_icons/rc/up_arrow_disabled.png);
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
subcontrol-position:top;
|
||||||
|
subcontrol-origin:margin;
|
||||||
|
margin:3px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::add-line:vertical
|
||||||
|
{
|
||||||
|
border-image:url(:/qss_icons/rc/down_arrow_disabled.png);
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
subcontrol-position:bottom;
|
||||||
|
subcontrol-origin:margin;
|
||||||
|
margin:3px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::sub-line:vertical:hover,QScrollBar::sub-line:vertical:on
|
||||||
|
{
|
||||||
|
border-image:url(:/qss_icons/rc/up_arrow.png);
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
subcontrol-position:top;
|
||||||
|
subcontrol-origin:margin;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::add-line:vertical:hover,QScrollBar::add-line:vertical:on
|
||||||
|
{
|
||||||
|
border-image:url(:/qss_icons/rc/down_arrow.png);
|
||||||
|
height:10px;
|
||||||
|
width:10px;
|
||||||
|
subcontrol-position:bottom;
|
||||||
|
subcontrol-origin:margin;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLineEdit:hover,QLineEdit:focus
|
||||||
|
{
|
||||||
|
border:1px solid #26adfc;
|
||||||
|
color: #007ac1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolTip
|
||||||
|
{
|
||||||
|
border-radius:4px;
|
||||||
|
opacity:200;
|
||||||
|
border-style:solid;
|
||||||
|
border-width:2px;
|
||||||
|
padding:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame
|
||||||
|
{
|
||||||
|
border-radius:2px;
|
||||||
|
border:1px solid #c7dce9;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame[frameShape="0"]
|
||||||
|
{
|
||||||
|
border-radius:2px;
|
||||||
|
border:1px transparent #c7dce9;
|
||||||
|
}
|
||||||
|
|
||||||
|
QFrame[height="3"],QFrame[width="3"]
|
||||||
|
{
|
||||||
|
background-color:#c7dce9;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow > QTabBar::tab
|
||||||
|
{
|
||||||
|
border-bottom-color:#007ac1;
|
||||||
|
border-top-left-radius:0;
|
||||||
|
border-top-right-radius:0;
|
||||||
|
min-width:8px;
|
||||||
|
max-width:200px;
|
||||||
|
margin-bottom:3px;
|
||||||
|
margin-top:3px;
|
||||||
|
background-color:#fafcfe;
|
||||||
|
padding:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu::indicator
|
||||||
|
{
|
||||||
|
border:1px solid #009be2;
|
||||||
|
border-radius:2px;
|
||||||
|
margin:3px 3px 3px 4px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::section::horizontal
|
||||||
|
{
|
||||||
|
background-color:#fafcfe;
|
||||||
|
color:#0046af;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow,QDialog
|
||||||
|
{
|
||||||
|
background-color:#fafcfe;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSpinBox,QDoubleSpinBox,QTimeEdit,QDateTimeEdit,QDateEdit,QToolBox,QToolBox::tab
|
||||||
|
{
|
||||||
|
color:#00162e;
|
||||||
|
background-color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolBox::tab:selected,QScrollArea
|
||||||
|
{
|
||||||
|
color:#FFF;
|
||||||
|
background-color:#fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::add-page:horizontal,QSlider::add-page:vertical
|
||||||
|
{
|
||||||
|
background:#FFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSlider::sub-page:horizontal,QSlider::sub-page:vertical
|
||||||
|
{
|
||||||
|
background:#039be5;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTableView::item:pressed,QListView::item:pressed,QTreeView::item:pressed,QTableView::item:selected:active,QTreeView::item:selected:active,QListView::item:selected:active
|
||||||
|
{
|
||||||
|
background: #bbe0ff;
|
||||||
|
color:#163f6b;
|
||||||
|
}
|
||||||
|
|
||||||
|
QScrollBar::up-arrow:horizontal,QScrollBar::down-arrow:horizontal,QScrollBar::add-page:horizontal,QScrollBar::sub-page:horizontal,QScrollBar::up-arrow:vertical,QScrollBar::down-arrow:vertical,QScrollBar::add-page:vertical,QScrollBar::sub-page:vertical
|
||||||
|
{
|
||||||
|
background:none;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow > QTabBar::tab:selected,QMainWindow > QTabBar::tab:hover
|
||||||
|
{
|
||||||
|
background:#03a9f4;
|
||||||
|
color:#FFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu::indicator:non-exclusive:unchecked,QMenu::indicator:non-exclusive:unchecked:selected,QMenu::indicator:exclusive:unchecked
|
||||||
|
{
|
||||||
|
background:#ebeef1;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMenu::indicator:non-exclusive:checked,QMenu::indicator:non-exclusive:checked:selected,QMenu::indicator:exclusive:unchecked:selected,QMenu::indicator:exclusive:checked,QMenu::indicator:exclusive:checked:selected
|
||||||
|
{
|
||||||
|
background:#03a9f4;
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox:hover,QPushButton:hover,QAbstractSpinBox:hover,QLineEdit:hover,QTextEdit:hover,QPlainTextEdit:hover,QAbstractView:hover,QTreeView:hover
|
||||||
|
{
|
||||||
|
border:1px solid #3daee9;
|
||||||
|
}
|
||||||
|
|
||||||
|
QTreeView
|
||||||
|
{
|
||||||
|
border:1px solid #b7dcf0;
|
||||||
|
selection-background-color:#bbe0ff;
|
||||||
|
selection-color:#163f6b;
|
||||||
|
}
|
||||||
|
|
||||||
|
QAbstractSpinBox::down-arrow:hover,QToolButton::menu-arrow,QHeaderView::down-arrow,QSpinBox::down-arrow:hover,QHeaderView::down-arrow
|
||||||
|
{
|
||||||
|
image:url(:/qss_icons/rc/down_arrow.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
QHeaderView::up-arrow,QAbstractSpinBox::up-arrow:hover,QHeaderView::up-arrow
|
||||||
|
{
|
||||||
|
image:url(:/qss_icons/rc/up_arrow.png);
|
||||||
|
}
|
||||||
|
|
||||||
|
QComboBox::down-arrow,QComboBox::down-arrow:on,QComboBox::down-arrow:hover,QComboBox::down-arrow:focus {
|
||||||
|
image:url(:/qss_icons/rc/down_arrow_combo.png);
|
||||||
|
width: 14px;
|
||||||
|
height: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSpinBox::down-arrow,QSpinBox::down-arrow:on,QSpinBox::down-arrow:hover,QSpinBox::down-arrow:focus {
|
||||||
|
image:url(:/qss_icons/rc/down_arrow_combo.png);
|
||||||
|
border-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QSpinBox::up-arrow,QSpinBox::up-arrow:on,QSpinBox::up-arrow:hover,QSpinBox::up-arrow:focus {
|
||||||
|
image:url(:/qss_icons/rc/up_arrow_combo.png);
|
||||||
|
border-width: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QLineEdit, QLineEdit[text=""] {
|
||||||
|
color: #00304d;
|
||||||
|
}
|
||||||
|
|
BIN
src/themes/lightstyle/rc/down_arrow.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
src/themes/lightstyle/rc/down_arrow_combo.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
src/themes/lightstyle/rc/down_arrow_disabled.png
Normal file
After Width: | Height: | Size: 165 B |
BIN
src/themes/lightstyle/rc/left_arrow.png
Normal file
After Width: | Height: | Size: 166 B |
BIN
src/themes/lightstyle/rc/left_arrow_disabled.png
Normal file
After Width: | Height: | Size: 166 B |
BIN
src/themes/lightstyle/rc/right_arrow.png
Normal file
After Width: | Height: | Size: 160 B |
BIN
src/themes/lightstyle/rc/right_arrow_disabled.png
Normal file
After Width: | Height: | Size: 160 B |
BIN
src/themes/lightstyle/rc/up_arrow.png
Normal file
After Width: | Height: | Size: 159 B |
BIN
src/themes/lightstyle/rc/up_arrow_combo.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
src/themes/lightstyle/rc/up_arrow_disabled.png
Normal file
After Width: | Height: | Size: 158 B |
5
src/themes/native/native.qrc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<RCC>
|
||||||
|
<qresource prefix="native">
|
||||||
|
<file>native.qss</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
78
src/themes/native/native.qss
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* QMainWindow */
|
||||||
|
|
||||||
|
QHeaderView::section {
|
||||||
|
padding: 3px;
|
||||||
|
padding-left: 10px;
|
||||||
|
/* border: 2px solid white;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QMainWindow > QTabBar::tab {
|
||||||
|
border-bottom-color: #2180a9;
|
||||||
|
border-top-left-radius: 0px;
|
||||||
|
border-top-right-radius: 0px;
|
||||||
|
min-width: 8px;
|
||||||
|
max-width: 200px;
|
||||||
|
padding: 5px;
|
||||||
|
margin-bottom: 3px;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow > QTabBar::tab:selected {
|
||||||
|
background: #2180a9;
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
QMainWindow > QTabBar::tab:hover {
|
||||||
|
background: #2180a9; /* #3C879E; */
|
||||||
|
color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
QDockWidget::title {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolTip {
|
||||||
|
background-color: #444;
|
||||||
|
border: 3px solid #444;
|
||||||
|
color: rgb(232, 232, 232);
|
||||||
|
font: 11pt "Monaco";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* CutterTreeView */
|
||||||
|
|
||||||
|
CutterTreeView::item
|
||||||
|
{
|
||||||
|
padding-top: 1px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* QFilterView */
|
||||||
|
|
||||||
|
QToolButton { /* all types of tool button */
|
||||||
|
border: 2px solid #333;
|
||||||
|
border-left: 2px solid #333;
|
||||||
|
border-right: 2px solid #333;
|
||||||
|
background-color: #333;
|
||||||
|
color: rgb(255, 255, 255)
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolButton:hover {
|
||||||
|
border: 2px solid rgb(128, 128, 128);
|
||||||
|
border-left: 2px solid rgb(128, 128, 128);
|
||||||
|
border-right: 2px solid rgb(128, 128, 128);
|
||||||
|
background-color: rgb(128, 128, 128);
|
||||||
|
color: rgb(255, 255, 255)
|
||||||
|
}
|
||||||
|
|
||||||
|
QToolButton:pressed {
|
||||||
|
border: 2px solid #2180a9;
|
||||||
|
border-left: 2px solid #2180a9;
|
||||||
|
border-right: 2px solid #2180a9;
|
||||||
|
background-color: #2180a9;
|
||||||
|
}
|
@ -282,7 +282,19 @@ static const QMap<QString, OptionIfo> optionInfoMap = {
|
|||||||
QObject::tr("Navbar empty"), true
|
QObject::tr("Navbar empty"), true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ "gui.breakpoint_background", { "", QObject::tr("Breakpoint background"), true } }
|
{ "gui.breakpoint_background", { "", QObject::tr("Breakpoint background"), true } },
|
||||||
|
{
|
||||||
|
"gui.tooltip.background", {
|
||||||
|
QObject::tr("Background color for tooltips"),
|
||||||
|
QObject::tr("Tooltip background"), true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"gui.tooltip.foreground", {
|
||||||
|
QObject::tr("Foregorund color for tooltips"),
|
||||||
|
QObject::tr("Tooltip foreground"), true
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void ColorOptionDelegate::paint(QPainter *painter,
|
void ColorOptionDelegate::paint(QPainter *painter,
|
||||||
|
@ -116,7 +116,7 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="../resources.qrc">
|
<iconset resource="../resources.qrc">
|
||||||
<normaloff>:/img/icons/arrow_right_light.svg</normaloff>:/img/icons/arrow_right_light.svg</iconset>
|
<normaloff>:/img/icons/arrow_right.svg</normaloff>:/img/icons/arrow_right.svg</iconset>
|
||||||
</property>
|
</property>
|
||||||
<property name="iconSize">
|
<property name="iconSize">
|
||||||
<size>
|
<size>
|
||||||
|
@ -423,9 +423,6 @@ void DisassemblerGraphView::drawBlock(QPainter &p, GraphView::GraphBlock &block)
|
|||||||
p.setBrush(QColor(0, 0, 0, 100));
|
p.setBrush(QColor(0, 0, 0, 100));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Node's shadow effect
|
|
||||||
p.drawRect(blockX + 2, blockY + 2,
|
|
||||||
block.width, block.height);
|
|
||||||
p.setPen(QPen(graphNodeColor, 1));
|
p.setPen(QPen(graphNodeColor, 1));
|
||||||
|
|
||||||
if (block_selected) {
|
if (block_selected) {
|
||||||
|
@ -453,8 +453,9 @@ FunctionsWidget::FunctionsWidget(MainWindow *main, QAction *action) :
|
|||||||
|
|
||||||
// Radare core found in:
|
// Radare core found in:
|
||||||
this->main = main;
|
this->main = main;
|
||||||
|
setTooltipStylesheet();
|
||||||
|
connect(Config(), SIGNAL(colorsUpdated()), this, SLOT(setTooltipStylesheet()));
|
||||||
|
|
||||||
setStyleSheet(QString("QToolTip { max-width: %1px; opacity: 230; }").arg(kMaxTooltipWidth));
|
|
||||||
|
|
||||||
// leave the filter visible by default so users know it exists
|
// leave the filter visible by default so users know it exists
|
||||||
//ui->filterLineEdit->setVisible(false);
|
//ui->filterLineEdit->setVisible(false);
|
||||||
@ -684,3 +685,16 @@ void FunctionsWidget::setScrollMode()
|
|||||||
{
|
{
|
||||||
qhelpers::setVerticalScrollMode(ui->functionsTreeView);
|
qhelpers::setVerticalScrollMode(ui->functionsTreeView);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief a SLOT to set the stylesheet for a tooltip
|
||||||
|
*/
|
||||||
|
void FunctionsWidget::setTooltipStylesheet()
|
||||||
|
{
|
||||||
|
setStyleSheet(QString("QToolTip { border-width: 1px; max-width: %1px;" \
|
||||||
|
"opacity: 230; background-color: %2;" \
|
||||||
|
"color: %3; border-color: %3;}")
|
||||||
|
.arg(kMaxTooltipWidth)
|
||||||
|
.arg(Config()->getColor("gui.tooltip.background").name())
|
||||||
|
.arg(Config()->getColor("gui.tooltip.foreground").name()));
|
||||||
|
}
|
||||||
|
@ -113,6 +113,7 @@ private slots:
|
|||||||
void on_actionHorizontal_triggered();
|
void on_actionHorizontal_triggered();
|
||||||
void on_actionVertical_triggered();
|
void on_actionVertical_triggered();
|
||||||
void showTitleContextMenu(const QPoint &pt);
|
void showTitleContextMenu(const QPoint &pt);
|
||||||
|
void setTooltipStylesheet();
|
||||||
void refreshTree();
|
void refreshTree();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -55,28 +55,7 @@
|
|||||||
</font>
|
</font>
|
||||||
</property>
|
</property>
|
||||||
<property name="styleSheet">
|
<property name="styleSheet">
|
||||||
<string notr="true">QToolButton { /* all types of tool button */
|
<string notr="true"></string>
|
||||||
border: 2px solid #333;
|
|
||||||
border-left: 2px solid #333;
|
|
||||||
border-right: 2px solid #333;
|
|
||||||
background-color: #333;
|
|
||||||
color: rgb(255, 255, 255)
|
|
||||||
}
|
|
||||||
|
|
||||||
QToolButton:hover {
|
|
||||||
border: 2px solid rgb(128, 128, 128);
|
|
||||||
border-left: 2px solid rgb(128, 128, 128);
|
|
||||||
border-right: 2px solid rgb(128, 128, 128);
|
|
||||||
background-color: rgb(128, 128, 128);
|
|
||||||
color: rgb(255, 255, 255)
|
|
||||||
}
|
|
||||||
|
|
||||||
QToolButton:pressed {
|
|
||||||
border: 2px solid #2180a9;
|
|
||||||
border-left: 2px solid #2180a9;
|
|
||||||
border-right: 2px solid #2180a9;
|
|
||||||
background-color: #2180a9;
|
|
||||||
}</string>
|
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>X</string>
|
<string>X</string>
|
||||||
|
@ -75,7 +75,7 @@ void RegistersWidget::setRegisterGrid()
|
|||||||
}
|
}
|
||||||
// decide to highlight QLine Box in case of change of register value
|
// decide to highlight QLine Box in case of change of register value
|
||||||
if (regValue != registerEditValue->text() && registerEditValue->text() != 0) {
|
if (regValue != registerEditValue->text() && registerEditValue->text() != 0) {
|
||||||
registerEditValue->setStyleSheet("QLineEdit {border: 1px solid green;} QLineEdit:hover { border: 1px solid #3daee9; color: #eff0f1;}");
|
registerEditValue->setStyleSheet("border: 1px solid green;");
|
||||||
} else {
|
} else {
|
||||||
// reset stylesheet
|
// reset stylesheet
|
||||||
registerEditValue->setStyleSheet("");
|
registerEditValue->setStyleSheet("");
|
||||||
|