mirror of
https://github.com/Ximi1970/systray-x.git
synced 2025-11-02 11:25:49 +01:00
Add hide type option
This commit is contained in:
@@ -30,6 +30,7 @@ Preferences::Preferences( QObject *parent ) : QObject( parent )
|
||||
m_show_number = true;
|
||||
m_number_color = "#000000";
|
||||
|
||||
m_minimize_type = PREF_DEFAULT_MINIMIZE;
|
||||
m_hide_minimize = true;
|
||||
m_start_minimized = false;
|
||||
|
||||
@@ -48,15 +49,6 @@ Preferences::Preferences( QObject *parent ) : QObject( parent )
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the icon type.
|
||||
*/
|
||||
Preferences::IconType Preferences::getIconType() const
|
||||
{
|
||||
return m_icon_type;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the icon mime.
|
||||
*/
|
||||
@@ -78,6 +70,15 @@ void Preferences::setAppPrefChanged( bool state )
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the icon type.
|
||||
*/
|
||||
Preferences::IconType Preferences::getIconType() const
|
||||
{
|
||||
return m_icon_type;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the icon type.
|
||||
*/
|
||||
@@ -192,6 +193,32 @@ void Preferences::setNumberColor( QString color )
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the icon type.
|
||||
*/
|
||||
Preferences::MinimizeType Preferences::getMinimizeType() const
|
||||
{
|
||||
return m_minimize_type;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the icon type.
|
||||
*/
|
||||
void Preferences::setMinimizeType( MinimizeType minimize_type )
|
||||
{
|
||||
if( m_minimize_type != minimize_type)
|
||||
{
|
||||
m_minimize_type = minimize_type;
|
||||
|
||||
/*
|
||||
* Tell the world the new preference
|
||||
*/
|
||||
emit signalMinimizeTypeChange();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the hide on minimize pref.
|
||||
*/
|
||||
|
||||
@@ -21,6 +21,15 @@ class Preferences : public QObject
|
||||
|
||||
public:
|
||||
|
||||
/*
|
||||
* Minimize types
|
||||
*/
|
||||
enum MinimizeType {
|
||||
PREF_DEFAULT_MINIMIZE = 0,
|
||||
PREF_MINIMIZE_METHOD_1,
|
||||
PREF_MINIMIZE_METHOD_2
|
||||
};
|
||||
|
||||
/*
|
||||
* Icon types
|
||||
*/
|
||||
@@ -121,6 +130,20 @@ class Preferences : public QObject
|
||||
*/
|
||||
void setNumberColor( QString color );
|
||||
|
||||
/**
|
||||
* @brief getMinimizeType. Get the minimize type.
|
||||
*
|
||||
* @return The minimize type.
|
||||
*/
|
||||
MinimizeType getMinimizeType() const;
|
||||
|
||||
/**
|
||||
* @brief setMinimizeType. Set the minimize type.
|
||||
*
|
||||
* @param The minimize type.
|
||||
*/
|
||||
void setMinimizeType( MinimizeType icon_type );
|
||||
|
||||
/**
|
||||
* @brief getHideOnMinimize. Get the hide on minimize state.
|
||||
*
|
||||
@@ -248,6 +271,11 @@ class Preferences : public QObject
|
||||
*/
|
||||
void signalNumberColorChange();
|
||||
|
||||
/**
|
||||
* @brief signalMinimizeTypeChange. Signal a minimize type change.
|
||||
*/
|
||||
void signalMinimizeTypeChange();
|
||||
|
||||
/**
|
||||
* @brief signalHideOnMinimizeChange. Signal a hide on mnimize state change.
|
||||
*/
|
||||
@@ -305,6 +333,11 @@ class Preferences : public QObject
|
||||
*/
|
||||
QString m_number_color;
|
||||
|
||||
/**
|
||||
* @brief m_minimize_type. Selected minimize type.
|
||||
*/
|
||||
MinimizeType m_minimize_type;
|
||||
|
||||
/**
|
||||
* @brief m_hide_minimize. Hide the minimized window.
|
||||
*/
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>684</width>
|
||||
<height>278</height>
|
||||
<height>310</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -20,12 +20,49 @@
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<item row="0" column="0" rowspan="2">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Windows</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="defaultMinimizeRadioButton">
|
||||
<property name="text">
|
||||
<string>Default minimize</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">minimizeTypeGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="minimizeMethod1RadioButton">
|
||||
<property name="text">
|
||||
<string>Minimize to tray, method 1</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">minimizeTypeGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="minimizeMethod2RadioButton">
|
||||
<property name="text">
|
||||
<string>Minimize to tray, method 2</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">minimizeTypeGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="hideOnMinimizeCheckBox">
|
||||
<property name="text">
|
||||
@@ -203,14 +240,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QCheckBox" name="debugWindowCheckBox">
|
||||
<property name="text">
|
||||
<string>Display debug window</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" colspan="2">
|
||||
<item row="1" column="1" rowspan="2" colspan="2">
|
||||
<widget class="QGroupBox" name="groupBox_3">
|
||||
<property name="title">
|
||||
<string>Number properties</string>
|
||||
@@ -263,6 +293,13 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QCheckBox" name="debugWindowCheckBox">
|
||||
<property name="text">
|
||||
<string>Display debug window</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
@@ -300,5 +337,6 @@
|
||||
</connections>
|
||||
<buttongroups>
|
||||
<buttongroup name="iconTypeGroup"/>
|
||||
<buttongroup name="minimizeTypeGroup"/>
|
||||
</buttongroups>
|
||||
</ui>
|
||||
|
||||
@@ -31,7 +31,14 @@ PreferencesDialog::PreferencesDialog( SysTrayXLink *link, Preferences *pref, QWi
|
||||
m_pref = pref;
|
||||
|
||||
/*
|
||||
* Set button Ids
|
||||
* Set minimize type button Ids
|
||||
*/
|
||||
m_ui->minimizeTypeGroup->setId( m_ui->defaultMinimizeRadioButton, Preferences::PREF_DEFAULT_MINIMIZE);
|
||||
m_ui->minimizeTypeGroup->setId( m_ui->minimizeMethod1RadioButton, Preferences::PREF_MINIMIZE_METHOD_1 );
|
||||
m_ui->minimizeTypeGroup->setId( m_ui->minimizeMethod2RadioButton, Preferences::PREF_MINIMIZE_METHOD_2 );
|
||||
|
||||
/*
|
||||
* Set icon type button Ids
|
||||
*/
|
||||
m_ui->iconTypeGroup->setId( m_ui->blankRadioButton, Preferences::PREF_BLANK_ICON );
|
||||
m_ui->iconTypeGroup->setId( m_ui->newMailButton, Preferences::PREF_NEWMAIL_ICON );
|
||||
@@ -85,6 +92,15 @@ void PreferencesDialog::setPollInterval( int val )
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the minimize type
|
||||
*/
|
||||
void PreferencesDialog::setMinimizeType( Preferences::MinimizeType minimize_type )
|
||||
{
|
||||
( m_ui->minimizeTypeGroup->button( minimize_type ) )->setChecked( true );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the hide on minimize state
|
||||
*/
|
||||
@@ -187,6 +203,7 @@ void PreferencesDialog::slotAccept()
|
||||
m_pref->setIconMime( m_tmp_icon_mime );
|
||||
m_pref->setIconData( m_tmp_icon_data );
|
||||
|
||||
m_pref->setMinimizeType( static_cast< Preferences::MinimizeType >( m_ui->minimizeTypeGroup->checkedId() ) );
|
||||
m_pref->setHideOnMinimize( m_ui->hideOnMinimizeCheckBox->isChecked() );
|
||||
m_pref->setStartMinimized( m_ui->startMinimizedCheckBox->isChecked() );
|
||||
|
||||
@@ -291,6 +308,15 @@ void PreferencesDialog::slotPollIntervalChange()
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle the minimize type change signal
|
||||
*/
|
||||
void PreferencesDialog::slotMinimizeTypeChange()
|
||||
{
|
||||
setMinimizeType( m_pref->getMinimizeType() );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle the hide on minimize change signal
|
||||
*/
|
||||
@@ -308,6 +334,7 @@ void PreferencesDialog::slotStartMinimizedChange()
|
||||
setStartMinimized( m_pref->getStartMinimized() );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle the icon type change signal
|
||||
*/
|
||||
|
||||
@@ -62,6 +62,13 @@ class PreferencesDialog : public QDialog
|
||||
*/
|
||||
void setPollInterval( int val );
|
||||
|
||||
/**
|
||||
* @brief setMinimizeType. Set the minimize type.
|
||||
*
|
||||
* @param minimize_type The minimize type.
|
||||
*/
|
||||
void setMinimizeType( Preferences::MinimizeType minimize_type );
|
||||
|
||||
/**
|
||||
* @brief setHideOnMinimize. Set the hide on minimize state.
|
||||
*
|
||||
@@ -141,6 +148,11 @@ class PreferencesDialog : public QDialog
|
||||
*/
|
||||
void slotPollIntervalChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeTypeChange. Slot for handling minimize type change signals.
|
||||
*/
|
||||
void slotMinimizeTypeChange();
|
||||
|
||||
/**
|
||||
* @brief slotHideOnMinimizeChange. Slot for handling hide on minimize change signals.
|
||||
*/
|
||||
|
||||
@@ -85,6 +85,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
connect( m_preferences, &Preferences::signalShowNumberChange, m_tray_icon, &SysTrayXIcon::slotShowNumberChange );
|
||||
connect( m_preferences, &Preferences::signalNumberColorChange, m_tray_icon, &SysTrayXIcon::slotNumberColorChange );
|
||||
|
||||
connect( m_preferences, &Preferences::signalMinimizeTypeChange, m_win_ctrl, &WindowCtrl::slotMinimizeTypeChange );
|
||||
connect( m_preferences, &Preferences::signalHideOnMinimizeChange, m_win_ctrl, &WindowCtrl::slotHideOnMinimizeChange );
|
||||
connect( m_preferences, &Preferences::signalStartMinimizedChange, m_win_ctrl, &WindowCtrl::slotStartMinimizedChange );
|
||||
|
||||
@@ -92,6 +93,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
connect( m_preferences, &Preferences::signalIconDataChange, m_pref_dialog, &PreferencesDialog::slotIconDataChange );
|
||||
connect( m_preferences, &Preferences::signalShowNumberChange, m_pref_dialog, &PreferencesDialog::slotShowNumberChange );
|
||||
connect( m_preferences, &Preferences::signalNumberColorChange, m_pref_dialog, &PreferencesDialog::slotNumberColorChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeTypeChange, m_pref_dialog, &PreferencesDialog::slotMinimizeTypeChange );
|
||||
connect( m_preferences, &Preferences::signalHideOnMinimizeChange, m_pref_dialog, &PreferencesDialog::slotHideOnMinimizeChange );
|
||||
connect( m_preferences, &Preferences::signalStartMinimizedChange, m_pref_dialog, &PreferencesDialog::slotStartMinimizedChange );
|
||||
connect( m_preferences, &Preferences::signalPollStartupDelayChange, m_pref_dialog, &PreferencesDialog::slotPollStartupDelayChange );
|
||||
@@ -102,6 +104,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
connect( m_preferences, &Preferences::signalIconDataChange, m_link, &SysTrayXLink::slotIconDataChange );
|
||||
connect( m_preferences, &Preferences::signalShowNumberChange, m_link, &SysTrayXLink::slotShowNumberChange );
|
||||
connect( m_preferences, &Preferences::signalNumberColorChange, m_link, &SysTrayXLink::slotNumberColorChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeTypeChange, m_link, &SysTrayXLink::slotMinimizeTypeChange );
|
||||
connect( m_preferences, &Preferences::signalHideOnMinimizeChange, m_link, &SysTrayXLink::slotHideOnMinimizeChange );
|
||||
connect( m_preferences, &Preferences::signalStartMinimizedChange, m_link, &SysTrayXLink::slotStartMinimizedChange );
|
||||
connect( m_preferences, &Preferences::signalPollStartupDelayChange, m_link, &SysTrayXLink::slotPollStartupDelayChange );
|
||||
|
||||
@@ -383,6 +383,16 @@ void SysTrayXLink::DecodePreferences( const QJsonObject& pref )
|
||||
m_pref->setNumberColor( number_color );
|
||||
}
|
||||
|
||||
if( pref.contains( "minimizeType" ) && pref[ "minimizeType" ].isString() )
|
||||
{
|
||||
Preferences::MinimizeType minimize_type = static_cast< Preferences::MinimizeType >( pref[ "minimizeType" ].toString().toInt() );
|
||||
|
||||
/*
|
||||
* Store the new icon type
|
||||
*/
|
||||
m_pref->setMinimizeType( minimize_type );
|
||||
}
|
||||
|
||||
if( pref.contains( "hideOnMinimize" ) && pref[ "hideOnMinimize" ].isString() )
|
||||
{
|
||||
bool hide_minimize = pref[ "hideOnMinimize" ].toString() == "true";
|
||||
@@ -447,6 +457,7 @@ void SysTrayXLink::EncodePreferences( const Preferences& pref )
|
||||
prefObject.insert("debug", QJsonValue::fromVariant( QString( pref.getDebug() ? "true" : "false" ) ) );
|
||||
prefObject.insert("pollStartupDelay", QJsonValue::fromVariant( QString::number( pref.getPollStartupDelay() ) ) );
|
||||
prefObject.insert("pollInterval", QJsonValue::fromVariant( QString::number( pref.getPollInterval() ) ) );
|
||||
prefObject.insert("minimizeType", QJsonValue::fromVariant( QString::number( pref.getMinimizeType() ) ) );
|
||||
prefObject.insert("hideOnMinimize", QJsonValue::fromVariant( QString( pref.getHideOnMinimize() ? "true" : "false" ) ) );
|
||||
prefObject.insert("startMinimized", QJsonValue::fromVariant( QString( pref.getStartMinimized() ? "true" : "false" ) ) );
|
||||
prefObject.insert("iconType", QJsonValue::fromVariant( QString::number( pref.getIconType() ) ) );
|
||||
@@ -522,6 +533,18 @@ void SysTrayXLink::slotPollIntervalChange()
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle the minimize type change signal
|
||||
*/
|
||||
void SysTrayXLink::slotMinimizeTypeChange()
|
||||
{
|
||||
if( m_pref->getAppPrefChanged() )
|
||||
{
|
||||
sendPreferences();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle a hide on minimize state change signal
|
||||
*/
|
||||
|
||||
@@ -196,6 +196,11 @@ class SysTrayXLink : public QObject
|
||||
*/
|
||||
void slotPollIntervalChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeTypeChange. Slot for handling minimize type change signals.
|
||||
*/
|
||||
void slotMinimizeTypeChange();
|
||||
|
||||
/**
|
||||
* @brief slotHideOnMinimizeChange. Handle a change in hide on minimize state.
|
||||
*/
|
||||
|
||||
@@ -261,7 +261,7 @@ QList< quint64 > WindowCtrlUnix::getWinIds()
|
||||
/*
|
||||
* Minimize a window
|
||||
*/
|
||||
void WindowCtrlUnix::minimizeWindow( quint64 window, bool hide )
|
||||
void WindowCtrlUnix::minimizeWindow( quint64 window, int hide )
|
||||
{
|
||||
if( !isThunderbird( getPpid() ) )
|
||||
{
|
||||
@@ -270,12 +270,18 @@ void WindowCtrlUnix::minimizeWindow( quint64 window, bool hide )
|
||||
|
||||
Window win = static_cast<Window>( window );
|
||||
|
||||
if( hide )
|
||||
if( hide == Preferences::PREF_MINIMIZE_METHOD_1 )
|
||||
{
|
||||
hideWindow( win, hide );
|
||||
}
|
||||
|
||||
XIconifyWindow( m_display, win, m_screen );
|
||||
|
||||
if( hide == Preferences::PREF_MINIMIZE_METHOD_2 )
|
||||
{
|
||||
hideWindow( win, hide );
|
||||
}
|
||||
|
||||
XFlush( m_display );
|
||||
}
|
||||
|
||||
|
||||
@@ -190,7 +190,7 @@ class WindowCtrlUnix : public QObject
|
||||
* @param window The window.
|
||||
* @param hide Hide from taskbar.
|
||||
*/
|
||||
void minimizeWindow( quint64 window, bool hide );
|
||||
void minimizeWindow( quint64 window, int hide );
|
||||
|
||||
/**
|
||||
* @brief normalizeWindow. Normalize window.
|
||||
|
||||
@@ -222,7 +222,7 @@ QList< quint64 > WindowCtrlWin::getWinIds()
|
||||
/*
|
||||
* Minimize a window
|
||||
*/
|
||||
void WindowCtrlWin::minimizeWindow( quint64 window, bool hide )
|
||||
void WindowCtrlWin::minimizeWindow( quint64 window, int hide )
|
||||
{
|
||||
if( !isThunderbird( getPpid() ) )
|
||||
{
|
||||
|
||||
@@ -131,7 +131,7 @@ class WindowCtrlWin : public QObject
|
||||
* @param window The window.
|
||||
* @param hide Hide from taskbar
|
||||
*/
|
||||
void minimizeWindow( quint64 window, bool hide );
|
||||
void minimizeWindow( quint64 window, int hide );
|
||||
|
||||
/**
|
||||
* @brief normalizeWindow. Normalize window.
|
||||
|
||||
@@ -35,6 +35,7 @@ WindowCtrl::WindowCtrl( Preferences* pref, QObject *parent )
|
||||
/*
|
||||
* Initialize
|
||||
*/
|
||||
m_minimize_type = m_pref->getMinimizeType();
|
||||
m_hide_minimize = m_pref->getHideOnMinimize();
|
||||
|
||||
/*
|
||||
@@ -110,6 +111,15 @@ void WindowCtrl::slotWindowTitle( QString title )
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle change in minimize type change
|
||||
*/
|
||||
void WindowCtrl::slotMinimizeTypeChange()
|
||||
{
|
||||
m_minimize_type = m_pref->getMinimizeType();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Handle change in hide on minimize state
|
||||
*/
|
||||
@@ -162,7 +172,8 @@ void WindowCtrl::slotShowHide()
|
||||
else
|
||||
{
|
||||
m_state = "minimized";
|
||||
minimizeWindow( getWinId(), m_hide_minimize );
|
||||
minimizeWindow( getWinId(), m_minimize_type );
|
||||
// minimizeWindow( getWinId(), m_hide_minimize );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -64,17 +64,18 @@ class WindowCtrl : public QObject
|
||||
*/
|
||||
void slotWindowTitle( QString title );
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeTypeChange. Handle the minimize type signal.
|
||||
*/
|
||||
void slotMinimizeTypeChange();
|
||||
|
||||
/**
|
||||
* @brief slotHideOnMinimizeChange. Handle the hide on minimize signal.
|
||||
*
|
||||
* @param state The state
|
||||
*/
|
||||
void slotHideOnMinimizeChange();
|
||||
|
||||
/**
|
||||
* @brief slotStartMinimizedChange. Handle the start minimized signal.
|
||||
*
|
||||
* @param state The state
|
||||
*/
|
||||
void slotStartMinimizedChange();
|
||||
|
||||
@@ -122,6 +123,11 @@ class WindowCtrl : public QObject
|
||||
*/
|
||||
QString m_window_title;
|
||||
|
||||
/**
|
||||
* @brief m_minimize_type. Minimize type.
|
||||
*/
|
||||
int m_minimize_type;
|
||||
|
||||
/**
|
||||
* @brief m_hide_minimize. State of hide on minimize.
|
||||
*/
|
||||
|
||||
@@ -154,6 +154,7 @@ SysTrayX.Messaging = {
|
||||
"debug",
|
||||
"pollStartupDelay",
|
||||
"pollInterval",
|
||||
"minimizeType",
|
||||
"hideOnMinimize",
|
||||
"startMinimized",
|
||||
"iconType",
|
||||
@@ -169,6 +170,7 @@ SysTrayX.Messaging = {
|
||||
const debug = result.debug || "false";
|
||||
const pollStartupDelay = result.pollStartupDelay || "30";
|
||||
const pollInterval = result.pollInterval || "30";
|
||||
const minimizeType = result.minimizeType || "0";
|
||||
const hideOnMinimize = result.hideOnMinimize || "true";
|
||||
const startMinimized = result.startMinimized || "false";
|
||||
const iconType = result.iconType || "0";
|
||||
@@ -183,6 +185,7 @@ SysTrayX.Messaging = {
|
||||
debug: debug,
|
||||
pollStartupDelay: pollStartupDelay,
|
||||
pollInterval: pollInterval,
|
||||
minimizeType: minimizeType,
|
||||
hideOnMinimize: hideOnMinimize,
|
||||
startMinimized: startMinimized,
|
||||
iconType: iconType,
|
||||
@@ -317,6 +320,13 @@ SysTrayX.Link = {
|
||||
});
|
||||
}
|
||||
|
||||
const minimizeType = response["preferences"].minimizeType;
|
||||
if (minimizeType) {
|
||||
browser.storage.sync.set({
|
||||
minimizeType: minimizeType,
|
||||
});
|
||||
}
|
||||
|
||||
const hideOnMinimize = response["preferences"].hideOnMinimize;
|
||||
if (hideOnMinimize) {
|
||||
browser.storage.sync.set({
|
||||
|
||||
@@ -60,6 +60,13 @@ body {
|
||||
color: dodgerblue;
|
||||
}
|
||||
|
||||
#minimizeselect {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
margin: 10px 10px 10px 10px;
|
||||
padding: 10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
#iconselect {
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
|
||||
@@ -32,6 +32,26 @@
|
||||
<div id="WindowsContent" class="tabcontent" style="display: block;">
|
||||
<form>
|
||||
<h3>Windows</h3>
|
||||
<table id="minimizeselect">
|
||||
<tr>
|
||||
<td>
|
||||
<input type="radio" name="minimizeType" value="0" /> Default minimize
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="radio" name="minimizeType" value="1" /> Minimize to
|
||||
tray, method 1
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="radio" name="minimizeType" value="2" /> Minimize to
|
||||
tray, method 2
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<input type="checkbox" name="hideOnMinimize" value="" /> Minimizing
|
||||
window hides to tray<br />
|
||||
<input type="checkbox" name="startMinimized" value="" /> Start
|
||||
|
||||
@@ -69,6 +69,17 @@ SysTrayX.SaveOptions = {
|
||||
debug: `${debug}`,
|
||||
});
|
||||
|
||||
//
|
||||
// Save minimize preferences
|
||||
//
|
||||
const minimizeType = document.querySelector('input[name="minimizeType"]:checked')
|
||||
.value;
|
||||
|
||||
// Store minimize preferences
|
||||
browser.storage.sync.set({
|
||||
minimizeType: minimizeType,
|
||||
});
|
||||
|
||||
//
|
||||
// Save hide on minimize state
|
||||
//
|
||||
@@ -142,6 +153,15 @@ SysTrayX.RestoreOptions = {
|
||||
SysTrayX.RestoreOptions.onDebugError
|
||||
);
|
||||
|
||||
//
|
||||
// Restore minimize type
|
||||
//
|
||||
const getMinimizeType = browser.storage.sync.get("minimizeType");
|
||||
getMinimizeType.then(
|
||||
SysTrayX.RestoreOptions.setMinimizeType,
|
||||
SysTrayX.RestoreOptions.onMinimizeTypeError
|
||||
);
|
||||
|
||||
//
|
||||
// Restore hide on minimize
|
||||
//
|
||||
@@ -229,6 +249,19 @@ SysTrayX.RestoreOptions = {
|
||||
console.log(`Debug Error: ${error}`);
|
||||
},
|
||||
|
||||
//
|
||||
// Restore minimize type callbacks
|
||||
//
|
||||
setMinimizeType: function (result) {
|
||||
const minimizeType = result.minimizeType || "0";
|
||||
const radioButton = document.querySelector(`input[name="minimizeType"][value="${minimizeType}"]`);
|
||||
radioButton.checked = true;
|
||||
},
|
||||
|
||||
onMinimizeTypeError: function (error) {
|
||||
console.log(`Minimize type Error: ${error}`);
|
||||
},
|
||||
|
||||
//
|
||||
// Restore hide on minimize callbacks
|
||||
//
|
||||
@@ -262,7 +295,7 @@ SysTrayX.RestoreOptions = {
|
||||
//
|
||||
setIconType: function (result) {
|
||||
const iconType = result.iconType || "0";
|
||||
const radioButton = document.querySelector(`[value="${iconType}"]`);
|
||||
const radioButton = document.querySelector(`input[name="iconType"][value="${iconType}"]`);
|
||||
radioButton.checked = true;
|
||||
},
|
||||
|
||||
@@ -409,6 +442,11 @@ SysTrayX.StorageChanged = {
|
||||
numberColor: changes[item].newValue,
|
||||
});
|
||||
}
|
||||
if (item === "minimizeType") {
|
||||
SysTrayX.RestoreOptions.setMinimizeType({
|
||||
minimizeType: changes[item].newValue,
|
||||
});
|
||||
}
|
||||
if (item === "hideOnMinimize") {
|
||||
SysTrayX.RestoreOptions.setHideOnMinimize({
|
||||
hideOnMinimize: changes[item].newValue,
|
||||
@@ -445,6 +483,7 @@ SysTrayX.StorageChanged = {
|
||||
//
|
||||
document.getElementById("debugselect").className = "active";
|
||||
document.getElementById("iconselect").className = "active";
|
||||
document.getElementById("minimizeselect").className = "active";
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user