summaryrefslogtreecommitdiff
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2020-04-17 10:31:47 -0400
committerGitHub <noreply@github.com>2020-04-17 10:31:47 -0400
commit855650215f5011082f6a3fa4dcfb69b040367911 (patch)
treec744c49d7c62c1051c99a12b793377ae40113e1f /src/mainwindow.cpp
parentff912b5f6199ade55a4eaff1c8e7eefb8145c970 (diff)
parent21166f820bc793111ad40a950807dc84e961fad5 (diff)
Merge pull request #1054 from isanae/bunch-of-fixes
Bunch of fixes
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp79
1 files changed, 41 insertions, 38 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index b36a1df8..a359d94c 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -204,6 +204,42 @@ QString UnmanagedModName()
bool runLoot(QWidget* parent, OrganizerCore& core, bool didUpdateMasterList);
+
+void setFilterShortcuts(QWidget* widget, QLineEdit* edit)
+{
+ auto activate = [=] {
+ edit->setFocus();
+ edit->selectAll();
+ };
+
+ auto reset = [=] {
+ edit->clear();
+ widget->setFocus();
+ };
+
+ auto hookActivate = [activate](auto* w) {
+ auto* s = new QShortcut(QKeySequence::Find, w);
+ s->setAutoRepeat(false);
+ s->setContext(Qt::WidgetWithChildrenShortcut);
+ QObject::connect(s, &QShortcut::activated, activate);
+ };
+
+ auto hookReset = [reset](auto* w) {
+ auto* s = new QShortcut(QKeySequence(Qt::Key_Escape), w);
+ s->setAutoRepeat(false);
+ s->setContext(Qt::WidgetWithChildrenShortcut);
+ QObject::connect(s, &QShortcut::activated, reset);
+ };
+
+
+ hookActivate(widget);
+ hookReset(widget);
+
+ hookActivate(edit);
+ hookReset(edit);
+}
+
+
MainWindow::MainWindow(Settings &settings
, OrganizerCore &organizerCore
, PluginContainer &pluginContainer
@@ -432,8 +468,9 @@ MainWindow::MainWindow(Settings &settings
new QShortcut(QKeySequence::Refresh, this, SLOT(refreshProfile_activated()));
- new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_F), this, SLOT(search_activated()));
- new QShortcut(QKeySequence(Qt::Key_Escape), this, SLOT(searchClear_activated()));
+ setFilterShortcuts(ui->modList, ui->modFilterEdit);
+ setFilterShortcuts(ui->espList, ui->espFilterEdit);
+ setFilterShortcuts(ui->downloadView, ui->downloadFilterEdit);
m_UpdateProblemsTimer.setSingleShot(true);
connect(&m_UpdateProblemsTimer, SIGNAL(timeout()), this, SLOT(updateProblemsButton()));
@@ -486,6 +523,7 @@ MainWindow::MainWindow(Settings &settings
updatePluginCount();
updateModCount();
processUpdates();
+ ui->statusBar->updateNormalMessage(m_OrganizerCore);
}
void MainWindow::setupModList()
@@ -1662,6 +1700,7 @@ void MainWindow::activateSelectedProfile()
m_OrganizerCore.refreshModList();
updateModCount();
updatePluginCount();
+ ui->statusBar->updateNormalMessage(m_OrganizerCore);
}
void MainWindow::on_profileBox_currentIndexChanged(int index)
@@ -3359,42 +3398,6 @@ void MainWindow::refreshProfile_activated()
m_OrganizerCore.profileRefresh();
}
-void MainWindow::search_activated()
-{
- if (ui->modList->hasFocus() || ui->modFilterEdit->hasFocus()) {
- ui->modFilterEdit->setFocus();
- ui->modFilterEdit->setSelection(0, INT_MAX);
- }
-
- else if (ui->espList->hasFocus() || ui->espFilterEdit->hasFocus()) {
- ui->espFilterEdit->setFocus();
- ui->espFilterEdit->setSelection(0, INT_MAX);
- }
-
- else if (ui->downloadView->hasFocus() || ui->downloadFilterEdit->hasFocus()) {
- ui->downloadFilterEdit->setFocus();
- ui->downloadFilterEdit->setSelection(0, INT_MAX);
- }
-}
-
-void MainWindow::searchClear_activated()
-{
- if (ui->modList->hasFocus() || ui->modFilterEdit->hasFocus()) {
- ui->modFilterEdit->clear();
- ui->modList->setFocus();
- }
-
- else if (ui->espList->hasFocus() || ui->espFilterEdit->hasFocus()) {
- ui->espFilterEdit->clear();
- ui->espList->setFocus();
- }
-
- else if (ui->downloadView->hasFocus() || ui->downloadFilterEdit->hasFocus()) {
- ui->downloadFilterEdit->clear();
- ui->downloadView->setFocus();
- }
-}
-
void MainWindow::updateModCount()
{
int activeCount = 0;