From 2d52299743d056ae6da3c98ca9dc34abca3138bf Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Mon, 27 May 2019 12:07:10 -0400 Subject: multiple selection for noconflict and overwritten lists set uniformRowHeights for all three lists for faster rendering, all items are text only all three lists use the same code for the context menu: - createConflictMenuActions() returns a struct with the QActions that are valid for the selection - showConflictMenu() plugs in the handlers and shows the menu --- src/modinfodialog.h | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'src/modinfodialog.h') diff --git a/src/modinfodialog.h b/src/modinfodialog.h index c0730afa..983da8d4 100644 --- a/src/modinfodialog.h +++ b/src/modinfodialog.h @@ -329,18 +329,6 @@ private: int tabIndex(const QString &tabId); private slots: - - void hideConflictFiles(); - void unhideConflictFiles(); - void previewOverwriteDataFile(); - void openOverwriteDataFile(); - - void previewOverwrittenDataFile(); - void openOverwrittenDataFile(); - - void previewNoConflictDataFile(); - void openNoConflictDataFile(); - void thumbnailClicked(const QString &fileName); void linkClicked(const QUrl &url); void linkClicked(QString url); @@ -393,6 +381,18 @@ private slots: void createTweak(); private: + struct ConflictActions + { + QAction* hide; + QAction* unhide; + QAction* open; + QAction* preview; + + ConflictActions() + : hide(nullptr), unhide(nullptr), open(nullptr), preview(nullptr) + { + } + }; Ui::ModInfoDialog *ui; @@ -442,12 +442,21 @@ private: void openDataFile(const QTreeWidgetItem* item); void previewDataFile(const QTreeWidgetItem* item); - void changeConflictFilesVisibility(bool hide); - void changeFiletreeVisibility(bool hide); + void changeFiletreeVisibility(bool visible); + + void openConflictItems(const QList& items); + void previewConflictItems(const QList& items); + void changeConflictItemsVisibility( + const QList& items, bool visible); bool canPreviewFile(bool isArchive, const QString& filename) const; bool canHideFile(bool isArchive, const QString& filename) const; bool canUnhideFile(bool isArchive, const QString& filename) const; + + void showConflictMenu(const QPoint &pos, QTreeWidget* tree); + + ConflictActions createConflictMenuActions( + const QList selection); }; #endif // MODINFODIALOG_H -- cgit v1.3.1