add global shortcut wakeup (#2097)

* add global shortcut wakeup

* del useless

* add ann

* upgrade git mod

* add short text

* update

* Simplify logic and add QKeySequence non-null judgment.

* Simplify logic.

* Simplify logic.
This commit is contained in:
chendapao 2022-04-16 09:51:13 +08:00 committed by GitHub
parent 18080d174c
commit cf0146050e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 29 additions and 7 deletions

@ -1 +1 @@
Subproject commit 7999052006382afbb8708bf73f877240ed8ad1e5 Subproject commit 18ac011008d3ae55abc19233ba94fad1ea9801d8

View File

@ -72,6 +72,7 @@ namespace vnotex
Copy, Copy,
Paste, Paste,
Properties, Properties,
Global_WakeUp,
MaxShortcut MaxShortcut
}; };
Q_ENUM(Shortcut) Q_ENUM(Shortcut)

View File

@ -63,7 +63,8 @@
"UnitedEntry" : "Ctrl+G, G", "UnitedEntry" : "Ctrl+G, G",
"Copy" : "Ctrl+C", "Copy" : "Ctrl+C",
"Paste" : "Ctrl+V", "Paste" : "Ctrl+V",
"Properties" : "F2" "Properties" : "F2",
"Global_WakeUp" : "Ctrl+Alt+U"
}, },
"file_type_suffixes" : [ "file_type_suffixes" : [
{ {

View File

@ -19,6 +19,7 @@
#include <QWindowStateChangeEvent> #include <QWindowStateChangeEvent>
#include <QTimer> #include <QTimer>
#include <QProgressDialog> #include <QProgressDialog>
#include <QHotkey>
#include "toolbox.h" #include "toolbox.h"
#include "notebookexplorer.h" #include "notebookexplorer.h"
@ -595,6 +596,14 @@ void MainWindow::closeOnQuit()
void MainWindow::setupShortcuts() void MainWindow::setupShortcuts()
{ {
const auto &coreConfig = ConfigMgr::getInst().getCoreConfig();
// For cross-platform global shortcuts, the external library QHotkey is used.
QKeySequence wakeUp(coreConfig.getShortcut(CoreConfig::Global_WakeUp));
if (!wakeUp.isEmpty()) {
auto qHotkey = new QHotkey(wakeUp, true, this);
connect(qHotkey , &QHotkey::activated, this, &MainWindow::showMainWindow);
}
} }
void MainWindow::setStayOnTop(bool p_enabled) void MainWindow::setStayOnTop(bool p_enabled)

View File

@ -5,6 +5,9 @@
#include <QSystemTrayIcon> #include <QSystemTrayIcon>
#include <QApplication> #include <QApplication>
#include <utils/widgetutils.h>
#include <core/configmgr.h>
#include <core/coreconfig.h>
#include "mainwindow.h" #include "mainwindow.h"
#include "widgetsfactory.h" #include "widgetsfactory.h"
@ -35,11 +38,19 @@ QSystemTrayIcon *SystemTrayHelper::setupSystemTray(MainWindow *p_win)
auto menu = WidgetsFactory::createMenu(p_win); auto menu = WidgetsFactory::createMenu(p_win);
trayIcon->setContextMenu(menu); trayIcon->setContextMenu(menu);
menu->addAction(MainWindow::tr("Show Main Window"), const auto &coreConfig = ConfigMgr::getInst().getCoreConfig();
menu,
[p_win]() { {
p_win->showMainWindow(); auto act = menu->addAction(MainWindow::tr("Show Main Window"),
}); menu,
[p_win]() {
p_win->showMainWindow();
});
WidgetUtils::addActionShortcutText(act, coreConfig.getShortcut(CoreConfig::Global_WakeUp));
}
menu->addSeparator();
menu->addAction(MainWindow::tr("Quit"), menu->addAction(MainWindow::tr("Quit"),
menu, menu,