Simplify plasma theme startup
Don't emit themeChanged when constructing Plasma::Theme instances Reviewed by David Edmundson
This commit is contained in:
parent
12811f1fc4
commit
9d9c72630c
@ -451,18 +451,18 @@ void ThemePrivate::settingsFileChanged(const QString &file)
|
||||
}
|
||||
} else if (file.endsWith(themeRcFile)) {
|
||||
config().config()->reparseConfiguration();
|
||||
settingsChanged();
|
||||
settingsChanged(true);
|
||||
}
|
||||
}
|
||||
|
||||
void ThemePrivate::settingsChanged()
|
||||
void ThemePrivate::settingsChanged(bool emitChanges)
|
||||
{
|
||||
if (fixedName) {
|
||||
return;
|
||||
}
|
||||
//qDebug() << "Settings Changed!";
|
||||
KConfigGroup cg = config();
|
||||
setThemeName(cg.readEntry("name", ThemePrivate::defaultTheme), false);
|
||||
setThemeName(cg.readEntry("name", ThemePrivate::defaultTheme), false, emitChanges);
|
||||
}
|
||||
|
||||
QColor ThemePrivate::color(Theme::ColorRole role) const
|
||||
@ -563,7 +563,7 @@ void ThemePrivate::processContrastSettings(KConfigBase *metadata)
|
||||
}
|
||||
}
|
||||
|
||||
void ThemePrivate::setThemeName(const QString &tempThemeName, bool writeSettings)
|
||||
void ThemePrivate::setThemeName(const QString &tempThemeName, bool writeSettings, bool emitChanged)
|
||||
{
|
||||
QString theme = tempThemeName;
|
||||
if (theme.isEmpty() || theme == themeName) {
|
||||
@ -668,7 +668,8 @@ void ThemePrivate::setThemeName(const QString &tempThemeName, bool writeSettings
|
||||
cg.sync();
|
||||
}
|
||||
|
||||
scheduleThemeChangeNotification(SvgElementsCache);
|
||||
if(emitChanged)
|
||||
scheduleThemeChangeNotification(SvgElementsCache);
|
||||
}
|
||||
|
||||
bool ThemePrivate::eventFilter(QObject *watched, QEvent *event)
|
||||
|
@ -77,7 +77,7 @@ public:
|
||||
void discardCache(CacheTypes caches);
|
||||
void scheduleThemeChangeNotification(CacheTypes caches);
|
||||
bool useCache();
|
||||
void setThemeName(const QString &themeName, bool writeSettings);
|
||||
void setThemeName(const QString &themeName, bool writeSettings, bool emitChanged);
|
||||
void processWallpaperSettings(KConfigBase *metadata);
|
||||
void processContrastSettings(KConfigBase *metadata);
|
||||
|
||||
@ -93,7 +93,7 @@ public Q_SLOTS:
|
||||
void scheduledCacheUpdate();
|
||||
void onAppExitCleanup();
|
||||
void notifyOfChanged();
|
||||
void settingsChanged();
|
||||
void settingsChanged(bool emitChanges);
|
||||
|
||||
Q_SIGNALS:
|
||||
void themeChanged();
|
||||
|
@ -55,7 +55,7 @@ Theme::Theme(QObject *parent)
|
||||
ThemePrivate::globalThemeRefCount.ref();
|
||||
d = ThemePrivate::globalTheme;
|
||||
|
||||
d->settingsChanged();
|
||||
d->settingsChanged(false);
|
||||
if (QCoreApplication::instance()) {
|
||||
connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()),
|
||||
d, SLOT(onAppExitCleanup()));
|
||||
@ -79,7 +79,7 @@ Theme::Theme(const QString &themeName, QObject *parent)
|
||||
// turn off caching so we don't accidently trigger unnecessary disk activity at this point
|
||||
bool useCache = d->cacheTheme;
|
||||
d->cacheTheme = false;
|
||||
d->setThemeName(themeName, false);
|
||||
d->setThemeName(themeName, false, false);
|
||||
d->cacheTheme = useCache;
|
||||
d->fixedName = true;
|
||||
if (QCoreApplication::instance()) {
|
||||
@ -144,7 +144,7 @@ void Theme::setThemeName(const QString &themeName)
|
||||
connect(d, &ThemePrivate::themeChanged, this, &Theme::themeChanged);
|
||||
}
|
||||
|
||||
d->setThemeName(themeName, true);
|
||||
d->setThemeName(themeName, true, true);
|
||||
}
|
||||
|
||||
QString Theme::themeName() const
|
||||
@ -293,7 +293,7 @@ void Theme::setUseGlobalSettings(bool useGlobal)
|
||||
d->useGlobal = useGlobal;
|
||||
d->cfg = KConfigGroup();
|
||||
d->themeName.clear();
|
||||
d->settingsChanged();
|
||||
d->settingsChanged(true);
|
||||
}
|
||||
|
||||
bool Theme::useGlobalSettings() const
|
||||
|
Loading…
Reference in New Issue
Block a user