Get pallete from QApplication after it's probably set by

QGtk3Theme (QGnomeTheme, QPlatformTheme)
This commit is contained in:
Alexander Sashnov 2021-09-17 22:26:15 +07:00
parent 1c4050e687
commit 653044308c
2 changed files with 30 additions and 1 deletions

View File

@ -15,6 +15,22 @@
#include <thread> #include <thread>
#include <QMessageBox> #include <QMessageBox>
namespace {
void log_QStyle_class_name(const char *descr, const QStyle *style)
{
QStringList h;
h << style->metaObject()->className();
auto sc = style->metaObject()->superClass();
while(sc) {
h << sc->className();
sc = sc->superClass();
}
qDebug() << descr << h;
}
}
KiwixApp::KiwixApp(int& argc, char *argv[]) KiwixApp::KiwixApp(int& argc, char *argv[])
: QtSingleApplication("kiwix-desktop", argc, argv), : QtSingleApplication("kiwix-desktop", argc, argv),
m_settingsManager(), m_settingsManager(),
@ -69,12 +85,24 @@ void KiwixApp::init()
setApplicationName("Kiwix"); setApplicationName("Kiwix");
setDesktopFileName("kiwix.desktop"); setDesktopFileName("kiwix.desktop");
log_QStyle_class_name("------ QStyle before CSS is set:", qApp->style());
if (qApp->style() != qApp->style()->proxy())
log_QStyle_class_name("Its proxy style is:", qApp->style()->proxy());
QPalette tbp1 = QApplication::palette("QTabBar");
qDebug() << "tabbar pallete:" << tbp1;
QFile styleFile(":/css/style.css"); QFile styleFile(":/css/style.css");
styleFile.open(QIODevice::ReadOnly); styleFile.open(QIODevice::ReadOnly);
auto byteContent = styleFile.readAll(); auto byteContent = styleFile.readAll();
QString style(byteContent); QString style(byteContent);
setStyleSheet(style); setStyleSheet(style);
log_QStyle_class_name("------ QStyle after CSS was set:", qApp->style());
if (qApp->style() != qApp->style()->proxy())
log_QStyle_class_name("Its proxy style is:", qApp->style()->proxy());
QPalette tbp2 = QApplication::palette("QTabBar");
qDebug() << "tabbar pallete:" << tbp2;
qDebug() << "-----------------------------";
createAction(); createAction();
mp_mainWindow = new MainWindow; mp_mainWindow = new MainWindow;

View File

@ -395,7 +395,8 @@ void TabBar::paintEvent(QPaintEvent *e)
bool selected = tab.state & QStyle::State_Selected; bool selected = tab.state & QStyle::State_Selected;
QColor c0 = tab.palette.button().color(); QPalette tabbar_palette = QApplication::palette("QTabBar");
QColor c0 = tabbar_palette.window().color();
if (selected) { if (selected) {
/* We cannot just get back from QStyleSheetStyle (Qt private classes) /* We cannot just get back from QStyleSheetStyle (Qt private classes)