Fix menu crash

This commit is contained in:
Ximi1970
2020-06-05 19:37:15 +02:00
parent 58a9b2b842
commit 608e226eae
9 changed files with 193 additions and 91 deletions

View File

@@ -52,7 +52,8 @@ Preferences::Preferences( QObject *parent ) : QObject( parent )
m_start_minimized = false; m_start_minimized = false;
m_minimize_on_close = true; m_minimize_on_close = true;
m_debug = false; // m_debug = false;
m_debug = true;
m_version_major = QLatin1String( APP_VERSION_MAJOR ); m_version_major = QLatin1String( APP_VERSION_MAJOR );
m_version_minor = QLatin1String( APP_VERSION_MINOR ); m_version_minor = QLatin1String( APP_VERSION_MINOR );

View File

@@ -33,7 +33,9 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
* Initialize * Initialize
*/ */
m_tray_icon = nullptr; m_tray_icon = nullptr;
m_tray_icon2 = nullptr; m_kde_tray_icon = nullptr;
m_tray_icon_menu = nullptr;
/* /*
* Setup preferences storage * Setup preferences storage
@@ -67,13 +69,6 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
*/ */
m_pref_dialog = new PreferencesDialog( m_link, m_preferences ); m_pref_dialog = new PreferencesDialog( m_link, m_preferences );
/*
* Setup tray icon
*/
createMenu();
// showTrayIcon();
showTrayIconKDE();
/* /*
* Setup debug window * Setup debug window
*/ */
@@ -86,9 +81,6 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
* Connect debug link signals * Connect debug link signals
*/ */
connect( m_link, &SysTrayXLink::signalUnreadMail, m_debug, &DebugWidget::slotUnreadMail ); 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( this, &SysTrayX::signalConsole, m_debug, &DebugWidget::slotConsole );
connect( m_preferences, &Preferences::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::signalTest2ButtonClicked, m_win_ctrl, &WindowCtrl::slotWindowTest2 );
connect( m_debug, &DebugWidget::signalTest3ButtonClicked, m_win_ctrl, &WindowCtrl::slotWindowTest3 ); 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 * 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::signalMinimizeOnCloseChange, m_link, &SysTrayXLink::slotMinimizeOnCloseChange );
connect( m_preferences, &Preferences::signalDebugChange, m_link, &SysTrayXLink::slotDebugChange ); 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 ); 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::signalAddOnShutdown, this, &SysTrayX::slotAddOnShutdown );
connect( m_link, &SysTrayXLink::signalWindowState, m_win_ctrl, &WindowCtrl::slotWindowState ); 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::signalTitle, m_win_ctrl, &WindowCtrl::slotWindowTitle );
connect( m_link, &SysTrayXLink::signalVersion, this, &SysTrayX::slotVersion ); connect( m_link, &SysTrayXLink::signalVersion, this, &SysTrayX::slotVersion );
@@ -204,6 +202,19 @@ 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 * Show / create tray icon
*/ */
@@ -211,6 +222,11 @@ void SysTrayX::showTrayIcon()
{ {
if( !m_tray_icon ) if( !m_tray_icon )
{ {
/*
* Setup tray menu
*/
createMenu();
/* /*
* Create system tray icon * Create system tray icon
*/ */
@@ -286,6 +302,11 @@ void SysTrayX::hideTrayIcon()
*/ */
delete m_tray_icon; delete m_tray_icon;
m_tray_icon = nullptr; m_tray_icon = nullptr;
/*
* Destroy the mennu
*/
destroyMenu();
} }
} }
@@ -293,46 +314,51 @@ void SysTrayX::hideTrayIcon()
/* /*
* Show / create tray icon * 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 * Create system tray icon
*/ */
m_tray_icon2 = new SysTrayXStatusNotifier( m_link, m_preferences ); m_kde_tray_icon = new SysTrayXStatusNotifier( m_link, m_preferences );
m_tray_icon2->setStandardActionsEnabled( false ); m_kde_tray_icon->setStandardActionsEnabled( false );
m_tray_icon2->setContextMenu( m_tray_icon_menu ); m_kde_tray_icon->setContextMenu( m_tray_icon_menu );
/* /*
* Set default icon * Set default icon
*/ */
m_tray_icon2->setDefaultIconMime( m_preferences->getDefaultIconMime() ); m_kde_tray_icon->setDefaultIconMime( m_preferences->getDefaultIconMime() );
m_tray_icon2->setDefaultIconData( m_preferences->getDefaultIconData() ); m_kde_tray_icon->setDefaultIconData( m_preferences->getDefaultIconData() );
m_tray_icon2->setDefaultIconType( m_preferences->getDefaultIconType() ); m_kde_tray_icon->setDefaultIconType( m_preferences->getDefaultIconType() );
/* /*
* Set icon * Set icon
*/ */
m_tray_icon2->setIconMime( m_preferences->getIconMime() ); m_kde_tray_icon->setIconMime( m_preferences->getIconMime() );
m_tray_icon2->setIconData( m_preferences->getIconData() ); m_kde_tray_icon->setIconData( m_preferences->getIconData() );
m_tray_icon2->setIconType( m_preferences->getIconType() ); m_kde_tray_icon->setIconType( m_preferences->getIconType() );
/* /*
* Connect the world * 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::signalDefaultIconTypeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotDefaultIconTypeChange );
connect( m_preferences, &Preferences::signalDefaultIconDataChange, m_tray_icon2, &SysTrayXStatusNotifier::slotDefaultIconDataChange ); connect( m_preferences, &Preferences::signalDefaultIconDataChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotDefaultIconDataChange );
connect( m_preferences, &Preferences::signalHideDefaultIconChange, m_tray_icon2, &SysTrayXStatusNotifier::slotHideDefaultIconChange ); connect( m_preferences, &Preferences::signalHideDefaultIconChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotHideDefaultIconChange );
connect( m_preferences, &Preferences::signalIconTypeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotIconTypeChange ); connect( m_preferences, &Preferences::signalIconTypeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotIconTypeChange );
connect( m_preferences, &Preferences::signalIconDataChange, m_tray_icon2, &SysTrayXStatusNotifier::slotIconDataChange ); connect( m_preferences, &Preferences::signalIconDataChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotIconDataChange );
connect( m_preferences, &Preferences::signalShowNumberChange, m_tray_icon2, &SysTrayXStatusNotifier::slotShowNumberChange ); connect( m_preferences, &Preferences::signalShowNumberChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotShowNumberChange );
connect( m_preferences, &Preferences::signalNumberColorChange, m_tray_icon2, &SysTrayXStatusNotifier::slotNumberColorChange ); connect( m_preferences, &Preferences::signalNumberColorChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotNumberColorChange );
connect( m_preferences, &Preferences::signalNumberSizeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotNumberSizeChange ); 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 * Hide / remove tray icon
*/ */
void SysTrayX::hideTrayIconKDE() void SysTrayX::hideKdeTrayIcon()
{ {
if( m_tray_icon2 ) if( m_kde_tray_icon )
{ {
/* /*
* Disconnect all signals * 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::signalDefaultIconTypeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotDefaultIconTypeChange );
disconnect( m_preferences, &Preferences::signalDefaultIconDataChange, m_tray_icon2, &SysTrayXStatusNotifier::slotDefaultIconDataChange ); disconnect( m_preferences, &Preferences::signalDefaultIconDataChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotDefaultIconDataChange );
disconnect( m_preferences, &Preferences::signalHideDefaultIconChange, m_tray_icon2, &SysTrayXStatusNotifier::slotHideDefaultIconChange ); disconnect( m_preferences, &Preferences::signalHideDefaultIconChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotHideDefaultIconChange );
disconnect( m_preferences, &Preferences::signalIconTypeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotIconTypeChange ); disconnect( m_preferences, &Preferences::signalIconTypeChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotIconTypeChange );
disconnect( m_preferences, &Preferences::signalIconDataChange, m_tray_icon2, &SysTrayXStatusNotifier::slotIconDataChange ); disconnect( m_preferences, &Preferences::signalIconDataChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotIconDataChange );
disconnect( m_preferences, &Preferences::signalShowNumberChange, m_tray_icon2, &SysTrayXStatusNotifier::slotShowNumberChange ); disconnect( m_preferences, &Preferences::signalShowNumberChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotShowNumberChange );
disconnect( m_preferences, &Preferences::signalNumberColorChange, m_tray_icon2, &SysTrayXStatusNotifier::slotNumberColorChange ); disconnect( m_preferences, &Preferences::signalNumberColorChange, m_kde_tray_icon, &SysTrayXStatusNotifier::slotNumberColorChange );
disconnect( m_preferences, &Preferences::signalNumberSizeChange, m_tray_icon2, &SysTrayXStatusNotifier::slotNumberSizeChange ); 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 * Remove the notifier icon
*/ */
delete m_tray_icon2; delete m_kde_tray_icon;
m_tray_icon2 = nullptr; 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() );
} }
void SysTrayX::slotSelectIconObject( bool state )
/*
* Handle icon hide signal
*/
void SysTrayX::slotHide()
{ {
if( state )
{
// Use the KDE icon object
emit signalConsole("Enable KDE icon");
// Remove the Qt tray icon
hideTrayIcon(); hideTrayIcon();
}
// Setup KDE tray icon
/* showKdeTrayIcon();
* Hndle the unread mail signal
*/
void SysTrayX::slotUnreadMail( int unread_mail )
{
if( m_preferences->getDefaultIconType() == Preferences::PREF_DEFAULT_ICON_HIDE )
{
if( unread_mail > 0 )
{
showTrayIcon();
} }
else else
{ {
hideTrayIcon(); // Use default Qt system tray icon
} emit signalConsole("Enable Qt icon");
}
else
{
showTrayIcon();
// Remove KDE trsy icon
hideKdeTrayIcon();
// Setup the Qt tray icon
showTrayIcon();
} }
} }
@@ -501,9 +526,9 @@ void SysTrayX::slotVersion( QString version )
QSystemTrayIcon::Warning ); 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" );
} }
} }
} }

