Changeset View
Changeset View
Standalone View
Standalone View
kcms/lookandfeel/kcm.cpp
Show First 20 Lines • Show All 77 Lines • ▼ Show 20 Line(s) | 77 | KAboutData* about = new KAboutData(QStringLiteral("kcm_lookandfeel"), i18n("Configure Look and Feel details"), | |||
---|---|---|---|---|---|
78 | QStringLiteral("0.1"), QString(), KAboutLicense::LGPL); | 78 | QStringLiteral("0.1"), QString(), KAboutLicense::LGPL); | ||
79 | about->addAuthor(i18n("Marco Martin"), QString(), QStringLiteral("mart@kde.org")); | 79 | about->addAuthor(i18n("Marco Martin"), QString(), QStringLiteral("mart@kde.org")); | ||
80 | setAboutData(about); | 80 | setAboutData(about); | ||
81 | setButtons(Apply | Default); | 81 | setButtons(Apply | Default); | ||
82 | 82 | | |||
83 | m_model = new QStandardItemModel(this); | 83 | m_model = new QStandardItemModel(this); | ||
84 | QHash<int, QByteArray> roles = m_model->roleNames(); | 84 | QHash<int, QByteArray> roles = m_model->roleNames(); | ||
85 | roles[PluginNameRole] = "pluginName"; | 85 | roles[PluginNameRole] = "pluginName"; | ||
86 | roles[DescriptionRole] = "description"; | ||||
86 | roles[ScreenhotRole] = "screenshot"; | 87 | roles[ScreenhotRole] = "screenshot"; | ||
87 | roles[FullScreenPreviewRole] = "fullScreenPreview"; | 88 | roles[FullScreenPreviewRole] = "fullScreenPreview"; | ||
88 | roles[HasSplashRole] = "hasSplash"; | 89 | roles[HasSplashRole] = "hasSplash"; | ||
89 | roles[HasLockScreenRole] = "hasLockScreen"; | 90 | roles[HasLockScreenRole] = "hasLockScreen"; | ||
90 | roles[HasRunCommandRole] = "hasRunCommand"; | 91 | roles[HasRunCommandRole] = "hasRunCommand"; | ||
91 | roles[HasLogoutRole] = "hasLogout"; | 92 | roles[HasLogoutRole] = "hasLogout"; | ||
92 | 93 | | |||
93 | roles[HasColorsRole] = "hasColors"; | 94 | roles[HasColorsRole] = "hasColors"; | ||
94 | roles[HasWidgetStyleRole] = "hasWidgetStyle"; | 95 | roles[HasWidgetStyleRole] = "hasWidgetStyle"; | ||
95 | roles[HasIconsRole] = "hasIcons"; | 96 | roles[HasIconsRole] = "hasIcons"; | ||
96 | roles[HasPlasmaThemeRole] = "hasPlasmaTheme"; | 97 | roles[HasPlasmaThemeRole] = "hasPlasmaTheme"; | ||
97 | roles[HasCursorsRole] = "hasCursors"; | 98 | roles[HasCursorsRole] = "hasCursors"; | ||
98 | roles[HasWindowSwitcherRole] = "hasWindowSwitcher"; | 99 | roles[HasWindowSwitcherRole] = "hasWindowSwitcher"; | ||
99 | roles[HasDesktopSwitcherRole] = "hasDesktopSwitcher"; | 100 | roles[HasDesktopSwitcherRole] = "hasDesktopSwitcher"; | ||
100 | m_model->setItemRoleNames(roles); | 101 | m_model->setItemRoleNames(roles); | ||
102 | loadModel(); | ||||
101 | } | 103 | } | ||
102 | 104 | | |||
103 | KCMLookandFeel::~KCMLookandFeel() | 105 | KCMLookandFeel::~KCMLookandFeel() | ||
104 | { | 106 | { | ||
105 | } | 107 | } | ||
106 | 108 | | |||
107 | void KCMLookandFeel::getNewStuff() | 109 | void KCMLookandFeel::getNewStuff() | ||
108 | { | 110 | { | ||
109 | if (!m_newStuffDialog) { | 111 | if (!m_newStuffDialog) { | ||
110 | m_newStuffDialog = new KNS3::DownloadDialog( QLatin1String("lookandfeel.knsrc") ); | 112 | m_newStuffDialog = new KNS3::DownloadDialog( QLatin1String("lookandfeel.knsrc") ); | ||
111 | m_newStuffDialog.data()->setWindowTitle(i18n("Download New Look And Feel Packages")); | 113 | m_newStuffDialog.data()->setWindowTitle(i18n("Download New Look And Feel Packages")); | ||
112 | connect(m_newStuffDialog.data(), &KNS3::DownloadDialog::accepted, this, &KCMLookandFeel::load); | 114 | connect(m_newStuffDialog.data(), &KNS3::DownloadDialog::accepted, this, &KCMLookandFeel::loadModel); | ||
113 | } | 115 | } | ||
114 | m_newStuffDialog.data()->show(); | 116 | m_newStuffDialog.data()->show(); | ||
115 | } | 117 | } | ||
116 | 118 | | |||
117 | QStandardItemModel *KCMLookandFeel::lookAndFeelModel() | 119 | QStandardItemModel *KCMLookandFeel::lookAndFeelModel() | ||
118 | { | 120 | { | ||
119 | return m_model; | 121 | return m_model; | ||
120 | } | 122 | } | ||
▲ Show 20 Lines • Show All 55 Lines • ▼ Show 20 Line(s) | 174 | for (const auto &component : components) { | |||
176 | } | 178 | } | ||
177 | } | 179 | } | ||
178 | } | 180 | } | ||
179 | } | 181 | } | ||
180 | 182 | | |||
181 | return packages; | 183 | return packages; | ||
182 | } | 184 | } | ||
183 | 185 | | |||
184 | void KCMLookandFeel::load() | 186 | void KCMLookandFeel::loadModel() | ||
185 | { | 187 | { | ||
186 | m_package = Plasma::PluginLoader::self()->loadPackage(QStringLiteral("Plasma/LookAndFeel")); | | |||
187 | KConfigGroup cg(KSharedConfig::openConfig(QStringLiteral("kdeglobals")), "KDE"); | | |||
188 | const QString packageName = cg.readEntry("LookAndFeelPackage", QString()); | | |||
189 | if (!packageName.isEmpty()) { | | |||
190 | m_package.setPath(packageName); | | |||
191 | } | | |||
192 | | ||||
193 | if (!m_package.metadata().isValid()) { | | |||
194 | return; | | |||
195 | } | | |||
196 | | ||||
197 | setSelectedPlugin(m_package.metadata().pluginName()); | | |||
198 | | ||||
199 | m_model->clear(); | 188 | m_model->clear(); | ||
200 | 189 | | |||
201 | const QList<Plasma::Package> pkgs = availablePackages({"defaults", "layouts"}); | 190 | const QList<Plasma::Package> pkgs = availablePackages({"defaults", "layouts"}); | ||
202 | for (const Plasma::Package &pkg : pkgs) { | 191 | for (const Plasma::Package &pkg : pkgs) { | ||
203 | if (!pkg.metadata().isValid()) { | 192 | if (!pkg.metadata().isValid()) { | ||
204 | continue; | 193 | continue; | ||
205 | } | 194 | } | ||
206 | QStandardItem* row = new QStandardItem(pkg.metadata().name()); | 195 | QStandardItem* row = new QStandardItem(pkg.metadata().name()); | ||
207 | row->setData(pkg.metadata().pluginName(), PluginNameRole); | 196 | row->setData(pkg.metadata().pluginName(), PluginNameRole); | ||
197 | row->setData(pkg.metadata().comment(), DescriptionRole); | ||||
208 | row->setData(pkg.filePath("preview"), ScreenhotRole); | 198 | row->setData(pkg.filePath("preview"), ScreenhotRole); | ||
209 | row->setData(pkg.filePath("fullscreenpreview"), FullScreenPreviewRole); | 199 | row->setData(pkg.filePath("fullscreenpreview"), FullScreenPreviewRole); | ||
210 | 200 | | |||
211 | //What the package provides | 201 | //What the package provides | ||
212 | row->setData(!pkg.filePath("splashmainscript").isEmpty(), HasSplashRole); | 202 | row->setData(!pkg.filePath("splashmainscript").isEmpty(), HasSplashRole); | ||
213 | row->setData(!pkg.filePath("lockscreenmainscript").isEmpty(), HasLockScreenRole); | 203 | row->setData(!pkg.filePath("lockscreenmainscript").isEmpty(), HasLockScreenRole); | ||
214 | row->setData(!pkg.filePath("runcommandmainscript").isEmpty(), HasRunCommandRole); | 204 | row->setData(!pkg.filePath("runcommandmainscript").isEmpty(), HasRunCommandRole); | ||
215 | row->setData(!pkg.filePath("logoutmainscript").isEmpty(), HasLogoutRole); | 205 | row->setData(!pkg.filePath("logoutmainscript").isEmpty(), HasLogoutRole); | ||
Show All 27 Lines | 207 | if (!pkg.filePath("defaults").isEmpty()) { | |||
243 | 233 | | |||
244 | cg = KConfigGroup(conf, "kwinrc"); | 234 | cg = KConfigGroup(conf, "kwinrc"); | ||
245 | cg = KConfigGroup(&cg, "DesktopSwitcher"); | 235 | cg = KConfigGroup(&cg, "DesktopSwitcher"); | ||
246 | row->setData(!cg.readEntry("LayoutName", QString()).isEmpty(), HasDesktopSwitcherRole); | 236 | row->setData(!cg.readEntry("LayoutName", QString()).isEmpty(), HasDesktopSwitcherRole); | ||
247 | } | 237 | } | ||
248 | 238 | | |||
249 | m_model->appendRow(row); | 239 | m_model->appendRow(row); | ||
250 | } | 240 | } | ||
241 | emit selectedPluginIndexChanged(); | ||||
242 | } | ||||
243 | | ||||
244 | void KCMLookandFeel::load() | ||||
245 | { | ||||
246 | m_package = Plasma::PluginLoader::self()->loadPackage(QStringLiteral("Plasma/LookAndFeel")); | ||||
247 | KConfigGroup cg(KSharedConfig::openConfig(QStringLiteral("kdeglobals")), "KDE"); | ||||
248 | const QString packageName = cg.readEntry("LookAndFeelPackage", QString()); | ||||
249 | if (!packageName.isEmpty()) { | ||||
250 | m_package.setPath(packageName); | ||||
251 | } | ||||
252 | | ||||
253 | if (!m_package.metadata().isValid()) { | ||||
254 | return; | ||||
255 | } | ||||
256 | | ||||
257 | setSelectedPlugin(m_package.metadata().pluginName()); | ||||
258 | | ||||
251 | setNeedsSave(false); | 259 | setNeedsSave(false); | ||
252 | } | 260 | } | ||
253 | 261 | | |||
254 | 262 | | |||
255 | void KCMLookandFeel::save() | 263 | void KCMLookandFeel::save() | ||
256 | { | 264 | { | ||
257 | Plasma::Package package = Plasma::PluginLoader::self()->loadPackage(QStringLiteral("Plasma/LookAndFeel")); | 265 | Plasma::Package package = Plasma::PluginLoader::self()->loadPackage(QStringLiteral("Plasma/LookAndFeel")); | ||
258 | package.setPath(m_selectedPlugin); | 266 | package.setPath(m_selectedPlugin); | ||
▲ Show 20 Lines • Show All 559 Lines • Show Last 20 Lines |