Skip to content

Commit

Permalink
增加快捷键记忆功能
Browse files Browse the repository at this point in the history
增加了对快捷键的记忆功能,软件启动时可以加载上一次使用的快捷键组合。
如果上一次快捷键组合不存在,那么就使用默认快捷键(Ctrl+F2)。
  • Loading branch information
SeaYJ committed Dec 13, 2024
1 parent a5770ac commit 2255a87
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 30 deletions.
20 changes: 10 additions & 10 deletions i18n/MouseClick_en_US.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@
<translation>Please set a shortcut hotkey</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="120"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="140"/>
<source>ERROR</source>
<translation>ERROR</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="120"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="140"/>
<source>Failed to register global hotkey.</source>
<translation>Failed to register global hotkey.</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="121"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="141"/>
<source>OK</source>
<translation>OK</translation>
</message>
Expand Down Expand Up @@ -103,37 +103,37 @@
<context>
<name>SettingsPage</name>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="67"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="68"/>
<source>Start/End Hotkey</source>
<translation>Start/End Hotkey</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="83"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="98"/>
<source>Hotkey Clean</source>
<translation>Hotkey Clean</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="99"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="114"/>
<source>Dark Theme</source>
<translation>Dark Theme</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="124"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="139"/>
<source>Language</source>
<translation>Language</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="129"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="144"/>
<source>English(United States)</source>
<translation>English(United States)</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="130"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="145"/>
<source>Chinese(Simplified)</source>
<translation>中文(简体)</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="131"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="146"/>
<source>Chinese(Traditional)</source>
<translation>中文(繁體)</translation>
</message>
Expand Down
20 changes: 10 additions & 10 deletions i18n/MouseClick_zh_CN.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@
<translation>请设置一个快捷键</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="120"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="140"/>
<source>ERROR</source>
<translation>错误</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="120"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="140"/>
<source>Failed to register global hotkey.</source>
<translation>未能注册全局快捷键。</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="121"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="141"/>
<source>OK</source>
<translation>好的</translation>
</message>
Expand Down Expand Up @@ -119,37 +119,37 @@
<context>
<name>SettingsPage</name>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="67"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="68"/>
<source>Start/End Hotkey</source>
<translation>&quot;开始/结束&quot;快捷键</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="83"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="98"/>
<source>Hotkey Clean</source>
<translation>清除快捷键</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="99"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="114"/>
<source>Dark Theme</source>
<translation>深色模式</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="124"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="139"/>
<source>Language</source>
<translation>语言设置</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="129"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="144"/>
<source>English(United States)</source>
<translation>English(United States)</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="130"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="145"/>
<source>Chinese(Simplified)</source>
<translation>中文(简体)</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="131"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="146"/>
<source>Chinese(Traditional)</source>
<translation>中文(繁體)</translation>
</message>
Expand Down
20 changes: 10 additions & 10 deletions i18n/MouseClick_zh_TW.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,17 +9,17 @@
<translation>請設定一個快捷鍵</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="120"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="140"/>
<source>ERROR</source>
<translation>錯誤</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="120"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="140"/>
<source>Failed to register global hotkey.</source>
<translation>未能註冊全域快捷鍵。</translation>
</message>
<message>
<location filename="../src/modules/hotkeylineedit.cpp" line="121"/>
<location filename="../src/modules/hotkeylineedit.cpp" line="141"/>
<source>OK</source>
<translation>好的</translation>
</message>
Expand Down Expand Up @@ -103,37 +103,37 @@
<context>
<name>SettingsPage</name>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="67"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="68"/>
<source>Start/End Hotkey</source>
<translation>“開始/結束”快捷鍵</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="83"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="98"/>
<source>Hotkey Clean</source>
<translation>清除快速鍵</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="99"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="114"/>
<source>Dark Theme</source>
<translation>深色模式</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="124"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="139"/>
<source>Language</source>
<translation>語言設定</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="129"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="144"/>
<source>English(United States)</source>
<translation>English(United States)</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="130"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="145"/>
<source>Chinese(Simplified)</source>
<translation>中文(简体)</translation>
</message>
<message>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="131"/>
<location filename="../src/modules/nav_pages/settingspage.cpp" line="146"/>
<source>Chinese(Traditional)</source>
<translation>中文(繁體)</translation>
</message>
Expand Down
20 changes: 20 additions & 0 deletions src/modules/hotkeylineedit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,22 @@ void HotkeyLineEdit::cleanHotKey()
unregisterGlobalHotkey();
}

const QString HotkeyLineEdit::getHotkey() const
{
return _key_sequence;
}

void HotkeyLineEdit::setHotkey(const QString& key_sequence)
{
_key_sequence = key_sequence;

setText(_key_sequence);

if (!_key_sequence.isEmpty()) {
registerGlobalHotkey();
}
}

void HotkeyLineEdit::mousePressEvent(QMouseEvent* event)
{
if (!hasFocus()) {
Expand Down Expand Up @@ -91,6 +107,10 @@ void HotkeyLineEdit::keyReleaseEvent(QKeyEvent* event)

void HotkeyLineEdit::registerGlobalHotkey()
{
#ifdef QT_DEBUG
qDebug() << "[HotkeyLineEdit]_key_sequence = " << _key_sequence;
#endif

unregisterGlobalHotkey(); // 先注销之前的快捷键

QStringList keys = _key_sequence.split('+');
Expand Down
3 changes: 3 additions & 0 deletions src/modules/hotkeylineedit.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ class HotkeyLineEdit : public QLineEdit

void cleanHotKey();

const QString getHotkey() const;
void setHotkey(const QString& key_sequence);

Q_SIGNALS:
void hotkeyActivated();

Expand Down
24 changes: 24 additions & 0 deletions src/modules/nav_pages/settingspage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
#include <QDir>
#include <QTranslator>
#include <QProcess>
#include <QSettings>

#include "../hotkeylineedit.h"
#include "../languageagent.h"
Expand Down Expand Up @@ -70,6 +71,20 @@ SettingsPage::SettingsPage(const QString& title, QWidget* parent)
_hotkey_reader->setObjectName(QStringLiteral("hotkey-reader"));
_hotkey_reader->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);

// 设置保存的快捷键(上一次使用)
QString settings_file_path = QCoreApplication::applicationDirPath() + "/config.ini";
QFile settings_file(settings_file_path);
QSettings settings(settings_file_path, QSettings::IniFormat);
settings.beginGroup("Settings");
const QString pre_hotkey = settings.value("Hotkey").toString();
if (pre_hotkey.isEmpty()) {
_hotkey_reader->setHotkey("Ctrl+F2"); // 默认快捷键
}
else {
_hotkey_reader->setHotkey(pre_hotkey); // 上一次使用的快捷键
}
settings.endGroup();

hotkey_content_layout->addWidget(hotkey_desc);
hotkey_content_layout->addWidget(_hotkey_reader);
hotkey_content->setLayout(hotkey_content_layout);
Expand Down Expand Up @@ -198,6 +213,15 @@ SettingsPage::SettingsPage(const QString& title, QWidget* parent)

SettingsPage::~SettingsPage()
{
QString settings_file_path = QCoreApplication::applicationDirPath() + "/config.ini";
QSettings settings(settings_file_path, QSettings::IniFormat);

settings.beginGroup("Settings");
settings.setValue("Hotkey", _hotkey_reader->getHotkey());
settings.endGroup();

/************************/

delete _hotkey_reader;
delete _hotkey_clean;
}
Expand Down

0 comments on commit 2255a87

Please sign in to comment.