diff options
Diffstat (limited to 'application/SettingsUI.h')
-rw-r--r-- | application/SettingsUI.h | 28 |
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()); +} |