+
+
+/**
+ * @brief The Shortcut class
+ */
+class Shortcut : public QObject
+{
+ Q_OBJECT
+
+ private:
+
+ /**
+ * @brief NativeEventFilterBase. Singleton friend class.
+ */
+ friend class NativeEventFilterBase;
+
+ public:
+
+ /**
+ * @brief Shortcut. Constructor, destructor.
+ *
+ * @param parent Parent object.
+ */
+ explicit Shortcut( QObject* parent = nullptr );
+ ~Shortcut() override;
+
+ /**
+ * @brief Shortcut Constructor with arguments.
+ *
+ * @param key_seq The Qt key sequence for the shortcut.
+ * @param parent The parent object.
+ */
+ explicit Shortcut( QKeySequence key_seq, QObject* parent = nullptr );
+
+ /**
+ * @brief Shortcut. Constructor with arguments.
+ *
+ * @param keyCode The Qt key code for the shortcut.
+ * @param modifiers The Qt key modifiers for the shortcut.
+ * @param parent The parent object.
+ */
+ explicit Shortcut( Qt::Key keyCode, Qt::KeyboardModifiers modifiers, QObject* parent = nullptr );
+
+ /**
+ * @brief getKeyCode. Get the stored key code.
+ *
+ * @return The key code.
+ */
+ Qt::Key getKeyCode();
+
+ /**
+ * @brief getKeyModifiers. Get the stored key modifiers.
+ *
+ * @return The key modifiers.
+ */
+ Qt::KeyboardModifiers getKeyModifiers();
+
+ private:
+
+ /**
+ * @brief setShortcut. Set the shortcut.
+ *
+ * @param key_seq The Qt keysequence to use.
+ *
+ * @return Succeeded?
+ */
+ bool setShortcut( QKeySequence key_seq );
+
+ /**
+ * @brief setShortcut. Set the shortcut.
+ *
+ * @param key_code The Qt key code to use.
+ * @param key_modifiers The Qt key modifiers to use.
+ *
+ * @return Succeeded?
+ */
+ bool setShortcut( Qt::Key key_code, Qt::KeyboardModifiers key_modifiers );
+
+ signals:
+
+ /**
+ * @brief activated. Signal send when activated.
+ */
+ void activated();
+
+ private:
+
+ /**
+ * @brief m_key_code. Storage for the key code.
+ */
+ Qt::Key m_key_code;
+
+ /**
+ * @brief m_key_modifiers. Storage for the key modifiers.
+ */
+ Qt::KeyboardModifiers m_key_modifiers;
+};
+
+#endif // SHORTCUT_H
diff --git a/app/SysTray-X/SysTray-X-app/systrayx.cpp b/app/SysTray-X/SysTray-X-app/systrayx.cpp
index 6178c49..67741b7 100644
--- a/app/SysTray-X/SysTray-X-app/systrayx.cpp
+++ b/app/SysTray-X/SysTray-X-app/systrayx.cpp
@@ -9,6 +9,7 @@
#include "systrayxicon.h"
#include "systrayxstatusnotifier.h"
#include "windowctrl.h"
+#include "shortcut.h"
/*
* Qt includes
@@ -43,6 +44,8 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
m_new_mail = 0;
m_locale = QString();
+ m_show_hide_shortcut = nullptr;
+
/*
* Setup preferences storage
*/
@@ -105,8 +108,6 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
#endif
- connect( this, &SysTrayX::signalConsole, m_debug, &DebugWidget::slotConsole );
-
/*
* Connect preferences signals
*/
@@ -128,6 +129,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
connect( m_preferences, &Preferences::signalShowNumberChange, m_pref_dialog, &PreferencesDialog::slotShowNumberChange );
connect( m_preferences, &Preferences::signalShowNewIndicatorChange, m_pref_dialog, &PreferencesDialog::slotShowNewIndicatorChange );
connect( m_preferences, &Preferences::signalStartupDelayChange, m_pref_dialog, &PreferencesDialog::slotStartupDelayChange );
+ connect( m_preferences, &Preferences::signalApiCountMethodChange, m_pref_dialog, &PreferencesDialog::slotApiCountMethodChange );
connect( m_preferences, &Preferences::signalCountTypeChange, m_pref_dialog, &PreferencesDialog::slotCountTypeChange );
connect( m_preferences, &Preferences::signalNumberColorChange, m_pref_dialog, &PreferencesDialog::slotNumberColorChange );
connect( m_preferences, &Preferences::signalNumberSizeChange, m_pref_dialog, &PreferencesDialog::slotNumberSizeChange );
@@ -139,37 +141,13 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
connect( m_preferences, &Preferences::signalStartAppArgsChange, m_pref_dialog, &PreferencesDialog::slotStartAppArgsChange );
connect( m_preferences, &Preferences::signalCloseAppChange, m_pref_dialog, &PreferencesDialog::slotCloseAppChange );
connect( m_preferences, &Preferences::signalCloseAppArgsChange, m_pref_dialog, &PreferencesDialog::slotCloseAppArgsChange );
- connect( m_preferences, &Preferences::signalApiCountMethodChange, m_pref_dialog, &PreferencesDialog::slotApiCountMethodChange );
+ connect( m_preferences, &Preferences::signalShowHideShortcutChange, m_pref_dialog, &PreferencesDialog::slotShowHideShortcutChange );
connect( m_preferences, &Preferences::signalDebugChange, m_pref_dialog, &PreferencesDialog::slotDebugChange );
- connect( m_preferences, &Preferences::signalDefaultIconTypeChange, m_link, &SysTrayXLink::slotDefaultIconTypeChange );
- connect( m_preferences, &Preferences::signalDefaultIconDataChange, m_link, &SysTrayXLink::slotDefaultIconDataChange );
- connect( m_preferences, &Preferences::signalHideDefaultIconChange, m_link, &SysTrayXLink::slotHideDefaultIconChange );
- connect( m_preferences, &Preferences::signalIconTypeChange, m_link, &SysTrayXLink::slotIconTypeChange );
- connect( m_preferences, &Preferences::signalIconDataChange, m_link, &SysTrayXLink::slotIconDataChange );
- connect( m_preferences, &Preferences::signalMinimizeTypeChange, m_link, &SysTrayXLink::slotMinimizeTypeChange );
- connect( m_preferences, &Preferences::signalMinimizeIconTypeChange, m_link, &SysTrayXLink::slotMinimizeIconTypeChange );
- connect( m_preferences, &Preferences::signalStartupTypeChange, m_link, &SysTrayXLink::slotStartupTypeChange );
- connect( m_preferences, &Preferences::signalRestoreWindowPositionsChange, m_link, &SysTrayXLink::slotRestoreWindowPositionsChange );
- connect( m_preferences, &Preferences::signalCloseTypeChange, m_link, &SysTrayXLink::slotCloseTypeChange );
- connect( m_preferences, &Preferences::signalInvertIconChange, m_link, &SysTrayXLink::slotInvertIconChange );
- connect( m_preferences, &Preferences::signalShowNumberChange, m_link, &SysTrayXLink::slotShowNumberChange );
- connect( m_preferences, &Preferences::signalShowNewIndicatorChange, m_link, &SysTrayXLink::slotShowNewIndicatorChange );
- connect( m_preferences, &Preferences::signalStartupDelayChange, m_link, &SysTrayXLink::slotStartupDelayChange );
- connect( m_preferences, &Preferences::signalCountTypeChange, m_link, &SysTrayXLink::slotCountTypeChange );
- connect( m_preferences, &Preferences::signalNumberColorChange, m_link, &SysTrayXLink::slotNumberColorChange );
- connect( m_preferences, &Preferences::signalNumberSizeChange, m_link, &SysTrayXLink::slotNumberSizeChange );
- connect( m_preferences, &Preferences::signalNumberAlignmentChange, m_link, &SysTrayXLink::slotNumberAlignmentChange );
- connect( m_preferences, &Preferences::signalNumberMarginsChange, m_link, &SysTrayXLink::slotNumberMarginsChange );
- connect( m_preferences, &Preferences::signalNewIndicatorTypeChange, m_link, &SysTrayXLink::slotNewIndicatorTypeChange );
- connect( m_preferences, &Preferences::signalNewShadeColorChange, m_link, &SysTrayXLink::slotNewShadeColorChange );
- connect( m_preferences, &Preferences::signalStartAppChange, m_link, &SysTrayXLink::slotStartAppChange );
- connect( m_preferences, &Preferences::signalStartAppArgsChange, m_link, &SysTrayXLink::slotStartAppArgsChange );
- connect( m_preferences, &Preferences::signalCloseAppChange, m_link, &SysTrayXLink::slotCloseAppChange );
- connect( m_preferences, &Preferences::signalCloseAppArgsChange, m_link, &SysTrayXLink::slotCloseAppArgsChange );
- connect( m_preferences, &Preferences::signalApiCountMethodChange, m_link, &SysTrayXLink::slotApiCountMethodChange );
- connect( m_preferences, &Preferences::signalDebugChange, m_link, &SysTrayXLink::slotDebugChange );
+ connect( m_pref_dialog, &PreferencesDialog::signalPreferencesChanged, m_link, &SysTrayXLink::slotPreferencesChanged );
+
connect( m_preferences, &Preferences::signalHideDefaultIconChange, this, &SysTrayX::slotSelectIconObjectPref );
+ connect( m_preferences, &Preferences::signalShowHideShortcutChange, this, &SysTrayX::slotShowHideShortcutChange );
connect( m_preferences, &Preferences::signalDebugChange, m_debug, &DebugWidget::slotDebugChange );
@@ -209,6 +187,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
/*
m_preferences->setBrowserVersion( "115.1.0" );
// m_preferences->setBrowserVersion( "102.2.3" );
+
slotLoadLanguage( "en-US" );
//slotLoadLanguage( "it" );
//slotLoadLanguage( "nl" );
@@ -217,11 +196,11 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
slotSelectIconObject( true );
slotMailCount( 10, 1 );
-*/
+
// m_preferences->setStartApp( "/home/maxime/test.sh" );
// m_preferences->setStartAppArgs( "/home/maxime/startup.txt StartupString" );
// slotStartApp();
-
+*/
}
@@ -793,3 +772,16 @@ void SysTrayX::slotCloseApp()
}
}
+void SysTrayX::slotShowHideShortcutChange()
+{
+ if( m_show_hide_shortcut != nullptr )
+ {
+ disconnect( m_show_hide_shortcut, &Shortcut::activated, m_win_ctrl, &WindowCtrl::slotShowHide );
+
+ delete m_show_hide_shortcut;
+ m_show_hide_shortcut = nullptr;
+ }
+
+ m_show_hide_shortcut = new Shortcut( m_preferences->getShowHideShortcut(), this );
+ connect( m_show_hide_shortcut, &Shortcut::activated, m_win_ctrl, &WindowCtrl::slotShowHide );
+}
diff --git a/app/SysTray-X/SysTray-X-app/systrayx.h b/app/SysTray-X/SysTray-X-app/systrayx.h
index ca45918..acb9437 100644
--- a/app/SysTray-X/SysTray-X-app/systrayx.h
+++ b/app/SysTray-X/SysTray-X-app/systrayx.h
@@ -28,6 +28,9 @@ class WindowCtrl;
class SysTrayXStatusNotifier;
+class Shortcut;
+
+
/**
* @brief The SysTrayX class
*/
@@ -185,6 +188,11 @@ class SysTrayX : public QObject
*/
void slotVersion( QString version );
+ /**
+ * @brief slotShowHideShortcutChange. Handle a show / hide shortcut change.
+ */
+ void slotShowHideShortcutChange();
+
private:
/**
@@ -254,6 +262,11 @@ class SysTrayX : public QObject
* @brief m_locale. Storage for the current locale.
*/
QString m_locale;
+
+ /**
+ * @brief m_show_hide_shortcut. Storage for the show / hide shortcut.
+ */
+ Shortcut* m_show_hide_shortcut;
};
#endif // SYSTRAYX_H
diff --git a/app/SysTray-X/SysTray-X-app/systrayxlink.cpp b/app/SysTray-X/SysTray-X-app/systrayxlink.cpp
index 314f7b6..28f28cc 100644
--- a/app/SysTray-X/SysTray-X-app/systrayxlink.cpp
+++ b/app/SysTray-X/SysTray-X-app/systrayxlink.cpp
@@ -796,6 +796,16 @@ void SysTrayXLink::DecodePreferences( const QJsonObject& pref )
m_pref->setStartupDelay( startup_delay );
}
+ if( pref.contains( "apiCountMethod" ) && pref[ "apiCountMethod" ].isString() )
+ {
+ bool api_count_method = pref[ "apiCountMethod" ].toString() == "true";
+
+ /*
+ * Store the new API cont method state
+ */
+ m_pref->setApiCountMethod( api_count_method );
+ }
+
if( pref.contains( "minimizeType" ) && pref[ "minimizeType" ].isString() )
{
Preferences::MinimizeType minimize_type = static_cast< Preferences::MinimizeType >( pref[ "minimizeType" ].toString().toInt() );
@@ -896,14 +906,14 @@ void SysTrayXLink::DecodePreferences( const QJsonObject& pref )
m_pref->setCloseAppArgs( args );
}
- if( pref.contains( "apiCountMethod" ) && pref[ "apiCountMethod" ].isString() )
+ if( pref.contains( "showHideShortcut" ) && pref[ "showHideShortcut" ].isString() )
{
- bool api_count_method = pref[ "apiCountMethod" ].toString() == "true";
+ QString shortcut = pref[ "showHideShortcut" ].toString();
/*
- * Store the new API cont method state
+ * Store the new shortcut
*/
- m_pref->setApiCountMethod( api_count_method );
+ m_pref->setShowHideShortcut( QKeySequence::fromString( shortcut ) );
}
if( pref.contains( "debug" ) && pref[ "debug" ].isString() )
@@ -957,44 +967,46 @@ void SysTrayXLink::EncodePreferences( const Preferences& pref )
* Setup the preferences JSON
*/
QJsonObject prefObject;
- prefObject.insert("debug", QJsonValue::fromVariant( QString( pref.getDebug() ? "true" : "false" ) ) );
- prefObject.insert("minimizeType", QJsonValue::fromVariant( QString::number( pref.getMinimizeType() ) ) );
- prefObject.insert("minimizeIconType", QJsonValue::fromVariant( QString::number( pref.getMinimizeIconType() ) ) );
- prefObject.insert("startupType", QJsonValue::fromVariant( QString::number( pref.getStartupType() ) ) );
- prefObject.insert("restorePositions", QJsonValue::fromVariant( QString( pref.getRestoreWindowPositions() ? "true" : "false" ) ) );
- prefObject.insert("closeType", QJsonValue::fromVariant( QString::number( pref.getCloseType() ) ) );
- prefObject.insert("defaultIconType", QJsonValue::fromVariant( QString::number( pref.getDefaultIconType() ) ) );
- prefObject.insert("defaultIconMime", QJsonValue::fromVariant( pref.getDefaultIconMime() ) );
- prefObject.insert("defaultIcon", QJsonValue::fromVariant( QString( pref.getDefaultIconData().toBase64() ) ) );
- prefObject.insert("hideDefaultIcon", QJsonValue::fromVariant( QString( pref.getHideDefaultIcon() ? "true" : "false" ) ) );
- prefObject.insert("iconType", QJsonValue::fromVariant( QString::number( pref.getIconType() ) ) );
- prefObject.insert("iconMime", QJsonValue::fromVariant( pref.getIconMime() ) );
- prefObject.insert("icon", QJsonValue::fromVariant( QString( pref.getIconData().toBase64() ) ) );
- prefObject.insert("invertIcon", QJsonValue::fromVariant( QString( pref.getInvertIcon() ? "true" : "false" ) ) );
- prefObject.insert("showNumber", QJsonValue::fromVariant( QString( pref.getShowNumber() ? "true" : "false" ) ) );
- prefObject.insert("showNewIndicator", QJsonValue::fromVariant( QString( pref.getShowNewIndicator() ? "true" : "false" ) ) );
- prefObject.insert("numberColor", QJsonValue::fromVariant( QString( pref.getNumberColor() ) ) );
- prefObject.insert("numberSize", QJsonValue::fromVariant( QString::number( pref.getNumberSize() ) ) );
- prefObject.insert("numberAlignment", QJsonValue::fromVariant( QString::number( pref.getNumberAlignment() ) ) );
+ prefObject.insert( "debug", QJsonValue::fromVariant( QString( pref.getDebug() ? "true" : "false" ) ) );
+ prefObject.insert( "minimizeType", QJsonValue::fromVariant( QString::number( pref.getMinimizeType() ) ) );
+ prefObject.insert( "minimizeIconType", QJsonValue::fromVariant( QString::number( pref.getMinimizeIconType() ) ) );
+ prefObject.insert( "startupType", QJsonValue::fromVariant( QString::number( pref.getStartupType() ) ) );
+ prefObject.insert( "restorePositions", QJsonValue::fromVariant( QString( pref.getRestoreWindowPositions() ? "true" : "false" ) ) );
+ prefObject.insert( "closeType", QJsonValue::fromVariant( QString::number( pref.getCloseType() ) ) );
+ prefObject.insert( "defaultIconType", QJsonValue::fromVariant( QString::number( pref.getDefaultIconType() ) ) );
+ prefObject.insert( "defaultIconMime", QJsonValue::fromVariant( pref.getDefaultIconMime() ) );
+ prefObject.insert( "defaultIcon", QJsonValue::fromVariant( QString( pref.getDefaultIconData().toBase64() ) ) );
+ prefObject.insert( "hideDefaultIcon", QJsonValue::fromVariant( QString( pref.getHideDefaultIcon() ? "true" : "false" ) ) );
+ prefObject.insert( "iconType", QJsonValue::fromVariant( QString::number( pref.getIconType() ) ) );
+ prefObject.insert( "iconMime", QJsonValue::fromVariant( pref.getIconMime() ) );
+ prefObject.insert( "icon", QJsonValue::fromVariant( QString( pref.getIconData().toBase64() ) ) );
+ prefObject.insert( "invertIcon", QJsonValue::fromVariant( QString( pref.getInvertIcon() ? "true" : "false" ) ) );
+ prefObject.insert( "showNumber", QJsonValue::fromVariant( QString( pref.getShowNumber() ? "true" : "false" ) ) );
+ prefObject.insert( "showNewIndicator", QJsonValue::fromVariant( QString( pref.getShowNewIndicator() ? "true" : "false" ) ) );
+ prefObject.insert( "numberColor", QJsonValue::fromVariant( QString( pref.getNumberColor() ) ) );
+ prefObject.insert( "numberSize", QJsonValue::fromVariant( QString::number( pref.getNumberSize() ) ) );
+ prefObject.insert( "numberAlignment", QJsonValue::fromVariant( QString::number( pref.getNumberAlignment() ) ) );
QJsonObject marginsObject;
- marginsObject.insert("left", QJsonValue::fromVariant( QString::number( pref.getNumberMargins().left() ) ) );
- marginsObject.insert("top", QJsonValue::fromVariant( QString::number( pref.getNumberMargins().top() ) ) );
- marginsObject.insert("right", QJsonValue::fromVariant( QString::number( pref.getNumberMargins().right() ) ) );
- marginsObject.insert("bottom", QJsonValue::fromVariant( QString::number( pref.getNumberMargins().bottom() ) ) );
+ marginsObject.insert( "left", QJsonValue::fromVariant( QString::number( pref.getNumberMargins().left() ) ) );
+ marginsObject.insert( "top", QJsonValue::fromVariant( QString::number( pref.getNumberMargins().top() ) ) );
+ marginsObject.insert( "right", QJsonValue::fromVariant( QString::number( pref.getNumberMargins().right() ) ) );
+ marginsObject.insert( "bottom", QJsonValue::fromVariant( QString::number( pref.getNumberMargins().bottom() ) ) );
- prefObject.insert("numberMargins", marginsObject );
- prefObject.insert("countType", QJsonValue::fromVariant( QString::number( pref.getCountType() ) ) );
- prefObject.insert("startupDelay", QJsonValue::fromVariant( QString::number( pref.getStartupDelay() ) ) );
- prefObject.insert("apiCountMethod", QJsonValue::fromVariant( QString( pref.getApiCountMethod() ? "true" : "false" ) ) );
+ prefObject.insert( "numberMargins", marginsObject );
+ prefObject.insert( "countType", QJsonValue::fromVariant( QString::number( pref.getCountType() ) ) );
+ prefObject.insert( "startupDelay", QJsonValue::fromVariant( QString::number( pref.getStartupDelay() ) ) );
+ prefObject.insert( "apiCountMethod", QJsonValue::fromVariant( QString( pref.getApiCountMethod() ? "true" : "false" ) ) );
- prefObject.insert("startApp", QJsonValue::fromVariant( pref.getStartApp() ) );
- prefObject.insert("startAppArgs", QJsonValue::fromVariant( pref.getStartAppArgs() ) );
- prefObject.insert("closeApp", QJsonValue::fromVariant( pref.getCloseApp() ) );
- prefObject.insert("closeAppArgs", QJsonValue::fromVariant( pref.getCloseAppArgs() ) );
+ prefObject.insert( "startApp", QJsonValue::fromVariant( pref.getStartApp() ) );
+ prefObject.insert( "startAppArgs", QJsonValue::fromVariant( pref.getStartAppArgs() ) );
+ prefObject.insert( "closeApp", QJsonValue::fromVariant( pref.getCloseApp() ) );
+ prefObject.insert( "closeAppArgs", QJsonValue::fromVariant( pref.getCloseAppArgs() ) );
+
+ prefObject.insert( "showHideShortcut", QJsonValue::fromVariant( pref.getShowHideShortcut().toString() ) );
QJsonObject preferencesObject;
- preferencesObject.insert("preferences", prefObject );
+ preferencesObject.insert( "preferences", prefObject );
/*
* Store the new document
@@ -1029,328 +1041,14 @@ void SysTrayXLink::slotLinkRead( QByteArray message )
*/
void SysTrayXLink::slotPositions( QList< QPoint > positions )
{
- sendPositions( positions );
+ sendPositions( positions );
}
/*
- * Handle a restore window positions state change signal
+ * Handle a preferences changed signal
*/
-void SysTrayXLink::slotRestoreWindowPositionsChange()
+void SysTrayXLink::slotPreferencesChanged()
{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the minimize type change signal
- */
-void SysTrayXLink::slotMinimizeTypeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the minimize icon type change signal
- */
-void SysTrayXLink::slotMinimizeIconTypeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a startup type change signal
- */
-void SysTrayXLink::slotStartupTypeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a close type change signal
- */
-void SysTrayXLink::slotCloseTypeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the default icon type change signal
- */
-void SysTrayXLink::slotDefaultIconTypeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the default icon data change signal
- */
-void SysTrayXLink::slotDefaultIconDataChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the hide default icon change signal
- */
-void SysTrayXLink::slotHideDefaultIconChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the icon type change signal
- */
-void SysTrayXLink::slotIconTypeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the icon data change signal
- */
-void SysTrayXLink::slotIconDataChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a invert icon change signal
- */
-void SysTrayXLink::slotInvertIconChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a show number state change signal
- */
-void SysTrayXLink::slotShowNumberChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a show new indicator state change signal
- */
-void SysTrayXLink::slotShowNewIndicatorChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the count type change signal
- */
-void SysTrayXLink::slotCountTypeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a startup delay change signal
- */
-void SysTrayXLink::slotStartupDelayChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a number color change signal
- */
-void SysTrayXLink::slotNumberColorChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a number size change signal
- */
-void SysTrayXLink::slotNumberSizeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a number alignment change signal
- */
-void SysTrayXLink::slotNumberAlignmentChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a number margins change signal
- */
-void SysTrayXLink::slotNumberMarginsChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the new indicator type change signal
- */
-void SysTrayXLink::slotNewIndicatorTypeChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle the new shade color change signal
- */
-void SysTrayXLink::slotNewShadeColorChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a start application change signal
- */
-void SysTrayXLink::slotStartAppChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a start application arguments change signal
- */
-void SysTrayXLink::slotStartAppArgsChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a close application change signal
- */
-void SysTrayXLink::slotCloseAppChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a close application arguments change signal
- */
-void SysTrayXLink::slotCloseAppArgsChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-
-/*
- * Handle a API count method change signal
- */
-void SysTrayXLink::slotApiCountMethodChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
-}
-
-/*
- * Handle a debug state change signal
- */
-void SysTrayXLink::slotDebugChange()
-{
- if( m_pref->getAppPrefChanged() )
- {
- sendPreferences();
- }
+ sendPreferences();
}
diff --git a/app/SysTray-X/SysTray-X-app/systrayxlink.h b/app/SysTray-X/SysTray-X-app/systrayxlink.h
index 459b69d..f27218f 100644
--- a/app/SysTray-X/SysTray-X-app/systrayxlink.h
+++ b/app/SysTray-X/SysTray-X-app/systrayxlink.h
@@ -268,145 +268,15 @@ class SysTrayXLink : public QObject
public slots:
- /**
- * @brief slotDebugChange. Handle a change in debug state.
- */
- void slotDebugChange();
-
/**
* @brief slotPositions. Slot for handling a window positions change.
*/
void slotPositions( QList< QPoint > positions );
/**
- * @brief slotRestoreWindowPositionsChange. Handle a change in restore window positions state.
+ * @brief slotPreferencesChanged
*/
- void slotRestoreWindowPositionsChange();
-
- /**
- * @brief slotMinimizeTypeChange. Slot for handling minimize type change signals.
- */
- void slotMinimizeTypeChange();
-
- /**
- * @brief slotMinimizeIconTypeChange. Slot for handling minimize icon type change signals.
- */
- void slotMinimizeIconTypeChange();
-
- /**
- * @brief slotStartupTypeChange. Handle a change in startup type.
- */
- void slotStartupTypeChange();
-
- /**
- * @brief slotCloseTypeChange. Slot for handling close type change signals.
- */
- void slotCloseTypeChange();
-
- /**
- * @brief slotDefaultIconTypeChange. Slot for handling default icon type change signals.
- */
- void slotDefaultIconTypeChange();
-
- /**
- * @brief slotDefaultIconDataChange. Slot for handling default icon data change signals.
- */
- void slotDefaultIconDataChange();
-
- /**
- * @brief slotHideDefaultIconChange. Slot for handling hide default icon change signals.
- */
- void slotHideDefaultIconChange();
-
- /**
- * @brief slotIconTypeChange. Slot for handling icon type change signals.
- */
- void slotIconTypeChange();
-
- /**
- * @brief slotIconDataChange. Slot for handling icon data change signals.
- */
- void slotIconDataChange();
-
- /**
- * @brief slotInvertIconChange. Slot for handling invert icon change signals.
- */
- void slotInvertIconChange();
-
- /**
- * @brief slotShowNumberChange. Handle a change in show number state.
- */
- void slotShowNumberChange();
-
- /**
- * @brief slotShowNewIndicatorChange. Handle a change in show new indicator state.
- */
- void slotShowNewIndicatorChange();
-
- /**
- * @brief slotCountTypeChange. Slot for handling count type change signals.
- */
- void slotCountTypeChange();
-
- /**
- * @brief slotStartupDelayChange. Handle a change in startup delay.
- */
- void slotStartupDelayChange();
-
- /**
- * @brief slotNumberColorChange. Handle a change in number color.
- */
- void slotNumberColorChange();
-
- /**
- * @brief slotNumberSizeChange. Handle a change in number size.
- */
- void slotNumberSizeChange();
-
- /**
- * @brief slotNumberAlignmentChange. Handle a change in number alignment.
- */
- void slotNumberAlignmentChange();
-
- /**
- * @brief slotNumberMarginsChange. Handle a change in number margins.
- */
- void slotNumberMarginsChange();
-
- /**
- * @brief slotNewIndicatorTypeChange. Slot for handling new indicator type change signals.
- */
- void slotNewIndicatorTypeChange();
-
- /**
- * @brief slotNewShadeColorChange. Handle a change in new shade color.
- */
- void slotNewShadeColorChange();
-
- /**
- * @brief slotStartAppChange. Slot for handling start application change signals.
- */
- void slotStartAppChange();
-
- /**
- * @brief slotStartAppArgsChange. Slot for handling start application arguments change signals.
- */
- void slotStartAppArgsChange();
-
- /**
- * @brief slotCloseAppChange. Slot for handling close application change signals.
- */
- void slotCloseAppChange();
-
- /**
- * @brief slotCloseAppArgsChange. Slot for handling close application arguments change signals.
- */
- void slotCloseAppArgsChange();
-
- /**
- * @brief slotApiCountMethodChange. Slot for handling the API count method change signals.
- */
- void slotApiCountMethodChange();
+ void slotPreferencesChanged();
private slots:
diff --git a/webext/_locales/de/messages.json b/webext/_locales/de/messages.json
index 6897555..6c628e1 100644
--- a/webext/_locales/de/messages.json
+++ b/webext/_locales/de/messages.json
@@ -49,6 +49,11 @@
"description": "Tab for Mail options"
},
+ "tab_shortcuts": {
+ "message": "Tastatürkürzel",
+ "description": "Tab for Shortcuts options"
+ },
+
"tab_debug": {
"message": "Debug",
"description": "Tab for Debug options"
@@ -394,6 +399,21 @@
"description": "Title for Accounts options"
},
+ "shortcuts": {
+ "message": "Tastatürkürzel",
+ "description": "Title for Shortcuts options"
+ },
+
+ "shortcuts_showhide_shortcut": {
+ "message": "Tastenkombination Einblenden / Ausblenden: ",
+ "description": "Label for the show / hide shortcut edit box"
+ },
+
+ "shortcuts_clear_button": {
+ "message": "Löschen",
+ "description": "Clear"
+ },
+
"debug": {
"message": "Debug",
"description": "Title for Debug options"
diff --git a/webext/_locales/el/messages.json b/webext/_locales/el/messages.json
index 9070200..7879664 100644
--- a/webext/_locales/el/messages.json
+++ b/webext/_locales/el/messages.json
@@ -49,6 +49,11 @@
"description": "Tab for Mail options"
},
+ "tab_shortcuts": {
+ "message": "Συντομεύσεις",
+ "description": "Tab for Shortcuts options"
+ },
+
"tab_debug": {
"message": "Αποσφαλμάτωση",
"description": "Tab for Debug options"
@@ -394,6 +399,21 @@
"description": "Title for Accounts options"
},
+ "shortcuts": {
+ "message": "Συντομεύσεις",
+ "description": "Title for Shortcuts options"
+ },
+
+ "shortcuts_showhide_shortcut": {
+ "message": "Συντόμευση Εμφάνιση / Απόκρυψη: ",
+ "description": "Label for the show / hide shortcut edit box"
+ },
+
+ "shortcuts_clear_button": {
+ "message": "Αφαιρώ",
+ "description": "Clear"
+ },
+
"debug": {
"message": "Αποσφαλμάτωση",
"description": "Title for Debug options"
diff --git a/webext/_locales/en-US/messages.json b/webext/_locales/en-US/messages.json
index dcf9483..f4621ec 100644
--- a/webext/_locales/en-US/messages.json
+++ b/webext/_locales/en-US/messages.json
@@ -49,6 +49,11 @@
"description": "Tab for Mail options"
},
+ "tab_shortcuts": {
+ "message": "Shortcuts",
+ "description": "Tab for Shortcuts options"
+ },
+
"tab_debug": {
"message": "Debug",
"description": "Tab for Debug options"
@@ -394,6 +399,21 @@
"description": "Title for Accounts options"
},
+ "shortcuts": {
+ "message": "Shortcuts",
+ "description": "Title for Shortcuts options"
+ },
+
+ "shortcuts_showhide_shortcut": {
+ "message": "Shortcut Show / Hide: ",
+ "description": "Label for the show / hide shortcut edit box"
+ },
+
+ "shortcuts_clear_button": {
+ "message": "Clear",
+ "description": "Clear"
+ },
+
"debug": {
"message": "Debug",
"description": "Title for Debug options"
diff --git a/webext/_locales/it/messages.json b/webext/_locales/it/messages.json
index 0ded23c..15cab54 100644
--- a/webext/_locales/it/messages.json
+++ b/webext/_locales/it/messages.json
@@ -49,6 +49,11 @@
"description": "Tab for Mail options"
},
+ "tab_shortcuts": {
+ "message": "Scorciatoie",
+ "description": "Tab for Shortcuts options"
+ },
+
"tab_debug": {
"message": "Debug",
"description": "Tab for Debug options"
@@ -394,6 +399,21 @@
"description": "Title for Accounts options"
},
+ "shortcuts": {
+ "message": "Scorciatoie",
+ "description": "Title for Shortcuts options"
+ },
+
+ "shortcuts_showhide_shortcut": {
+ "message": "Scorciatoia Mostra / Nascondi: ",
+ "description": "Label for the show / hide shortcut edit box"
+ },
+
+ "shortcuts_clear_button": {
+ "message": "Rimuovi",
+ "description": "Clear"
+ },
+
"debug": {
"message": "Debug",
"description": "Title for Debug options"
diff --git a/webext/_locales/nl/messages.json b/webext/_locales/nl/messages.json
index 483251e..4af130b 100644
--- a/webext/_locales/nl/messages.json
+++ b/webext/_locales/nl/messages.json
@@ -49,6 +49,11 @@
"description": "Tab for Mail options"
},
+ "tab_shortcuts": {
+ "message": "Snelkoppelingen",
+ "description": "Tab for Shortcuts options"
+ },
+
"tab_debug": {
"message": "Debug",
"description": "Tab for Debug options"
@@ -394,6 +399,21 @@
"description": "Title for Accounts options"
},
+ "shortcuts": {
+ "message": "Snelkoppelingen",
+ "description": "Title for Shortcuts options"
+ },
+
+ "shortcuts_showhide_shortcut": {
+ "message": "Snelkoppeling Tonen / Verbergen: ",
+ "description": "Label for the show / hide shortcut edit box"
+ },
+
+ "shortcuts_clear_button": {
+ "message": "Verwijderen",
+ "description": "Clear"
+ },
+
"debug": {
"message": "Debug",
"description": "Title for Debug options"
diff --git a/webext/_locales/pt-BR/messages.json b/webext/_locales/pt-BR/messages.json
index b1d5d8f..357f23c 100644
--- a/webext/_locales/pt-BR/messages.json
+++ b/webext/_locales/pt-BR/messages.json
@@ -49,6 +49,11 @@
"description": "Tab for Mail options"
},
+ "tab_shortcuts": {
+ "message": "Atalhos",
+ "description": "Tab for Shortcuts options"
+ },
+
"tab_debug": {
"message": "Depuração",
"description": "Tab for Debug options"
@@ -394,6 +399,21 @@
"description": "Title for Accounts options"
},
+ "shortcuts": {
+ "message": "Atalhos",
+ "description": "Title for Shortcuts options"
+ },
+
+ "shortcuts_showhide_shortcut": {
+ "message": "Atalho Mostrar / Ocultar: ",
+ "description": "Label for the show / hide shortcut edit box"
+ },
+
+ "shortcuts_clear_button": {
+ "message": "Remover",
+ "description": "Clear"
+ },
+
"debug": {
"message": "Depuração",
"description": "Title for Debug options"
diff --git a/webext/_locales/ru/messages.json b/webext/_locales/ru/messages.json
index 8df3ec4..57f0e5a 100644
--- a/webext/_locales/ru/messages.json
+++ b/webext/_locales/ru/messages.json
@@ -49,6 +49,11 @@
"description": "Tab for Mail options"
},
+ "tab_shortcuts": {
+ "message": "Сочетания",
+ "description": "Tab for Shortcuts options"
+ },
+
"tab_debug": {
"message": "Отладка",
"description": "Tab for Debug options"
@@ -394,6 +399,21 @@
"description": "Title for Accounts options"
},
+ "shortcuts": {
+ "message": "Сочетания",
+ "description": "Title for Shortcuts options"
+ },
+
+ "shortcuts_showhide_shortcut": {
+ "message": "Ярлык Показать / Скрыть: ",
+ "description": "Label for the show / hide shortcut edit box"
+ },
+
+ "shortcuts_clear_button": {
+ "message": "Удалять",
+ "description": "Clear"
+ },
+
"debug": {
"message": "Отладка",
"description": "Title for Debug options"
diff --git a/webext/background.js b/webext/background.js
index 8487927..6498edc 100644
--- a/webext/background.js
+++ b/webext/background.js
@@ -632,6 +632,7 @@ SysTrayX.Messaging = {
"startAppArgs",
"closeApp",
"closeAppArgs",
+ "showHideShortcut",
])
.then(
SysTrayX.Messaging.sendPreferencesStorage,
@@ -674,6 +675,7 @@ SysTrayX.Messaging = {
const startAppArgs = result.startAppArgs || "";
const closeApp = result.closeApp || "";
const closeAppArgs = result.closeAppArgs || "";
+ const showHideShortcut = result.showHideShortcut || "";
// Send it to the app
SysTrayX.Link.postSysTrayXMessage({
@@ -707,6 +709,7 @@ SysTrayX.Messaging = {
startAppArgs,
closeApp,
closeAppArgs,
+ showHideShortcut,
},
});
},
@@ -965,6 +968,13 @@ SysTrayX.Link = {
});
}
+ const showHideShortcut = response["preferences"].showHideShortcut;
+ if (showHideShortcut !== undefined) {
+ await storage().set({
+ showHideShortcut: showHideShortcut,
+ });
+ }
+
const debug = response["preferences"].debug;
if (debug) {
await storage().set({
@@ -1023,7 +1033,7 @@ SysTrayX.Window = {
async function start() {
// Setup the link first
SysTrayX.Link.init();
-
+
// Force close a window using a toolbar button
browser.browserAction.disable();
diff --git a/webext/options.html b/webext/options.html
index 7411397..7ea6912 100644
--- a/webext/options.html
+++ b/webext/options.html
@@ -32,6 +32,7 @@
+
@@ -668,6 +669,30 @@
+
+