From ceec70e014db629aa8ba3472839cc42781d73d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 1 Mar 2015 22:20:57 +0100 Subject: GH-796 Icon theme loading workaround Replacing the Qt machinery with other Qt machinery under our control --- gui/MainWindow.cpp | 295 +++++++++++++++++++- gui/MainWindow.ui | 517 ----------------------------------- gui/dialogs/AboutDialog.cpp | 2 +- gui/pages/InstanceSettingsPage.h | 3 +- gui/pages/LegacyJarModPage.h | 3 +- gui/pages/LegacyUpgradePage.h | 3 +- gui/pages/LogPage.h | 3 +- gui/pages/ModFolderPage.h | 3 +- gui/pages/NotesPage.h | 5 +- gui/pages/OtherLogsPage.h | 3 +- gui/pages/ScreenshotsPage.cpp | 3 +- gui/pages/ScreenshotsPage.h | 3 +- gui/pages/global/AccountListPage.h | 5 +- gui/pages/global/ExternalToolsPage.h | 5 +- gui/pages/global/JavaPage.h | 3 +- gui/pages/global/MinecraftPage.h | 3 +- gui/pages/global/MultiMCPage.cpp | 2 +- gui/pages/global/MultiMCPage.h | 3 +- gui/pages/global/ProxyPage.h | 3 +- gui/widgets/PageContainer.cpp | 3 +- gui/widgets/ServerStatus.cpp | 8 +- 21 files changed, 331 insertions(+), 547 deletions(-) delete mode 100644 gui/MainWindow.ui (limited to 'gui') diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp index fbb575a0..0231dd44 100644 --- a/gui/MainWindow.cpp +++ b/gui/MainWindow.cpp @@ -20,7 +20,292 @@ #include "BuildConfig.h" #include "MainWindow.h" -#include "ui_MainWindow.h" + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class Ui_MainWindow +{ +public: + QAction *actionAddInstance; + QAction *actionViewInstanceFolder; + QAction *actionRefresh; + QAction *actionViewCentralModsFolder; + QAction *actionCheckUpdate; + QAction *actionSettings; + QAction *actionReportBug; + QAction *actionPatreon; + QAction *actionMoreNews; + QAction *actionAbout; + QAction *actionLaunchInstance; + QAction *actionRenameInstance; + QAction *actionChangeInstGroup; + QAction *actionChangeInstIcon; + QAction *actionEditInstNotes; + QAction *actionEditInstance; + QAction *actionViewSelectedInstFolder; + QAction *actionDeleteInstance; + QAction *actionConfig_Folder; + QAction *actionCAT; + QAction *actionCopyInstance; + QAction *actionManageAccounts; + QAction *actionLaunchInstanceOffline; + QAction *actionScreenshots; + QAction *actionInstanceSettings; + QAction *actionExportInstance; + QWidget *centralWidget; + QHBoxLayout *horizontalLayout; + QToolBar *mainToolBar; + QStatusBar *statusBar; + QToolBar *instanceToolBar; + QToolBar *newsToolBar; + + void setupUi(QMainWindow *MainWindow) + { + if (MainWindow->objectName().isEmpty()) + { + MainWindow->setObjectName(QStringLiteral("MainWindow")); + } + MainWindow->resize(694, 563); + MainWindow->setWindowIcon(MMC->getThemedIcon("multimc")); + actionAddInstance = new QAction(MainWindow); + actionAddInstance->setObjectName(QStringLiteral("actionAddInstance")); + actionAddInstance->setIcon(MMC->getThemedIcon("new")); + actionViewInstanceFolder = new QAction(MainWindow); + actionViewInstanceFolder->setObjectName(QStringLiteral("actionViewInstanceFolder")); + actionViewInstanceFolder->setIcon(MMC->getThemedIcon("viewfolder")); + actionRefresh = new QAction(MainWindow); + actionRefresh->setObjectName(QStringLiteral("actionRefresh")); + actionRefresh->setIcon(MMC->getThemedIcon("refresh")); + actionViewCentralModsFolder = new QAction(MainWindow); + actionViewCentralModsFolder->setObjectName(QStringLiteral("actionViewCentralModsFolder")); + actionViewCentralModsFolder->setIcon(MMC->getThemedIcon("centralmods")); + actionCheckUpdate = new QAction(MainWindow); + actionCheckUpdate->setObjectName(QStringLiteral("actionCheckUpdate")); + actionCheckUpdate->setIcon(MMC->getThemedIcon("checkupdate")); + actionSettings = new QAction(MainWindow); + actionSettings->setObjectName(QStringLiteral("actionSettings")); + actionSettings->setIcon(MMC->getThemedIcon("settings")); + actionSettings->setMenuRole(QAction::PreferencesRole); + actionReportBug = new QAction(MainWindow); + actionReportBug->setObjectName(QStringLiteral("actionReportBug")); + actionReportBug->setIcon(MMC->getThemedIcon("bug")); + actionPatreon = new QAction(MainWindow); + actionPatreon->setObjectName(QStringLiteral("actionPatreon")); + actionPatreon->setIcon(MMC->getThemedIcon("patreon")); + actionMoreNews = new QAction(MainWindow); + actionMoreNews->setObjectName(QStringLiteral("actionMoreNews")); + actionMoreNews->setIcon(MMC->getThemedIcon("news")); + actionAbout = new QAction(MainWindow); + actionAbout->setObjectName(QStringLiteral("actionAbout")); + actionAbout->setIcon(MMC->getThemedIcon("about")); + actionAbout->setMenuRole(QAction::AboutRole); + actionLaunchInstance = new QAction(MainWindow); + actionLaunchInstance->setObjectName(QStringLiteral("actionLaunchInstance")); + actionRenameInstance = new QAction(MainWindow); + actionRenameInstance->setObjectName(QStringLiteral("actionRenameInstance")); + actionChangeInstGroup = new QAction(MainWindow); + actionChangeInstGroup->setObjectName(QStringLiteral("actionChangeInstGroup")); + actionChangeInstIcon = new QAction(MainWindow); + actionChangeInstIcon->setObjectName(QStringLiteral("actionChangeInstIcon")); + actionChangeInstIcon->setEnabled(true); + actionChangeInstIcon->setIcon(QIcon(":/icons/instances/infinity")); + actionChangeInstIcon->setIconVisibleInMenu(true); + actionEditInstNotes = new QAction(MainWindow); + actionEditInstNotes->setObjectName(QStringLiteral("actionEditInstNotes")); + actionEditInstance = new QAction(MainWindow); + actionEditInstance->setObjectName(QStringLiteral("actionEditInstance")); + actionViewSelectedInstFolder = new QAction(MainWindow); + actionViewSelectedInstFolder->setObjectName(QStringLiteral("actionViewSelectedInstFolder")); + actionDeleteInstance = new QAction(MainWindow); + actionDeleteInstance->setObjectName(QStringLiteral("actionDeleteInstance")); + actionConfig_Folder = new QAction(MainWindow); + actionConfig_Folder->setObjectName(QStringLiteral("actionConfig_Folder")); + actionCAT = new QAction(MainWindow); + actionCAT->setObjectName(QStringLiteral("actionCAT")); + actionCAT->setCheckable(true); + actionCAT->setIcon(MMC->getThemedIcon("cat")); + actionCopyInstance = new QAction(MainWindow); + actionCopyInstance->setObjectName(QStringLiteral("actionCopyInstance")); + actionCopyInstance->setIcon(MMC->getThemedIcon("copy")); + actionManageAccounts = new QAction(MainWindow); + actionManageAccounts->setObjectName(QStringLiteral("actionManageAccounts")); + actionLaunchInstanceOffline = new QAction(MainWindow); + actionLaunchInstanceOffline->setObjectName(QStringLiteral("actionLaunchInstanceOffline")); + actionScreenshots = new QAction(MainWindow); + actionScreenshots->setObjectName(QStringLiteral("actionScreenshots")); + actionInstanceSettings = new QAction(MainWindow); + actionInstanceSettings->setObjectName(QStringLiteral("actionInstanceSettings")); + actionExportInstance = new QAction(MainWindow); + actionExportInstance->setObjectName(QStringLiteral("actionExportInstance")); + centralWidget = new QWidget(MainWindow); + centralWidget->setObjectName(QStringLiteral("centralWidget")); + horizontalLayout = new QHBoxLayout(centralWidget); + horizontalLayout->setSpacing(0); + horizontalLayout->setContentsMargins(11, 11, 11, 11); + horizontalLayout->setObjectName(QStringLiteral("horizontalLayout")); + horizontalLayout->setSizeConstraint(QLayout::SetDefaultConstraint); + horizontalLayout->setContentsMargins(0, 0, 0, 0); + MainWindow->setCentralWidget(centralWidget); + mainToolBar = new QToolBar(MainWindow); + mainToolBar->setObjectName(QStringLiteral("mainToolBar")); + mainToolBar->setMovable(false); + mainToolBar->setAllowedAreas(Qt::TopToolBarArea); + mainToolBar->setToolButtonStyle(Qt::ToolButtonIconOnly); + mainToolBar->setFloatable(false); + MainWindow->addToolBar(Qt::TopToolBarArea, mainToolBar); + statusBar = new QStatusBar(MainWindow); + statusBar->setObjectName(QStringLiteral("statusBar")); + MainWindow->setStatusBar(statusBar); + instanceToolBar = new QToolBar(MainWindow); + instanceToolBar->setObjectName(QStringLiteral("instanceToolBar")); + instanceToolBar->setEnabled(true); + instanceToolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea); + instanceToolBar->setIconSize(QSize(80, 80)); + instanceToolBar->setToolButtonStyle(Qt::ToolButtonIconOnly); + instanceToolBar->setFloatable(false); + MainWindow->addToolBar(Qt::RightToolBarArea, instanceToolBar); + newsToolBar = new QToolBar(MainWindow); + newsToolBar->setObjectName(QStringLiteral("newsToolBar")); + newsToolBar->setMovable(false); + newsToolBar->setAllowedAreas(Qt::BottomToolBarArea); + newsToolBar->setIconSize(QSize(16, 16)); + newsToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + newsToolBar->setFloatable(false); + MainWindow->addToolBar(Qt::BottomToolBarArea, newsToolBar); + + mainToolBar->addAction(actionAddInstance); + mainToolBar->addAction(actionCopyInstance); + mainToolBar->addSeparator(); + mainToolBar->addAction(actionViewInstanceFolder); + mainToolBar->addAction(actionViewCentralModsFolder); + mainToolBar->addAction(actionRefresh); + mainToolBar->addSeparator(); + mainToolBar->addAction(actionCheckUpdate); + mainToolBar->addAction(actionSettings); + mainToolBar->addSeparator(); + mainToolBar->addAction(actionReportBug); + mainToolBar->addAction(actionAbout); + mainToolBar->addSeparator(); + mainToolBar->addAction(actionPatreon); + mainToolBar->addAction(actionCAT); + instanceToolBar->addAction(actionChangeInstIcon); + instanceToolBar->addAction(actionLaunchInstance); + instanceToolBar->addAction(actionLaunchInstanceOffline); + instanceToolBar->addAction(actionChangeInstGroup); + instanceToolBar->addSeparator(); + instanceToolBar->addAction(actionEditInstance); + instanceToolBar->addAction(actionInstanceSettings); + instanceToolBar->addAction(actionEditInstNotes); + instanceToolBar->addAction(actionScreenshots); + instanceToolBar->addSeparator(); + instanceToolBar->addAction(actionViewSelectedInstFolder); + instanceToolBar->addAction(actionConfig_Folder); + instanceToolBar->addSeparator(); + instanceToolBar->addAction(actionExportInstance); + instanceToolBar->addAction(actionDeleteInstance); + newsToolBar->addAction(actionMoreNews); + + retranslateUi(MainWindow); + + QMetaObject::connectSlotsByName(MainWindow); + } // setupUi + + void retranslateUi(QMainWindow *MainWindow) + { + MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MultiMC 5", 0)); + actionAddInstance->setText(QApplication::translate("MainWindow", "Add Instance", 0)); + actionAddInstance->setToolTip(QApplication::translate("MainWindow", "Add a new instance.", 0)); + actionAddInstance->setStatusTip(QApplication::translate("MainWindow", "Add a new instance.", 0)); + actionViewInstanceFolder->setText(QApplication::translate("MainWindow", "View Instance Folder", 0)); + actionViewInstanceFolder->setToolTip(QApplication::translate("MainWindow", "Open the instance folder in a file browser.", 0)); + actionViewInstanceFolder->setStatusTip(QApplication::translate("MainWindow", "Open the instance folder in a file browser.", 0)); + actionRefresh->setText(QApplication::translate("MainWindow", "Refresh", 0)); + actionRefresh->setToolTip(QApplication::translate("MainWindow", "Reload the instance list.", 0)); + actionRefresh->setStatusTip(QApplication::translate("MainWindow", "Reload the instance list.", 0)); + actionViewCentralModsFolder->setText(QApplication::translate("MainWindow", "View Central Mods Folder", 0)); + actionViewCentralModsFolder->setToolTip(QApplication::translate("MainWindow", "Open the central mods folder in a file browser.", 0)); + actionViewCentralModsFolder->setStatusTip(QApplication::translate("MainWindow", "Open the central mods folder in a file browser.", 0)); + actionCheckUpdate->setText(QApplication::translate("MainWindow", "Check for Updates", 0)); + actionCheckUpdate->setToolTip(QApplication::translate("MainWindow", "Check for new updates for MultiMC", 0)); + actionCheckUpdate->setStatusTip(QApplication::translate("MainWindow", "Check for new updates for MultiMC", 0)); + actionSettings->setText(QApplication::translate("MainWindow", "Settings", 0)); + actionSettings->setToolTip(QApplication::translate("MainWindow", "Change settings.", 0)); + actionSettings->setStatusTip(QApplication::translate("MainWindow", "Change settings.", 0)); + actionReportBug->setText(QApplication::translate("MainWindow", "Report a Bug", 0)); + actionReportBug->setToolTip(QApplication::translate("MainWindow", "Open the bug tracker to report a bug with MultiMC.", 0)); + actionReportBug->setStatusTip(QApplication::translate("MainWindow", "Open the bug tracker to report a bug with MultiMC.", 0)); + actionPatreon->setText(QApplication::translate("MainWindow", "Support us on Patreon!", 0)); + actionPatreon->setToolTip(QApplication::translate("MainWindow", "Open the MultiMC Patreon page.", 0)); + actionPatreon->setStatusTip(QApplication::translate("MainWindow", "Open the MultiMC Patreon page.", 0)); + actionMoreNews->setText(QApplication::translate("MainWindow", "More News", 0)); + actionMoreNews->setIconText(QApplication::translate("MainWindow", "More news...", 0)); + actionMoreNews->setToolTip(QApplication::translate("MainWindow", "Open the MultiMC development blog to read more news about MultiMC.", 0)); + actionMoreNews->setStatusTip(QApplication::translate("MainWindow", "Open the MultiMC development blog to read more news about MultiMC.", 0)); + actionAbout->setText(QApplication::translate("MainWindow", "About MultiMC", 0)); + actionAbout->setToolTip(QApplication::translate("MainWindow", "View information about MultiMC.", 0)); + actionAbout->setStatusTip(QApplication::translate("MainWindow", "About MultiMC", 0)); + actionLaunchInstance->setText(QApplication::translate("MainWindow", "Play", 0)); + actionLaunchInstance->setToolTip(QApplication::translate("MainWindow", "Launch the selected instance.", 0)); + actionLaunchInstance->setStatusTip(QApplication::translate("MainWindow", "Launch the selected instance.", 0)); + actionRenameInstance->setText(QApplication::translate("MainWindow", "Instance Name", 0)); + actionRenameInstance->setToolTip(QApplication::translate("MainWindow", "Rename the selected instance.", 0)); + actionRenameInstance->setStatusTip(QApplication::translate("MainWindow", "Rename the selected instance.", 0)); + actionChangeInstGroup->setText(QApplication::translate("MainWindow", "Change Group", 0)); + actionChangeInstGroup->setToolTip(QApplication::translate("MainWindow", "Change the selected instance's group.", 0)); + actionChangeInstGroup->setStatusTip(QApplication::translate("MainWindow", "Change the selected instance's group.", 0)); + actionChangeInstIcon->setText(QApplication::translate("MainWindow", "Change Icon", 0)); + actionChangeInstIcon->setToolTip(QApplication::translate("MainWindow", "Change the selected instance's icon.", 0)); + actionChangeInstIcon->setStatusTip(QApplication::translate("MainWindow", "Change the selected instance's icon.", 0)); + actionEditInstNotes->setText(QApplication::translate("MainWindow", "Edit Notes", 0)); + actionEditInstNotes->setToolTip(QApplication::translate("MainWindow", "Edit the notes for the selected instance.", 0)); + actionEditInstNotes->setStatusTip(QApplication::translate("MainWindow", "Edit the notes for the selected instance.", 0)); + actionEditInstance->setText(QApplication::translate("MainWindow", "Edit Instance", 0)); + actionEditInstance->setIconText(QApplication::translate("MainWindow", "Edit Instance", 0)); + actionEditInstance->setToolTip(QApplication::translate("MainWindow", "Change the instance settings, mods and versions.", 0)); + actionEditInstance->setStatusTip(QApplication::translate("MainWindow", "Change the instance settings, mods and versions.", 0)); + actionViewSelectedInstFolder->setText(QApplication::translate("MainWindow", "Instance Folder", 0)); + actionViewSelectedInstFolder->setToolTip(QApplication::translate("MainWindow", "Open the selected instance's root folder in a file browser.", 0)); + actionViewSelectedInstFolder->setStatusTip(QApplication::translate("MainWindow", "Open the selected instance's root folder in a file browser.", 0)); + actionDeleteInstance->setText(QApplication::translate("MainWindow", "Delete", 0)); + actionDeleteInstance->setToolTip(QApplication::translate("MainWindow", "Delete the selected instance.", 0)); + actionDeleteInstance->setStatusTip(QApplication::translate("MainWindow", "Delete the selected instance.", 0)); + actionConfig_Folder->setText(QApplication::translate("MainWindow", "Config Folder", 0)); + actionConfig_Folder->setToolTip(QApplication::translate("MainWindow", "Open the instance's config folder", 0)); + actionCAT->setText(QApplication::translate("MainWindow", "Meow", 0)); + actionCAT->setToolTip(QApplication::translate("MainWindow", "

