Changeset View
Changeset View
Standalone View
Standalone View
kcms/desktoptheme/kcm.cpp
Show First 20 Lines • Show All 56 Lines • ▼ Show 20 Line(s) | 48 | { | |||
---|---|---|---|---|---|
57 | about->addAuthor(i18n("David Rosca"), QString(), QStringLiteral("nowrep@gmail.com")); | 57 | about->addAuthor(i18n("David Rosca"), QString(), QStringLiteral("nowrep@gmail.com")); | ||
58 | setAboutData(about); | 58 | setAboutData(about); | ||
59 | setButtons(Apply | Default | Help); | 59 | setButtons(Apply | Default | Help); | ||
60 | 60 | | |||
61 | m_model = new QStandardItemModel(this); | 61 | m_model = new QStandardItemModel(this); | ||
62 | QHash<int, QByteArray> roles = m_model->roleNames(); | 62 | QHash<int, QByteArray> roles = m_model->roleNames(); | ||
63 | roles[PluginNameRole] = QByteArrayLiteral("pluginName"); | 63 | roles[PluginNameRole] = QByteArrayLiteral("pluginName"); | ||
64 | roles[ThemeNameRole] = QByteArrayLiteral("themeName"); | 64 | roles[ThemeNameRole] = QByteArrayLiteral("themeName"); | ||
65 | roles[DescriptionRole] = QByteArrayLiteral("description"); | ||||
65 | roles[IsLocalRole] = QByteArrayLiteral("isLocal"); | 66 | roles[IsLocalRole] = QByteArrayLiteral("isLocal"); | ||
66 | m_model->setItemRoleNames(roles); | 67 | m_model->setItemRoleNames(roles); | ||
67 | 68 | | |||
68 | m_haveThemeExplorerInstalled = !QStandardPaths::findExecutable(QStringLiteral("plasmathemeexplorer")).isEmpty(); | 69 | m_haveThemeExplorerInstalled = !QStandardPaths::findExecutable(QStringLiteral("plasmathemeexplorer")).isEmpty(); | ||
69 | } | 70 | } | ||
70 | 71 | | |||
71 | KCMDesktopTheme::~KCMDesktopTheme() | 72 | KCMDesktopTheme::~KCMDesktopTheme() | ||
72 | { | 73 | { | ||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Line(s) | 111 | { | |||
116 | qCDebug(KCM_DESKTOP_THEME) << program << arguments.join(QStringLiteral(" ")); | 117 | qCDebug(KCM_DESKTOP_THEME) << program << arguments.join(QStringLiteral(" ")); | ||
117 | QProcess *myProcess = new QProcess(this); | 118 | QProcess *myProcess = new QProcess(this); | ||
118 | connect(myProcess, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), | 119 | connect(myProcess, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), | ||
119 | this, [this](int exitCode, QProcess::ExitStatus exitStatus) { | 120 | this, [this](int exitCode, QProcess::ExitStatus exitStatus) { | ||
120 | Q_UNUSED(exitStatus); | 121 | Q_UNUSED(exitStatus); | ||
121 | if (exitCode == 0) { | 122 | if (exitCode == 0) { | ||
122 | qCDebug(KCM_DESKTOP_THEME) << "Theme installed successfully :)"; | 123 | qCDebug(KCM_DESKTOP_THEME) << "Theme installed successfully :)"; | ||
123 | load(); | 124 | load(); | ||
124 | Q_EMIT showInfoMessage(i18n("Theme installed successfully.")); | 125 | Q_EMIT showSuccessMessage(i18n("Theme installed successfully.")); | ||
125 | } else { | 126 | } else { | ||
126 | qCWarning(KCM_DESKTOP_THEME) << "Theme installation failed." << exitCode; | 127 | qCWarning(KCM_DESKTOP_THEME) << "Theme installation failed." << exitCode; | ||
127 | Q_EMIT showInfoMessage(i18n("Theme installation failed.")); | 128 | Q_EMIT showErrorMessage(i18n("Theme installation failed.")); | ||
128 | } | 129 | } | ||
129 | }); | 130 | }); | ||
130 | 131 | | |||
131 | connect(myProcess, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), | 132 | connect(myProcess, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), | ||
132 | this, [this](QProcess::ProcessError e) { | 133 | this, [this](QProcess::ProcessError e) { | ||
133 | qCWarning(KCM_DESKTOP_THEME) << "Theme installation failed: " << e; | 134 | qCWarning(KCM_DESKTOP_THEME) << "Theme installation failed: " << e; | ||
134 | Q_EMIT showInfoMessage(i18n("Theme installation failed.")); | 135 | Q_EMIT showErrorMessage(i18n("Theme installation failed.")); | ||
135 | }); | 136 | }); | ||
136 | 137 | | |||
137 | myProcess->start(program, arguments); | 138 | myProcess->start(program, arguments); | ||
138 | } | 139 | } | ||
139 | 140 | | |||
140 | void KCMDesktopTheme::removeTheme(const QString &name) | 141 | void KCMDesktopTheme::removeTheme(const QString &name) | ||
141 | { | 142 | { | ||
142 | Q_ASSERT(!m_pendingRemoval.contains(name)); | 143 | Q_ASSERT(!m_pendingRemoval.contains(name)); | ||
▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Line(s) | 200 | Q_FOREACH (const QString &theme, themes) { | |||
214 | } | 215 | } | ||
215 | const bool isLocal = QFileInfo(theme).isWritable(); | 216 | const bool isLocal = QFileInfo(theme).isWritable(); | ||
216 | 217 | | |||
217 | if (m_model->findItems(packageName).isEmpty()) { | 218 | if (m_model->findItems(packageName).isEmpty()) { | ||
218 | QStandardItem *item = new QStandardItem; | 219 | QStandardItem *item = new QStandardItem; | ||
219 | item->setText(packageName); | 220 | item->setText(packageName); | ||
220 | item->setData(packageName, PluginNameRole); | 221 | item->setData(packageName, PluginNameRole); | ||
221 | item->setData(name, ThemeNameRole); | 222 | item->setData(name, ThemeNameRole); | ||
223 | item->setData(df.readComment(), DescriptionRole); | ||||
222 | item->setData(isLocal, IsLocalRole); | 224 | item->setData(isLocal, IsLocalRole); | ||
223 | m_model->appendRow(item); | 225 | m_model->appendRow(item); | ||
224 | } | 226 | } | ||
225 | } | 227 | } | ||
226 | 228 | | |||
227 | KConfigGroup cg(KSharedConfig::openConfig(QStringLiteral("plasmarc")), "Theme"); | 229 | KConfigGroup cg(KSharedConfig::openConfig(QStringLiteral("plasmarc")), "Theme"); | ||
228 | setSelectedPlugin(cg.readEntry("name", m_defaultTheme->themeName())); | 230 | setSelectedPlugin(cg.readEntry("name", m_defaultTheme->themeName())); | ||
229 | 231 | | |||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Line(s) | 270 | Q_FOREACH (const QString &name, m_pendingRemoval) { | |||
272 | connect(process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), | 274 | connect(process, static_cast<void (QProcess::*)(int, QProcess::ExitStatus)>(&QProcess::finished), | ||
273 | this, [this, process](int exitCode, QProcess::ExitStatus exitStatus) { | 275 | this, [this, process](int exitCode, QProcess::ExitStatus exitStatus) { | ||
274 | Q_UNUSED(exitStatus); | 276 | Q_UNUSED(exitStatus); | ||
275 | if (exitCode == 0) { | 277 | if (exitCode == 0) { | ||
276 | qCDebug(KCM_DESKTOP_THEME) << "Theme removed successfully :)"; | 278 | qCDebug(KCM_DESKTOP_THEME) << "Theme removed successfully :)"; | ||
277 | load(); | 279 | load(); | ||
278 | } else { | 280 | } else { | ||
279 | qCWarning(KCM_DESKTOP_THEME) << "Theme removal failed." << exitCode; | 281 | qCWarning(KCM_DESKTOP_THEME) << "Theme removal failed." << exitCode; | ||
280 | Q_EMIT showInfoMessage(i18n("Theme removal failed.")); | 282 | Q_EMIT showErrorMessage(i18n("Theme removal failed.")); | ||
281 | } | 283 | } | ||
282 | process->deleteLater(); | 284 | process->deleteLater(); | ||
283 | }); | 285 | }); | ||
284 | 286 | | |||
285 | connect(process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), | 287 | connect(process, static_cast<void (QProcess::*)(QProcess::ProcessError)>(&QProcess::error), | ||
286 | this, [this, process](QProcess::ProcessError e) { | 288 | this, [this, process](QProcess::ProcessError e) { | ||
287 | qCWarning(KCM_DESKTOP_THEME) << "Theme removal failed: " << e; | 289 | qCWarning(KCM_DESKTOP_THEME) << "Theme removal failed: " << e; | ||
288 | Q_EMIT showInfoMessage(i18n("Theme removal failed.")); | 290 | Q_EMIT showErrorMessage(i18n("Theme removal failed.")); | ||
289 | process->deleteLater(); | 291 | process->deleteLater(); | ||
290 | }); | 292 | }); | ||
291 | 293 | | |||
292 | process->start(program, arguments); | 294 | process->start(program, arguments); | ||
293 | } | 295 | } | ||
294 | } | 296 | } | ||
295 | 297 | | |||
296 | #include "kcm.moc" | 298 | #include "kcm.moc" |