summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikaël Capelle <capelle.mikael@gmail.com>2020-12-31 22:30:19 +0100
committerMikaël Capelle <capelle.mikael@gmail.com>2021-01-02 15:38:18 +0100
commitb5ce6eb8e7ba67f15dcffe0639d7012088c53ebe (patch)
tree20fdde00677a8f41b59205860ca38ae17ad69a8b
parentbd34b532230d92bd6232ceb1ab2b0092cac79d22 (diff)
Move open-explorer key combination to views.
-rw-r--r--src/mainwindow.cpp42
-rw-r--r--src/mainwindow.h3
-rw-r--r--src/modlistview.cpp28
-rw-r--r--src/modlistviewactions.cpp4
-rw-r--r--src/pluginlistview.cpp17
5 files changed, 38 insertions, 56 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index a530fbf4..9b254250 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -450,9 +450,6 @@ MainWindow::MainWindow(Settings &settings
connect(ui->espList->selectionModel(), SIGNAL(selectionChanged(QItemSelection, QItemSelection)), this, SLOT(esplistSelectionsChanged(QItemSelection)));
- new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Enter), this, SLOT(openExplorer_activated()));
- new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Return), this, SLOT(openExplorer_activated()));
-
setFilterShortcuts(ui->modList, ui->modFilterEdit);
setFilterShortcuts(ui->espList, ui->espFilterEdit);
setFilterShortcuts(ui->downloadView, ui->downloadFilterEdit);
@@ -2340,45 +2337,6 @@ void MainWindow::setWindowEnabled(bool enabled)
setEnabled(enabled);
}
-void MainWindow::openExplorer_activated()
-{
- if (ui->modList->hasFocus()) {
- QItemSelectionModel *selection = ui->modList->selectionModel();
- if (selection->hasSelection() && selection->selectedRows().count() == 1 ) {
-
- QModelIndex idx = selection->currentIndex();
- ModInfo::Ptr modInfo = ModInfo::getByIndex(idx.data(ModList::IndexRole).toInt());
- std::vector<ModInfo::EFlag> flags = modInfo->getFlags();
-
- if (modInfo->isRegular() || (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end())) {
- shell::Explore(modInfo->absolutePath());
- }
-
- }
- }
-
- if (ui->espList->hasFocus()) {
- QItemSelectionModel *selection = ui->espList->selectionModel();
-
- if (selection->hasSelection() && selection->selectedRows().count() == 1) {
-
- QModelIndex idx = selection->currentIndex();
- QString fileName = idx.data().toString();
-
-
- unsigned int modInfoIndex = ModInfo::getIndex(m_OrganizerCore.pluginList()->origin(fileName));
- if (modInfoIndex != UINT_MAX) {
- ModInfo::Ptr modInfo = ModInfo::getByIndex(modInfoIndex);
- std::vector<ModInfo::EFlag> flags = modInfo->getFlags();
-
- if (modInfo->isRegular() || (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end())) {
- shell::Explore(modInfo->absolutePath());
- }
- }
- }
- }
-}
-
void MainWindow::refreshProfile_activated()
{
m_OrganizerCore.profileRefresh();
diff --git a/src/mainwindow.h b/src/mainwindow.h
index 5e3cc798..404df36b 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -316,8 +316,7 @@ private slots:
void tutorialTriggered();
void extractBSATriggered(QTreeWidgetItem* item);
- //modlist shortcuts
- void openExplorer_activated();
+ // modlist shortcuts
void refreshProfile_activated();
void linkToolbar();
diff --git a/src/modlistview.cpp b/src/modlistview.cpp
index 082d947e..22a673d1 100644
--- a/src/modlistview.cpp
+++ b/src/modlistview.cpp
@@ -964,20 +964,28 @@ void ModListView::timerEvent(QTimerEvent* event)
bool ModListView::event(QEvent* event)
{
- Profile* profile = m_core->currentProfile();
- if (event->type() == QEvent::KeyPress && profile) {
+ if (event->type() == QEvent::KeyPress) {
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
if (keyEvent->modifiers() == Qt::ControlModifier
- && sortColumn() == ModList::COL_PRIORITY
- && (keyEvent->key() == Qt::Key_Up || keyEvent->key() == Qt::Key_Down)) {
- return moveSelection(keyEvent->key());
- }
- else if (keyEvent->key() == Qt::Key_Delete) {
- return removeSelection();
+ && (keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter)) {
+ if (selectionModel()->hasSelection() && selectionModel()->selectedRows().count() == 1) {
+ m_actions->openExplorer({ indexViewToModel(selectionModel()->currentIndex()) });
+ return true;
+ }
}
- else if (keyEvent->key() == Qt::Key_Space) {
- return toggleSelectionState();
+ else if (m_core->currentProfile()) {
+ if (keyEvent->modifiers() == Qt::ControlModifier
+ && sortColumn() == ModList::COL_PRIORITY
+ && (keyEvent->key() == Qt::Key_Up || keyEvent->key() == Qt::Key_Down)) {
+ return moveSelection(keyEvent->key());
+ }
+ else if (keyEvent->key() == Qt::Key_Delete) {
+ return removeSelection();
+ }
+ else if (keyEvent->key() == Qt::Key_Space) {
+ return toggleSelectionState();
+ }
}
return QTreeView::event(event);
}
diff --git a/src/modlistviewactions.cpp b/src/modlistviewactions.cpp
index f0d4c4c7..83133404 100644
--- a/src/modlistviewactions.cpp
+++ b/src/modlistviewactions.cpp
@@ -986,7 +986,9 @@ void ModListViewActions::openExplorer(const QModelIndexList& index) const
{
for (auto& idx : index) {
ModInfo::Ptr info = ModInfo::getByIndex(idx.data(ModList::IndexRole).toInt());
- shell::Explore(info->absolutePath());
+ if (!info->isForeign()) {
+ shell::Explore(info->absolutePath());
+ }
}
}
diff --git a/src/pluginlistview.cpp b/src/pluginlistview.cpp
index 16e3dac0..4bf91c0a 100644
--- a/src/pluginlistview.cpp
+++ b/src/pluginlistview.cpp
@@ -247,11 +247,26 @@ bool PluginListView::toggleSelectionState()
bool PluginListView::event(QEvent* event)
{
- Profile* profile = m_core->currentProfile();
+ auto* profile = m_core->currentProfile();
if (event->type() == QEvent::KeyPress && profile) {
QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event);
if (keyEvent->modifiers() == Qt::ControlModifier
+ && (keyEvent->key() == Qt::Key_Return || keyEvent->key() == Qt::Key_Enter)) {
+ if (selectionModel()->hasSelection() && selectionModel()->selectedRows().count() == 1) {
+ QModelIndex idx = selectionModel()->currentIndex();
+ QString fileName = idx.data().toString();
+
+ if (ModInfo::getIndex(m_core->pluginList()->origin(fileName)) == UINT_MAX) {
+ return false;
+ }
+
+ auto modIndex = ModInfo::getIndex(m_core->pluginList()->origin(fileName));
+ m_modActions->openExplorer({ m_core->modList()->index(modIndex, 0) });
+ return true;
+ }
+ }
+ else if (keyEvent->modifiers() == Qt::ControlModifier
&& (sortColumn() == PluginList::COL_PRIORITY || sortColumn() == PluginList::COL_MODINDEX)
&& (keyEvent->key() == Qt::Key_Up || keyEvent->key() == Qt::Key_Down)) {
return moveSelection(keyEvent->key());