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);