summaryrefslogtreecommitdiff
path: root/src/instancemanagerdialog.h
diff options
context:
space:
mode:
authorSeth Riley <17361645+Qudix@users.noreply.github.com>2020-11-06 12:02:43 -0600
committerSeth Riley <17361645+Qudix@users.noreply.github.com>2020-11-06 12:02:43 -0600
commited1085d5673e0d307a6172eaaa1be1e9d70e2234 (patch)
tree1e068a2f08e106c8ce15be7034f19336836cc17a /src/instancemanagerdialog.h
parent34e1d05c28bf4676ed8d3e97e969187a05d215b6 (diff)
parentb909677c3fc6a7b7a1993d341a2bd420715e292a (diff)
Merge branch 'master' of https://github.com/ModOrganizer2/modorganizer into master
Diffstat (limited to 'src/instancemanagerdialog.h')
-rw-r--r--src/instancemanagerdialog.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/instancemanagerdialog.h b/src/instancemanagerdialog.h
new file mode 100644
index 00000000..5b08ffc2
--- /dev/null
+++ b/src/instancemanagerdialog.h
@@ -0,0 +1,68 @@
+#ifndef MODORGANIZER_INSTANCEMANAGERDIALOG_INCLUDED
+#define MODORGANIZER_INSTANCEMANAGERDIALOG_INCLUDED
+
+#include <filterwidget.h>
+#include <QDialog>
+
+namespace Ui { class InstanceManagerDialog; };
+
+class InstanceInfo;
+class PluginContainer;
+
+class InstanceManagerDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit InstanceManagerDialog(
+ const PluginContainer& pc, QWidget *parent = nullptr);
+
+ ~InstanceManagerDialog();
+
+ void select(std::size_t i);
+ void select(const QString& name);
+ void selectActiveInstance();
+ void openSelectedInstance();
+
+ void rename();
+ void exploreLocation();
+ void exploreBaseDirectory();
+ void exploreGame();
+
+ void convertToGlobal();
+ void convertToPortable();
+ void openINI();
+ void deleteInstance();
+
+ void setRestartOnSelect(bool b);
+
+private:
+ static const std::size_t NoSelection = -1;
+
+ std::unique_ptr<Ui::InstanceManagerDialog> ui;
+ const PluginContainer& m_pc;
+ std::vector<std::unique_ptr<InstanceInfo>> m_instances;
+ MOBase::FilterWidget m_filter;
+ QStandardItemModel* m_model;
+ bool m_restartOnSelect;
+
+ void updateInstances();
+
+ void onSelection();
+ void createNew();
+
+ std::size_t singleSelectionIndex() const;
+ InstanceInfo* singleSelection();
+ const InstanceInfo* singleSelection() const;
+
+ void updateList();
+ void fillData(const InstanceInfo& ii);
+ void clearData();
+ void setButtonsEnabled(bool b);
+
+ bool deletePortable(const InstanceInfo& ii);
+ bool deleteGlobal(const InstanceInfo& ii);
+ bool doDelete(const QStringList& files, bool recycle);
+};
+
+#endif // MODORGANIZER_INSTANCEMANAGERDIALOG_INCLUDED