diff --git a/src/musredit_qt5/mupp/PmuppAdmin.cpp b/src/musredit_qt5/mupp/PmuppAdmin.cpp index a980c588..74626719 100644 --- a/src/musredit_qt5/mupp/PmuppAdmin.cpp +++ b/src/musredit_qt5/mupp/PmuppAdmin.cpp @@ -156,8 +156,12 @@ bool PmuppAdminXMLParser::startElement() if (qName == "path_file_name") { fKeyWord = eRecentFile; - } else if (qName == "dark_theme") { - fKeyWord = eDarkTheme; + } else if (qName == "ignore_theme_auto_detection") { + fKeyWord = eIgnoreThemeAutoDetection; + } else if (qName == "dark_theme_icons_menu") { + fKeyWord = eDarkThemeIconsMenu; + } else if (qName == "dark_theme_icons_toolbar") { + fKeyWord = eDarkThemeIconsToolbar; } else if (qName == "marker") { fKeyWord = eMarker; } else if (qName == "color") { @@ -201,11 +205,23 @@ bool PmuppAdminXMLParser::characters() case eRecentFile: fAdmin->addRecentFile(QString(str.toLatin1()).trimmed()); break; - case eDarkTheme: - if ((str == "yes") || (str == "1") || (str == "true")) - fAdmin->setTheme(true); + case eIgnoreThemeAutoDetection: + if ((str == "yes") || (str == "y") || (str == "1") || (str == "true")) + fAdmin->setIgnoreThemeAutoDetection(true); else - fAdmin->setTheme(false); + fAdmin->setIgnoreThemeAutoDetection(false); + break; + case eDarkThemeIconsMenu: + if ((str == "yes") || (str == "y") || (str == "1") || (str == "true")) + fAdmin->setThemeIconsMenu(true); + else + fAdmin->setThemeIconsMenu(false); + break; + case eDarkThemeIconsToolbar: + if ((str == "yes") || (str == "y") || (str == "1") || (str == "true")) + fAdmin->setThemeIconsToolbar(true); + else + fAdmin->setThemeIconsToolbar(false); break; case eMarker: #if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0)) @@ -280,7 +296,7 @@ bool PmuppAdminXMLParser::endDocument() *

Initializes that PmuppAdmin object, and calls the XML parser which feeds * the object variables. */ -PmuppAdmin::PmuppAdmin() : QObject(), fDarkTheme(false) +PmuppAdmin::PmuppAdmin() : QObject() { // XML Parser part // 1st: check local directory diff --git a/src/musredit_qt5/mupp/PmuppAdmin.h b/src/musredit_qt5/mupp/PmuppAdmin.h index 3683f52d..672c8958 100644 --- a/src/musredit_qt5/mupp/PmuppAdmin.h +++ b/src/musredit_qt5/mupp/PmuppAdmin.h @@ -102,7 +102,9 @@ class PmuppAdminXMLParser virtual bool isValid() { return fValid; } private: - enum EAdminKeyWords {eEmpty, eRecentFile, eDarkTheme, eMarker, eColor}; + enum EAdminKeyWords {eEmpty, eRecentFile, + eIgnoreThemeAutoDetection, eDarkThemeIconsMenu, eDarkThemeIconsToolbar, + eMarker, eColor}; bool parse(QIODevice *device); bool startDocument(); @@ -145,18 +147,24 @@ class PmuppAdmin : public QObject void getColor(QString name, int &r, int &g, int &b); void getColor(int idx, int &r, int &g, int &b); - bool isDarkTheme() { return fDarkTheme; } + bool getIgnoreThemeAutoDetection() { return fIgnoreThemeAutoDetection; } + bool getDarkThemeIconsMenuFlag() { return fDarkThemeIconsMenu; } + bool getDarkThemeIconsToolbarFlag() { return fDarkThemeIconsToolbar; } - void setTheme(bool theme) { fDarkTheme = theme; } - void setMarker(int marker, double size); - void setColor(int r, int g, int b, QString name=""); + void setIgnoreThemeAutoDetection(const bool theme) { fIgnoreThemeAutoDetection = theme; } + void setThemeIconsMenu(const bool theme) { fDarkThemeIconsMenu = theme; } + void setThemeIconsToolbar(const bool theme) { fDarkThemeIconsToolbar = theme; } + void setMarker(const int marker, const double size); + void setColor(const int r, const int g, const int b, QString name=""); private: friend class PmuppAdminXMLParser; QVector fRecentFile; ///< keep vector of recent path-file names - bool fDarkTheme; + bool fIgnoreThemeAutoDetection{false}; + bool fDarkThemeIconsMenu{false}; + bool fDarkThemeIconsToolbar{false}; QVector fMarker; QVector fColor; diff --git a/src/musredit_qt5/mupp/PmuppGui.cpp b/src/musredit_qt5/mupp/PmuppGui.cpp index 00edac69..92e9b2dd 100644 --- a/src/musredit_qt5/mupp/PmuppGui.cpp +++ b/src/musredit_qt5/mupp/PmuppGui.cpp @@ -270,7 +270,7 @@ PmuppGui::PmuppGui(QStringList fln) getTheme(); QString iconName(""); - if (fDarkTheme) + if (fDarkThemeIconsMenu) iconName = QString(":/icons/mupp-dark.svg"); else iconName = QString(":/icons/mupp-plain.svg"); @@ -514,7 +514,7 @@ void PmuppGui::setupFileActions() QAction *a; QString iconName(""); - if (fDarkTheme) + if (fDarkThemeIconsMenu) iconName = QString(":/icons/document-open-dark.svg"); else iconName = QString(":/icons/document-open-plain.svg"); @@ -523,7 +523,7 @@ void PmuppGui::setupFileActions() a->setStatusTip( tr("Open a musrfit parameter file.") ); connect( a, SIGNAL( triggered() ), this, SLOT( fileOpen() ) ); menu->addAction(a); - if (!fDarkToolBarIcon) { // tool bar icon is not dark, even though the theme is (ubuntu) + if (!fDarkThemeIconsToolbar) { // tool bar icon is not dark, even though the theme is (ubuntu) iconName = QString(":/icons/document-open-plain.svg"); a = new QAction( QIcon( QPixmap(iconName) ), tr( "&New..." ), this ); connect( a, SIGNAL( triggered() ), this, SLOT( fileOpen() ) ); @@ -848,26 +848,32 @@ bool PmuppGui::eventFilter(QObject *o, QEvent *e) */ void PmuppGui::getTheme() { - fDarkTheme = false; // true if theme is dark - fDarkToolBarIcon = false; // needed for ubuntu dark since there the menu icons - // are dark, however the toolbar icons are plain! + if (fIgnoreThemeAutoDetection) + return; + + fDarkThemeIconsMenu = false; // true if theme is dark + fDarkThemeIconsToolbar = false; // needed for ubuntu dark since there the menu icons + // are dark, however the toolbar icons are plain! QString str = QIcon::themeName(); if (str.isEmpty()) { - if (fAdmin->isDarkTheme()) { - fDarkTheme = true; - fDarkToolBarIcon = true; - } + if (fAdmin->getDarkThemeIconsMenuFlag()) { + fDarkThemeIconsMenu = true; + } + if (fAdmin->getDarkThemeIconsToolbarFlag()) { + fDarkThemeIconsToolbar = true; + } return; } if (str.contains("dark", Qt::CaseInsensitive)) { - fDarkTheme = true; - if (str.contains("ubuntu", Qt::CaseInsensitive)) { - fDarkToolBarIcon = false; + fDarkThemeIconsMenu = true; + if (str.contains("ubuntu", Qt::CaseInsensitive) || + str.contains("xfce", Qt::CaseInsensitive)) { + fDarkThemeIconsToolbar = false; } else { - fDarkToolBarIcon = true; + fDarkThemeIconsToolbar = true; } } } @@ -1316,7 +1322,7 @@ void PmuppGui::addVar() // call variable dialog fVarDlg.reset(); - fVarDlg = std::make_unique(collection_list, fDarkTheme); + fVarDlg = std::make_unique(collection_list, fDarkThemeIconsMenu); connect(fVarDlg.get(), SIGNAL(check_request(QString,QVector)), this, SLOT(check(QString,QVector))); connect(fVarDlg.get(), SIGNAL(add_request(QString,QVector)), this, SLOT(add(QString,QVector))); fVarDlg->show(); diff --git a/src/musredit_qt5/mupp/PmuppGui.h b/src/musredit_qt5/mupp/PmuppGui.h index 7c7cb736..5eb2396d 100644 --- a/src/musredit_qt5/mupp/PmuppGui.h +++ b/src/musredit_qt5/mupp/PmuppGui.h @@ -159,11 +159,12 @@ private: enum EAxis {kXaxis, kYaxis}; PmuppAdmin *fAdmin; - bool fDarkTheme; - bool fDarkToolBarIcon; - bool fNormalize; + bool fIgnoreThemeAutoDetection{false}; + bool fDarkThemeIconsMenu{false}; + bool fDarkThemeIconsToolbar{false}; + bool fNormalize{false}; - uint fDatime; + qint64 fDatime; uint fMuppInstance; PParamDataHandler *fParamDataHandler; @@ -179,11 +180,11 @@ private: QAction *fRecentFilesAction[MAX_RECENT_FILES]; ///< array of the recent file actions std::unique_ptr fNormalizeAction; - std::unique_ptr fBoxLayout_Main; // top->bottom (0) - std::unique_ptr fBoxLayout_Top; // left->right (1) - std::unique_ptr fGridLayout_Left; // 2 columns, 3 rows - std::unique_ptr fGridLayout_Right; // 2 columns, 6 rows - std::unique_ptr fBoxLayout_Cmd; // left->right (1) + std::unique_ptr fBoxLayout_Main; // top->bottom (0) + std::unique_ptr fBoxLayout_Top; // left->right (1) + std::unique_ptr fGridLayout_Left; // 2 columns, 3 rows + std::unique_ptr fGridLayout_Right; // 2 columns, 6 rows + std::unique_ptr fBoxLayout_Cmd; // left->right (1) std::unique_ptr fColLabel; std::unique_ptr fColParamSplitter; diff --git a/src/musredit_qt5/mupp/mupp_startup.xml.in b/src/musredit_qt5/mupp/mupp_startup.xml.in index f7e218c3..70ca0a4a 100644 --- a/src/musredit_qt5/mupp/mupp_startup.xml.in +++ b/src/musredit_qt5/mupp/mupp_startup.xml.in @@ -5,7 +5,9 @@ - no + n + n + n diff --git a/src/musredit_qt6/mupp/PmuppAdmin.cpp b/src/musredit_qt6/mupp/PmuppAdmin.cpp index 35c38e03..963afad4 100644 --- a/src/musredit_qt6/mupp/PmuppAdmin.cpp +++ b/src/musredit_qt6/mupp/PmuppAdmin.cpp @@ -212,13 +212,13 @@ bool PmuppAdminXMLParser::characters() fAdmin->setIgnoreThemeAutoDetection(false); break; case eDarkThemeIconsMenu: - if ((str == "yes") || (str == "1") || (str == "true")) + if ((str == "yes") || (str == "y") || (str == "1") || (str == "true")) fAdmin->setThemeIconsMenu(true); else fAdmin->setThemeIconsMenu(false); break; case eDarkThemeIconsToolbar: - if ((str == "yes") || (str == "1") || (str == "true")) + if ((str == "yes") || (str == "y") || (str == "1") || (str == "true")) fAdmin->setThemeIconsToolbar(true); else fAdmin->setThemeIconsToolbar(false);