File indexing completed on 2024-04-28 13:20:21
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Mikhail Zolotukhin <zomial@protonmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #include <QDir> 0008 #include <QRegularExpression> 0009 #include <QString> 0010 #include <QVariant> 0011 0012 #include "config_editor/gsettings.h" 0013 #include "config_editor/gtk2.h" 0014 #include "config_editor/settings_ini.h" 0015 #include "config_editor/xsettings.h" 0016 0017 QString gtk2Theme(); 0018 void upgradeGtk2Theme(); 0019 void upgradeGtk3Theme(); 0020 0021 int main() 0022 { 0023 upgradeGtk2Theme(); 0024 upgradeGtk3Theme(); 0025 return 0; 0026 } 0027 0028 void upgradeGtk2Theme() 0029 { 0030 QString currentGtk2Theme = gtk2Theme(); 0031 if (currentGtk2Theme.isEmpty() // 0032 || currentGtk2Theme == QStringLiteral("oxygen-gtk") // 0033 || currentGtk2Theme == QStringLiteral("BreezyGTK") // 0034 || currentGtk2Theme == QStringLiteral("Orion")) { 0035 Gtk2ConfigEditor::setValue(QStringLiteral("gtk-theme-name"), QStringLiteral("Breeze")); 0036 } 0037 } 0038 0039 void upgradeGtk3Theme() 0040 { 0041 QString currentGtk3Theme = SettingsIniEditor::value(QStringLiteral("gtk-theme-name"), 3); 0042 if (currentGtk3Theme.isEmpty() // 0043 || currentGtk3Theme == QStringLiteral("oxygen-gtk") // 0044 || currentGtk3Theme == QStringLiteral("BreezyGTK") // 0045 || currentGtk3Theme == QStringLiteral("Orion")) { 0046 GSettingsEditor::setValue("gtk-theme", QStringLiteral("Breeze")); 0047 SettingsIniEditor::setValue(QStringLiteral("gtk-theme-name"), QStringLiteral("Breeze"), 3); 0048 XSettingsEditor::setValue(QStringLiteral("Net/ThemeName"), QStringLiteral("Breeze")); 0049 } 0050 } 0051 0052 QString gtk2Theme() 0053 { 0054 QString gtkrcPath = QDir::homePath() + QStringLiteral("/.gtkrc-2.0"); 0055 QFile gtkrc(gtkrcPath); 0056 if (gtkrc.open(QIODevice::ReadWrite | QIODevice::Text)) { 0057 const QRegularExpression regExp(QStringLiteral("gtk-theme-name=[^\n]*($|\n)")); 0058 while (!gtkrc.atEnd()) { 0059 QString line = gtkrc.readLine(); 0060 if (line.contains(regExp)) { 0061 return line.split('"')[1]; 0062 } 0063 } 0064 } 0065 0066 return QString(); 0067 }