implement ctrl+q keybind

This commit is contained in:
Malte Jürgens 2023-06-23 17:48:33 +02:00
parent 8a6f49b949
commit 94b27f5b6a
No known key found for this signature in database
GPG Key ID: D29FBD5F93C0CFC3
2 changed files with 17 additions and 6 deletions

View File

@ -12,6 +12,7 @@
#include <QGridLayout> #include <QGridLayout>
#include <QLabel> #include <QLabel>
#include <QPushButton> #include <QPushButton>
#include <QShortcut>
#include <QSpacerItem> #include <QSpacerItem>
#include <QThread> #include <QThread>
#include <QTimer> #include <QTimer>
@ -31,6 +32,8 @@ MainWindow::MainWindow(bool useNotifySend, QWidget *parent)
setCentralWidget(m_centralWidget); setCentralWidget(m_centralWidget);
setupTrayIcon(); setupTrayIcon();
setMinimumSize(800, 300); setMinimumSize(800, 300);
connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this),
&QShortcut::activated, this, &MainWindow::toggleOrCloseWindow);
if (m_settings->contains("geometry")) { if (m_settings->contains("geometry")) {
restoreGeometry(m_settings->value("geometry").toByteArray()); restoreGeometry(m_settings->value("geometry").toByteArray());
} else { } else {
@ -79,12 +82,7 @@ void MainWindow::setupTrayIcon() {
connect(m_trayIcon, &QSystemTrayIcon::activated, [this](auto reason) { connect(m_trayIcon, &QSystemTrayIcon::activated, [this](auto reason) {
if (reason == QSystemTrayIcon::Trigger) { if (reason == QSystemTrayIcon::Trigger) {
if (isVisible()) { toggleOrCloseWindow();
hide();
} else {
show();
activateWindow();
}
} }
}); });
} }
@ -131,3 +129,15 @@ MainWindow *MainWindow::instance() { return m_instance; }
CentralWidget *MainWindow::centralWidget() { CentralWidget *MainWindow::centralWidget() {
return instance()->m_centralWidget; return instance()->m_centralWidget;
}; };
void MainWindow::toggleOrCloseWindow() {
if (isVisible()) {
if (m_trayIcon == nullptr)
QApplication::quit();
else
hide();
} else {
show();
activateWindow();
}
}

View File

@ -36,4 +36,5 @@ private:
public Q_SLOTS: public Q_SLOTS:
void setTrayIcon(bool enabled); void setTrayIcon(bool enabled);
void fullScreenRequested(QWebEngineFullScreenRequest fullScreenRequest); void fullScreenRequested(QWebEngineFullScreenRequest fullScreenRequest);
void toggleOrCloseWindow();
}; };