From kde-commits Thu Dec 31 16:25:19 2015 From: Jean-Baptiste Mardelle Date: Thu, 31 Dec 2015 16:25:19 +0000 To: kde-commits Subject: [kdenlive] src: Save widget style Message-Id: X-MARC-Message: https://marc.info/?l=kde-commits&m=145157913306939 Git commit 1b729d89e6a8893dca43f93a4aafee7e34ca6851 by Jean-Baptiste Mardel= le. Committed on 31/12/2015 at 16:25. Pushed by mardelle into branch 'master'. Save widget style M +5 -0 src/kdenlivesettings.kcfg M +26 -3 src/mainwindow.cpp M +2 -0 src/mainwindow.h http://commits.kde.org/kdenlive/1b729d89e6a8893dca43f93a4aafee7e34ca6851 diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg index 5551bc2..0aca7f8 100644 --- a/src/kdenlivesettings.kcfg +++ b/src/kdenlivesettings.kcfg @@ -715,6 +715,11 @@ = + + + + + false diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 8eac21e..77e0036 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -149,13 +149,24 @@ MainWindow::MainWindow(const QString &MltPath, const = QUrl &Url, const QString & = // Widget themes for non KDE users KActionMenu *stylesAction=3D new KActionMenu(i18n("Style"), this); - QStringList availableStyles =3D QStyleFactory::keys(); QActionGroup *stylesGroup =3D new QActionGroup(stylesAction); = + // Add default style action + QAction *defaultStyle =3D new QAction(i18n("Default"), stylesGroup); + defaultStyle->setCheckable(true); + stylesAction->addAction(defaultStyle); + if (KdenliveSettings::widgetstyle().isEmpty()) { + defaultStyle->setChecked(true); + } + + QStringList availableStyles =3D QStyleFactory::keys(); foreach(const QString &style, availableStyles) { QAction *a =3D new QAction(style, stylesGroup); a->setCheckable(true); a->setData(style); + if (KdenliveSettings::widgetstyle() =3D=3D style) { + a->setChecked(true); + } stylesAction->addAction(a); } connect(stylesGroup, &QActionGroup::triggered, this, &MainWindow::slot= ChangeStyle); @@ -165,7 +176,11 @@ MainWindow::MainWindow(const QString &MltPath, const Q= Url &Url, const QString & ThemeManager::instance()->setThemeMenuAction(themeAction); ThemeManager::instance()->setCurrentTheme(KdenliveSettings::colortheme= ()); connect(ThemeManager::instance(), SIGNAL(signalThemeChanged(const QStr= ing &)), this, SLOT(slotThemeChanged(const QString &)), Qt::DirectConnectio= n); - ThemeManager::instance()->slotChangePalette(); + if (!KdenliveSettings::widgetstyle().isEmpty()) { + // User wants a custom widget style, init + doChangeStyle(); + } + else ThemeManager::instance()->slotChangePalette(); = new RenderingAdaptor(this); pCore->initialize(); @@ -3357,7 +3372,15 @@ void MainWindow::slotUpdateMonitorOverlays(int id, i= nt code) void MainWindow::slotChangeStyle(QAction *a) { QString style =3D a->data().toString(); - QApplication::setStyle(QStyleFactory::create(style)); + KdenliveSettings::setWidgetstyle(style); + doChangeStyle(); +} + +void MainWindow::doChangeStyle() +{ + QApplication::setStyle(QStyleFactory::create(KdenliveSettings::widgets= tyle())); + // Changing widget style resets color theme, so update color theme aga= in + ThemeManager::instance()->slotChangePalette(); } = = diff --git a/src/mainwindow.h b/src/mainwindow.h index 6ce53c0..2897981 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -251,6 +251,8 @@ private: QListWidget *m_effectBasket; /** @brief Update statusbar stylesheet (in case of color theme change)= . */ void setStatusBarStyleSheet(const QPalette &p); + /** @brief Update widget style. */ + void doChangeStyle(); = public slots: void slotGotProgressInfo(const QString &message, int progress, Message= Type type =3D DefaultMessage);