[plasmalnf] Improve theme-listing handling
- if key is missing or badly typed, enable all (explicitly) - document settings and code
This commit is contained in:
parent
f2aeecf546
commit
d5b46dfb86
@ -77,16 +77,20 @@ PlasmaLnfPage::setLnfPath( const QString& path )
|
|||||||
void
|
void
|
||||||
PlasmaLnfPage::setEnabledThemes(const ThemeInfoList& themes)
|
PlasmaLnfPage::setEnabledThemes(const ThemeInfoList& themes)
|
||||||
{
|
{
|
||||||
if ( themes.isEmpty() )
|
m_enabledThemes = themes;
|
||||||
m_enabledThemes = plasma_themes();
|
|
||||||
else
|
|
||||||
m_enabledThemes = themes;
|
|
||||||
|
|
||||||
updateThemeNames();
|
updateThemeNames();
|
||||||
winnowThemes();
|
winnowThemes();
|
||||||
fillUi();
|
fillUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PlasmaLnfPage::setEnabledThemesAll()
|
||||||
|
{
|
||||||
|
setEnabledThemes( plasma_themes() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void PlasmaLnfPage::updateThemeNames()
|
void PlasmaLnfPage::updateThemeNames()
|
||||||
{
|
{
|
||||||
auto plasmaThemes = plasma_themes();
|
auto plasmaThemes = plasma_themes();
|
||||||
|
@ -33,6 +33,12 @@ namespace Ui
|
|||||||
class PlasmaLnfPage;
|
class PlasmaLnfPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @brief Page for selecting a Plasma Look-and-Feel theme.
|
||||||
|
*
|
||||||
|
* You must call setEnabledThemes -- either overload -- once
|
||||||
|
* to get the selection widgets. Note that calling that with
|
||||||
|
* an empty list will result in zero (0) selectable themes.
|
||||||
|
*/
|
||||||
class PlasmaLnfPage : public QWidget
|
class PlasmaLnfPage : public QWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@ -40,7 +46,10 @@ public:
|
|||||||
explicit PlasmaLnfPage( QWidget* parent = nullptr );
|
explicit PlasmaLnfPage( QWidget* parent = nullptr );
|
||||||
|
|
||||||
void setLnfPath( const QString& path );
|
void setLnfPath( const QString& path );
|
||||||
|
/** @brief enable only the listed themes. */
|
||||||
void setEnabledThemes( const ThemeInfoList& themes );
|
void setEnabledThemes( const ThemeInfoList& themes );
|
||||||
|
/** @brief enable all installed plasma themes. */
|
||||||
|
void setEnabledThemesAll();
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void plasmaThemeSelected( const QString& id );
|
void plasmaThemeSelected( const QString& id );
|
||||||
|
@ -158,6 +158,8 @@ PlasmaLnfViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
|||||||
cDebug() << "WARNING: only one theme enabled in plasmalnf";
|
cDebug() << "WARNING: only one theme enabled in plasmalnf";
|
||||||
m_widget->setEnabledThemes( allThemes );
|
m_widget->setEnabledThemes( allThemes );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
m_widget->setEnabledThemesAll(); // All of them
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -12,12 +12,14 @@ lnftool: "/usr/bin/lookandfeeltool"
|
|||||||
# liveuser: "live"
|
# liveuser: "live"
|
||||||
|
|
||||||
# You can limit the list of Plasma look-and-feel themes by listing ids
|
# You can limit the list of Plasma look-and-feel themes by listing ids
|
||||||
# here. If this key is not present, or the list is empty, all of the
|
# here. If this key is not present, all of the installed themes are listed.
|
||||||
# installed themes are listed. If only one theme is listed, why are
|
# If the key is present, only installed themes that are *also* included
|
||||||
# you using this module at all? Themes may be listed by id,
|
# in the list are shown (could be none!).
|
||||||
# (e.g. fluffy-bunny, below) or as a theme and an image (e.g. breeze)
|
|
||||||
# which will be used to show a screenshot.
|
|
||||||
#
|
#
|
||||||
|
# Themes may be listed by id, (e.g. fluffy-bunny, below) or as a theme
|
||||||
|
# and an image (e.g. breeze) which will be used to show a screenshot.
|
||||||
|
# Themes with no image get a "missing screenshot" image; if the
|
||||||
|
# image file is not found, they get a color swatch based on the image name.
|
||||||
themes:
|
themes:
|
||||||
- org.kde.fuzzy-pig.desktop
|
- org.kde.fuzzy-pig.desktop
|
||||||
- theme: org.kde.breeze.desktop
|
- theme: org.kde.breeze.desktop
|
||||||
|
Loading…
Reference in New Issue
Block a user