aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/pages/modplatform/ModPage.cpp
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-07-15 09:34:11 -0300
committerflow <flowlnlnln@gmail.com>2022-08-01 07:33:29 -0300
commita8bcd85c93ad1e5af277652862f773413c255c47 (patch)
tree89fc4c891ac637a54265f7ba1d37cc5a48a7cad3 /launcher/ui/pages/modplatform/ModPage.cpp
parent127b558f9573daece14fe7140bc2242010fbaa9e (diff)
downloadPrismLauncher-a8bcd85c93ad1e5af277652862f773413c255c47.tar.gz
PrismLauncher-a8bcd85c93ad1e5af277652862f773413c255c47.tar.bz2
PrismLauncher-a8bcd85c93ad1e5af277652862f773413c255c47.zip
feat+refactor: add shortcuts to mod downloader and clean up
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/ui/pages/modplatform/ModPage.cpp')
-rw-r--r--launcher/ui/pages/modplatform/ModPage.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/launcher/ui/pages/modplatform/ModPage.cpp b/launcher/ui/pages/modplatform/ModPage.cpp
index a9a37b4b..c355f069 100644
--- a/launcher/ui/pages/modplatform/ModPage.cpp
+++ b/launcher/ui/pages/modplatform/ModPage.cpp
@@ -76,6 +76,7 @@ ModPage::ModPage(ModDownloadDialog* dialog, BaseInstance* instance, ModAPI* api)
});
ui->packView->setItemDelegate(new ProjectItemDelegate(this));
+ ui->packView->installEventFilter(this);
}
ModPage::~ModPage()
@@ -101,6 +102,18 @@ auto ModPage::eventFilter(QObject* watched, QEvent* event) -> bool
keyEvent->accept();
return true;
}
+ } else if (watched == ui->packView && event->type() == QEvent::KeyPress) {
+ auto* keyEvent = dynamic_cast<QKeyEvent*>(event);
+ if (keyEvent->key() == Qt::Key_Return) {
+ onModSelected();
+
+ // To have the 'select mod' button outlined instead of the 'review and confirm' one
+ ui->modSelectionButton->setFocus(Qt::FocusReason::ShortcutFocusReason);
+ ui->packView->setFocus(Qt::FocusReason::NoFocusReason);
+
+ keyEvent->accept();
+ return true;
+ }
}
return QWidget::eventFilter(watched, event);
}
@@ -172,6 +185,9 @@ void ModPage::onVersionSelectionChanged(QString data)
void ModPage::onModSelected()
{
+ if (selectedVersion < 0)
+ return;
+
auto& version = current.versions[selectedVersion];
if (dialog->isModSelected(current.name, version.fileName)) {
dialog->removeSelectedMod(current.name);