aboutsummaryrefslogtreecommitdiff
path: root/launcher
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-11-19 17:12:31 -0300
committerflow <flowlnlnln@gmail.com>2022-11-19 18:41:31 -0300
commit2d69d63efe12a1cfaf391a59cb6b7630a436410e (patch)
tree4380456c2e8c3f7a843c2cc8a3417062802aa235 /launcher
parent479843f56b42d7044d3d02278a9cabc2c24e147a (diff)
downloadPrismLauncher-2d69d63efe12a1cfaf391a59cb6b7630a436410e.tar.gz
PrismLauncher-2d69d63efe12a1cfaf391a59cb6b7630a436410e.tar.bz2
PrismLauncher-2d69d63efe12a1cfaf391a59cb6b7630a436410e.zip
feat(InstancePages): save/load wide bar visibility settings
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher')
-rw-r--r--launcher/ui/pages/instance/ExternalResourcesPage.cpp10
-rw-r--r--launcher/ui/pages/instance/ExternalResourcesPage.h3
-rw-r--r--launcher/ui/pages/instance/ScreenshotsPage.cpp13
-rw-r--r--launcher/ui/pages/instance/ScreenshotsPage.h7
-rw-r--r--launcher/ui/pages/instance/ServersPage.cpp10
-rw-r--r--launcher/ui/pages/instance/ServersPage.h4
-rw-r--r--launcher/ui/pages/instance/VersionPage.cpp15
-rw-r--r--launcher/ui/pages/instance/VersionPage.h5
-rw-r--r--launcher/ui/pages/instance/WorldListPage.cpp10
-rw-r--r--launcher/ui/pages/instance/WorldListPage.h4
10 files changed, 80 insertions, 1 deletions
diff --git a/launcher/ui/pages/instance/ExternalResourcesPage.cpp b/launcher/ui/pages/instance/ExternalResourcesPage.cpp
index b6c873cc..381fa30c 100644
--- a/launcher/ui/pages/instance/ExternalResourcesPage.cpp
+++ b/launcher/ui/pages/instance/ExternalResourcesPage.cpp
@@ -70,11 +70,21 @@ void ExternalResourcesPage::ShowContextMenu(const QPoint& pos)
void ExternalResourcesPage::openedImpl()
{
m_model->startWatching();
+
+ auto const setting_name = QString("WideBarVisibility_%1").arg(id());
+ if (!APPLICATION->settings()->contains(setting_name))
+ m_wide_bar_setting = APPLICATION->settings()->registerSetting(setting_name);
+ else
+ m_wide_bar_setting = APPLICATION->settings()->getSetting(setting_name);
+
+ ui->actionsToolbar->setVisibilityState(m_wide_bar_setting->get().toByteArray());
}
void ExternalResourcesPage::closedImpl()
{
m_model->stopWatching();
+
+ m_wide_bar_setting->set(ui->actionsToolbar->getVisibilityState());
}
void ExternalResourcesPage::retranslate()
diff --git a/launcher/ui/pages/instance/ExternalResourcesPage.h b/launcher/ui/pages/instance/ExternalResourcesPage.h
index 8e352cef..b816e742 100644
--- a/launcher/ui/pages/instance/ExternalResourcesPage.h
+++ b/launcher/ui/pages/instance/ExternalResourcesPage.h
@@ -4,6 +4,7 @@
#include <QSortFilterProxyModel>
#include "Application.h"
+#include "settings/Setting.h"
#include "minecraft/MinecraftInstance.h"
#include "ui/pages/BasePage.h"
@@ -71,4 +72,6 @@ class ExternalResourcesPage : public QMainWindow, public BasePage {
QString m_viewFilter;
bool m_controlsEnabled = true;
+
+ std::shared_ptr<Setting> m_wide_bar_setting = nullptr;
};
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.cpp b/launcher/ui/pages/instance/ScreenshotsPage.cpp
index c97253e4..0092aef3 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.cpp
+++ b/launcher/ui/pages/instance/ScreenshotsPage.cpp
@@ -537,6 +537,19 @@ void ScreenshotsPage::openedImpl()
ui->listView->setModel(nullptr);
}
}
+
+ auto const setting_name = QString("WideBarVisibility_%1").arg(id());
+ if (!APPLICATION->settings()->contains(setting_name))
+ m_wide_bar_setting = APPLICATION->settings()->registerSetting(setting_name);
+ else
+ m_wide_bar_setting = APPLICATION->settings()->getSetting(setting_name);
+
+ ui->toolBar->setVisibilityState(m_wide_bar_setting->get().toByteArray());
+}
+
+void ScreenshotsPage::closedImpl()
+{
+ m_wide_bar_setting->set(ui->toolBar->getVisibilityState());
}
#include "ScreenshotsPage.moc"
diff --git a/launcher/ui/pages/instance/ScreenshotsPage.h b/launcher/ui/pages/instance/ScreenshotsPage.h
index c22706af..2eb0de04 100644
--- a/launcher/ui/pages/instance/ScreenshotsPage.h
+++ b/launcher/ui/pages/instance/ScreenshotsPage.h
@@ -40,6 +40,8 @@
#include "ui/pages/BasePage.h"
#include <Application.h>
+#include "settings/Setting.h"
+
class QFileSystemModel;
class QIdentityProxyModel;
namespace Ui
@@ -59,7 +61,8 @@ public:
explicit ScreenshotsPage(QString path, QWidget *parent = 0);
virtual ~ScreenshotsPage();
- virtual void openedImpl() override;
+ void openedImpl() override;
+ void closedImpl() override;
enum
{
@@ -110,4 +113,6 @@ private:
QString m_folder;
bool m_valid = false;
bool m_uploadActive = false;
+
+ std::shared_ptr<Setting> m_wide_bar_setting = nullptr;
};
diff --git a/launcher/ui/pages/instance/ServersPage.cpp b/launcher/ui/pages/instance/ServersPage.cpp
index d64bcb76..a625e20b 100644
--- a/launcher/ui/pages/instance/ServersPage.cpp
+++ b/launcher/ui/pages/instance/ServersPage.cpp
@@ -765,11 +765,21 @@ void ServersPage::updateState()
void ServersPage::openedImpl()
{
m_model->observe();
+
+ auto const setting_name = QString("WideBarVisibility_%1").arg(id());
+ if (!APPLICATION->settings()->contains(setting_name))
+ m_wide_bar_setting = APPLICATION->settings()->registerSetting(setting_name);
+ else
+ m_wide_bar_setting = APPLICATION->settings()->getSetting(setting_name);
+
+ ui->toolBar->setVisibilityState(m_wide_bar_setting->get().toByteArray());
}
void ServersPage::closedImpl()
{
m_model->unobserve();
+
+ m_wide_bar_setting->set(ui->toolBar->getVisibilityState());
}
void ServersPage::on_actionAdd_triggered()
diff --git a/launcher/ui/pages/instance/ServersPage.h b/launcher/ui/pages/instance/ServersPage.h
index 37399d49..548d4d1b 100644
--- a/launcher/ui/pages/instance/ServersPage.h
+++ b/launcher/ui/pages/instance/ServersPage.h
@@ -42,6 +42,8 @@
#include "ui/pages/BasePage.h"
#include <Application.h>
+#include "settings/Setting.h"
+
namespace Ui
{
class ServersPage;
@@ -112,5 +114,7 @@ private: // data
Ui::ServersPage *ui = nullptr;
ServersModel * m_model = nullptr;
InstancePtr m_inst = nullptr;
+
+ std::shared_ptr<Setting> m_wide_bar_setting = nullptr;
};
diff --git a/launcher/ui/pages/instance/VersionPage.cpp b/launcher/ui/pages/instance/VersionPage.cpp
index a021c633..84052f37 100644
--- a/launcher/ui/pages/instance/VersionPage.cpp
+++ b/launcher/ui/pages/instance/VersionPage.cpp
@@ -125,6 +125,21 @@ void VersionPage::retranslate()
ui->retranslateUi(this);
}
+void VersionPage::openedImpl()
+{
+ auto const setting_name = QString("WideBarVisibility_%1").arg(id());
+ if (!APPLICATION->settings()->contains(setting_name))
+ m_wide_bar_setting = APPLICATION->settings()->registerSetting(setting_name);
+ else
+ m_wide_bar_setting = APPLICATION->settings()->getSetting(setting_name);
+
+ ui->toolBar->setVisibilityState(m_wide_bar_setting->get().toByteArray());
+}
+void VersionPage::closedImpl()
+{
+ m_wide_bar_setting->set(ui->toolBar->getVisibilityState());
+}
+
QMenu * VersionPage::createPopupMenu()
{
QMenu* filteredMenu = QMainWindow::createPopupMenu();
diff --git a/launcher/ui/pages/instance/VersionPage.h b/launcher/ui/pages/instance/VersionPage.h
index 979311fc..9996e776 100644
--- a/launcher/ui/pages/instance/VersionPage.h
+++ b/launcher/ui/pages/instance/VersionPage.h
@@ -69,6 +69,9 @@ public:
virtual bool shouldDisplay() const override;
void retranslate() override;
+ void openedImpl() override;
+ void closedImpl() override;
+
private slots:
void on_actionChange_version_triggered();
void on_actionInstall_Forge_triggered();
@@ -114,6 +117,8 @@ private:
int currentIdx = 0;
bool controlsEnabled = false;
+ std::shared_ptr<Setting> m_wide_bar_setting = nullptr;
+
public slots:
void versionCurrent(const QModelIndex &current, const QModelIndex &previous);
diff --git a/launcher/ui/pages/instance/WorldListPage.cpp b/launcher/ui/pages/instance/WorldListPage.cpp
index 85cc01ff..93458ce4 100644
--- a/launcher/ui/pages/instance/WorldListPage.cpp
+++ b/launcher/ui/pages/instance/WorldListPage.cpp
@@ -113,11 +113,21 @@ WorldListPage::WorldListPage(BaseInstance *inst, std::shared_ptr<WorldList> worl
void WorldListPage::openedImpl()
{
m_worlds->startWatching();
+
+ auto const setting_name = QString("WideBarVisibility_%1").arg(id());
+ if (!APPLICATION->settings()->contains(setting_name))
+ m_wide_bar_setting = APPLICATION->settings()->registerSetting(setting_name);
+ else
+ m_wide_bar_setting = APPLICATION->settings()->getSetting(setting_name);
+
+ ui->toolBar->setVisibilityState(m_wide_bar_setting->get().toByteArray());
}
void WorldListPage::closedImpl()
{
m_worlds->stopWatching();
+
+ m_wide_bar_setting->set(ui->toolBar->getVisibilityState());
}
WorldListPage::~WorldListPage()
diff --git a/launcher/ui/pages/instance/WorldListPage.h b/launcher/ui/pages/instance/WorldListPage.h
index 1dc9e53e..925521be 100644
--- a/launcher/ui/pages/instance/WorldListPage.h
+++ b/launcher/ui/pages/instance/WorldListPage.h
@@ -42,6 +42,8 @@
#include <Application.h>
#include <LoggedProcess.h>
+#include "settings/Setting.h"
+
class WorldList;
namespace Ui
{
@@ -102,6 +104,8 @@ private:
unique_qobject_ptr<LoggedProcess> m_mceditProcess;
bool m_mceditStarting = false;
+ std::shared_ptr<Setting> m_wide_bar_setting = nullptr;
+
private slots:
void on_actionCopy_Seed_triggered();
void on_actionMCEdit_triggered();