From 3db95eb4043b8da20e99dd7476bc82468a4609fb Mon Sep 17 00:00:00 2001 From: isanae <14251494+isanae@users.noreply.github.com> Date: Sun, 9 Feb 2020 04:14:46 -0500 Subject: customizable columns for mod and plugin lists --- src/mainwindow.cpp | 32 -------------------------------- src/mainwindow.h | 3 --- src/modlist.cpp | 10 +--------- src/modlist.h | 6 ------ src/modlistview.cpp | 2 ++ src/organizercore.cpp | 2 -- src/pluginlistview.cpp | 2 ++ 7 files changed, 5 insertions(+), 52 deletions(-) (limited to 'src') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 0efb043b..3e03c52d 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -5818,38 +5818,6 @@ void MainWindow::extractBSATriggered() } } - -void MainWindow::displayColumnSelection(const QPoint &pos) -{ - QMenu menu; - - // display a list of all headers as checkboxes - QAbstractItemModel *model = ui->modList->header()->model(); - for (int i = 1; i < model->columnCount(); ++i) { - QString columnName = model->headerData(i, Qt::Horizontal).toString(); - QCheckBox *checkBox = new QCheckBox(&menu); - checkBox->setText(columnName); - checkBox->setChecked(!ui->modList->header()->isSectionHidden(i)); - QWidgetAction *checkableAction = new QWidgetAction(&menu); - checkableAction->setDefaultWidget(checkBox); - menu.addAction(checkableAction); - } - menu.exec(pos); - - // view/hide columns depending on check-state - int i = 1; - for (const QAction *action : menu.actions()) { - const QWidgetAction *widgetAction = qobject_cast(action); - if (widgetAction != nullptr) { - const QCheckBox *checkBox = qobject_cast(widgetAction->defaultWidget()); - if (checkBox != nullptr) { - ui->modList->header()->setSectionHidden(i, !checkBox->isChecked()); - } - } - ++i; - } -} - void MainWindow::on_bsaList_customContextMenuRequested(const QPoint &pos) { m_ContextItem = ui->bsaList->itemAt(pos); diff --git a/src/mainwindow.h b/src/mainwindow.h index 1016c061..6530d8ad 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -153,9 +153,6 @@ public: ModInfo::Ptr previousModInList(); public slots: - - void displayColumnSelection(const QPoint &pos); - void modorder_changed(); void esplist_changed(); void refresher_progress(int percent); diff --git a/src/modlist.cpp b/src/modlist.cpp index 31eb8387..afc1b65f 100644 --- a/src/modlist.cpp +++ b/src/modlist.cpp @@ -1434,15 +1434,7 @@ bool ModList::toggleSelection(QAbstractItemView *itemView) bool ModList::eventFilter(QObject *obj, QEvent *event) { - if (event->type() == QEvent::ContextMenu) { - QContextMenuEvent *contextEvent = static_cast(event); - QWidget *object = qobject_cast(obj); - if ((object != nullptr) && (contextEvent->reason() == QContextMenuEvent::Mouse)) { - emit requestColumnSelect(object->mapToGlobal(contextEvent->pos())); - - return true; - } - } else if ((event->type() == QEvent::KeyPress) && (m_Profile != nullptr)) { + if ((event->type() == QEvent::KeyPress) && (m_Profile != nullptr)) { QAbstractItemView *itemView = qobject_cast(obj); QKeyEvent *keyEvent = static_cast(event); diff --git a/src/modlist.h b/src/modlist.h index 9a44b761..7452b28b 100644 --- a/src/modlist.h +++ b/src/modlist.h @@ -201,12 +201,6 @@ signals: */ void resizeHeaders(); - /** - * @brief requestColumnSelect is emitted whenever the user requested a menu to select visible columns - * @param pos the position to display the menu at - */ - void requestColumnSelect(QPoint pos); - /** * @brief emitted to remove a file origin * @param name name of the orign to remove diff --git a/src/modlistview.cpp b/src/modlistview.cpp index fe2d3e57..c6dbc6ea 100644 --- a/src/modlistview.cpp +++ b/src/modlistview.cpp @@ -1,4 +1,5 @@ #include "modlistview.h" +#include #include #include #include @@ -39,6 +40,7 @@ ModListView::ModListView(QWidget *parent) , m_Scrollbar(new ViewMarkingScrollBar(this->model(), this)) { setVerticalScrollBar(m_Scrollbar); + MOBase::setCustomizableColumns(this); } void ModListView::dragEnterEvent(QDragEnterEvent *event) diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 04d78ca8..8124be1d 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -234,8 +234,6 @@ void OrganizerCore::setUserInterface(IUserInterface* ui) SLOT(removeMod_clicked())); connect(&m_ModList, SIGNAL(clearOverwrite()), w, SLOT(clearOverwrite())); - connect(&m_ModList, SIGNAL(requestColumnSelect(QPoint)), w, - SLOT(displayColumnSelection(QPoint))); connect(&m_ModList, SIGNAL(fileMoved(QString, QString, QString)), w, SLOT(fileMoved(QString, QString, QString))); connect(&m_ModList, SIGNAL(modorder_changed()), w, diff --git a/src/pluginlistview.cpp b/src/pluginlistview.cpp index 0fcf8183..4217971d 100644 --- a/src/pluginlistview.cpp +++ b/src/pluginlistview.cpp @@ -1,4 +1,5 @@ #include "pluginlistview.h" +#include #include #include #include @@ -40,6 +41,7 @@ PluginListView::PluginListView(QWidget *parent) , m_Scrollbar(new ViewMarkingScrollBar(this->model(), this)) { setVerticalScrollBar(m_Scrollbar); + MOBase::setCustomizableColumns(this); } void PluginListView::dragEnterEvent(QDragEnterEvent *event) -- cgit v1.3.1