mirror of
https://github.com/Ximi1970/systray-x.git
synced 2025-11-10 15:26:09 +01:00
Fix menu crash
This commit is contained in:
@@ -52,7 +52,8 @@ Preferences::Preferences( QObject *parent ) : QObject( parent )
|
||||
m_start_minimized = false;
|
||||
m_minimize_on_close = true;
|
||||
|
||||
m_debug = false;
|
||||
// m_debug = false;
|
||||
m_debug = true;
|
||||
|
||||
m_version_major = QLatin1String( APP_VERSION_MAJOR );
|
||||
m_version_minor = QLatin1String( APP_VERSION_MINOR );
|
||||
|
||||
@@ -33,7 +33,9 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
* Initialize
|
||||
*/
|
||||
m_tray_icon = nullptr;
|
||||
m_tray_icon2 = nullptr;
|
||||
m_kde_tray_icon = nullptr;
|
||||
|
||||
m_tray_icon_menu = nullptr;
|
||||
|
||||
/*
|
||||
* Setup preferences storage
|
||||
@@ -67,13 +69,6 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
*/
|
||||
m_pref_dialog = new PreferencesDialog( m_link, m_preferences );
|
||||
|
||||
/*
|
||||
* Setup tray icon
|
||||
*/
|
||||
createMenu();
|
||||
// showTrayIcon();
|
||||
showTrayIconKDE();
|
||||
|
||||
/*
|
||||
* Setup debug window
|
||||
*/
|
||||
@@ -86,9 +81,6 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
* Connect debug link signals
|
||||
*/
|
||||
connect( m_link, &SysTrayXLink::signalUnreadMail, m_debug, &DebugWidget::slotUnreadMail );
|
||||
// connect( m_link, &SysTrayXLink::signalUnreadMail, this, &SysTrayX::slotUnreadMail );
|
||||
// connect( m_win_ctrl, &WindowCtrl::signalShow, this, &SysTrayX::slotShow );
|
||||
// connect( m_win_ctrl, &WindowCtrl::signalHide, this, &SysTrayX::slotHide );
|
||||
|
||||
connect( this, &SysTrayX::signalConsole, m_debug, &DebugWidget::slotConsole );
|
||||
connect( m_preferences, &Preferences::signalConsole, m_debug, &DebugWidget::slotConsole );
|
||||
@@ -100,6 +92,9 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
connect( m_debug, &DebugWidget::signalTest2ButtonClicked, m_win_ctrl, &WindowCtrl::slotWindowTest2 );
|
||||
connect( m_debug, &DebugWidget::signalTest3ButtonClicked, m_win_ctrl, &WindowCtrl::slotWindowTest3 );
|
||||
|
||||
connect( m_win_ctrl, &WindowCtrl::signalHideDefaultIconChange, this, &SysTrayX::slotSelectIconObject );
|
||||
connect( this, &SysTrayX::signalConsole, m_debug, &DebugWidget::slotConsole );
|
||||
|
||||
/*
|
||||
* Connect preferences signals
|
||||
*/
|
||||
@@ -134,6 +129,8 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
connect( m_preferences, &Preferences::signalMinimizeOnCloseChange, m_link, &SysTrayXLink::slotMinimizeOnCloseChange );
|
||||
connect( m_preferences, &Preferences::signalDebugChange, m_link, &SysTrayXLink::slotDebugChange );
|
||||
|
||||
connect( m_preferences, &Preferences::signalHideDefaultIconChange, this, &SysTrayX::slotSelectIconObjectPref );
|
||||
|
||||
connect( m_preferences, &Preferences::signalDebugChange, m_debug, &DebugWidget::slotDebugChange );
|
||||
|
||||
/*
|
||||
@@ -141,6 +138,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
*/
|
||||
connect( m_link, &SysTrayXLink::signalAddOnShutdown, this, &SysTrayX::slotAddOnShutdown );
|
||||
connect( m_link, &SysTrayXLink::signalWindowState, m_win_ctrl, &WindowCtrl::slotWindowState );
|
||||
connect( m_link, &SysTrayXLink::signalKdeIntegration, this, &SysTrayX::slotSelectIconObject );
|
||||
connect( m_link, &SysTrayXLink::signalTitle, m_win_ctrl, &WindowCtrl::slotWindowTitle );
|
||||
connect( m_link, &SysTrayXLink::signalVersion, this, &SysTrayX::slotVersion );
|
||||
|
||||
@@ -204,13 +202,31 @@ void SysTrayX::createMenu()
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Destroy the icon menu
|
||||
*/
|
||||
void SysTrayX::destroyMenu()
|
||||
{
|
||||
if( m_tray_icon_menu )
|
||||
{
|
||||
delete m_tray_icon_menu;
|
||||
m_tray_icon_menu = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Show / create tray icon
|
||||
*/
|
||||
void SysTrayX::showTrayIcon()
|
||||
{
|
||||
if( !m_tray_icon )
|
||||
{
|
||||
{
|
||||
/*
|
||||
* Setup tray menu
|
||||
*/
|
||||
createMenu();
|
||||
|
||||
/*
|
||||
* Create system tray icon
|
||||
*/
|
||||
@@ -286,6 +302,11 @@ void SysTrayX::hideTrayIcon()
|
||||
*/
|
||||
delete m_tray_icon;
|
||||
m_tray_icon = nullptr;
|
||||
|
||||
/*
|
||||
* Destroy the mennu
|
||||
*/
|
||||
destroyMenu();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -293,46 +314,51 @@ void SysTrayX::hideTrayIcon()
|
||||
/*
|
||||
* Show / create tray icon
|
||||
*/
|
||||
void SysTrayX::showTrayIconKDE()
|
||||
void SysTrayX::showKdeTrayIcon()
|
||||
{
|
||||
if( !m_tray_icon2 )
|
||||
if( !m_kde_tray_icon )
|
||||
{
|
||||
/*
|
||||
* Setup tray menu
|
||||
*/
|
||||
createMenu();
|
||||
|
||||
/*
|
||||
* Create system tray icon
|
||||
*/
|
||||
m_tray_icon2 = new SysTrayXStatusNotifier( m_link, m_preferences );
|
||||
m_tray_icon2->setStandardActionsEnabled( false );
|
||||
m_tray_icon2->setContextMenu( m_tray_icon_menu );
|
||||
m_kde_tray_icon = new SysTrayXStatusNotifier( m_link, m_preferences );
|
||||
m_kde_tray_icon->setStandardActionsEnabled( false );
|
||||
m_kde_tray_icon->setContextMenu( m_tray_icon_menu );
|
||||
|
||||
/*
|
||||
* Set default icon
|
||||
*/
|
||||
m_tray_icon2->setDefaultIconMime( m_preferences->getDefaultIconMime() );
|
||||
m_tray_icon2->setDefaultIconData( m_preferences->getDefaultIconData() );
|
||||
m_tray_icon2->setDefaultIconType( m_preferences->getDefaultIconType() );
|
||||
m_kde_tray_icon->setDefaultIconMime( m_preferences->getDefaultIconMime() );
|
||||
m_kde_tray_icon->setDefaultIconData( m_preferences->getDefaultIconData() );
|
||||
m_kde_tray_icon->setDefaultIconType( m_preferences->getDefaultIconType() );
|
||||
|
||||
/*
|
||||
* Set icon
|
||||
*/
|
||||
m_tray_icon2->setIconMime( m_preferences->getIconMime() );
|
||||
m_tray_icon2->setIconData( m_preferences->getIconData() );
|
||||
m_tray_icon2->setIconType( m_preferences->getIconType() );
|
||||
m_kde_tray_icon->setIconMime( m_preferences->getIconMime() );
|
||||
m_kde_tray_icon->setIconData( m_preferences->getIconData() );
|
||||
m_kde_tray_icon->setIconType( m_preferences->getIconType() );
|
||||
|
||||
/*
|
||||
* Connect the world
|
||||
*/
|
||||
connect( m_tray_icon2, &SysTrayXStatusNotifier::signalShowHide, m_win_ctrl, &WindowCtrl::slotShowHide );
|
||||
connect( m_kde_tray_icon, &SysTrayXStatusNotifier::signalShowHide, m_win_ctrl, &WindowCtrl::slotShowHide );
|
||||
|
||||
connect( m_preferences, &Preferences::signalDefaultIconTypeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotDefaultIconTypeChange );
|
||||
connect( m_preferences, &Preferences::signalDefaultIconDataChange, m_tray_icon2, &SysTrayXStatusNotifier::slotDefaultIconDataChange );
|
||||
connect( m_preferences, &Preferences::signalHideDefaultIconChange, m_tray_icon2, &SysTrayXStatusNotifier::slotHideDefaultIconChange );
|
||||
connect( m_preferences, &Preferences::signalIconTypeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotIconTypeChange );
|
||||
connect( m_preferences, &Preferences::signalIconDataChange, m_tray_icon2, &SysTrayXStatusNotifier::slotIconDataChange );
|
||||
connect( m_preferences, &Preferences::signalShowNumberChange, m_tray_icon2, &SysTrayXStatusNotifier::slotShowNumberChange );
|
||||
connect( m_preferences, &Preferences::signalNumberColorChange, m_tray_icon2, &SysTrayXStatusNotifier::slotNumberColorChange );
|
||||
connect( m_preferences, &Preferences::signalNumberSizeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotNumberSizeChange );
|
||||
connect( m_preferences, &Preferences::signalDefaultIconTypeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotDefaultIconTypeChange );
|
||||
connect( m_preferences, &Preferences::signalDefaultIconDataChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotDefaultIconDataChange );
|
||||
connect( m_preferences, &Preferences::signalHideDefaultIconChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotHideDefaultIconChange );
|
||||
connect( m_preferences, &Preferences::signalIconTypeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotIconTypeChange );
|
||||
connect( m_preferences, &Preferences::signalIconDataChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotIconDataChange );
|
||||
connect( m_preferences, &Preferences::signalShowNumberChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotShowNumberChange );
|
||||
connect( m_preferences, &Preferences::signalNumberColorChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotNumberColorChange );
|
||||
connect( m_preferences, &Preferences::signalNumberSizeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotNumberSizeChange );
|
||||
|
||||
connect( m_link, &SysTrayXLink::signalUnreadMail, m_tray_icon2, &SysTrayXStatusNotifier::slotSetUnreadMail );
|
||||
connect( m_link, &SysTrayXLink::signalUnreadMail, m_kde_tray_icon, &SysTrayXStatusNotifier::slotSetUnreadMail );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -340,73 +366,72 @@ void SysTrayX::showTrayIconKDE()
|
||||
/*
|
||||
* Hide / remove tray icon
|
||||
*/
|
||||
void SysTrayX::hideTrayIconKDE()
|
||||
void SysTrayX::hideKdeTrayIcon()
|
||||
{
|
||||
if( m_tray_icon2 )
|
||||
if( m_kde_tray_icon )
|
||||
{
|
||||
/*
|
||||
* Disconnect all signals
|
||||
*/
|
||||
disconnect( m_tray_icon2, &SysTrayXStatusNotifier::signalShowHide, m_win_ctrl, &WindowCtrl::slotShowHide );
|
||||
disconnect( m_kde_tray_icon, &SysTrayXStatusNotifier::signalShowHide, m_win_ctrl, &WindowCtrl::slotShowHide );
|
||||
|
||||
disconnect( m_preferences, &Preferences::signalDefaultIconTypeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotDefaultIconTypeChange );
|
||||
disconnect( m_preferences, &Preferences::signalDefaultIconDataChange, m_tray_icon2, &SysTrayXStatusNotifier::slotDefaultIconDataChange );
|
||||
disconnect( m_preferences, &Preferences::signalHideDefaultIconChange, m_tray_icon2, &SysTrayXStatusNotifier::slotHideDefaultIconChange );
|
||||
disconnect( m_preferences, &Preferences::signalIconTypeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotIconTypeChange );
|
||||
disconnect( m_preferences, &Preferences::signalIconDataChange, m_tray_icon2, &SysTrayXStatusNotifier::slotIconDataChange );
|
||||
disconnect( m_preferences, &Preferences::signalShowNumberChange, m_tray_icon2, &SysTrayXStatusNotifier::slotShowNumberChange );
|
||||
disconnect( m_preferences, &Preferences::signalNumberColorChange, m_tray_icon2, &SysTrayXStatusNotifier::slotNumberColorChange );
|
||||
disconnect( m_preferences, &Preferences::signalNumberSizeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotNumberSizeChange );
|
||||
disconnect( m_preferences, &Preferences::signalDefaultIconTypeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotDefaultIconTypeChange );
|
||||
disconnect( m_preferences, &Preferences::signalDefaultIconDataChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotDefaultIconDataChange );
|
||||
disconnect( m_preferences, &Preferences::signalHideDefaultIconChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotHideDefaultIconChange );
|
||||
disconnect( m_preferences, &Preferences::signalIconTypeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotIconTypeChange );
|
||||
disconnect( m_preferences, &Preferences::signalIconDataChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotIconDataChange );
|
||||
disconnect( m_preferences, &Preferences::signalShowNumberChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotShowNumberChange );
|
||||
disconnect( m_preferences, &Preferences::signalNumberColorChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotNumberColorChange );
|
||||
disconnect( m_preferences, &Preferences::signalNumberSizeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotNumberSizeChange );
|
||||
|
||||
disconnect( m_link, &SysTrayXLink::signalUnreadMail, m_tray_icon2, &SysTrayXStatusNotifier::slotSetUnreadMail );
|
||||
disconnect( m_link, &SysTrayXLink::signalUnreadMail, m_kde_tray_icon, &SysTrayXStatusNotifier::slotSetUnreadMail );
|
||||
|
||||
/*
|
||||
* Remove the notifier icon
|
||||
*/
|
||||
delete m_tray_icon2;
|
||||
m_tray_icon2 = nullptr;
|
||||
delete m_kde_tray_icon;
|
||||
m_kde_tray_icon = nullptr;
|
||||
|
||||
/*
|
||||
* Destroy the mennu
|
||||
*/
|
||||
m_tray_icon_menu = nullptr;
|
||||
//destroyMenu();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle icon show signal
|
||||
* Select the prefered icon
|
||||
*/
|
||||
void SysTrayX::slotShow()
|
||||
void SysTrayX::slotSelectIconObjectPref()
|
||||
{
|
||||
showTrayIcon();
|
||||
slotSelectIconObject( m_preferences->getHideDefaultIcon() );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle icon hide signal
|
||||
*/
|
||||
void SysTrayX::slotHide()
|
||||
void SysTrayX::slotSelectIconObject( bool state )
|
||||
{
|
||||
hideTrayIcon();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Hndle the unread mail signal
|
||||
*/
|
||||
void SysTrayX::slotUnreadMail( int unread_mail )
|
||||
{
|
||||
if( m_preferences->getDefaultIconType() == Preferences::PREF_DEFAULT_ICON_HIDE )
|
||||
if( state )
|
||||
{
|
||||
if( unread_mail > 0 )
|
||||
{
|
||||
showTrayIcon();
|
||||
}
|
||||
else
|
||||
{
|
||||
hideTrayIcon();
|
||||
}
|
||||
// Use the KDE icon object
|
||||
emit signalConsole("Enable KDE icon");
|
||||
|
||||
// Remove the Qt tray icon
|
||||
hideTrayIcon();
|
||||
|
||||
// Setup KDE tray icon
|
||||
showKdeTrayIcon();
|
||||
}
|
||||
else
|
||||
{
|
||||
showTrayIcon();
|
||||
// Use default Qt system tray icon
|
||||
emit signalConsole("Enable Qt icon");
|
||||
|
||||
// Remove KDE trsy icon
|
||||
hideKdeTrayIcon();
|
||||
|
||||
// Setup the Qt tray icon
|
||||
showTrayIcon();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -501,9 +526,9 @@ void SysTrayX::slotVersion( QString version )
|
||||
QSystemTrayIcon::Warning );
|
||||
}
|
||||
|
||||
if( m_tray_icon2 )
|
||||
if( m_kde_tray_icon )
|
||||
{
|
||||
m_tray_icon2->showMessage("SysTray-X Warning", "Version mismatch addon and app", ":/files/icons/dialog-warning.png" );
|
||||
m_kde_tray_icon->showMessage("SysTray-X Warning", "Version mismatch addon and app", ":/files/icons/dialog-warning.png" );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,6 +59,11 @@ class SysTrayX : public QObject
|
||||
*/
|
||||
void createMenu();
|
||||
|
||||
/**
|
||||
* @brief destroyMenu. Destroy the menu.
|
||||
*/
|
||||
void destroyMenu();
|
||||
|
||||
/**
|
||||
* @brief showTrayIcon. Create and show the icon.
|
||||
*/
|
||||
@@ -70,14 +75,14 @@ class SysTrayX : public QObject
|
||||
void hideTrayIcon();
|
||||
|
||||
/**
|
||||
* @brief showTrayIconKDE. Create and show the KDE icon.
|
||||
* @brief showKdeTrayIcon. Create and show the KDE icon.
|
||||
*/
|
||||
void showTrayIconKDE();
|
||||
void showKdeTrayIcon();
|
||||
|
||||
/**
|
||||
* @brief hideTrayIcon. Hide and destroy the KDE icon.
|
||||
* @brief hideKdeTrayIcon. Hide and destroy the KDE icon.
|
||||
*/
|
||||
void hideTrayIconKDE();
|
||||
void hideKdeTrayIcon();
|
||||
|
||||
signals:
|
||||
|
||||
@@ -102,15 +107,13 @@ class SysTrayX : public QObject
|
||||
|
||||
private slots:
|
||||
|
||||
void slotShow();
|
||||
void slotHide();
|
||||
|
||||
/**
|
||||
* @brief slotUnreadMail. Handle unread mail signal.
|
||||
* @brief slotSelectIconObject. Select the prefered icon.
|
||||
*
|
||||
* @param unread_mail Number of unread mail.
|
||||
* @param state The state.
|
||||
*/
|
||||
void slotUnreadMail( int unread_mail );
|
||||
void slotSelectIconObjectPref();
|
||||
void slotSelectIconObject( bool state );
|
||||
|
||||
/**
|
||||
* @brief slotAddOnShutdown. Handle shutdown request from the add-on.
|
||||
@@ -165,9 +168,9 @@ class SysTrayX : public QObject
|
||||
SysTrayXIcon* m_tray_icon;
|
||||
|
||||
/**
|
||||
* @brief m_tray_icon2. Pointer to the KDE system tray icon.
|
||||
* @brief m_kde_tray_icon. Pointer to the KDE system tray icon.
|
||||
*/
|
||||
SysTrayXStatusNotifier* m_tray_icon2;
|
||||
SysTrayXStatusNotifier* m_kde_tray_icon;
|
||||
|
||||
/**
|
||||
* @brief m_tray_icon_menu. Pointer to the tray icon menu.
|
||||
|
||||
@@ -262,6 +262,13 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message )
|
||||
{
|
||||
QJsonObject jsonObject = jsonResponse.object();
|
||||
|
||||
/*
|
||||
QStringList list = jsonObject.keys();
|
||||
for( int i = 0 ; i < list.length() ; ++i )
|
||||
{
|
||||
emit signalConsole( QString("Message %1").arg(list.at(i)) );
|
||||
}
|
||||
*/
|
||||
if( jsonObject.contains( "unreadMail" ) && jsonObject[ "unreadMail" ].isDouble() )
|
||||
{
|
||||
int unreadMail = jsonObject[ "unreadMail" ].toInt();
|
||||
@@ -331,6 +338,18 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message )
|
||||
emit signalWindowState( window_state );
|
||||
}
|
||||
|
||||
if( jsonObject.contains( "hideDefaultIcon" ) && jsonObject[ "hideDefaultIcon" ].isBool() )
|
||||
{
|
||||
bool hide_default_icon = jsonObject[ "hideDefaultIcon" ].toBool();
|
||||
|
||||
emit signalConsole(QString("hideDefaultIcon %1").arg(hide_default_icon));
|
||||
|
||||
/*
|
||||
* Signal the KDE integration or hide default icon
|
||||
*/
|
||||
emit signalKdeIntegration( hide_default_icon );
|
||||
}
|
||||
|
||||
if( jsonObject.contains( "platformInfo" ) && jsonObject[ "platformInfo" ].isObject() )
|
||||
{
|
||||
DecodePlatform( jsonObject[ "platformInfo" ].toObject() );
|
||||
@@ -343,6 +362,8 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message )
|
||||
|
||||
if( jsonObject.contains( "preferences" ) && jsonObject[ "preferences" ].isObject() )
|
||||
{
|
||||
emit signalConsole( QString("preferences") );
|
||||
|
||||
DecodePreferences( jsonObject[ "preferences" ].toObject() );
|
||||
}
|
||||
}
|
||||
@@ -481,6 +502,8 @@ void SysTrayXLink::DecodePreferences( const QJsonObject& pref )
|
||||
{
|
||||
bool hide_default_icon = pref[ "hideDefaultIcon" ].toString() == "true";
|
||||
|
||||
emit signalConsole(QString("hideDefaultIcon %1").arg(hide_default_icon));
|
||||
|
||||
/*
|
||||
* Store the new start minimized state
|
||||
*/
|
||||
|
||||
@@ -181,6 +181,13 @@ class SysTrayXLink : public QObject
|
||||
*/
|
||||
void signalWindowState( int state );
|
||||
|
||||
/**
|
||||
* @brief signalKdeIntegration. Signal KDE integration (and use the KStatusNotifierItem icon)
|
||||
*
|
||||
* @param state The prefered state
|
||||
*/
|
||||
void signalKdeIntegration( bool state );
|
||||
|
||||
/**
|
||||
* @brief signalUnreadMail. Signal numder of unread mails.
|
||||
*
|
||||
|
||||
@@ -68,6 +68,8 @@ void WindowCtrl::slotWindowTest1()
|
||||
|
||||
// Do something.
|
||||
|
||||
signalHideDefaultIconChange( true );
|
||||
|
||||
// emit signalShow();
|
||||
|
||||
// emit signalConsole( QString( "Found Ppid: %1" ).arg( getPpid() ) );
|
||||
@@ -91,6 +93,8 @@ void WindowCtrl::slotWindowTest2()
|
||||
|
||||
// Do something.
|
||||
|
||||
signalHideDefaultIconChange( false );
|
||||
|
||||
// emit signalHide();
|
||||
|
||||
// hideWindow( getWinId(), true );
|
||||
|
||||
@@ -49,8 +49,10 @@ class WindowCtrl : public QObject
|
||||
|
||||
signals:
|
||||
|
||||
void signalShow();
|
||||
void signalHide();
|
||||
// void signalShow();
|
||||
// void signalHide();
|
||||
|
||||
void signalHideDefaultIconChange(bool hide );
|
||||
|
||||
public slots:
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@ var SysTrayX = {
|
||||
|
||||
startupState: undefined,
|
||||
|
||||
hideDefaultIcon: false,
|
||||
|
||||
platformInfo: undefined,
|
||||
|
||||
browserInfo: undefined,
|
||||
@@ -31,6 +33,9 @@ SysTrayX.Messaging = {
|
||||
// Send version to app
|
||||
SysTrayX.Messaging.sendVersion();
|
||||
|
||||
// Send hide default icon preference
|
||||
SysTrayX.Messaging.sendHideDefaultIcon();
|
||||
|
||||
// Send preferences to app
|
||||
SysTrayX.Messaging.sendPreferences();
|
||||
|
||||
@@ -137,6 +142,14 @@ SysTrayX.Messaging = {
|
||||
SysTrayX.Link.postSysTrayXMessage({ version: SysTrayX.version });
|
||||
},
|
||||
|
||||
sendHideDefaultIcon: function () {
|
||||
console.debug("HideIcon:" + SysTrayX.hideDefaultIcon);
|
||||
|
||||
SysTrayX.Link.postSysTrayXMessage({
|
||||
hideDefaultIcon: SysTrayX.hideDefaultIcon,
|
||||
});
|
||||
},
|
||||
|
||||
sendPreferences: function () {
|
||||
const getter = browser.storage.sync.get([
|
||||
"debug",
|
||||
@@ -401,6 +414,10 @@ async function start() {
|
||||
);
|
||||
}
|
||||
|
||||
// Hide the default icon
|
||||
const hideDefaultIcon = await getHideDefaultIcon();
|
||||
SysTrayX.hideDefaultIcon = hideDefaultIcon;
|
||||
|
||||
// Set platform
|
||||
SysTrayX.platformInfo = await browser.runtime
|
||||
.getPlatformInfo()
|
||||
|
||||
@@ -146,6 +146,26 @@ async function getMinimizeOnClose() {
|
||||
);
|
||||
}
|
||||
|
||||
//
|
||||
// Get KDE integration, default icon hide
|
||||
//
|
||||
async function getHideDefaultIcon() {
|
||||
function getHideDefaultIconPref(result) {
|
||||
const hideDefaultIcon = result.hideDefaultIcon || "false";
|
||||
return hideDefaultIcon === "true";
|
||||
}
|
||||
|
||||
function onHideDefaultIconPrefError() {
|
||||
return false;
|
||||
}
|
||||
|
||||
const getState = browser.storage.sync.get("hideDefaultIcon");
|
||||
return await getState.then(
|
||||
getHideDefaultIconPref,
|
||||
onHideDefaultIconPrefError
|
||||
);
|
||||
}
|
||||
|
||||
// Check if the filters are for existing accounts
|
||||
function checkAccountFilters(filters) {
|
||||
let filtersChanged = false;
|
||||
|
||||
Reference in New Issue
Block a user