summaryrefslogtreecommitdiff
path: root/src/modinfodialogconflicts.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-19 17:24:23 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-02 10:10:17 -0400
commitc98115e2f6f59b807382c41256d7f1a86009aa40 (patch)
tree88a78f5e805981a9981604c2f997d0795a35d102 /src/modinfodialogconflicts.h
parentf8a037a409d1b6bbb2f34b237b8b66d454179f56 (diff)
in the process of moving stuff to modinfodialogconflicts.h/cpp
Diffstat (limited to 'src/modinfodialogconflicts.h')
-rw-r--r--src/modinfodialogconflicts.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/modinfodialogconflicts.h b/src/modinfodialogconflicts.h
new file mode 100644
index 00000000..894f9dd4
--- /dev/null
+++ b/src/modinfodialogconflicts.h
@@ -0,0 +1,86 @@
+#ifndef MODINFODIALOGCONFLICTS_H
+#define MODINFODIALOGCONFLICTS_H
+
+#include "modinfodialog.h"
+#include "expanderwidget.h"
+
+class GeneralConflictsTab
+{
+public:
+ GeneralConflictsTab(Ui::ModInfoDialog* ui, OrganizerCore& oc);
+
+ void saveState(Settings& s);
+ void restoreState(const Settings& s);
+
+ void rebuild(ModInfo::Ptr mod, MOShared::FilesOrigin* origin);
+ void update();
+
+private:
+ struct Expanders
+ {
+ ExpanderWidget overwrite, overwritten, nonconflict;
+ };
+
+ Ui::ModInfoDialog* ui;
+ OrganizerCore& m_core;
+ ModInfo::Ptr m_mod;
+ MOShared::FilesOrigin* m_origin;
+ Expanders m_expanders;
+
+ QTreeWidgetItem* createOverwriteItem(
+ MOShared::FileEntry::Index index, bool archive,
+ const QString& fileName, const QString& relativeName,
+ const MOShared::FileEntry::AlternativesVector& alternatives);
+
+ QTreeWidgetItem* createNoConflictItem(
+ MOShared::FileEntry::Index index, bool archive,
+ const QString& fileName, const QString& relativeName);
+
+ QTreeWidgetItem* createOverwrittenItem(
+ MOShared::FileEntry::Index index, int fileOrigin, bool archive,
+ const QString& fileName, const QString& relativeName);
+
+ void onOverwriteActivated(QTreeWidgetItem* item, int);
+};
+
+
+class AdvancedConflictsTab
+{
+public:
+ AdvancedConflictsTab(Ui::ModInfoDialog* ui, OrganizerCore& oc);
+
+ void saveState(Settings& s);
+ void restoreState(const Settings& s);
+
+ void rebuild(ModInfo::Ptr mod, MOShared::FilesOrigin* origin);
+ void update();
+
+private:
+ Ui::ModInfoDialog* ui;
+ OrganizerCore& m_core;
+ ModInfo::Ptr m_mod;
+ MOShared::FilesOrigin* m_origin;
+ FilterWidget m_filter;
+
+ QTreeWidgetItem* createItem(
+ MOShared::FileEntry::Index index, int fileOrigin, bool archive,
+ const QString& fileName, const QString& relativeName,
+ const MOShared::FileEntry::AlternativesVector& alternatives);
+};
+
+
+class ConflictsTab : public ModInfoDialogTab
+{
+public:
+ ConflictsTab(Ui::ModInfoDialog* ui, OrganizerCore& oc);
+
+ void saveState(Settings& s) override;
+ void restoreState(const Settings& s) override;
+
+private:
+ Ui::ModInfoDialog* ui;
+ GeneralConflictsTab m_general;
+ AdvancedConflictsTab m_advanced;
+};
+
+#endif // MODINFODIALOGCONFLICTS_H