Browse Source

Fix cmd+w not closing the main window on macOS

adaptive-webui-19844
vit9696 7 years ago
parent
commit
ff7e5da6de
  1. 15
      src/gui/mainwindow.cpp
  2. 4
      src/gui/mainwindow.h
  3. 6
      src/gui/mainwindow.ui

15
src/gui/mainwindow.cpp

@ -843,6 +843,11 @@ void MainWindow::createKeyboardShortcuts() @@ -843,6 +843,11 @@ void MainWindow::createKeyboardShortcuts()
m_ui->actionDelete->setShortcutContext(Qt::WidgetShortcut); // nullify its effect: delete key event is handled by respective widgets, not here
m_ui->actionDownloadFromURL->setShortcut(Qt::CTRL + Qt::SHIFT + Qt::Key_O);
m_ui->actionExit->setShortcut(Qt::CTRL + Qt::Key_Q);
#ifdef Q_OS_MAC
m_ui->actionCloseWindow->setShortcut(QKeySequence::Close);
#else
m_ui->actionCloseWindow->setVisible(false);
#endif
QShortcut *switchTransferShortcut = new QShortcut(Qt::ALT + Qt::Key_1, this);
connect(switchTransferShortcut, &QShortcut::activated, this, &MainWindow::displayTransferTab);
@ -978,6 +983,16 @@ void MainWindow::on_actionExit_triggered() @@ -978,6 +983,16 @@ void MainWindow::on_actionExit_triggered()
close();
}
#ifdef Q_OS_MAC
void MainWindow::on_actionCloseWindow_triggered()
{
// On macOS window close is basically equivalent to window hide.
// If you decide to implement this functionality for other OS,
// then you will also need ui lock checks like in actionExit.
close();
}
#endif
QWidget *MainWindow::currentTabWidget() const
{
if (isMinimized() || !isVisible())

4
src/gui/mainwindow.h

@ -187,7 +187,9 @@ private slots: @@ -187,7 +187,9 @@ private slots:
void toolbarTextBeside();
void toolbarTextUnder();
void toolbarFollowSystem();
#ifndef Q_OS_MAC
#ifdef Q_OS_MAC
void on_actionCloseWindow_triggered();
#else
void toggleVisibility(const QSystemTrayIcon::ActivationReason reason = QSystemTrayIcon::Trigger);
void createSystrayDelayed();
void updateTrayIconMenu();

6
src/gui/mainwindow.ui

@ -90,6 +90,7 @@ @@ -90,6 +90,7 @@
</property>
<addaction name="actionOpen"/>
<addaction name="actionDownloadFromURL"/>
<addaction name="actionCloseWindow"/>
<addaction name="separator"/>
<addaction name="actionExit"/>
</widget>
@ -466,6 +467,11 @@ @@ -466,6 +467,11 @@
<string>Critical Messages</string>
</property>
</action>
<action name="actionCloseWindow">
<property name="text">
<string>Close Window</string>
</property>
</action>
</widget>
<resources/>
<connections/>

Loading…
Cancel
Save