improved dark theme handling on mupp for qt6.
This commit is contained in:
parent
3796925e93
commit
f7e5c53879
@ -156,8 +156,12 @@ bool PmuppAdminXMLParser::startElement()
|
|||||||
|
|
||||||
if (qName == "path_file_name") {
|
if (qName == "path_file_name") {
|
||||||
fKeyWord = eRecentFile;
|
fKeyWord = eRecentFile;
|
||||||
} else if (qName == "dark_theme") {
|
} else if (qName == "ignore_theme_auto_detection") {
|
||||||
fKeyWord = eDarkTheme;
|
fKeyWord = eIgnoreThemeAutoDetection;
|
||||||
|
} else if (qName == "dark_theme_icons_menu") {
|
||||||
|
fKeyWord = eDarkThemeIconsMenu;
|
||||||
|
} else if (qName == "dark_theme_icons_toolbar") {
|
||||||
|
fKeyWord = eDarkThemeIconsToolbar;
|
||||||
} else if (qName == "marker") {
|
} else if (qName == "marker") {
|
||||||
fKeyWord = eMarker;
|
fKeyWord = eMarker;
|
||||||
} else if (qName == "color") {
|
} else if (qName == "color") {
|
||||||
@ -201,11 +205,23 @@ bool PmuppAdminXMLParser::characters()
|
|||||||
case eRecentFile:
|
case eRecentFile:
|
||||||
fAdmin->addRecentFile(QString(str.toLatin1()).trimmed());
|
fAdmin->addRecentFile(QString(str.toLatin1()).trimmed());
|
||||||
break;
|
break;
|
||||||
case eDarkTheme:
|
case eIgnoreThemeAutoDetection:
|
||||||
if ((str == "yes") || (str == "1") || (str == "true"))
|
if ((str == "yes") || (str == "y") || (str == "1") || (str == "true"))
|
||||||
fAdmin->setTheme(true);
|
fAdmin->setIgnoreThemeAutoDetection(true);
|
||||||
else
|
else
|
||||||
fAdmin->setTheme(false);
|
fAdmin->setIgnoreThemeAutoDetection(false);
|
||||||
|
break;
|
||||||
|
case eDarkThemeIconsMenu:
|
||||||
|
if ((str == "yes") || (str == "1") || (str == "true"))
|
||||||
|
fAdmin->setThemeIconsMenu(true);
|
||||||
|
else
|
||||||
|
fAdmin->setThemeIconsMenu(false);
|
||||||
|
break;
|
||||||
|
case eDarkThemeIconsToolbar:
|
||||||
|
if ((str == "yes") || (str == "1") || (str == "true"))
|
||||||
|
fAdmin->setThemeIconsToolbar(true);
|
||||||
|
else
|
||||||
|
fAdmin->setThemeIconsToolbar(false);
|
||||||
break;
|
break;
|
||||||
case eMarker:
|
case eMarker:
|
||||||
tok = str.split(",", Qt::SkipEmptyParts);
|
tok = str.split(",", Qt::SkipEmptyParts);
|
||||||
@ -272,7 +288,7 @@ bool PmuppAdminXMLParser::endDocument()
|
|||||||
* <p>Initializes that PmuppAdmin object, and calls the XML parser which feeds
|
* <p>Initializes that PmuppAdmin object, and calls the XML parser which feeds
|
||||||
* the object variables.
|
* the object variables.
|
||||||
*/
|
*/
|
||||||
PmuppAdmin::PmuppAdmin() : QObject(), fDarkTheme(false)
|
PmuppAdmin::PmuppAdmin() : QObject()
|
||||||
{
|
{
|
||||||
// XML Parser part
|
// XML Parser part
|
||||||
// 1st: check local directory
|
// 1st: check local directory
|
||||||
@ -433,7 +449,7 @@ void PmuppAdmin::getColor(int idx, int &r, int &g, int &b)
|
|||||||
* @param marker marker code
|
* @param marker marker code
|
||||||
* @param size marker size
|
* @param size marker size
|
||||||
*/
|
*/
|
||||||
void PmuppAdmin::setMarker(int marker, double size)
|
void PmuppAdmin::setMarker(const int marker, const double size)
|
||||||
{
|
{
|
||||||
PmuppMarker markerObj;
|
PmuppMarker markerObj;
|
||||||
|
|
||||||
@ -456,7 +472,7 @@ void PmuppAdmin::setMarker(int marker, double size)
|
|||||||
* @param b blue value (0..255)
|
* @param b blue value (0..255)
|
||||||
* @param name color name
|
* @param name color name
|
||||||
*/
|
*/
|
||||||
void PmuppAdmin::setColor(int r, int g, int b, QString name)
|
void PmuppAdmin::setColor(const int r, const int g, const int b, QString name)
|
||||||
{
|
{
|
||||||
if (((r<0) || (r>255)) ||
|
if (((r<0) || (r>255)) ||
|
||||||
((g<0) || (g>255)) ||
|
((g<0) || (g>255)) ||
|
||||||
|
@ -102,7 +102,9 @@ class PmuppAdminXMLParser
|
|||||||
virtual bool isValid() { return fValid; }
|
virtual bool isValid() { return fValid; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
enum EAdminKeyWords {eEmpty, eRecentFile, eDarkTheme, eMarker, eColor};
|
enum EAdminKeyWords {eEmpty, eRecentFile,
|
||||||
|
eIgnoreThemeAutoDetection, eDarkThemeIconsMenu, eDarkThemeIconsToolbar,
|
||||||
|
eMarker, eColor};
|
||||||
|
|
||||||
bool parse(QIODevice *device);
|
bool parse(QIODevice *device);
|
||||||
bool startDocument();
|
bool startDocument();
|
||||||
@ -145,18 +147,24 @@ class PmuppAdmin : public QObject
|
|||||||
void getColor(QString name, int &r, int &g, int &b);
|
void getColor(QString name, int &r, int &g, int &b);
|
||||||
void getColor(int idx, 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 setIgnoreThemeAutoDetection(const bool theme) { fIgnoreThemeAutoDetection = theme; }
|
||||||
void setMarker(int marker, double size);
|
void setThemeIconsMenu(const bool theme) { fDarkThemeIconsMenu = theme; }
|
||||||
void setColor(int r, int g, int b, QString name="");
|
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:
|
private:
|
||||||
friend class PmuppAdminXMLParser;
|
friend class PmuppAdminXMLParser;
|
||||||
|
|
||||||
QVector<QString> fRecentFile; ///< keep vector of recent path-file names
|
QVector<QString> fRecentFile; ///< keep vector of recent path-file names
|
||||||
|
|
||||||
bool fDarkTheme;
|
bool fIgnoreThemeAutoDetection{false};
|
||||||
|
bool fDarkThemeIconsMenu{false};
|
||||||
|
bool fDarkThemeIconsToolbar{false};
|
||||||
QVector<PmuppMarker> fMarker;
|
QVector<PmuppMarker> fMarker;
|
||||||
QVector<PmuppColor> fColor;
|
QVector<PmuppColor> fColor;
|
||||||
|
|
||||||
|
@ -270,7 +270,7 @@ PmuppGui::PmuppGui(QStringList fln)
|
|||||||
getTheme();
|
getTheme();
|
||||||
|
|
||||||
QString iconName("");
|
QString iconName("");
|
||||||
if (fDarkTheme)
|
if (fDarkThemeIconsMenu)
|
||||||
iconName = QString(":/icons/mupp-dark.svg");
|
iconName = QString(":/icons/mupp-dark.svg");
|
||||||
else
|
else
|
||||||
iconName = QString(":/icons/mupp-plain.svg");
|
iconName = QString(":/icons/mupp-plain.svg");
|
||||||
@ -513,7 +513,7 @@ void PmuppGui::setupFileActions()
|
|||||||
QAction *a;
|
QAction *a;
|
||||||
|
|
||||||
QString iconName("");
|
QString iconName("");
|
||||||
if (fDarkTheme)
|
if (fDarkThemeIconsMenu)
|
||||||
iconName = QString(":/icons/document-open-dark.svg");
|
iconName = QString(":/icons/document-open-dark.svg");
|
||||||
else
|
else
|
||||||
iconName = QString(":/icons/document-open-plain.svg");
|
iconName = QString(":/icons/document-open-plain.svg");
|
||||||
@ -522,7 +522,7 @@ void PmuppGui::setupFileActions()
|
|||||||
a->setStatusTip( tr("Open a musrfit parameter file.") );
|
a->setStatusTip( tr("Open a musrfit parameter file.") );
|
||||||
connect( a, SIGNAL( triggered() ), this, SLOT( fileOpen() ) );
|
connect( a, SIGNAL( triggered() ), this, SLOT( fileOpen() ) );
|
||||||
menu->addAction(a);
|
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, mx, xfce)
|
||||||
iconName = QString(":/icons/document-open-plain.svg");
|
iconName = QString(":/icons/document-open-plain.svg");
|
||||||
a = new QAction( QIcon( QPixmap(iconName) ), tr( "&New..." ), this );
|
a = new QAction( QIcon( QPixmap(iconName) ), tr( "&New..." ), this );
|
||||||
connect( a, SIGNAL( triggered() ), this, SLOT( fileOpen() ) );
|
connect( a, SIGNAL( triggered() ), this, SLOT( fileOpen() ) );
|
||||||
@ -847,26 +847,32 @@ bool PmuppGui::eventFilter(QObject *o, QEvent *e)
|
|||||||
*/
|
*/
|
||||||
void PmuppGui::getTheme()
|
void PmuppGui::getTheme()
|
||||||
{
|
{
|
||||||
fDarkTheme = false; // true if theme is dark
|
if (fIgnoreThemeAutoDetection)
|
||||||
fDarkToolBarIcon = false; // needed for ubuntu dark since there the menu icons
|
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!
|
// are dark, however the toolbar icons are plain!
|
||||||
|
|
||||||
QString str = QIcon::themeName();
|
QString str = QIcon::themeName();
|
||||||
|
|
||||||
if (str.isEmpty()) {
|
if (str.isEmpty()) {
|
||||||
if (fAdmin->isDarkTheme()) {
|
if (fAdmin->getDarkThemeIconsMenuFlag()) {
|
||||||
fDarkTheme = true;
|
fDarkThemeIconsMenu = true;
|
||||||
fDarkToolBarIcon = true;
|
}
|
||||||
|
if (fAdmin->getDarkThemeIconsToolbarFlag()) {
|
||||||
|
fDarkThemeIconsToolbar = true;
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (str.contains("dark", Qt::CaseInsensitive)) {
|
if (str.contains("dark", Qt::CaseInsensitive)) {
|
||||||
fDarkTheme = true;
|
fDarkThemeIconsMenu = true;
|
||||||
if (str.contains("ubuntu", Qt::CaseInsensitive)) {
|
if (str.contains("ubuntu", Qt::CaseInsensitive) ||
|
||||||
fDarkToolBarIcon = false;
|
str.contains("xfce", Qt::CaseInsensitive)) {
|
||||||
|
fDarkThemeIconsToolbar = false;
|
||||||
} else {
|
} else {
|
||||||
fDarkToolBarIcon = true;
|
fDarkThemeIconsToolbar = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1304,7 +1310,7 @@ void PmuppGui::addVar()
|
|||||||
|
|
||||||
// call variable dialog
|
// call variable dialog
|
||||||
fVarDlg.reset();
|
fVarDlg.reset();
|
||||||
fVarDlg = std::make_unique<PVarDialog>(collection_list, fDarkTheme);
|
fVarDlg = std::make_unique<PVarDialog>(collection_list, fDarkThemeIconsMenu);
|
||||||
connect(fVarDlg.get(), SIGNAL(check_request(QString,QVector<int>)), this, SLOT(check(QString,QVector<int>)));
|
connect(fVarDlg.get(), SIGNAL(check_request(QString,QVector<int>)), this, SLOT(check(QString,QVector<int>)));
|
||||||
connect(fVarDlg.get(), SIGNAL(add_request(QString,QVector<int>)), this, SLOT(add(QString,QVector<int>)));
|
connect(fVarDlg.get(), SIGNAL(add_request(QString,QVector<int>)), this, SLOT(add(QString,QVector<int>)));
|
||||||
fVarDlg->show();
|
fVarDlg->show();
|
||||||
|
@ -159,9 +159,10 @@ private:
|
|||||||
enum EAxis {kXaxis, kYaxis};
|
enum EAxis {kXaxis, kYaxis};
|
||||||
|
|
||||||
PmuppAdmin *fAdmin;
|
PmuppAdmin *fAdmin;
|
||||||
bool fDarkTheme;
|
bool fIgnoreThemeAutoDetection{false};
|
||||||
bool fDarkToolBarIcon;
|
bool fDarkThemeIconsMenu{false};
|
||||||
bool fNormalize;
|
bool fDarkThemeIconsToolbar{false};
|
||||||
|
bool fNormalize{false};
|
||||||
|
|
||||||
qint64 fDatime;
|
qint64 fDatime;
|
||||||
uint fMuppInstance;
|
uint fMuppInstance;
|
||||||
|
@ -5,7 +5,9 @@
|
|||||||
</comment>
|
</comment>
|
||||||
<recent_files>
|
<recent_files>
|
||||||
</recent_files>
|
</recent_files>
|
||||||
<dark_theme>no</dark_theme>
|
<ignore_theme_auto_detection>n</ignore_theme_auto_detection>
|
||||||
|
<dark_theme_icon_menu>n</dark_theme_icon_menu>
|
||||||
|
<dark_theme_icon_toolbar>n</dark_theme_icon_toolbar>
|
||||||
<root_settings>
|
<root_settings>
|
||||||
<marker_list>
|
<marker_list>
|
||||||
<!-- Root marker numbers -->
|
<!-- Root marker numbers -->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user