Changeset View
Changeset View
Standalone View
Standalone View
kcms/style/gtkpage.cpp
Show All 14 Lines | |||||
15 | * GNU General Public License for more details. | 15 | * GNU General Public License for more details. | ||
16 | * | 16 | * | ||
17 | * You should have received a copy of the GNU General Public License | 17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | 18 | * along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
19 | */ | 19 | */ | ||
20 | 20 | | |||
21 | #include <QDir> | 21 | #include <QDir> | ||
22 | #include <QUrl> | 22 | #include <QUrl> | ||
23 | #include <QDBusInterface> | | |||
24 | #include <QDBusReply> | | |||
25 | 23 | | |||
26 | #include <KTar> | 24 | #include <KTar> | ||
27 | #include <KLocalizedString> | 25 | #include <KLocalizedString> | ||
28 | #include <KNS3/DownloadDialog> | 26 | #include <KNS3/DownloadDialog> | ||
29 | 27 | | |||
30 | #include "gtkpage.h" | 28 | #include "gtkpage.h" | ||
31 | #include "gtkthemesmodel.h" | 29 | #include "gtkthemesmodel.h" | ||
32 | 30 | | |||
33 | GtkPage::GtkPage(QObject *parent) | 31 | GtkPage::GtkPage(QObject *parent) | ||
34 | : QObject(parent) | 32 | : QObject(parent) | ||
35 | , m_gtk2ThemesModel(new GtkThemesModel(this)) | 33 | , m_gtk2ThemesModel(new GtkThemesModel(this)) | ||
36 | , m_gtk3ThemesModel(new GtkThemesModel(this)) | 34 | , m_gtk3ThemesModel(new GtkThemesModel(this)) | ||
37 | , gtkConfigInterface( | 35 | , gtkConfigInterface(this) | ||
38 | QStringLiteral("org.kde.GtkConfig"), | | |||
39 | QStringLiteral("/GtkConfig"), | | |||
40 | QStringLiteral("org.kde.GtkConfig") | | |||
41 | ) | | |||
42 | { | 36 | { | ||
43 | connect(m_gtk2ThemesModel, &GtkThemesModel::themeRemoved, this, &GtkPage::onThemeRemoved); | 37 | connect(m_gtk2ThemesModel, &GtkThemesModel::themeRemoved, this, &GtkPage::onThemeRemoved); | ||
44 | connect(m_gtk3ThemesModel, &GtkThemesModel::themeRemoved, this, &GtkPage::onThemeRemoved); | 38 | connect(m_gtk3ThemesModel, &GtkThemesModel::themeRemoved, this, &GtkPage::onThemeRemoved); | ||
45 | 39 | | |||
46 | connect(m_gtk2ThemesModel, &GtkThemesModel::selectedThemeChanged, this, [this](){ | 40 | connect(m_gtk2ThemesModel, &GtkThemesModel::selectedThemeChanged, this, [this](){ | ||
47 | Q_EMIT gtkThemeSettingsChanged(); | 41 | Q_EMIT gtkThemeSettingsChanged(); | ||
48 | }); | 42 | }); | ||
49 | connect(m_gtk3ThemesModel, &GtkThemesModel::selectedThemeChanged, this, [this](){ | 43 | connect(m_gtk3ThemesModel, &GtkThemesModel::selectedThemeChanged, this, [this](){ | ||
50 | Q_EMIT gtkThemeSettingsChanged(); | 44 | Q_EMIT gtkThemeSettingsChanged(); | ||
51 | }); | 45 | }); | ||
52 | } | 46 | } | ||
53 | 47 | | |||
54 | GtkPage::~GtkPage() | 48 | GtkPage::~GtkPage() | ||
55 | { | 49 | { | ||
56 | delete m_gtk2ThemesModel; | 50 | delete m_gtk2ThemesModel; | ||
57 | delete m_gtk3ThemesModel; | 51 | delete m_gtk3ThemesModel; | ||
58 | } | 52 | } | ||
59 | 53 | | |||
60 | QString GtkPage::gtk2ThemeFromConfig() | 54 | QString GtkPage::gtk2ThemeFromConfig() | ||
61 | { | 55 | { | ||
62 | QDBusReply<QString> dbusReply = gtkConfigInterface.call(QStringLiteral("gtk2Theme")); | 56 | return gtkConfigInterface.gtk2Theme(); | ||
63 | return dbusReply.value(); | | |||
64 | } | 57 | } | ||
65 | 58 | | |||
66 | QString GtkPage::gtk3ThemeFromConfig() | 59 | QString GtkPage::gtk3ThemeFromConfig() | ||
67 | { | 60 | { | ||
68 | QDBusReply<QString> dbusReply = gtkConfigInterface.call(QStringLiteral("gtk3Theme")); | 61 | return gtkConfigInterface.gtk3Theme(); | ||
69 | return dbusReply.value(); | | |||
70 | } | 62 | } | ||
71 | 63 | | |||
72 | void GtkPage::showGtk2Preview() | 64 | void GtkPage::showGtk2Preview() | ||
73 | { | 65 | { | ||
74 | gtkConfigInterface.call(QStringLiteral("showGtk2ThemePreview"), m_gtk2ThemesModel->selectedTheme()); | 66 | gtkConfigInterface.showGtk2Preview(m_gtk2ThemesModel->selectedTheme()); | ||
75 | } | 67 | } | ||
76 | 68 | | |||
77 | void GtkPage::showGtk3Preview() | 69 | void GtkPage::showGtk3Preview() | ||
78 | { | 70 | { | ||
79 | gtkConfigInterface.call(QStringLiteral("showGtk3ThemePreview"), m_gtk3ThemesModel->selectedTheme()); | 71 | gtkConfigInterface.showGtk3Preview(m_gtk3ThemesModel->selectedTheme()); | ||
80 | } | 72 | } | ||
81 | 73 | | |||
82 | | ||||
83 | void GtkPage::installGtk2ThemeFromGHNS() | 74 | void GtkPage::installGtk2ThemeFromGHNS() | ||
84 | { | 75 | { | ||
85 | KNS3::DownloadDialog downloadDialog(QStringLiteral("cgctheme.knsrc")); | 76 | KNS3::DownloadDialog downloadDialog(QStringLiteral("cgctheme.knsrc")); | ||
86 | downloadDialog.setWindowTitle(i18n("Download New GNOME/GTK2 Application Styles")); | 77 | downloadDialog.setWindowTitle(i18n("Download New GNOME/GTK2 Application Styles")); | ||
87 | downloadDialog.setWindowModality(Qt::WindowModal); | 78 | downloadDialog.setWindowModality(Qt::WindowModal); | ||
88 | if (downloadDialog.exec()) { | 79 | if (downloadDialog.exec()) { | ||
89 | load(); | 80 | load(); | ||
90 | } | 81 | } | ||
▲ Show 20 Lines • Show All 44 Lines • ▼ Show 20 Line(s) | 102 | { | |||
135 | 126 | | |||
136 | themeArchive.directory()->copyTo(themesInstallDirectoryPath); | 127 | themeArchive.directory()->copyTo(themesInstallDirectoryPath); | ||
137 | 128 | | |||
138 | load(); | 129 | load(); | ||
139 | } | 130 | } | ||
140 | 131 | | |||
141 | void GtkPage::save() | 132 | void GtkPage::save() | ||
142 | { | 133 | { | ||
143 | gtkConfigInterface.call(QStringLiteral("setGtk2Theme"), m_gtk2ThemesModel->selectedTheme()); | 134 | gtkConfigInterface.setGtk2Theme(m_gtk2ThemesModel->selectedTheme()); | ||
144 | gtkConfigInterface.call(QStringLiteral("setGtk3Theme"), m_gtk3ThemesModel->selectedTheme()); | 135 | gtkConfigInterface.setGtk3Theme(m_gtk3ThemesModel->selectedTheme()); | ||
145 | } | 136 | } | ||
146 | 137 | | |||
147 | void GtkPage::defaults() | 138 | void GtkPage::defaults() | ||
148 | { | 139 | { | ||
149 | Q_EMIT selectGtk2ThemeInCombobox(QStringLiteral("Breeze")); | 140 | Q_EMIT selectGtk2ThemeInCombobox(QStringLiteral("Breeze")); | ||
150 | Q_EMIT selectGtk3ThemeInCombobox(QStringLiteral("Breeze")); | 141 | Q_EMIT selectGtk3ThemeInCombobox(QStringLiteral("Breeze")); | ||
151 | } | 142 | } | ||
152 | 143 | | |||
153 | void GtkPage::load() | 144 | void GtkPage::load() | ||
154 | { | 145 | { | ||
155 | m_gtk2ThemesModel->loadGtk2(); | 146 | m_gtk2ThemesModel->loadGtk2(); | ||
156 | m_gtk3ThemesModel->loadGtk3(); | 147 | m_gtk3ThemesModel->loadGtk3(); | ||
157 | Q_EMIT selectGtk2ThemeInCombobox(gtk2ThemeFromConfig()); | 148 | Q_EMIT selectGtk2ThemeInCombobox(gtk2ThemeFromConfig()); | ||
158 | Q_EMIT selectGtk3ThemeInCombobox(gtk3ThemeFromConfig()); | 149 | Q_EMIT selectGtk3ThemeInCombobox(gtk3ThemeFromConfig()); | ||
159 | } | 150 | } |