mirror of
https://github.com/Ximi1970/systray-x.git
synced 2026-02-12 01:06:45 +01:00
Add minimize normalize close to tray using container
This commit is contained in:
@@ -1,16 +1,31 @@
|
||||
#include "container.h"
|
||||
#include "ui_container.h"
|
||||
|
||||
/*
|
||||
* Local includes
|
||||
*/
|
||||
#include "preferences.h"
|
||||
|
||||
/*
|
||||
* System includes
|
||||
*/
|
||||
|
||||
/*
|
||||
* Qt includes
|
||||
*/
|
||||
#include <QIcon>
|
||||
#include <QCloseEvent>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
/*
|
||||
* Constructor
|
||||
*/
|
||||
Container::Container( QWidget *parent ) : QWidget( parent )
|
||||
Container::Container( Preferences* pref, QWidget *parent ) : QWidget( parent )
|
||||
{
|
||||
/*
|
||||
* Store the preferences
|
||||
*/
|
||||
m_pref = pref;
|
||||
|
||||
/*
|
||||
* Construct conatainer
|
||||
*/
|
||||
@@ -21,10 +36,85 @@ Container::Container( QWidget *parent ) : QWidget( parent )
|
||||
* Set properties
|
||||
*/
|
||||
setWindowIcon( QIcon( ":/files/icons/Thunderbird.png" ) );
|
||||
setWindowTitle( "Mozilla Thunderbird" );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the TB widget
|
||||
*/
|
||||
void Container::setWidget( QWidget* widget )
|
||||
{
|
||||
layout()->addWidget( widget );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Remove the TB widget
|
||||
*/
|
||||
void Container::removeWidget( QWidget* widget )
|
||||
{
|
||||
layout()->removeWidget( widget );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Override the close event handler
|
||||
*/
|
||||
void Container::closeEvent( QCloseEvent *event )
|
||||
{
|
||||
if( m_minimize_close )
|
||||
{
|
||||
/*
|
||||
* Minimize instead of close
|
||||
*/
|
||||
event->ignore();
|
||||
|
||||
emit signalShowHide();
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Close
|
||||
*/
|
||||
event->accept();
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef FF_NEET
|
||||
|
||||
/*
|
||||
* Override the minimize event
|
||||
*/
|
||||
void Container::changeEvent( QEvent * event )
|
||||
{
|
||||
switch( event->type() )
|
||||
{
|
||||
case QEvent::WindowStateChange:
|
||||
{
|
||||
if( isMinimized() )
|
||||
{
|
||||
setWindowState(reinterpret_cast<QWindowStateChangeEvent *>(event)->oldState());
|
||||
event->accept();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
QWidget::changeEvent( event );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeOnClose. Hnadle preference minimize on close signal.
|
||||
*/
|
||||
void Container::slotMinimizeOnClose()
|
||||
{
|
||||
m_minimize_close = m_pref->getMinimizeOnClose();
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
* Predefines
|
||||
*/
|
||||
class QVBoxLayout;
|
||||
class Preferences;
|
||||
|
||||
/**
|
||||
* @brief The Container class. Class to hold the Thunderbird window.
|
||||
@@ -25,7 +26,7 @@ class Container : public QWidget
|
||||
*
|
||||
* @param parent My parent.
|
||||
*/
|
||||
Container( QWidget *parent = nullptr );
|
||||
Container( Preferences* pref, QWidget *parent = nullptr );
|
||||
|
||||
/**
|
||||
* @brief setWidget. Set the container widget.
|
||||
@@ -34,7 +35,47 @@ class Container : public QWidget
|
||||
*/
|
||||
void setWidget( QWidget* widget );
|
||||
|
||||
/**
|
||||
* @brief removeWidget. Remove the container widget.
|
||||
*
|
||||
* @param widget
|
||||
*/
|
||||
void removeWidget( QWidget* widget );
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* @brief closeEvent. Override the close event handler.
|
||||
*
|
||||
* @param event The event.
|
||||
*/
|
||||
void closeEvent( QCloseEvent *event );
|
||||
|
||||
signals:
|
||||
|
||||
/**
|
||||
* @brief signalShowHide. Signal show / hide window.
|
||||
*/
|
||||
void signalShowHide();
|
||||
|
||||
public slots:
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeOnClose. Hnadle preference minimize on close signal.
|
||||
*/
|
||||
void slotMinimizeOnClose();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* @brief m_pref. Pointer to the preferences storage.
|
||||
*/
|
||||
Preferences* m_pref;
|
||||
|
||||
/**
|
||||
* @brief m_minimize_close. Minimize on close state.
|
||||
*/
|
||||
bool m_minimize_close;
|
||||
};
|
||||
|
||||
#endif // CONTAINER_H
|
||||
|
||||
@@ -14,7 +14,8 @@ Preferences::Preferences( QObject *parent ) : QObject( parent )
|
||||
m_icon_mime = "image/png";
|
||||
m_icon_data = QByteArray();
|
||||
|
||||
m_minimize_hide = true;
|
||||
m_hide_minimize = true;
|
||||
m_minimize_close = true;
|
||||
|
||||
m_debug = false;
|
||||
}
|
||||
@@ -113,27 +114,53 @@ void Preferences::setIconData( const QByteArray& icon_data )
|
||||
|
||||
|
||||
/*
|
||||
* Get the icon data.
|
||||
* Get the hide on minimize state.
|
||||
*/
|
||||
bool Preferences::getMinimizeHide() const
|
||||
bool Preferences::getHideOnMinimize() const
|
||||
{
|
||||
return m_minimize_hide;
|
||||
return m_hide_minimize;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the minimizeHide data.
|
||||
* Set the minimize on close state.
|
||||
*/
|
||||
void Preferences::setMinimizeHide( bool state )
|
||||
void Preferences::setHideOnMinimize( bool state )
|
||||
{
|
||||
if( m_minimize_hide != state )
|
||||
if( m_hide_minimize != state )
|
||||
{
|
||||
m_minimize_hide = state;
|
||||
m_hide_minimize = state;
|
||||
|
||||
/*
|
||||
* Tell the world the new preference
|
||||
*/
|
||||
emit signalMinimizeHideChange();
|
||||
emit signalHideOnMinimizeChange();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the minimuze on close state.
|
||||
*/
|
||||
bool Preferences::getMinimizeOnClose() const
|
||||
{
|
||||
return m_minimize_close;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the minimize on close data.
|
||||
*/
|
||||
void Preferences::setMinimizeOnClose( bool state )
|
||||
{
|
||||
if( m_minimize_close != state )
|
||||
{
|
||||
m_minimize_close = state;
|
||||
|
||||
/*
|
||||
* Tell the world the new preference
|
||||
*/
|
||||
emit signalMinimizeOnCloseChange();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -42,138 +42,162 @@ class Preferences : public QObject
|
||||
*
|
||||
* @return The state
|
||||
*/
|
||||
bool getAppPrefChanged() const;
|
||||
bool getAppPrefChanged() const;
|
||||
|
||||
/**
|
||||
* @brief setAppPrefChanged. Control for sending changes to the add-on.
|
||||
*
|
||||
* @param state The state
|
||||
*/
|
||||
void setAppPrefChanged( bool state );
|
||||
void setAppPrefChanged( bool state );
|
||||
|
||||
/**
|
||||
* @brief getIconType. Get the icon type.
|
||||
*
|
||||
* @return The icon type.
|
||||
*/
|
||||
IconType getIconType() const;
|
||||
IconType getIconType() const;
|
||||
|
||||
/**
|
||||
* @brief setIconType. Set the icon type.
|
||||
*
|
||||
* @param The icon type.
|
||||
*/
|
||||
void setIconType( IconType icon_type );
|
||||
void setIconType( IconType icon_type );
|
||||
|
||||
/**
|
||||
* @brief getIconMime. Get the icon mime.
|
||||
*
|
||||
* @return The icon mime.
|
||||
*/
|
||||
const QString& getIconMime() const;
|
||||
const QString& getIconMime() const;
|
||||
|
||||
/**
|
||||
* @brief setIconMime. Set the icon mime.
|
||||
*
|
||||
* @param The icon mime.
|
||||
*/
|
||||
void setIconMime( const QString& icon_mime );
|
||||
void setIconMime( const QString& icon_mime );
|
||||
|
||||
/**
|
||||
* @brief getIconData. Get the icon data.
|
||||
*
|
||||
* @return The icon data.
|
||||
*/
|
||||
const QByteArray& getIconData() const;
|
||||
const QByteArray& getIconData() const;
|
||||
|
||||
/**
|
||||
* @brief setIconData. Set the icon data.
|
||||
*
|
||||
* @param The icon data.
|
||||
*/
|
||||
void setIconData( const QByteArray& icon_data );
|
||||
void setIconData( const QByteArray& icon_data );
|
||||
|
||||
/**
|
||||
* @brief getMinimizeHide. Get the minimizeHide state.
|
||||
* @brief getHideOnMinimize. Get the hide on minimize state.
|
||||
*
|
||||
* @return The state.
|
||||
*/
|
||||
bool getMinimizeHide() const;
|
||||
bool getHideOnMinimize() const;
|
||||
|
||||
/**
|
||||
* @brief setMinimizeHide. Set the minimizeHide state.
|
||||
* @brief setHideOnMinimize. Set the hide on minimize state.
|
||||
*
|
||||
* @param The state.
|
||||
*/
|
||||
void setMinimizeHide( bool state );
|
||||
void setHideOnMinimize( bool state );
|
||||
|
||||
/**
|
||||
* @brief getMinimizeOnClose. Get the minimize on close state.
|
||||
*
|
||||
* @return The state.
|
||||
*/
|
||||
bool getMinimizeOnClose() const;
|
||||
|
||||
/**
|
||||
* @brief setMinimizeOnClose. Set the minimize on close state.
|
||||
*
|
||||
* @param The state.
|
||||
*/
|
||||
void setMinimizeOnClose( bool state );
|
||||
|
||||
/**
|
||||
* @brief getDebug. Get the debug windows state.
|
||||
*
|
||||
* @return The state.
|
||||
*/
|
||||
bool getDebug() const;
|
||||
bool getDebug() const;
|
||||
|
||||
/**
|
||||
* @brief setDebug. Set the debug windows state.
|
||||
*
|
||||
* @param The state.
|
||||
*/
|
||||
void setDebug( bool state );
|
||||
void setDebug( bool state );
|
||||
|
||||
signals:
|
||||
|
||||
/**
|
||||
* @brief signalIconTypeChange. Signal a icon type change.
|
||||
*/
|
||||
void signalIconTypeChange();
|
||||
void signalIconTypeChange();
|
||||
|
||||
/**
|
||||
* @brief signalIconDataChange. Signal a icon data change.
|
||||
*/
|
||||
void signalIconDataChange();
|
||||
void signalIconDataChange();
|
||||
|
||||
/**
|
||||
* @brief signalMinimizeHideChange. Signal a minimizeHide state change.
|
||||
* @brief signalHideOnMinimizeChange. Signal a hide on minimize state change.
|
||||
*/
|
||||
void signalMinimizeHideChange();
|
||||
void signalHideOnMinimizeChange();
|
||||
|
||||
/**
|
||||
* @brief signalMinimizeOnCloseChange. Signal a minimize on close state change.
|
||||
*/
|
||||
void signalMinimizeOnCloseChange();
|
||||
|
||||
/**
|
||||
* @brief signalDebugChange. Signal a debug state change.
|
||||
*/
|
||||
void signalDebugChange();
|
||||
void signalDebugChange();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* @brief m_app_pref_changed. Control for sending changes to the add-on.
|
||||
*/
|
||||
bool m_app_pref_changed;
|
||||
bool m_app_pref_changed;
|
||||
|
||||
/**
|
||||
* @brief m_icon_type. Selected icon type.
|
||||
*/
|
||||
IconType m_icon_type;
|
||||
IconType m_icon_type;
|
||||
|
||||
/**
|
||||
* @brief m_icon_mime. Selected icon mime.
|
||||
*/
|
||||
QString m_icon_mime;
|
||||
QString m_icon_mime;
|
||||
|
||||
/**
|
||||
* @brief m_icon_data. Binary data icon image.
|
||||
*/
|
||||
QByteArray m_icon_data;
|
||||
QByteArray m_icon_data;
|
||||
|
||||
/**
|
||||
* @brief m_minimize_hide. Hide the minimized window.
|
||||
* @brief m_hide_minimize. Hide the minimized window.
|
||||
*/
|
||||
bool m_minimize_hide;
|
||||
bool m_hide_minimize;
|
||||
|
||||
/**
|
||||
* @brief m_minimize_close. Hide the closing window.
|
||||
*/
|
||||
bool m_minimize_close;
|
||||
|
||||
/**
|
||||
* @brief m_debug. Display debug window.
|
||||
*/
|
||||
bool m_debug;
|
||||
bool m_debug;
|
||||
};
|
||||
|
||||
#endif // PREFERENCES_H
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="minimizeHideCheckBox">
|
||||
<widget class="QCheckBox" name="hideOnMinimizeCheckBox">
|
||||
<property name="text">
|
||||
<string>Minimizing window hides to tray</string>
|
||||
</property>
|
||||
@@ -66,6 +66,16 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="minimizeOnCloseCheckBox">
|
||||
<property name="text">
|
||||
<string>Closing window hides to tray</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
@@ -59,11 +59,20 @@ void PreferencesDialog::setDebug( bool state )
|
||||
|
||||
|
||||
/*
|
||||
* Set the minimizeHide state
|
||||
* Set the hide on minimize state
|
||||
*/
|
||||
void PreferencesDialog::setMinimizeHide( bool state )
|
||||
void PreferencesDialog::setHideOnMinimize( bool state )
|
||||
{
|
||||
m_ui->minimizeHideCheckBox->setChecked( state );
|
||||
m_ui->hideOnMinimizeCheckBox->setChecked( state );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the minimize on close state
|
||||
*/
|
||||
void PreferencesDialog::setMinimizeOnClose( bool state )
|
||||
{
|
||||
m_ui->minimizeOnCloseCheckBox->setChecked( state );
|
||||
}
|
||||
|
||||
|
||||
@@ -128,7 +137,8 @@ void PreferencesDialog::slotAccept()
|
||||
m_pref->setIconMime( m_tmp_icon_mime );
|
||||
m_pref->setIconData( m_tmp_icon_data );
|
||||
|
||||
m_pref->setMinimizeHide( m_ui->minimizeHideCheckBox->isChecked() );
|
||||
m_pref->setHideOnMinimize( m_ui->hideOnMinimizeCheckBox->isChecked() );
|
||||
m_pref->setMinimizeOnClose( m_ui->minimizeOnCloseCheckBox->isChecked() );
|
||||
|
||||
m_pref->setDebug( m_ui->debugWindowCheckBox->isChecked() );
|
||||
|
||||
@@ -179,11 +189,20 @@ void PreferencesDialog::slotDebugChange()
|
||||
|
||||
|
||||
/*
|
||||
* Handle the minimizeHide change signal
|
||||
* Handle the hide on minimize change signal
|
||||
*/
|
||||
void PreferencesDialog::slotMinimizeHideChange()
|
||||
void PreferencesDialog::slotHideOnMinimizeChange()
|
||||
{
|
||||
setMinimizeHide( m_pref->getMinimizeHide() );
|
||||
setHideOnMinimize( m_pref->getHideOnMinimize() );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle the minimize on close change signal
|
||||
*/
|
||||
void PreferencesDialog::slotMinimizeOnCloseChange()
|
||||
{
|
||||
setMinimizeOnClose( m_pref->getMinimizeOnClose() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -49,11 +49,18 @@ class PreferencesDialog : public QDialog
|
||||
void setDebug( bool state );
|
||||
|
||||
/**
|
||||
* @brief setMinimizeHide. Set the miniizeHide state.
|
||||
* @brief setHideOnMinimize. Set the hide on minimize state.
|
||||
*
|
||||
* @param state The state.
|
||||
*/
|
||||
void setMinimizeHide( bool state );
|
||||
void setHideOnMinimize( bool state );
|
||||
|
||||
/**
|
||||
* @brief setMinimizeOnClose. Set the minimize on close state.
|
||||
*
|
||||
* @param state The state.
|
||||
*/
|
||||
void setMinimizeOnClose( bool state );
|
||||
|
||||
/**
|
||||
* @brief setIconType. Set the icon type.
|
||||
@@ -87,68 +94,73 @@ class PreferencesDialog : public QDialog
|
||||
/**
|
||||
* @brief signalUpdateSysTray. Signal to update the system tray icon.
|
||||
*/
|
||||
void signalUpdateSysTrayIcon();
|
||||
void signalUpdateSysTrayIcon();
|
||||
|
||||
public slots:
|
||||
|
||||
/**
|
||||
* @brief slotDebugChange. Slot for handling debug change signals.
|
||||
*/
|
||||
void slotDebugChange();
|
||||
void slotDebugChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeHideChange. Slot for handling minimizeHide change signals.
|
||||
* @brief slotHideOnMinimizeChange. Slot for handling hide on minimize change signals.
|
||||
*/
|
||||
void slotMinimizeHideChange();
|
||||
void slotHideOnMinimizeChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeOnCloseChange. Slot for handling minimize on close change signals.
|
||||
*/
|
||||
void slotMinimizeOnCloseChange();
|
||||
|
||||
/**
|
||||
* @brief slotIconTypeChange. Slot for handling icon type change signals.
|
||||
*/
|
||||
void slotIconTypeChange();
|
||||
void slotIconTypeChange();
|
||||
|
||||
/**
|
||||
* @brief slotIconDataChange. Slot for handling icon data change signals.
|
||||
*/
|
||||
void slotIconDataChange();
|
||||
void slotIconDataChange();
|
||||
|
||||
private slots:
|
||||
|
||||
/**
|
||||
* @brief slotAccept. Store the preferences on the accept signal.
|
||||
*/
|
||||
void slotAccept();
|
||||
void slotAccept();
|
||||
|
||||
/**
|
||||
* @brief slotFileSelect. Handle the choose custom button click.
|
||||
*/
|
||||
void slotFileSelect();
|
||||
void slotFileSelect();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
* @brief m_ui. Pointer to the dialog.
|
||||
*/
|
||||
Ui::PreferencesDialog *m_ui;
|
||||
Ui::PreferencesDialog* m_ui;
|
||||
|
||||
/**
|
||||
* @brief m_link. Pointer to the link.
|
||||
*/
|
||||
SysTrayXLink *m_link;
|
||||
SysTrayXLink* m_link;
|
||||
|
||||
/**
|
||||
* @brief m_pref. Pointer to the preferences storage.
|
||||
*/
|
||||
Preferences *m_pref;
|
||||
Preferences* m_pref;
|
||||
|
||||
/**
|
||||
* @brief m_tmp_icon_mime. Temporary storage for icon mime.
|
||||
*/
|
||||
QString m_tmp_icon_mime;
|
||||
QString m_tmp_icon_mime;
|
||||
|
||||
/**
|
||||
* @brief m_tmp_icon_data. Temporary storage for icon data.
|
||||
*/
|
||||
QByteArray m_tmp_icon_data;
|
||||
QByteArray m_tmp_icon_data;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
/*
|
||||
* Setup window control
|
||||
*/
|
||||
m_tb_container = new Container();
|
||||
m_tb_container = new Container( m_preferences );
|
||||
|
||||
/*
|
||||
* Setup window control
|
||||
@@ -74,6 +74,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
|
||||
connect( m_link, &SysTrayXLink::signalUnreadMail, m_debug, &DebugWidget::slotUnreadMail );
|
||||
|
||||
connect( m_link, &SysTrayXLink::signalConsole, m_debug, &DebugWidget::slotConsole );
|
||||
connect( m_link, &SysTrayXLink::signalLinkReceiveError, m_debug, &DebugWidget::slotReceiveError );
|
||||
|
||||
connect( m_debug, &DebugWidget::signalWriteMessage, m_link, &SysTrayXLink::slotLinkWrite );
|
||||
@@ -94,17 +95,20 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
connect( m_preferences, &Preferences::signalIconTypeChange, m_tray_icon, &SysTrayXIcon::slotIconTypeChange );
|
||||
connect( m_preferences, &Preferences::signalIconDataChange, m_tray_icon, &SysTrayXIcon::slotIconDataChange );
|
||||
|
||||
connect( m_preferences, &Preferences::signalMinimizeHideChange, m_win_ctrl, &WindowCtrl::slotMinimizeHideChange );
|
||||
connect( m_preferences, &Preferences::signalHideOnMinimizeChange, m_win_ctrl, &WindowCtrl::slotHideOnMinimizeChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeOnCloseChange, m_win_ctrl, &WindowCtrl::slotMinimizeOnCloseChange );
|
||||
|
||||
|
||||
connect( m_preferences, &Preferences::signalIconTypeChange, m_pref_dialog, &PreferencesDialog::slotIconTypeChange );
|
||||
connect( m_preferences, &Preferences::signalIconDataChange, m_pref_dialog, &PreferencesDialog::slotIconDataChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeHideChange, m_pref_dialog, &PreferencesDialog::slotMinimizeHideChange );
|
||||
connect( m_preferences, &Preferences::signalHideOnMinimizeChange, m_pref_dialog, &PreferencesDialog::slotHideOnMinimizeChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeOnCloseChange, m_pref_dialog, &PreferencesDialog::slotMinimizeOnCloseChange );
|
||||
connect( m_preferences, &Preferences::signalDebugChange, m_pref_dialog, &PreferencesDialog::slotDebugChange );
|
||||
|
||||
connect( m_preferences, &Preferences::signalIconTypeChange, m_link, &SysTrayXLink::slotIconTypeChange );
|
||||
connect( m_preferences, &Preferences::signalIconDataChange, m_link, &SysTrayXLink::slotIconDataChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeHideChange, m_link, &SysTrayXLink::slotMinimizeHideChange );
|
||||
connect( m_preferences, &Preferences::signalHideOnMinimizeChange, m_link, &SysTrayXLink::slotHideOnMinimizeChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeOnCloseChange, m_link, &SysTrayXLink::slotMinimizeOnCloseChange );
|
||||
connect( m_preferences, &Preferences::signalDebugChange, m_link, &SysTrayXLink::slotDebugChange );
|
||||
|
||||
connect( m_preferences, &Preferences::signalDebugChange, m_debug, &DebugWidget::slotDebugChange );
|
||||
@@ -128,6 +132,11 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
*/
|
||||
connect( m_tray_icon, &SysTrayXIcon::signalShowHide, m_win_ctrl, &WindowCtrl::slotShowHide );
|
||||
|
||||
/*
|
||||
* Connect conainer signals
|
||||
*/
|
||||
connect( m_tb_container, &Container::signalShowHide, m_win_ctrl, &WindowCtrl::slotShowHide );
|
||||
|
||||
/*
|
||||
* Request preferences from add-on
|
||||
*/
|
||||
@@ -220,6 +229,12 @@ void SysTrayX::createTrayIcon()
|
||||
*/
|
||||
void SysTrayX::slotShutdown()
|
||||
{
|
||||
#ifdef ENABLE_CONTAINER
|
||||
|
||||
m_win_ctrl->shutdown();
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Let's quit
|
||||
*/
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <QJsonValue>
|
||||
#include <QJsonObject>
|
||||
|
||||
#include <QTextStream>
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
@@ -104,6 +105,8 @@ void SysTrayXLinkReader::stopThread()
|
||||
*/
|
||||
void SysTrayXLinkReader::slotWorker()
|
||||
{
|
||||
int error_count = 0;
|
||||
|
||||
while( m_doWork )
|
||||
{
|
||||
qint32 data_len;
|
||||
@@ -121,7 +124,21 @@ void SysTrayXLinkReader::slotWorker()
|
||||
/*
|
||||
* Send the data to my parent
|
||||
*/
|
||||
emit signalReceivedMessage( data );
|
||||
if( data.at( 0 ) == '{' )
|
||||
{
|
||||
emit signalReceivedMessage( data );
|
||||
|
||||
error_count = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
error_count++;
|
||||
|
||||
if( error_count > 20 )
|
||||
{
|
||||
emit signalShutdown();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +182,9 @@ SysTrayXLink::SysTrayXLink( Preferences* pref )
|
||||
|
||||
connect( m_reader_thread, &QThread::finished, reader, &QObject::deleteLater );
|
||||
connect( reader, &SysTrayXLinkReader::signalReceivedMessage, this, &SysTrayXLink::slotLinkRead );
|
||||
connect( reader, &SysTrayXLinkReader::signalShutdown, this, &SysTrayXLink::slotShutdown );
|
||||
|
||||
connect( reader, &SysTrayXLinkReader::signalConsole, this, &SysTrayXLink::slotConsole );
|
||||
connect( reader, &SysTrayXLinkReader::signalDebugMessage, this, &SysTrayXLink::slotDebugMessage );
|
||||
|
||||
connect( reader, &SysTrayXLinkReader::signalReceivedDataLength, this, &SysTrayXLink::slotReceivedDataLength );
|
||||
@@ -323,6 +342,7 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message )
|
||||
}
|
||||
else
|
||||
{
|
||||
emit signalConsole( "Link error: " + jsonError.errorString() );
|
||||
emit signalLinkReceiveError( jsonError.errorString() );
|
||||
}
|
||||
}
|
||||
@@ -366,14 +386,24 @@ void SysTrayXLink::DecodePreferences( const QJsonObject& pref )
|
||||
m_pref->setIconData( QByteArray::fromBase64( icon_base64.toUtf8() ) );
|
||||
}
|
||||
|
||||
if( pref.contains( "minimizeHide" ) && pref[ "minimizeHide" ].isString() )
|
||||
if( pref.contains( "hideOnMinimize" ) && pref[ "hideOnMinimize" ].isString() )
|
||||
{
|
||||
bool minimize_hide = pref[ "minimizeHide" ].toString() == "true";
|
||||
bool hide_minimize = pref[ "hideOnMinimize" ].toString() == "true";
|
||||
|
||||
/*
|
||||
* Store the new MinimizeHide state
|
||||
* Store the new hide on minimize state
|
||||
*/
|
||||
m_pref->setMinimizeHide( minimize_hide );
|
||||
m_pref->setHideOnMinimize( hide_minimize );
|
||||
}
|
||||
|
||||
if( pref.contains( "minimizeOnClose" ) && pref[ "minimizeOnClose" ].isString() )
|
||||
{
|
||||
bool minimize_close = pref[ "minimizeOnClose" ].toString() == "true";
|
||||
|
||||
/*
|
||||
* Store the new minimize on close state
|
||||
*/
|
||||
m_pref->setMinimizeOnClose( minimize_close );
|
||||
}
|
||||
|
||||
if( pref.contains( "debug" ) && pref[ "debug" ].isString() )
|
||||
@@ -398,7 +428,8 @@ void SysTrayXLink::EncodePreferences( const Preferences& pref )
|
||||
*/
|
||||
QJsonObject prefObject;
|
||||
prefObject.insert("debug", QJsonValue::fromVariant( QString( pref.getDebug() ? "true" : "false" ) ) );
|
||||
prefObject.insert("minimizeHide", QJsonValue::fromVariant( QString( pref.getMinimizeHide() ? "true" : "false" ) ) );
|
||||
prefObject.insert("hideOnMinimize", QJsonValue::fromVariant( QString( pref.getHideOnMinimize() ? "true" : "false" ) ) );
|
||||
prefObject.insert("minimizeOnClose", QJsonValue::fromVariant( QString( pref.getMinimizeOnClose() ? "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() ) ) );
|
||||
@@ -413,6 +444,15 @@ void SysTrayXLink::EncodePreferences( const Preferences& pref )
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle the console message from the reader thread
|
||||
*/
|
||||
void SysTrayXLink::slotConsole( QString message )
|
||||
{
|
||||
emit signalConsole( message );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle the debug message from the reader thread
|
||||
*/
|
||||
@@ -440,6 +480,15 @@ void SysTrayXLink::slotReceivedData( QByteArray data )
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Relay shutdown signal
|
||||
*/
|
||||
void SysTrayXLink::slotShutdown()
|
||||
{
|
||||
emit signalShutdown();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Read the input
|
||||
*/
|
||||
@@ -479,9 +528,21 @@ void SysTrayXLink::slotDebugChange()
|
||||
|
||||
|
||||
/*
|
||||
* Handle a minimizeHide state change signal
|
||||
* Handle a hide on minimize state change signal
|
||||
*/
|
||||
void SysTrayXLink::slotMinimizeHideChange()
|
||||
void SysTrayXLink::slotHideOnMinimizeChange()
|
||||
{
|
||||
if( m_pref->getAppPrefChanged() )
|
||||
{
|
||||
sendPreferences();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle a minimize on close state change signal
|
||||
*/
|
||||
void SysTrayXLink::slotMinimizeOnCloseChange()
|
||||
{
|
||||
if( m_pref->getAppPrefChanged() )
|
||||
{
|
||||
|
||||
@@ -57,6 +57,13 @@ class SysTrayXLinkReader : public QObject
|
||||
|
||||
signals:
|
||||
|
||||
/**
|
||||
* @brief signalConsole
|
||||
*
|
||||
* @param message The message.
|
||||
*/
|
||||
void signalConsole( QString message );
|
||||
|
||||
/**
|
||||
* @brief signalDebugMessage
|
||||
*
|
||||
@@ -85,6 +92,11 @@ class SysTrayXLinkReader : public QObject
|
||||
*/
|
||||
void signalReceivedMessage( QByteArray message );
|
||||
|
||||
/**
|
||||
* @brief signalShutdown. Signal to shutdown the app.
|
||||
*/
|
||||
void signalShutdown();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
@@ -166,7 +178,6 @@ class SysTrayXLink : public QObject
|
||||
*/
|
||||
void signalTitle( QString title );
|
||||
|
||||
|
||||
/**
|
||||
* @brief signalShutdown. Signal to shutdown the app.
|
||||
*/
|
||||
@@ -205,6 +216,13 @@ class SysTrayXLink : public QObject
|
||||
*/
|
||||
void signalDebugMessage( QString message );
|
||||
|
||||
/**
|
||||
* @brief signalConsole. Send message to debug console.
|
||||
*
|
||||
* @param message The message
|
||||
*/
|
||||
void signalConsole( QString message );
|
||||
|
||||
/**
|
||||
* @brief signalUnreadMail. Signal numder of unread mails.
|
||||
*
|
||||
@@ -220,9 +238,14 @@ class SysTrayXLink : public QObject
|
||||
void slotDebugChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeHideChange. Handle a change in minimizeHide state.
|
||||
* @brief slotHideOnMinimizeChange. Handle a change in hide on minimize state.
|
||||
*/
|
||||
void slotMinimizeHideChange();
|
||||
void slotHideOnMinimizeChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeOnCloseChange. Handle a change in minimize on close state.
|
||||
*/
|
||||
void slotMinimizeOnCloseChange();
|
||||
|
||||
/**
|
||||
* @brief slotLinkWrite. Write the link.
|
||||
@@ -252,7 +275,14 @@ class SysTrayXLink : public QObject
|
||||
private slots:
|
||||
|
||||
/**
|
||||
* @brief slotDebugMessage. Handle the signal for a debuf message from the reader thread.
|
||||
* @brief slotConsole. Handle the signal for console message from the reader thread.
|
||||
*
|
||||
* @param message The message.
|
||||
*/
|
||||
void slotConsole( QString message );
|
||||
|
||||
/**
|
||||
* @brief slotDebugMessage. Handle the signal for a debug message from the reader thread.
|
||||
*
|
||||
* @param message The message.
|
||||
*/
|
||||
@@ -277,6 +307,11 @@ class SysTrayXLink : public QObject
|
||||
*/
|
||||
void slotLinkRead( QByteArray message );
|
||||
|
||||
/**
|
||||
* @brief slotShutdown. Handle sahutdown signal from reader thread.
|
||||
*/
|
||||
void slotShutdown();
|
||||
|
||||
private:
|
||||
|
||||
/**
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
*/
|
||||
#include <QWidget>
|
||||
#include <QWindow>
|
||||
#include <QString>
|
||||
#include <QCoreApplication>
|
||||
|
||||
/*
|
||||
* Main include
|
||||
@@ -40,11 +42,75 @@ WindowCtrl::WindowCtrl( Container* container, Preferences* pref, QObject *parent
|
||||
/*
|
||||
* Initialize
|
||||
*/
|
||||
m_minimize_hide = m_pref->getMinimizeHide();
|
||||
m_state = "mormal";
|
||||
m_hide_minimize = m_pref->getHideOnMinimize();
|
||||
m_tb_window = nullptr;
|
||||
m_tb_container = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Destructor
|
||||
*/
|
||||
WindowCtrl::~WindowCtrl()
|
||||
{
|
||||
shutdown();
|
||||
}
|
||||
|
||||
/*
|
||||
* Handle app shutdown
|
||||
*/
|
||||
void WindowCtrl::shutdown()
|
||||
{
|
||||
#ifdef ENABLE_CONTAINER
|
||||
|
||||
if( m_tb_window )
|
||||
{
|
||||
/*
|
||||
* Release the Thunderbird window
|
||||
*/
|
||||
m_tb_window->setParent( nullptr );
|
||||
m_tb_window->setFlags( Qt::Window );
|
||||
|
||||
/*
|
||||
* Remove the TB container
|
||||
*/
|
||||
m_container->removeWidget( m_tb_container );
|
||||
m_container->hide();
|
||||
|
||||
/*
|
||||
* Cleanup
|
||||
*/
|
||||
delete m_tb_container;
|
||||
// delete m_tb_window;
|
||||
|
||||
emit signalConsole( QString( "Container %1").arg( reinterpret_cast<quint64>( m_tb_container ) ) );
|
||||
emit signalConsole( QString( "Window %1").arg( reinterpret_cast<quint64>( m_tb_window ) ) );
|
||||
|
||||
|
||||
m_tb_container = nullptr;
|
||||
m_tb_window = nullptr;
|
||||
|
||||
/*
|
||||
* Normalize the window
|
||||
*/
|
||||
foreach( quint64 win_id, getWinIds() )
|
||||
{
|
||||
normalizeWindow( win_id );
|
||||
}
|
||||
|
||||
/*
|
||||
* Make sure all events for the release are handled
|
||||
*/
|
||||
QCoreApplication::processEvents();
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
||||
void WindowCtrl::slotWindowTest1()
|
||||
{
|
||||
emit signalConsole("Test 1 started");
|
||||
@@ -54,7 +120,8 @@ void WindowCtrl::slotWindowTest1()
|
||||
// displayWindowElements( "- Mozilla Thunderbird" );
|
||||
// findWindow( 4313 );
|
||||
|
||||
captureWindow( "Debugging with Firefox Developer Tools - Mozilla Thunderbird" );
|
||||
// captureWindow( "Debugging with Firefox Developer Tools - Mozilla Thunderbird" );
|
||||
captureWindow( "- Mozilla Thunderbird" );
|
||||
|
||||
emit signalConsole("Test 1 done");
|
||||
}
|
||||
@@ -66,20 +133,17 @@ void WindowCtrl::slotWindowTest2()
|
||||
|
||||
// Do something.
|
||||
|
||||
shutdown();
|
||||
/*
|
||||
if( !m_tb_window->parent() )
|
||||
{
|
||||
m_tb_window->setParent( nullptr );
|
||||
m_tb_window->setFlags( Qt::Window );
|
||||
|
||||
m_tb_window->setParent( nullptr );
|
||||
m_tb_window->setFlags( Qt::Window );
|
||||
|
||||
|
||||
/*
|
||||
* Disconnect container?
|
||||
*/
|
||||
/*
|
||||
m_tb_window->setParent( nullptr );
|
||||
|
||||
delete m_tb_container;
|
||||
m_tb_container = nullptr;
|
||||
m_container->hide();
|
||||
}
|
||||
*/
|
||||
|
||||
emit signalConsole("Test 2 done");
|
||||
}
|
||||
|
||||
@@ -162,11 +226,20 @@ void WindowCtrl::slotWindowTitle( QString title )
|
||||
|
||||
|
||||
/*
|
||||
* Handle change in minimizeHide state
|
||||
* Handle change in hide on minimize state
|
||||
*/
|
||||
void WindowCtrl::slotMinimizeHideChange()
|
||||
void WindowCtrl::slotHideOnMinimizeChange()
|
||||
{
|
||||
m_minimize_hide = m_pref->getMinimizeHide();
|
||||
m_hide_minimize = m_pref->getHideOnMinimize();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle change in minimize on close state
|
||||
*/
|
||||
void WindowCtrl::slotMinimizeOnCloseChange()
|
||||
{
|
||||
m_minimize_close = m_pref->getMinimizeOnClose();
|
||||
}
|
||||
|
||||
|
||||
@@ -188,6 +261,15 @@ void WindowCtrl::slotShowHide()
|
||||
{
|
||||
m_state = "normal";
|
||||
|
||||
#ifdef ENABLE_CONTAINER
|
||||
|
||||
if( m_tb_window )
|
||||
{
|
||||
m_container->show();
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
foreach( quint64 win_id, getWinIds() )
|
||||
{
|
||||
normalizeWindow( win_id );
|
||||
@@ -197,17 +279,30 @@ void WindowCtrl::slotShowHide()
|
||||
|
||||
// emit signalWindowNormal(); // TB window control
|
||||
|
||||
#endif
|
||||
|
||||
} else {
|
||||
m_state = "minimized";
|
||||
|
||||
#ifdef ENABLE_CONTAINER
|
||||
|
||||
if( m_tb_window )
|
||||
{
|
||||
m_container->hide();
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
foreach( quint64 win_id, getWinIds() )
|
||||
{
|
||||
minimizeWindow( win_id, m_minimize_hide );
|
||||
minimizeWindow( win_id, m_hide_minimize );
|
||||
|
||||
emit signalConsole("Minimize");
|
||||
}
|
||||
|
||||
// emit signalWindowMinimize(); // TB window control
|
||||
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,6 +48,11 @@ class WindowCtrl : public QObject
|
||||
*/
|
||||
explicit WindowCtrl( Container* container, Preferences* pref, QObject *parent = nullptr );
|
||||
|
||||
/**
|
||||
* @brief ~WindowCtrlUnix. Destructor.
|
||||
*/
|
||||
~WindowCtrl();
|
||||
|
||||
/**
|
||||
* @brief captureWindow. Capture the TB window.
|
||||
*
|
||||
@@ -57,6 +62,11 @@ class WindowCtrl : public QObject
|
||||
*/
|
||||
bool captureWindow( const QString& title );
|
||||
|
||||
/**
|
||||
* @brief shutdown. Handle app shutdown.
|
||||
*/
|
||||
void shutdown();
|
||||
|
||||
public slots:
|
||||
|
||||
/**
|
||||
@@ -82,11 +92,18 @@ class WindowCtrl : public QObject
|
||||
void slotWindowTitle( QString title );
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeHideChange. Handle the minimizeHide signal.
|
||||
* @brief slotHideOnMinimizeChange. Handle the hide on minimize signal.
|
||||
*
|
||||
* @param state The state
|
||||
*/
|
||||
void slotMinimizeHideChange();
|
||||
void slotHideOnMinimizeChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeOnCloseChange. Handle the minimize on close signal.
|
||||
*
|
||||
* @param state The state
|
||||
*/
|
||||
void slotMinimizeOnCloseChange();
|
||||
|
||||
/**
|
||||
* @brief slotWindowState. Handle the window state change signal.
|
||||
@@ -128,9 +145,14 @@ class WindowCtrl : public QObject
|
||||
QString m_window_title;
|
||||
|
||||
/**
|
||||
* @brief m_minimize_hide. State of minimizeHide
|
||||
* @brief m_hide_minimize. State of hide on minimize.
|
||||
*/
|
||||
bool m_minimize_hide;
|
||||
bool m_hide_minimize;
|
||||
|
||||
/**
|
||||
* @brief m_minimize_close. State of minimize on close.
|
||||
*/
|
||||
bool m_minimize_close;
|
||||
|
||||
/**
|
||||
* @brief m_state. State of the TB window.
|
||||
|
||||
@@ -131,7 +131,8 @@ SysTrayX.Messaging = {
|
||||
|
||||
const getter = browser.storage.sync.get([
|
||||
"debug",
|
||||
"minimizeHide",
|
||||
"hideOnMinimize",
|
||||
"minimizeOnClose",
|
||||
"iconType",
|
||||
"iconMime",
|
||||
"icon"
|
||||
@@ -143,13 +144,15 @@ SysTrayX.Messaging = {
|
||||
console.debug("Get preferences from storage");
|
||||
|
||||
const debug = result.debug || "false";
|
||||
const minimizeHide = result.minimizeHide || "true";
|
||||
const hideOnMinimize = result.hideOnMinimize || "true";
|
||||
const minimizeOnClose = result.minimizeOnClose || "true";
|
||||
const iconType = result.iconType || "0";
|
||||
const iconMime = result.iconMime || "image/png";
|
||||
const icon = result.icon || [];
|
||||
|
||||
console.log(`Debug ${debug}`);
|
||||
console.log(`Debug ${minimizeHide}`);
|
||||
console.log(`Debug ${hideOnMinimize}`);
|
||||
console.log(`Debug ${minimizeOnClose}`);
|
||||
console.log(`Type ${iconType}`);
|
||||
console.log(`Mime ${iconMime}`);
|
||||
console.log(icon);
|
||||
@@ -158,7 +161,8 @@ SysTrayX.Messaging = {
|
||||
SysTrayX.Link.postSysTrayXMessage({
|
||||
preferences: {
|
||||
debug: debug,
|
||||
minimizeHide: minimizeHide,
|
||||
hideOnMinimize: hideOnMinimize,
|
||||
minimizeOnClose: minimizeOnClose,
|
||||
iconType: iconType,
|
||||
iconMime: iconMime,
|
||||
icon: icon
|
||||
@@ -281,10 +285,17 @@ SysTrayX.Link = {
|
||||
});
|
||||
}
|
||||
|
||||
const minimizeHide = response["preferences"].minimizeHide;
|
||||
if (minimizeHide) {
|
||||
const hideOnMinimize = response["preferences"].hideOnMinimize;
|
||||
if (hideOnMinimize) {
|
||||
browser.storage.sync.set({
|
||||
minimizeHide: minimizeHide
|
||||
hideOnMinimize: hideOnMinimize
|
||||
});
|
||||
}
|
||||
|
||||
const minimizeOnClose = response["preferences"].minimizeOnClose;
|
||||
if (minimizeOnClose) {
|
||||
browser.storage.sync.set({
|
||||
minimizeOnClose: minimizeOnClose
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
<div id="WindowsContent" class="tabcontent" style="display:block">
|
||||
<form>
|
||||
<h3>Windows</h3>
|
||||
<input type="checkbox" name="minimizeHide" value="" /> Minimizing window
|
||||
<input type="checkbox" name="hideOnMinimize" value="" /> Minimizing
|
||||
window hides to tray<br />
|
||||
<input type="checkbox" name="minimizeOnClose" value="" /> Closing window
|
||||
hides to tray<br />
|
||||
</form>
|
||||
</div>
|
||||
|
||||
@@ -58,13 +58,22 @@ SysTrayX.SaveOptions = {
|
||||
console.debug("Store debug state: " + `${debug}`);
|
||||
|
||||
//
|
||||
// Save minimize hide state
|
||||
// Save hide on minimize state
|
||||
//
|
||||
let minimizeHide = document.querySelector('input[name="minimizeHide"]').checked;
|
||||
let hideOnMinimize = document.querySelector('input[name="hideOnMinimize"]').checked;
|
||||
browser.storage.sync.set({
|
||||
minimizeHide: `${minimizeHide}`
|
||||
hideOnMinimize: `${hideOnMinimize}`
|
||||
});
|
||||
console.debug("Store minimizeHide state: " + `${minimizeHide}`);
|
||||
console.debug("Store hideOnMinimize state: " + `${hideOnMinimize}`);
|
||||
|
||||
//
|
||||
// Save minimize on close state
|
||||
//
|
||||
let minimizeOnClose = document.querySelector('input[name="minimizeOnClose"]').checked;
|
||||
browser.storage.sync.set({
|
||||
minimizeOnClose: `${minimizeOnClose}`
|
||||
});
|
||||
console.debug("Store minimizeOnClose state: " + `${minimizeOnClose}`);
|
||||
|
||||
//
|
||||
// Save icon preferences
|
||||
@@ -115,12 +124,21 @@ SysTrayX.RestoreOptions = {
|
||||
);
|
||||
|
||||
//
|
||||
// Restore minimize hide
|
||||
// Restore hide on minimize
|
||||
//
|
||||
const getMinimizeHide = browser.storage.sync.get("minimizeHide");
|
||||
getMinimizeHide.then(
|
||||
SysTrayX.RestoreOptions.setMinimizeHide,
|
||||
SysTrayX.RestoreOptions.onMinimizeHideError
|
||||
const getHideOnMinimize = browser.storage.sync.get("hideOnMinimize");
|
||||
getHideOnMinimize.then(
|
||||
SysTrayX.RestoreOptions.setHideOnMinimize,
|
||||
SysTrayX.RestoreOptions.onHideOnMinimizeError
|
||||
);
|
||||
|
||||
//
|
||||
// Restore minimize on close
|
||||
//
|
||||
const getMinimizeOnClose = browser.storage.sync.get("minimizeOnClose");
|
||||
getMinimizeOnClose.then(
|
||||
SysTrayX.RestoreOptions.setMinimizeOnClose,
|
||||
SysTrayX.RestoreOptions.onMinimizeOnCloseError
|
||||
);
|
||||
|
||||
//
|
||||
@@ -161,19 +179,35 @@ SysTrayX.RestoreOptions = {
|
||||
},
|
||||
|
||||
//
|
||||
// Restore minimize hide callbacks
|
||||
// Restore hide on minimize callbacks
|
||||
//
|
||||
setMinimizeHide: function(result) {
|
||||
const minimizeHide = result.minimizeHide || "true";
|
||||
setHideOnMinimize: function(result) {
|
||||
const hideOnMinimize = result.hideOnMinimize || "true";
|
||||
|
||||
console.debug("MinimizeHide: " + minimizeHide);
|
||||
console.debug("hideOnMinimize: " + hideOnMinimize);
|
||||
|
||||
const checkbox = document.querySelector(`input[name="minimizeHide"]`);
|
||||
checkbox.checked = minimizeHide === "true";
|
||||
const checkbox = document.querySelector(`input[name="hideOnMinimize"]`);
|
||||
checkbox.checked = hideOnMinimize === "true";
|
||||
},
|
||||
|
||||
onMinimizeHideError: function(error) {
|
||||
console.log(`MinimizeHide Error: ${error}`);
|
||||
onHideOnMinimizeError: function(error) {
|
||||
console.log(`hideOnMinimize Error: ${error}`);
|
||||
},
|
||||
|
||||
//
|
||||
// Restore minimize on close callbacks
|
||||
//
|
||||
setMinimizeOnClose: function(result) {
|
||||
const minimizeOnClose = result.minimizeOnClose || "true";
|
||||
|
||||
console.debug("minimizeOnClose: " + minimizeOnClose);
|
||||
|
||||
const checkbox = document.querySelector(`input[name="minimizeOnClose"]`);
|
||||
checkbox.checked = minimizeOnClose === "true";
|
||||
},
|
||||
|
||||
onMinimizeOnCloseError: function(error) {
|
||||
console.log(`minimizeOnClose Error: ${error}`);
|
||||
},
|
||||
|
||||
//
|
||||
@@ -262,9 +296,14 @@ SysTrayX.StorageChanged = {
|
||||
});
|
||||
changed_icon_mime = true;
|
||||
}
|
||||
if (item === "minimizeHide") {
|
||||
SysTrayX.RestoreOptions.setMinimizeHide({
|
||||
minimizeHide: changes[item].newValue
|
||||
if (item === "hideOnMinimize") {
|
||||
SysTrayX.RestoreOptions.setHideOnMinimize({
|
||||
hideOnMinimize: changes[item].newValue
|
||||
});
|
||||
}
|
||||
if (item === "minimizeOnClose") {
|
||||
SysTrayX.RestoreOptions.setMinimizeOnClose({
|
||||
minimizeOnClose: changes[item].newValue
|
||||
});
|
||||
}
|
||||
if (item === "debug") {
|
||||
|
||||
Reference in New Issue
Block a user