It's a fluffy kitty :3

", 0)); + actionCopyInstance->setText(QApplication::translate("MainWindow", "Copy Instance", 0)); + actionCopyInstance->setToolTip(QApplication::translate("MainWindow", "Copy the selected instance.", 0)); + actionCopyInstance->setStatusTip(QApplication::translate("MainWindow", "Add a new instance.", 0)); + actionManageAccounts->setText(QApplication::translate("MainWindow", "Manage Accounts", 0)); + actionManageAccounts->setToolTip(QApplication::translate("MainWindow", "Manage your Mojang or Minecraft accounts.", 0)); + actionLaunchInstanceOffline->setText(QApplication::translate("MainWindow", "Play Offline", 0)); + actionLaunchInstanceOffline->setToolTip(QApplication::translate("MainWindow", "Launch the selected instance in offline mode.", 0)); + actionLaunchInstanceOffline->setStatusTip(QApplication::translate("MainWindow", "Launch the selected instance.", 0)); + actionScreenshots->setText(QApplication::translate("MainWindow", "Manage Screenshots", 0)); + actionScreenshots->setToolTip(QApplication::translate("MainWindow", "

View and upload screenshots for this instance

", 0)); + actionInstanceSettings->setText(QApplication::translate("MainWindow", "Instance Settings", 0)); + actionInstanceSettings->setToolTip(QApplication::translate("MainWindow", "Change the settings specific to the instance", 0)); + actionExportInstance->setText(QApplication::translate("MainWindow", "Export Instance", 0)); + mainToolBar->setWindowTitle(QApplication::translate("MainWindow", "Main Toolbar", 0)); + instanceToolBar->setWindowTitle(QApplication::translate("MainWindow", "Instance Toolbar", 0)); + newsToolBar->setWindowTitle(QApplication::translate("MainWindow", "News Toolbar", 0)); + } // retranslateUi + +}; + +namespace Ui { + class MainWindow: public Ui_MainWindow {}; +} // namespace Ui #include #include @@ -152,7 +437,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi // Add the news label to the news toolbar. { newsLabel = new QToolButton(); - newsLabel->setIcon(QIcon::fromTheme("news")); + newsLabel->setIcon(MMC->getThemedIcon("news")); newsLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); newsLabel->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); ui->newsToolBar->insertWidget(ui->actionMoreNews, newsLabel); @@ -248,7 +533,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi accountMenuButton->setMenu(accountMenu); accountMenuButton->setPopupMode(QToolButton::InstantPopup); accountMenuButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); - accountMenuButton->setIcon(QIcon::fromTheme("noaccount")); + accountMenuButton->setIcon(MMC->getThemedIcon("noaccount")); QWidgetAction *accountMenuButtonAction = new QWidgetAction(this); accountMenuButtonAction->setDefaultWidget(accountMenuButton); @@ -514,7 +799,7 @@ void MainWindow::repopulateAccountsMenu() QAction *action = new QAction(tr("No Default Account"), this); action->setCheckable(true); - action->setIcon(QIcon::fromTheme("noaccount")); + action->setIcon(MMC->getThemedIcon("noaccount")); action->setData(""); if (active_username.isEmpty()) { @@ -568,7 +853,7 @@ void MainWindow::activeAccountChanged() } // Set the icon to the "no account" icon. - accountMenuButton->setIcon(QIcon::fromTheme("noaccount")); + accountMenuButton->setIcon(MMC->getThemedIcon("noaccount")); } bool MainWindow::eventFilter(QObject *obj, QEvent *ev) diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui deleted file mode 100644 index 800862d1..00000000 --- a/gui/MainWindow.ui +++ /dev/null @@ -1,517 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 694 - 563 - - - - MultiMC 5 - - - - - - - - 0 - - - QLayout::SetDefaultConstraint - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - Main Toolbar - - - false - - - Qt::TopToolBarArea - - - Qt::ToolButtonIconOnly - - - false - - - TopToolBarArea - - - false - - - - - - - - - - - - - - - - - - - - - true - - - Instance Toolbar - - - Qt::LeftToolBarArea|Qt::RightToolBarArea - - - - 80 - 80 - - - - Qt::ToolButtonIconOnly - - - false - - - RightToolBarArea - - - false - - - - - - - - - - - - - - - - - - - - News Toolbar - - - false - - - Qt::BottomToolBarArea - - - - 16 - 16 - - - - Qt::ToolButtonTextBesideIcon - - - false - - - BottomToolBarArea - - - false - - - - - - - - - - - Add Instance - - - Add a new instance. - - - Add a new instance. - - - - - - - - - - View Instance Folder - - - Open the instance folder in a file browser. - - - Open the instance folder in a file browser. - - - - - - - - - - Refresh - - - Reload the instance list. - - - Reload the instance list. - - - - - - - - - - View Central Mods Folder - - - Open the central mods folder in a file browser. - - - Open the central mods folder in a file browser. - - - - - - - - - - Check for Updates - - - Check for new updates for MultiMC - - - Check for new updates for MultiMC - - - - - - - - - - Settings - - - Change settings. - - - Change settings. - - - QAction::PreferencesRole - - - - - - - - - - Report a Bug - - - Open the bug tracker to report a bug with MultiMC. - - - Open the bug tracker to report a bug with MultiMC. - - - - - - - - - - Support us on Patreon! - - - Open the MultiMC Patreon page. - - - Open the MultiMC Patreon page. - - - - - - - - - - More News - - - More news... - - - Open the MultiMC development blog to read more news about MultiMC. - - - Open the MultiMC development blog to read more news about MultiMC. - - - - - - - - - - About MultiMC - - - View information about MultiMC. - - - About MultiMC - - - QAction::AboutRole - - - - - Play - - - Launch the selected instance. - - - Launch the selected instance. - - - - - Instance Name - - - Rename the selected instance. - - - Rename the selected instance. - - - - - Change Group - - - Change the selected instance's group. - - - Change the selected instance's group. - - - - - true - - - - :/icons/instances/infinity:/icons/instances/infinity - - - Change Icon - - - Change the selected instance's icon. - - - Change the selected instance's icon. - - - true - - - - - Edit Notes - - - Edit the notes for the selected instance. - - - Edit the notes for the selected instance. - - - - - Edit Instance - - - Edit Instance - - - Change the instance settings, mods and versions. - - - Change the instance settings, mods and versions. - - - - - Instance Folder - - - Open the selected instance's root folder in a file browser. - - - Open the selected instance's root folder in a file browser. - - - - - Delete - - - Delete the selected instance. - - - Delete the selected instance. - - - - - Config Folder - - - Open the instance's config folder - - - - - true - - - - - - - - Meow - - - <html><head/><body><p align="center">It's a fluffy kitty :3</p></body></html> - - - - - - - - - - Copy Instance - - - Copy the selected instance. - - - Add a new instance. - - - - - Manage Accounts - - - Manage your Mojang or Minecraft accounts. - - - - - Play Offline - - - Launch the selected instance in offline mode. - - - Launch the selected instance. - - - - - Manage Screenshots - - - <html><head/><body><p>View and upload screenshots for this instance</p></body></html> - - - - - Instance Settings - - - Change the settings specific to the instance - - - - - Export Instance - - - - - - - - - - - - - - - - diff --git a/gui/dialogs/AboutDialog.cpp b/gui/dialogs/AboutDialog.cpp index bacdc2fd..6b31113c 100644 --- a/gui/dialogs/AboutDialog.cpp +++ b/gui/dialogs/AboutDialog.cpp @@ -81,7 +81,7 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia ui->urlLabel->setOpenExternalLinks(true); - ui->icon->setPixmap(QIcon::fromTheme("multimc").pixmap(64)); + ui->icon->setPixmap(MMC->getThemedIcon("multimc").pixmap(64)); ui->title->setText("MultiMC 5 " + BuildConfig.printableVersionString()); ui->versionLabel->setText(tr("Version") +": " + BuildConfig.printableVersionString()); diff --git a/gui/pages/InstanceSettingsPage.h b/gui/pages/InstanceSettingsPage.h index a95e65e4..b43ce610 100644 --- a/gui/pages/InstanceSettingsPage.h +++ b/gui/pages/InstanceSettingsPage.h @@ -21,6 +21,7 @@ #include "logic/net/NetJob.h" #include "logic/java/JavaChecker.h" #include "BasePage.h" +#include "MultiMC.h" class JavaChecker; namespace Ui @@ -41,7 +42,7 @@ public: } virtual QIcon icon() const override { - return QIcon::fromTheme("instance-settings"); + return MMC->getThemedIcon("instance-settings"); } virtual QString id() const override { diff --git a/gui/pages/LegacyJarModPage.h b/gui/pages/LegacyJarModPage.h index cda6d2a0..e1ffd5d6 100644 --- a/gui/pages/LegacyJarModPage.h +++ b/gui/pages/LegacyJarModPage.h @@ -19,6 +19,7 @@ #include "logic/net/NetJob.h" #include "BasePage.h" +#include class ModList; class LegacyInstance; @@ -41,7 +42,7 @@ public: } virtual QIcon icon() const { - return QIcon::fromTheme("jarmods"); + return MMC->getThemedIcon("jarmods"); } virtual QString id() const { diff --git a/gui/pages/LegacyUpgradePage.h b/gui/pages/LegacyUpgradePage.h index 7a53c21a..969b5440 100644 --- a/gui/pages/LegacyUpgradePage.h +++ b/gui/pages/LegacyUpgradePage.h @@ -20,6 +20,7 @@ #include "logic/OneSixInstance.h" #include "logic/net/NetJob.h" #include "BasePage.h" +#include class EnabledItemFilter; namespace Ui @@ -40,7 +41,7 @@ public: } virtual QIcon icon() const override { - return QIcon::fromTheme("checkupdate"); + return MMC->getThemedIcon("checkupdate"); } virtual QString id() const override { diff --git a/gui/pages/LogPage.h b/gui/pages/LogPage.h index c566528d..7d073a53 100644 --- a/gui/pages/LogPage.h +++ b/gui/pages/LogPage.h @@ -21,6 +21,7 @@ #include "logic/net/NetJob.h" #include "logic/MinecraftProcess.h" #include "BasePage.h" +#include class EnabledItemFilter; class MinecraftProcess; @@ -43,7 +44,7 @@ public: } virtual QIcon icon() const override { - return QIcon::fromTheme("log"); + return MMC->getThemedIcon("log"); } virtual QString id() const override { diff --git a/gui/pages/ModFolderPage.h b/gui/pages/ModFolderPage.h index 09f6adc7..8859ad99 100644 --- a/gui/pages/ModFolderPage.h +++ b/gui/pages/ModFolderPage.h @@ -20,6 +20,7 @@ #include "logic/OneSixInstance.h" #include "logic/net/NetJob.h" #include "BasePage.h" +#include class EnabledItemFilter; class ModList; @@ -43,7 +44,7 @@ public: } virtual QIcon icon() const override { - return QIcon::fromTheme(m_iconName); + return MMC->getThemedIcon(m_iconName); } virtual QString id() const override { diff --git a/gui/pages/NotesPage.h b/gui/pages/NotesPage.h index bbe9d856..f77ea530 100644 --- a/gui/pages/NotesPage.h +++ b/gui/pages/NotesPage.h @@ -20,6 +20,7 @@ #include "logic/BaseInstance.h" #include "logic/net/NetJob.h" #include "BasePage.h" +#include class EnabledItemFilter; namespace Ui @@ -40,9 +41,9 @@ public: } virtual QIcon icon() const override { - auto icon = QIcon::fromTheme("notes"); + auto icon = MMC->getThemedIcon("notes"); if(icon.isNull()) - icon = QIcon::fromTheme("news"); + icon = MMC->getThemedIcon("news"); return icon; } virtual QString id() const override diff --git a/gui/pages/OtherLogsPage.h b/gui/pages/OtherLogsPage.h index 86844749..5777cb83 100644 --- a/gui/pages/OtherLogsPage.h +++ b/gui/pages/OtherLogsPage.h @@ -18,6 +18,7 @@ #include #include "BasePage.h" +#include namespace Ui { @@ -46,7 +47,7 @@ public: } QIcon icon() const override { - return QIcon::fromTheme("log"); + return MMC->getThemedIcon("log"); } QString helpPage() const override { diff --git a/gui/pages/ScreenshotsPage.cpp b/gui/pages/ScreenshotsPage.cpp index d47a2897..1771a118 100644 --- a/gui/pages/ScreenshotsPage.cpp +++ b/gui/pages/ScreenshotsPage.cpp @@ -16,6 +16,7 @@ #include #include +#include #include "gui/dialogs/ProgressDialog.h" #include "gui/dialogs/CustomMessageBox.h" @@ -103,7 +104,7 @@ public: { m_thumbnailingPool.setMaxThreadCount(4); m_thumbnailCache = std::make_shared(); - m_thumbnailCache->add("placeholder", QIcon::fromTheme("screenshot-placeholder")); + m_thumbnailCache->add("placeholder", MMC->getThemedIcon("screenshot-placeholder")); connect(&watcher, SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString))); // FIXME: the watched file set is not updated when files are removed } diff --git a/gui/pages/ScreenshotsPage.h b/gui/pages/ScreenshotsPage.h index ccf3856d..6be2a26d 100644 --- a/gui/pages/ScreenshotsPage.h +++ b/gui/pages/ScreenshotsPage.h @@ -19,6 +19,7 @@ #include "logic/OneSixInstance.h" #include "BasePage.h" +#include class QFileSystemModel; class QIdentityProxyModel; @@ -53,7 +54,7 @@ public: } virtual QIcon icon() const override { - return QIcon::fromTheme("screenshots"); + return MMC->getThemedIcon("screenshots"); } virtual QString id() const override { diff --git a/gui/pages/global/AccountListPage.h b/gui/pages/global/AccountListPage.h index 87f773d9..9fd894b8 100644 --- a/gui/pages/global/AccountListPage.h +++ b/gui/pages/global/AccountListPage.h @@ -21,6 +21,7 @@ #include "gui/pages/BasePage.h" #include "logic/auth/MojangAccountList.h" +#include namespace Ui { @@ -42,10 +43,10 @@ public: } QIcon icon() const override { - auto icon = QIcon::fromTheme("accounts"); + auto icon = MMC->getThemedIcon("accounts"); if(icon.isNull()) { - icon = QIcon::fromTheme("noaccount"); + icon = MMC->getThemedIcon("noaccount"); } return icon; } diff --git a/gui/pages/global/ExternalToolsPage.h b/gui/pages/global/ExternalToolsPage.h index 79078fa3..7c5efad6 100644 --- a/gui/pages/global/ExternalToolsPage.h +++ b/gui/pages/global/ExternalToolsPage.h @@ -18,6 +18,7 @@ #include #include "gui/pages/BasePage.h" +#include namespace Ui { class ExternalToolsPage; @@ -37,10 +38,10 @@ public: } QIcon icon() const override { - auto icon = QIcon::fromTheme("externaltools"); + auto icon = MMC->getThemedIcon("externaltools"); if(icon.isNull()) { - icon = QIcon::fromTheme("loadermods"); + icon = MMC->getThemedIcon("loadermods"); } return icon; } diff --git a/gui/pages/global/JavaPage.h b/gui/pages/global/JavaPage.h index 779ca86d..f70d9dbd 100644 --- a/gui/pages/global/JavaPage.h +++ b/gui/pages/global/JavaPage.h @@ -20,6 +20,7 @@ #include "logic/java/JavaChecker.h" #include "gui/pages/BasePage.h" +#include class SettingsObject; @@ -42,7 +43,7 @@ public: } QIcon icon() const override { - return QIcon::fromTheme("java"); + return MMC->getThemedIcon("java"); } QString id() const override { diff --git a/gui/pages/global/MinecraftPage.h b/gui/pages/global/MinecraftPage.h index a47fd48b..6dd86338 100644 --- a/gui/pages/global/MinecraftPage.h +++ b/gui/pages/global/MinecraftPage.h @@ -20,6 +20,7 @@ #include "logic/java/JavaChecker.h" #include "gui/pages/BasePage.h" +#include class SettingsObject; @@ -42,7 +43,7 @@ public: } QIcon icon() const override { - return QIcon::fromTheme("minecraft"); + return MMC->getThemedIcon("minecraft"); } QString id() const override { diff --git a/gui/pages/global/MultiMCPage.cpp b/gui/pages/global/MultiMCPage.cpp index cc2b2781..cc923b2f 100644 --- a/gui/pages/global/MultiMCPage.cpp +++ b/gui/pages/global/MultiMCPage.cpp @@ -302,7 +302,7 @@ void MultiMCPage::applySettings() if(original != s->get("IconTheme")) { - QIcon::setThemeName(s->get("IconTheme").toString()); + MMC->setIconTheme(s->get("IconTheme").toString()); } // Console settings diff --git a/gui/pages/global/MultiMCPage.h b/gui/pages/global/MultiMCPage.h index 1a6ad39a..96e56f47 100644 --- a/gui/pages/global/MultiMCPage.h +++ b/gui/pages/global/MultiMCPage.h @@ -20,6 +20,7 @@ #include "logic/java/JavaChecker.h" #include "gui/pages/BasePage.h" +#include class QTextCharFormat; class SettingsObject; @@ -43,7 +44,7 @@ public: } QIcon icon() const override { - return QIcon::fromTheme("multimc"); + return MMC->getThemedIcon("multimc"); } QString id() const override { diff --git a/gui/pages/global/ProxyPage.h b/gui/pages/global/ProxyPage.h index 014548dd..edb7587a 100644 --- a/gui/pages/global/ProxyPage.h +++ b/gui/pages/global/ProxyPage.h @@ -20,6 +20,7 @@ #include "logic/java/JavaChecker.h" #include "gui/pages/BasePage.h" +#include namespace Ui { @@ -40,7 +41,7 @@ public: } QIcon icon() const override { - return QIcon::fromTheme("proxy"); + return MMC->getThemedIcon("proxy"); } QString id() const override { diff --git a/gui/widgets/PageContainer.cpp b/gui/widgets/PageContainer.cpp index b84594c1..59b800cc 100644 --- a/gui/widgets/PageContainer.cpp +++ b/gui/widgets/PageContainer.cpp @@ -32,6 +32,7 @@ #include "gui/widgets/IconLabel.h" #include "gui/Platform.h" #include "PageContainer_p.h" +#include class PageEntryFilterModel : public QSortFilterProxyModel { @@ -174,7 +175,7 @@ void PageContainer::showPage(int row) { m_pageStack->setCurrentIndex(0); m_header->setText(QString()); - m_iconHeader->setIcon(QIcon::fromTheme("bug")); + m_iconHeader->setIcon(MMC->getThemedIcon("bug")); } } diff --git a/gui/widgets/ServerStatus.cpp b/gui/widgets/ServerStatus.cpp index 3b02fd24..93781e1c 100644 --- a/gui/widgets/ServerStatus.cpp +++ b/gui/widgets/ServerStatus.cpp @@ -16,9 +16,9 @@ ServerStatus::ServerStatus(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, { layout = new QHBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); - goodIcon = QIcon::fromTheme("status-good"); - yellowIcon = QIcon::fromTheme("status-yellow"); - badIcon = QIcon::fromTheme("status-bad"); + goodIcon = MMC->getThemedIcon("status-good"); + yellowIcon = MMC->getThemedIcon("status-yellow"); + badIcon = MMC->getThemedIcon("status-bad"); addStatus("minecraft.net", tr("Web")); addLine(); @@ -33,7 +33,7 @@ ServerStatus::ServerStatus(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, m_statusRefresh = new QToolButton(this); m_statusRefresh->setCheckable(true); m_statusRefresh->setToolButtonStyle(Qt::ToolButtonIconOnly); - m_statusRefresh->setIcon(QIcon::fromTheme("refresh")); + m_statusRefresh->setIcon(MMC->getThemedIcon("refresh")); layout->addWidget(m_statusRefresh); setLayout(layout); -- cgit v1.2.3