View File

@@ -59,6 +59,11 @@ class SysTrayX : public QObject
*/ */
void createMenu(); void createMenu();
/**
* @brief destroyMenu. Destroy the menu.
*/
void destroyMenu();
/** /**
* @brief showTrayIcon. Create and show the icon. * @brief showTrayIcon. Create and show the icon.
*/ */
@@ -70,14 +75,14 @@ class SysTrayX : public QObject
void hideTrayIcon(); 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: signals:
@@ -102,15 +107,13 @@ class SysTrayX : public QObject
private slots: 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. * @brief slotAddOnShutdown. Handle shutdown request from the add-on.
@@ -165,9 +168,9 @@ class SysTrayX : public QObject
SysTrayXIcon* m_tray_icon; 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. * @brief m_tray_icon_menu. Pointer to the tray icon menu.

View File

@@ -262,6 +262,13 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message )
{ {
QJsonObject jsonObject = jsonResponse.object(); 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() ) if( jsonObject.contains( "unreadMail" ) && jsonObject[ "unreadMail" ].isDouble() )
{ {
int unreadMail = jsonObject[ "unreadMail" ].toInt(); int unreadMail = jsonObject[ "unreadMail" ].toInt();
@@ -331,6 +338,18 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message )
emit signalWindowState( window_state ); 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() ) if( jsonObject.contains( "platformInfo" ) && jsonObject[ "platformInfo" ].isObject() )
{ {
DecodePlatform( jsonObject[ "platformInfo" ].toObject() ); DecodePlatform( jsonObject[ "platformInfo" ].toObject() );
@@ -343,6 +362,8 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message )
if( jsonObject.contains( "preferences" ) && jsonObject[ "preferences" ].isObject() ) if( jsonObject.contains( "preferences" ) && jsonObject[ "preferences" ].isObject() )
{ {
emit signalConsole( QString("preferences") );
DecodePreferences( jsonObject[ "preferences" ].toObject() ); DecodePreferences( jsonObject[ "preferences" ].toObject() );
} }
} }
@@ -481,6 +502,8 @@ void SysTrayXLink::DecodePreferences( const QJsonObject& pref )
{ {
bool hide_default_icon = pref[ "hideDefaultIcon" ].toString() == "true"; bool hide_default_icon = pref[ "hideDefaultIcon" ].toString() == "true";
emit signalConsole(QString("hideDefaultIcon %1").arg(hide_default_icon));
/* /*
* Store the new start minimized state * Store the new start minimized state
*/ */

View File

@@ -181,6 +181,13 @@ class SysTrayXLink : public QObject
*/ */
void signalWindowState( int state ); 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. * @brief signalUnreadMail. Signal numder of unread mails.
* *

View File

@@ -68,6 +68,8 @@ void WindowCtrl::slotWindowTest1()
// Do something. // Do something.
signalHideDefaultIconChange( true );
// emit signalShow(); // emit signalShow();
// emit signalConsole( QString( "Found Ppid: %1" ).arg( getPpid() ) ); // emit signalConsole( QString( "Found Ppid: %1" ).arg( getPpid() ) );
@@ -91,6 +93,8 @@ void WindowCtrl::slotWindowTest2()
// Do something. // Do something.
signalHideDefaultIconChange( false );
// emit signalHide(); // emit signalHide();
// hideWindow( getWinId(), true ); // hideWindow( getWinId(), true );

View File

@@ -49,8 +49,10 @@ class WindowCtrl : public QObject
signals: signals:
void signalShow(); // void signalShow();
void signalHide(); // void signalHide();
void signalHideDefaultIconChange(bool hide );
public slots: public slots:

View File

@@ -3,6 +3,8 @@ var SysTrayX = {
startupState: undefined, startupState: undefined,
hideDefaultIcon: false,
platformInfo: undefined, platformInfo: undefined,
browserInfo: undefined, browserInfo: undefined,
@@ -31,6 +33,9 @@ SysTrayX.Messaging = {
// Send version to app // Send version to app
SysTrayX.Messaging.sendVersion(); SysTrayX.Messaging.sendVersion();
// Send hide default icon preference
SysTrayX.Messaging.sendHideDefaultIcon();
// Send preferences to app // Send preferences to app
SysTrayX.Messaging.sendPreferences(); SysTrayX.Messaging.sendPreferences();
@@ -137,6 +142,14 @@ SysTrayX.Messaging = {
SysTrayX.Link.postSysTrayXMessage({ version: SysTrayX.version }); SysTrayX.Link.postSysTrayXMessage({ version: SysTrayX.version });
}, },
sendHideDefaultIcon: function () {
console.debug("HideIcon:" + SysTrayX.hideDefaultIcon);
SysTrayX.Link.postSysTrayXMessage({
hideDefaultIcon: SysTrayX.hideDefaultIcon,
});
},
sendPreferences: function () { sendPreferences: function () {
const getter = browser.storage.sync.get([ const getter = browser.storage.sync.get([
"debug", "debug",
@@ -401,6 +414,10 @@ async function start() {
); );
} }
// Hide the default icon
const hideDefaultIcon = await getHideDefaultIcon();
SysTrayX.hideDefaultIcon = hideDefaultIcon;
// Set platform // Set platform
SysTrayX.platformInfo = await browser.runtime SysTrayX.platformInfo = await browser.runtime
.getPlatformInfo() .getPlatformInfo()

View File

@@ -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 // Check if the filters are for existing accounts
function checkAccountFilters(filters) { function checkAccountFilters(filters) {
let filtersChanged = false; let filtersChanged = false;