mirror of
https://github.com/Ximi1970/systray-x.git
synced 2026-05-07 01:27:07 +02:00
Extend options for close
This commit is contained in:
@@ -51,7 +51,7 @@ Preferences::Preferences( QObject *parent ) : QObject( parent )
|
||||
|
||||
m_minimize_type = PREF_DEFAULT_MINIMIZE;
|
||||
m_start_minimized = false;
|
||||
m_minimize_on_close = true;
|
||||
m_close_type = PREF_MINIMIZE_ALL_WINDOWS;
|
||||
|
||||
m_debug = false;
|
||||
|
||||
@@ -474,27 +474,27 @@ void Preferences::setStartMinimized( bool state )
|
||||
|
||||
|
||||
/*
|
||||
* Get the minmize on close pref.
|
||||
* Get the close type pref.
|
||||
*/
|
||||
bool Preferences::getMinimizeOnClose() const
|
||||
Preferences::CloseType Preferences::getCloseType() const
|
||||
{
|
||||
return m_minimize_on_close;
|
||||
return m_close_type;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Set the minmize on close pref.
|
||||
* Set the close type pref.
|
||||
*/
|
||||
void Preferences::setMinimizeOnClose( bool state )
|
||||
void Preferences::setCloseType( CloseType close_type )
|
||||
{
|
||||
if( m_minimize_on_close != state )
|
||||
if( m_close_type != close_type )
|
||||
{
|
||||
m_minimize_on_close = state;
|
||||
m_close_type = close_type;
|
||||
|
||||
/*
|
||||
* Tell the world the new preference
|
||||
*/
|
||||
emit signalMinimizeOnCloseChange();
|
||||
emit signalCloseTypeChange();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,17 @@ class Preferences : public QObject
|
||||
|
||||
public:
|
||||
|
||||
/*
|
||||
* Close types
|
||||
*/
|
||||
enum CloseType {
|
||||
PREF_CLOSE_WINDOW = 0,
|
||||
PREF_CLOSE_ALL_WINDOWS,
|
||||
PREF_CLOSE_ALL_MINIMIZE_LAST,
|
||||
PREF_MINIMIZE_WINDOW,
|
||||
PREF_MINIMIZE_ALL_WINDOWS
|
||||
};
|
||||
|
||||
/*
|
||||
* Minimize types
|
||||
*/
|
||||
@@ -327,18 +338,18 @@ class Preferences : public QObject
|
||||
void setStartMinimized( bool state );
|
||||
|
||||
/**
|
||||
* @brief getMinimizeOnClose. Get the minimize on close state.
|
||||
* @brief getCloseType. Get the close type.
|
||||
*
|
||||
* @return The state.
|
||||
*/
|
||||
bool getMinimizeOnClose() const;
|
||||
CloseType getCloseType() const;
|
||||
|
||||
/**
|
||||
* @brief setMinimizeOnClose. Set the minimize on close state.
|
||||
* @brief setCloseType. Set the close type.
|
||||
*
|
||||
* @param The state.
|
||||
* @param The close type.
|
||||
*/
|
||||
void setMinimizeOnClose( bool state );
|
||||
void setCloseType( CloseType close_type );
|
||||
|
||||
/**
|
||||
* @brief getDebug. Get the debug windows state.
|
||||
@@ -447,9 +458,9 @@ class Preferences : public QObject
|
||||
void signalStartMinimizedChange();
|
||||
|
||||
/**
|
||||
* @brief signalMinimizeOnCloseChange. Signal a minimize on close state change.
|
||||
* @brief signalCloseTypeChange. Signal a close type change.
|
||||
*/
|
||||
void signalMinimizeOnCloseChange();
|
||||
void signalCloseTypeChange();
|
||||
|
||||
/**
|
||||
* @brief signalDebugChange. Signal a debug state change.
|
||||
@@ -544,9 +555,9 @@ class Preferences : public QObject
|
||||
bool m_start_minimized;
|
||||
|
||||
/**
|
||||
* @brief m_minimize_on_close. Minimize TB instead of closing.
|
||||
* @brief m_close_type. Closing type for TB.
|
||||
*/
|
||||
bool m_minimize_on_close;
|
||||
CloseType m_close_type;
|
||||
|
||||
/**
|
||||
* @brief m_debug. Display debug window.
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>543</width>
|
||||
<height>600</height>
|
||||
<width>515</width>
|
||||
<height>696</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@@ -271,7 +271,7 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_4">
|
||||
<property name="title">
|
||||
<string>Minimize</string>
|
||||
<string>Minimize action</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_2">
|
||||
<item row="0" column="0">
|
||||
@@ -317,6 +317,72 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_6">
|
||||
<property name="title">
|
||||
<string>Close action</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_17">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_16">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="closeWindowRadioButton">
|
||||
<property name="text">
|
||||
<string>Close windows individually</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">closeTypeGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="closeAllWindowsRadioButton">
|
||||
<property name="text">
|
||||
<string>Close all windows</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">closeTypeGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="closeAllMinimizeLastRadioButton">
|
||||
<property name="text">
|
||||
<string>Close all, minimize last</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">closeTypeGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="minimizeWindowRadioButton">
|
||||
<property name="text">
|
||||
<string>Minimize windows individually</string>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">closeTypeGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="minimizeAllWindowsRadioButton">
|
||||
<property name="text">
|
||||
<string>Minimize all windows</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<attribute name="buttonGroup">
|
||||
<string notr="true">closeTypeGroup</string>
|
||||
</attribute>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
||||
<item>
|
||||
@@ -326,16 +392,6 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="minimizeOnCloseCheckBox">
|
||||
<property name="text">
|
||||
<string>Minimize on close</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
@@ -507,9 +563,10 @@
|
||||
</connection>
|
||||
</connections>
|
||||
<buttongroups>
|
||||
<buttongroup name="defaultIconTypeGroup"/>
|
||||
<buttongroup name="minimizeTypeGroup"/>
|
||||
<buttongroup name="iconTypeGroup"/>
|
||||
<buttongroup name="defaultIconTypeGroup"/>
|
||||
<buttongroup name="countTypeGroup"/>
|
||||
<buttongroup name="iconTypeGroup"/>
|
||||
<buttongroup name="closeTypeGroup"/>
|
||||
</buttongroups>
|
||||
</ui>
|
||||
|
||||
@@ -30,6 +30,15 @@ PreferencesDialog::PreferencesDialog( SysTrayXLink *link, Preferences *pref, QWi
|
||||
m_link = link;
|
||||
m_pref = pref;
|
||||
|
||||
/*
|
||||
* Set close type button Ids
|
||||
*/
|
||||
m_ui->closeTypeGroup->setId( m_ui->closeWindowRadioButton, Preferences::PREF_CLOSE_WINDOW);
|
||||
m_ui->closeTypeGroup->setId( m_ui->closeAllWindowsRadioButton, Preferences::PREF_CLOSE_ALL_WINDOWS );
|
||||
m_ui->closeTypeGroup->setId( m_ui->closeAllMinimizeLastRadioButton, Preferences::PREF_CLOSE_ALL_MINIMIZE_LAST );
|
||||
m_ui->closeTypeGroup->setId( m_ui->minimizeWindowRadioButton, Preferences::PREF_MINIMIZE_WINDOW );
|
||||
m_ui->closeTypeGroup->setId( m_ui->minimizeAllWindowsRadioButton, Preferences::PREF_MINIMIZE_ALL_WINDOWS );
|
||||
|
||||
/*
|
||||
* Set minimize type button Ids
|
||||
*/
|
||||
@@ -46,6 +55,13 @@ PreferencesDialog::PreferencesDialog( SysTrayXLink *link, Preferences *pref, QWi
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef Q_OS_LINUX
|
||||
|
||||
m_ui->minimizeMethod1RadioButton->setText( "Minimize to tray" );
|
||||
m_ui->minimizeMethod2RadioButton->hide();
|
||||
|
||||
#endif
|
||||
|
||||
#if defined( Q_OS_UNIX ) && defined( NO_KDE_INTEGRATION )
|
||||
|
||||
m_ui->hideDefaultIconCheckBox->hide();
|
||||
@@ -143,9 +159,9 @@ void PreferencesDialog::setStartMinimized( bool state )
|
||||
/*
|
||||
* Set the minimize on close state
|
||||
*/
|
||||
void PreferencesDialog::setMinimizeOnClose( bool state )
|
||||
void PreferencesDialog::setCloseType( Preferences::CloseType close_type )
|
||||
{
|
||||
m_ui->minimizeOnCloseCheckBox->setChecked( state );
|
||||
( m_ui->closeTypeGroup->button( close_type ) )->setChecked( true );
|
||||
}
|
||||
|
||||
|
||||
@@ -313,7 +329,7 @@ void PreferencesDialog::slotAccept()
|
||||
|
||||
m_pref->setMinimizeType( static_cast< Preferences::MinimizeType >( m_ui->minimizeTypeGroup->checkedId() ) );
|
||||
m_pref->setStartMinimized( m_ui->startMinimizedCheckBox->isChecked() );
|
||||
m_pref->setMinimizeOnClose( m_ui->minimizeOnCloseCheckBox->isChecked() );
|
||||
m_pref->setCloseType( static_cast< Preferences::CloseType >( m_ui->closeTypeGroup->checkedId() ) );
|
||||
|
||||
m_pref->setShowNumber( m_ui->showNumberCheckBox->isChecked() );
|
||||
m_pref->setNumberColor( m_number_color );
|
||||
@@ -442,9 +458,9 @@ void PreferencesDialog::slotStartMinimizedChange()
|
||||
/*
|
||||
* Handle the minimize on close change signal
|
||||
*/
|
||||
void PreferencesDialog::slotMinimizeOnCloseChange()
|
||||
void PreferencesDialog::slotCloseTypeChange()
|
||||
{
|
||||
setMinimizeOnClose( m_pref->getMinimizeOnClose() );
|
||||
setCloseType( m_pref->getCloseType() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -63,11 +63,11 @@ class PreferencesDialog : public QDialog
|
||||
void setStartMinimized( bool state );
|
||||
|
||||
/**
|
||||
* @brief setMinimizeOnClose. Set the minimize on close state.
|
||||
* @brief setCloseType. Set the close type.
|
||||
*
|
||||
* @param state The state.
|
||||
* @param state The close type.
|
||||
*/
|
||||
void setMinimizeOnClose( bool state );
|
||||
void setCloseType( Preferences::CloseType close_type );
|
||||
|
||||
/**
|
||||
* @brief setIconType. Set the icon type.
|
||||
@@ -176,9 +176,9 @@ class PreferencesDialog : public QDialog
|
||||
void slotStartMinimizedChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeOnCloseChange. Slot for handling minimize on close change signals.
|
||||
* @brief slotCloseTypeChange. Slot for handling close type change signals.
|
||||
*/
|
||||
void slotMinimizeOnCloseChange();
|
||||
void slotCloseTypeChange();
|
||||
|
||||
/**
|
||||
* @brief slotIconTypeChange. Slot for handling icon type change signals.
|
||||
|
||||
@@ -119,7 +119,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
connect( m_preferences, &Preferences::signalCountTypeChange, m_pref_dialog, &PreferencesDialog::slotCountTypeChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeTypeChange, m_pref_dialog, &PreferencesDialog::slotMinimizeTypeChange );
|
||||
connect( m_preferences, &Preferences::signalStartMinimizedChange, m_pref_dialog, &PreferencesDialog::slotStartMinimizedChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeOnCloseChange, m_pref_dialog, &PreferencesDialog::slotMinimizeOnCloseChange );
|
||||
connect( m_preferences, &Preferences::signalCloseTypeChange, m_pref_dialog, &PreferencesDialog::slotCloseTypeChange );
|
||||
connect( m_preferences, &Preferences::signalDebugChange, m_pref_dialog, &PreferencesDialog::slotDebugChange );
|
||||
|
||||
connect( m_preferences, &Preferences::signalDefaultIconTypeChange, m_link, &SysTrayXLink::slotDefaultIconTypeChange );
|
||||
@@ -133,7 +133,7 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent )
|
||||
connect( m_preferences, &Preferences::signalCountTypeChange, m_link, &SysTrayXLink::slotCountTypeChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeTypeChange, m_link, &SysTrayXLink::slotMinimizeTypeChange );
|
||||
connect( m_preferences, &Preferences::signalStartMinimizedChange, m_link, &SysTrayXLink::slotStartMinimizedChange );
|
||||
connect( m_preferences, &Preferences::signalMinimizeOnCloseChange, m_link, &SysTrayXLink::slotMinimizeOnCloseChange );
|
||||
connect( m_preferences, &Preferences::signalCloseTypeChange, m_link, &SysTrayXLink::slotCloseTypeChange );
|
||||
connect( m_preferences, &Preferences::signalDebugChange, m_link, &SysTrayXLink::slotDebugChange );
|
||||
connect( m_preferences, &Preferences::signalHideDefaultIconChange, this, &SysTrayX::slotSelectIconObjectPref );
|
||||
|
||||
@@ -514,30 +514,41 @@ void SysTrayX::slotAddOnShutdown()
|
||||
*/
|
||||
void SysTrayX::slotShutdown()
|
||||
{
|
||||
|
||||
if( m_preferences->getMinimizeOnClose() )
|
||||
/*
|
||||
* What shall we do?
|
||||
*/
|
||||
switch( m_preferences->getCloseType() )
|
||||
{
|
||||
m_link->sendShutdown();
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Hide systray icon to prevent ghost systray icon in Windows
|
||||
*/
|
||||
if( m_tray_icon )
|
||||
case Preferences::PREF_CLOSE_WINDOW:
|
||||
case Preferences::PREF_CLOSE_ALL_WINDOWS:
|
||||
{
|
||||
m_tray_icon->hide();
|
||||
/*
|
||||
* Hide systray icon to prevent ghost systray icon in Windows
|
||||
*/
|
||||
if( m_tray_icon )
|
||||
{
|
||||
m_tray_icon->hide();
|
||||
}
|
||||
|
||||
/*
|
||||
* Close the TB window
|
||||
*/
|
||||
emit signalClose();
|
||||
|
||||
/*
|
||||
* Let's quit
|
||||
*/
|
||||
QCoreApplication::quit();
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* Close the TB window
|
||||
*/
|
||||
emit signalClose();
|
||||
|
||||
/*
|
||||
* Let's quit
|
||||
*/
|
||||
QCoreApplication::quit();
|
||||
case Preferences::PREF_CLOSE_ALL_MINIMIZE_LAST:
|
||||
case Preferences::PREF_MINIMIZE_WINDOW:
|
||||
case Preferences::PREF_MINIMIZE_ALL_WINDOWS:
|
||||
{
|
||||
m_link->sendShutdown();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -619,14 +619,14 @@ void SysTrayXLink::DecodePreferences( const QJsonObject& pref )
|
||||
m_pref->setStartMinimized( start_minimized );
|
||||
}
|
||||
|
||||
if( pref.contains( "minimizeOnClose" ) && pref[ "minimizeOnClose" ].isString() )
|
||||
if( pref.contains( "closeType" ) && pref[ "closeType" ].isString() )
|
||||
{
|
||||
bool minimize_on_close = pref[ "minimizeOnClose" ].toString() == "true";
|
||||
Preferences::CloseType close_type = static_cast< Preferences::CloseType >( pref[ "closeType" ].toString().toInt() );
|
||||
|
||||
/*
|
||||
* Store the new start minimized state
|
||||
* Store the new close type
|
||||
*/
|
||||
m_pref->setMinimizeOnClose( minimize_on_close );
|
||||
m_pref->setCloseType( close_type );
|
||||
}
|
||||
|
||||
if( pref.contains( "debug" ) && pref[ "debug" ].isString() )
|
||||
@@ -653,7 +653,7 @@ void SysTrayXLink::EncodePreferences( const Preferences& pref )
|
||||
prefObject.insert("debug", QJsonValue::fromVariant( QString( pref.getDebug() ? "true" : "false" ) ) );
|
||||
prefObject.insert("minimizeType", QJsonValue::fromVariant( QString::number( pref.getMinimizeType() ) ) );
|
||||
prefObject.insert("startMinimized", QJsonValue::fromVariant( QString( pref.getStartMinimized() ? "true" : "false" ) ) );
|
||||
prefObject.insert("minimizeOnClose", QJsonValue::fromVariant( QString( pref.getMinimizeOnClose() ? "true" : "false" ) ) );
|
||||
prefObject.insert("closeType", QJsonValue::fromVariant( QString::number( pref.getCloseType() ) ) );
|
||||
prefObject.insert("defaultIconType", QJsonValue::fromVariant( QString::number( pref.getDefaultIconType() ) ) );
|
||||
prefObject.insert("defaultIconMime", QJsonValue::fromVariant( pref.getDefaultIconMime() ) );
|
||||
prefObject.insert("defaultIcon", QJsonValue::fromVariant( QString( pref.getDefaultIconData().toBase64() ) ) );
|
||||
@@ -734,9 +734,9 @@ void SysTrayXLink::slotStartMinimizedChange()
|
||||
|
||||
|
||||
/*
|
||||
* Handle a minimize on close state change signal
|
||||
* Handle a close type change signal
|
||||
*/
|
||||
void SysTrayXLink::slotMinimizeOnCloseChange()
|
||||
void SysTrayXLink::slotCloseTypeChange()
|
||||
{
|
||||
if( m_pref->getAppPrefChanged() )
|
||||
{
|
||||
|
||||
@@ -218,9 +218,9 @@ class SysTrayXLink : public QObject
|
||||
void slotStartMinimizedChange();
|
||||
|
||||
/**
|
||||
* @brief slotMinimizeOnCloseChange. Handle a change in start minimized state.
|
||||
* @brief slotCloseTypeChange. Slot for handling close type change signals.
|
||||
*/
|
||||
void slotMinimizeOnCloseChange();
|
||||
void slotCloseTypeChange();
|
||||
|
||||
/**
|
||||
* @brief slotDefaultIconTypeChange. Slot for handling default icon type change signals.
|
||||
|
||||
@@ -67,6 +67,23 @@ bool WindowCtrlUnix::isThunderbird( qint64 pid ) const
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the number of visible windows.
|
||||
*/
|
||||
int WindowCtrlUnix::getVisibleWindows()
|
||||
{
|
||||
/*
|
||||
* Get the TB windows and states
|
||||
*/
|
||||
findWindows( getppid() );
|
||||
|
||||
/*
|
||||
* Count the visible states
|
||||
*/
|
||||
return m_tb_window_states.count( Preferences::STATE_NORMAL );
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the process name
|
||||
*/
|
||||
|
||||
@@ -156,6 +156,13 @@ class WindowCtrlUnix : public QObject
|
||||
*/
|
||||
bool isThunderbird( qint64 pid ) const;
|
||||
|
||||
/**
|
||||
* @brief visibleWindows. Get the number of visible windows.
|
||||
*
|
||||
* @return The number of windows.
|
||||
*/
|
||||
int getVisibleWindows();
|
||||
|
||||
/**
|
||||
* @brief getProcessName. Get the name of the proces by pid.
|
||||
*
|
||||
|
||||
@@ -59,6 +59,15 @@ bool WindowCtrl::thunderbirdStart() const
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Get the number of visible windows.
|
||||
*/
|
||||
int WindowCtrl::visibleWindows()
|
||||
{
|
||||
return getVisibleWindows();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Test func 1
|
||||
*/
|
||||
|
||||
@@ -47,6 +47,13 @@ class WindowCtrl : public QObject
|
||||
*/
|
||||
bool thunderbirdStart() const;
|
||||
|
||||
/**
|
||||
* @brief visibleWindows. Get the number of visible windows.
|
||||
*
|
||||
* @return The number of windows.
|
||||
*/
|
||||
int visibleWindows();
|
||||
|
||||
signals:
|
||||
|
||||
// void signalShow();
|
||||
|
||||
@@ -155,6 +155,7 @@ SysTrayX.Messaging = {
|
||||
const getter = browser.storage.sync.get([
|
||||
"debug",
|
||||
"minimizeType",
|
||||
"closeType",
|
||||
"startMinimized",
|
||||
"minimizeOnClose",
|
||||
"defaultIconType",
|
||||
@@ -175,6 +176,7 @@ SysTrayX.Messaging = {
|
||||
sendPreferencesStorage: function (result) {
|
||||
const debug = result.debug || "false";
|
||||
const minimizeType = result.minimizeType || "1";
|
||||
const closeType = result.closeType || "4";
|
||||
const startMinimized = result.startMinimized || "false";
|
||||
const minimizeOnClose = result.minimizeOnClose || "true";
|
||||
const defaultIconType = result.defaultIconType || "0";
|
||||
@@ -194,6 +196,7 @@ SysTrayX.Messaging = {
|
||||
preferences: {
|
||||
debug: debug,
|
||||
minimizeType: minimizeType,
|
||||
closeType: closeType,
|
||||
startMinimized: startMinimized,
|
||||
minimizeOnClose: minimizeOnClose,
|
||||
defaultIconType: defaultIconType,
|
||||
@@ -369,6 +372,13 @@ SysTrayX.Link = {
|
||||
});
|
||||
}
|
||||
|
||||
const closeType = response["preferences"].closeType;
|
||||
if (closeType) {
|
||||
browser.storage.sync.set({
|
||||
closeType: closeType,
|
||||
});
|
||||
}
|
||||
|
||||
const startMinimized = response["preferences"].startMinimized;
|
||||
if (startMinimized) {
|
||||
browser.storage.sync.set({
|
||||
|
||||
@@ -68,6 +68,14 @@ body {
|
||||
padding: 10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
#closeselect {
|
||||
width: 20em;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
margin: 10px 10px 10px 10px;
|
||||
padding: 10px 10px 10px 10px;
|
||||
}
|
||||
|
||||
#defaulticonselect {
|
||||
width: 20em;
|
||||
border-style: solid;
|
||||
|
||||
@@ -62,6 +62,47 @@
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table id="closeselect">
|
||||
<caption>
|
||||
Close action
|
||||
</caption>
|
||||
<tr id="closewindow">
|
||||
<td>
|
||||
<input type="radio" name="closeType" value="0" />
|
||||
<label for="0" id="closewindowlabel">Close windows individually</label
|
||||
><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="closeallwindows">
|
||||
<td>
|
||||
<input type="radio" name="closeType" value="1" />
|
||||
<label for="1" id="closeallwindowslabel">Close all windows</label
|
||||
><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="closeallminimizelast">
|
||||
<td>
|
||||
<input type="radio" name="closeType" value="2" />
|
||||
<label for="2" id="closeallwindowslabel">Close all, minimize last</label
|
||||
><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="minimizewindow">
|
||||
<td>
|
||||
<input type="radio" name="closeType" value="3" />
|
||||
<label for="3" id="minimizewindowlabel">Minimize window individually</label
|
||||
><br />
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="minimizeallwindows">
|
||||
<td>
|
||||
<input type="radio" name="closeType" value="4" />
|
||||
<label for="4" id="minimizeallwindowslabel">Minimize all windows</label
|
||||
><br />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<input type="checkbox" name="startMinimized" value="" /> Start
|
||||
application minimized<br />
|
||||
|
||||
|
||||
@@ -65,6 +65,18 @@ SysTrayX.SaveOptions = {
|
||||
minimizeType: minimizeType,
|
||||
});
|
||||
|
||||
//
|
||||
// Save close preferences
|
||||
//
|
||||
const closeType = document.querySelector(
|
||||
'input[name="closeType"]:checked'
|
||||
).value;
|
||||
|
||||
// Store minimize preferences
|
||||
browser.storage.sync.set({
|
||||
closeType: closeType,
|
||||
});
|
||||
|
||||
//
|
||||
// Save start minimized state
|
||||
//
|
||||
@@ -205,6 +217,17 @@ SysTrayX.RestoreOptions = {
|
||||
SysTrayX.RestoreOptions.onMinimizeTypeError
|
||||
);
|
||||
|
||||
//
|
||||
// Restore close type
|
||||
//
|
||||
const getCloseType = browser.storage.sync.get(
|
||||
"closeType",
|
||||
);
|
||||
getCloseType.then(
|
||||
SysTrayX.RestoreOptions.setCloseType,
|
||||
SysTrayX.RestoreOptions.onCloseTypeError
|
||||
);
|
||||
|
||||
//
|
||||
// Restore start minimized
|
||||
//
|
||||
@@ -364,6 +387,22 @@ SysTrayX.RestoreOptions = {
|
||||
console.log(`Minimize type Error: ${error}`);
|
||||
},
|
||||
|
||||
//
|
||||
// Restore close type callbacks
|
||||
//
|
||||
setCloseType: function (result) {
|
||||
const closeType = result.closeType || "4";
|
||||
|
||||
const radioButton = document.querySelector(
|
||||
`input[name="closeType"][value="${closeType}"]`
|
||||
);
|
||||
radioButton.checked = true;
|
||||
},
|
||||
|
||||
onCloseTypeError: function (error) {
|
||||
console.log(`Close type Error: ${error}`);
|
||||
},
|
||||
|
||||
//
|
||||
// Restore hide on minimize callbacks
|
||||
//
|
||||
@@ -749,6 +788,11 @@ SysTrayX.StorageChanged = {
|
||||
minimizeType: changes[item].newValue,
|
||||
});
|
||||
}
|
||||
if (item === "closeType") {
|
||||
SysTrayX.RestoreOptions.setCloseType({
|
||||
closeType: changes[item].newValue,
|
||||
});
|
||||
}
|
||||
if (item === "startMinimized") {
|
||||
SysTrayX.RestoreOptions.setStartMinimized({
|
||||
startMinimized: changes[item].newValue,
|
||||
@@ -781,6 +825,7 @@ SysTrayX.StorageChanged = {
|
||||
document.getElementById("defaulticonselect").className = "active";
|
||||
document.getElementById("iconselect").className = "active";
|
||||
document.getElementById("minimizeselect").className = "active";
|
||||
document.getElementById("closeselect").className = "active";
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user