diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-05-31 15:15:47 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2019-05-31 15:15:47 -0400 |
| commit | fa7e34e84a09ed7a2f453a35a48e71477c841e5b (patch) | |
| tree | d70321d596fa1fde1a25cd84868f2275a2cbebb2 /src/modinfodialog.h | |
| parent | a6dbb1d7668a2219811fec71a55294e1db6d14aa (diff) | |
conflict lists:
- the file index is now stored in the row data
- the alternate origins are now added to the context menu in a "go to" submenu
- context menu items are now visually disabled instead of omitted from the menu
Diffstat (limited to 'src/modinfodialog.h')
| -rw-r--r-- | src/modinfodialog.h | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/modinfodialog.h b/src/modinfodialog.h index 85505487..8510c96d 100644 --- a/src/modinfodialog.h +++ b/src/modinfodialog.h @@ -385,15 +385,20 @@ private slots: void createTweak();
private:
+ using FileEntry = MOShared::FileEntry;
+
struct ConflictActions
{
QAction* hide;
QAction* unhide;
QAction* open;
QAction* preview;
+ QMenu* gotoMenu;
+ std::vector<QAction*> gotoActions;
- ConflictActions()
- : hide(nullptr), unhide(nullptr), open(nullptr), preview(nullptr)
+ ConflictActions() :
+ hide(nullptr), unhide(nullptr), open(nullptr), preview(nullptr),
+ gotoMenu(nullptr)
{
}
};
@@ -438,28 +443,33 @@ private: void refreshFiles();
QTreeWidgetItem* createOverwriteItem(
- bool archive, const QString& fileName, const QString& relativeName,
+ FileEntry::Index index, bool archive,
+ const QString& fileName, const QString& relativeName,
const MOShared::FileEntry::AlternativesVector& alternatives);
QTreeWidgetItem* createNoConflictItem(
- bool archive, const QString& fileName, const QString& relativeName);
+ FileEntry::Index index, bool archive,
+ const QString& fileName, const QString& relativeName);
QTreeWidgetItem* createOverwrittenItem(
- int fileOrigin, bool archive,
+ FileEntry::Index index, int fileOrigin, bool archive,
const QString& fileName, const QString& relativeName);
QTreeWidgetItem* createAdvancedConflictItem(
- int fileOrigin, bool archive,
+ FileEntry::Index index, int fileOrigin, bool archive,
const QString& fileName, const QString& relativeName,
const MOShared::FileEntry::AlternativesVector& alternatives);
void setConflictItem(
- QTreeWidgetItem* item,
- const QString& fileName, const QString& origin, bool archive) const;
+ QTreeWidgetItem* item, FileEntry::Index index,
+ const QString& fileName, bool hasAltOrigins, const QString& altOrigin,
+ bool archive) const;
QString conflictFileName(const QTreeWidgetItem* conflictItem) const;
- QString conflictOrigin(const QTreeWidgetItem* conflictItem) const;
+ QString conflictAltOrigin(const QTreeWidgetItem* conflictItem) const;
+ bool conflictHasAlts(const QTreeWidgetItem* conflictItem) const;
bool conflictIsArchive(const QTreeWidgetItem* conflictItem) const;
+ FileEntry::Index conflictFileIndex(const QTreeWidgetItem* conflictItem) const;
void restoreTabState(const QByteArray &state);
void restoreConflictsState(const QByteArray &state);
@@ -487,7 +497,10 @@ private: void showConflictMenu(const QPoint &pos, QTreeWidget* tree);
ConflictActions createConflictMenuActions(
- const QList<QTreeWidgetItem*> selection);
+ const QList<QTreeWidgetItem*>& selection);
+
+ std::vector<QAction*> createGotoActions(
+ const QList<QTreeWidgetItem*>& selection);
};
#endif // MODINFODIALOG_H
|
