summaryrefslogtreecommitdiff
path: root/src/modinfodialogconflicts.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-24 14:50:55 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-02 10:10:18 -0400
commit1e54b4b57682b544bca0bb9d563fdb3d747073f2 (patch)
treec06ea269c02f4946060ba1cb458c44916e21f136 /src/modinfodialogconflicts.h
parent4ee9f29cdcb3df2a085e02fa29c8ae3ddbd27f1c (diff)
switched all conflict lists to QTreeView with custom model
Diffstat (limited to 'src/modinfodialogconflicts.h')
-rw-r--r--src/modinfodialogconflicts.h37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/modinfodialogconflicts.h b/src/modinfodialogconflicts.h
index f499d1a4..f0c0c589 100644
--- a/src/modinfodialogconflicts.h
+++ b/src/modinfodialogconflicts.h
@@ -6,10 +6,12 @@
#include "filterwidget.h"
#include "directoryentry.h"
#include <QTreeWidget>
+#include <optional>
class ConflictsTab;
class OrganizerCore;
class ConflictItem;
+class ConflictListModel;
class GeneralConflictsTab : public QObject
{
@@ -39,21 +41,25 @@ private:
OrganizerCore& m_core;
Expanders m_expanders;
- QTreeWidgetItem* createOverwriteItem(
+ ConflictListModel* m_overwriteModel;
+ ConflictListModel* m_overwrittenModel;
+ ConflictListModel* m_noConflictModel;
+
+ ConflictItem createOverwriteItem(
MOShared::FileEntry::Index index, bool archive,
const QString& fileName, const QString& relativeName,
const MOShared::FileEntry::AlternativesVector& alternatives);
- QTreeWidgetItem* createNoConflictItem(
+ ConflictItem createNoConflictItem(
MOShared::FileEntry::Index index, bool archive,
const QString& fileName, const QString& relativeName);
- QTreeWidgetItem* createOverwrittenItem(
+ ConflictItem createOverwrittenItem(
MOShared::FileEntry::Index index, int fileOrigin, bool archive,
const QString& fileName, const QString& relativeName);
- void onOverwriteActivated(QTreeWidgetItem* item, int);
- void onOverwrittenActivated(QTreeWidgetItem *item, int);
+ void onOverwriteActivated(const QModelIndex& index);
+ void onOverwrittenActivated(const QModelIndex& index);
void onOverwriteTreeContext(const QPoint &pos);
void onOverwrittenTreeContext(const QPoint &pos);
@@ -61,8 +67,6 @@ private:
};
-class AdvancedListModel;
-
class AdvancedConflictsTab : public QObject
{
Q_OBJECT;
@@ -85,9 +89,9 @@ private:
Ui::ModInfoDialog* ui;
OrganizerCore& m_core;
FilterWidget m_filter;
- AdvancedListModel* m_model;
+ ConflictListModel* m_model;
- void addItem(
+ std::optional<ConflictItem> createItem(
MOShared::FileEntry::Index index, int fileOrigin, bool archive,
const QString& fileName, const QString& relativeName,
const MOShared::FileEntry::AlternativesVector& alternatives);
@@ -109,13 +113,12 @@ public:
void restoreState(const Settings& s) override;
bool canHandleUnmanaged() const override;
- void openItems(const QList<QTreeWidgetItem*>& items);
- void previewItems(const QList<QTreeWidgetItem*>& items);
+ void openItems(QTreeView* tree);
+ void previewItems(QTreeView* tree);
- void changeItemsVisibility(
- const QList<QTreeWidgetItem*>& items, bool visible);
+ void changeItemsVisibility(QTreeView* tree, bool visible);
- void showContextMenu(const QPoint &pos, QTreeWidget* tree);
+ void showContextMenu(const QPoint &pos, QTreeView* tree);
private:
struct Actions
@@ -131,10 +134,8 @@ private:
GeneralConflictsTab m_general;
AdvancedConflictsTab m_advanced;
- Actions createMenuActions(const QList<QTreeWidgetItem*>& selection);
-
- std::vector<QAction*> createGotoActions(
- const QList<QTreeWidgetItem*>& selection);
+ Actions createMenuActions(QTreeView* tree);
+ std::vector<QAction*> createGotoActions(const ConflictItem* item);
};
#endif // MODINFODIALOGCONFLICTS_H