summaryrefslogtreecommitdiffstats
path: root/application/SettingsUI.h
diff options
context:
space:
mode:
Diffstat (limited to 'application/SettingsUI.h')
-rw-r--r--application/SettingsUI.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/application/SettingsUI.h b/application/SettingsUI.h
new file mode 100644
index 00000000..1e6dc8d0
--- /dev/null
+++ b/application/SettingsUI.h
@@ -0,0 +1,28 @@
+#pragma once
+#include "pages/BasePageProvider.h"
+#include "MultiMC.h"
+#include "pagedialog/PageDialog.h"
+#include "InstancePageProvider.h"
+#include <settings/SettingsObject.h>
+#include <BaseInstance.h>
+
+/*
+ * FIXME: this is a fragment. find a better place for it.
+ */
+namespace SettingsUI
+{
+template <typename T>
+void ShowPageDialog(T raw_provider, QWidget * parent, QString open_page = QString())
+{
+ auto provider = std::dynamic_pointer_cast<BasePageProvider>(raw_provider);
+ if(!provider)
+ return;
+ {
+ SettingsObject::Lock lock(MMC->settings());
+ PageDialog dlg(provider, open_page, parent);
+ dlg.exec();
+ }
+}
+
+void ShowInstancePageDialog(InstancePtr instance, QWidget * parent, QString open_page = QString());
+}