diff options
| author | Seth Riley <17361645+Qudix@users.noreply.github.com> | 2020-11-06 12:02:43 -0600 |
|---|---|---|
| committer | Seth Riley <17361645+Qudix@users.noreply.github.com> | 2020-11-06 12:02:43 -0600 |
| commit | ed1085d5673e0d307a6172eaaa1be1e9d70e2234 (patch) | |
| tree | 1e068a2f08e106c8ce15be7034f19336836cc17a /src/instancemanagerdialog.h | |
| parent | 34e1d05c28bf4676ed8d3e97e969187a05d215b6 (diff) | |
| parent | b909677c3fc6a7b7a1993d341a2bd420715e292a (diff) | |
Merge branch 'master' of https://github.com/ModOrganizer2/modorganizer into master
Diffstat (limited to 'src/instancemanagerdialog.h')
| -rw-r--r-- | src/instancemanagerdialog.h | 68 |
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 |
