diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.de.qm b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.de.qm index 733666c..4cbfd97 100644 Binary files a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.de.qm and b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.de.qm differ diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.de.ts b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.de.ts index fa5d088..716d397 100644 --- a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.de.ts +++ b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.de.ts @@ -206,10 +206,6 @@ Default minimize Standard Minimieren - - Minimize to tray, method 1 - In Systemleiste verbergen, Methode 1 - Minimize to tray, method 2 @@ -235,10 +231,6 @@ Start application minimized Anwendung minimiert starten - - Minimize on close - Beim Fensterschließen, Minimieren - Number properties @@ -336,31 +328,58 @@ + Apps + Anwendungen + + + + Close application + Stopanwendung + + + + + Browse... + Durchsuche... + + + + + Arguments: + Argumente: + + + + Start application + Startanwendung + + + Mail Nachrichten - + Use the preferences dialog in Thunderbird to select the accounts and folders Verwenden Sie den Einstellungsdialog in Thunderbird, um die Konten und Ordner auszuwählen - + Debug Debug - + Display debug window Debug-Fenster anzeigen - + Save Speichern - + Cancel Annullieren @@ -371,42 +390,48 @@ Hauptfenster minimieren - - + + Open Image Bild öffnen - - + + Image Files (*.png *.jpg *.bmp) Bilddateien (*.png *.jpg *.bmp) + + + + Select application + Anwendung auswählen + SysTrayX - + &Show/Hide &Anzeigen/Verbergen - + &Preferences &Einstellungen - + &About &Über - + &Quit &Beenden - + Close Schließen diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.el.qm b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.el.qm index 5c2a600..c3eb3e4 100644 Binary files a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.el.qm and b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.el.qm differ diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.el.ts b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.el.ts index 3e91c4b..7a76b25 100644 --- a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.el.ts +++ b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.el.ts @@ -186,10 +186,6 @@ Default minimize Προεπιλεγμένη ελαχιστοποίηση - - Minimize to tray, method 1 - Μέθοδος 1 - Minimize to tray, method 2 @@ -331,22 +327,39 @@ Νέα - + + Close application + Κλείσιμο αίτησης + + + + + Browse... + ξεφυλλίζω... + + + + + Arguments: + Επιχειρήματα: + + + Mail Αλληλογραφία - + Use the preferences dialog in Thunderbird to select the accounts and folders Χρησιμοποιήστε το παράθυρο διαλόγου Προτιμήσεις Thunderbird για να επιλέξετε λογαριασμούς και φακέλους - + Debug Αποσφαλμάτωση - + Display debug window Προβολή παραθύρου αποσφαλμάτωσης @@ -357,52 +370,68 @@ Ελαχιστοποίηση στην περιοχή ειδοποιήσεων - + + Apps + Εφαρμογές + + + + Start application + Εφαρμογή εκκίνησης + + + Save Αποθήκευση - + Cancel Άκυρο - - + + Open Image Άνοιγμα εικόνας - - + + Image Files (*.png *.jpg *.bmp) Αρχεία εικόνας (*.png *.jpg *.bmp) + + + + Select application + επιλέξτε εφαρμογή + SysTrayX - + &Show/Hide &Εμφάνιση/Απόκρυψη - + &Preferences &Προτιμήσεις - + &About &Σχετικά - + &Quit &Έξοδος - + Close Κλείσιμο diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.en-US.qm b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.en-US.qm index b5531c6..d5c107e 100644 Binary files a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.en-US.qm and b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.en-US.qm differ diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.en-US.ts b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.en-US.ts index 2ffad45..81b1a29 100644 --- a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.en-US.ts +++ b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.en-US.ts @@ -211,10 +211,6 @@ Default minimize Default minimize - - Minimize to tray, method 1 - Minimize to tray, method 1 - Minimize to tray, method 2 @@ -240,10 +236,6 @@ Start application minimized Start application minimized - - Minimize on close - Minimize on close - Number properties @@ -341,31 +333,58 @@ + Apps + Apps + + + + Close application + Close application + + + + + Browse... + Browse... + + + + + Arguments: + Arguments: + + + + Start application + Start application + + + Mail Mail - + Use the preferences dialog in Thunderbird to select the accounts and folders Use the preferences dialog in Thunderbird to select the accounts and folders - + Debug Debug - + Display debug window Display debug window - + Save Save - + Cancel Cancel @@ -376,42 +395,48 @@ Minimize to tray - - + + Open Image Open Image - - + + Image Files (*.png *.jpg *.bmp) Image Files (*.png *.jpg *.bmp) + + + + Select application + Select application + SysTrayX - + &Show/Hide &Show/Hide - + &Preferences &Preferences - + &About &About - + &Quit &Quit - + Close Close diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.it.qm b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.it.qm index a74f3c5..6198b4d 100644 Binary files a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.it.qm and b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.it.qm differ diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.it.ts b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.it.ts index 0aa49a9..d648117 100644 --- a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.it.ts +++ b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.it.ts @@ -192,10 +192,6 @@ Default minimize Minimizzazione predefinita - - Minimize to tray, method 1 - Minimizza nel vassoio, metodo 1 - Minimize to tray, method 2 @@ -332,22 +328,39 @@ Nuovi - + + Close application + Applicazione alla chiusura + + + + + Browse... + Sfogliare... + + + + + Arguments: + Argomenti: + + + Mail Messaggi - + Use the preferences dialog in Thunderbird to select the accounts and folders Usa la finestra di dialogo delle preferenze in Thunderbird per selezionare account e cartelle - + Debug Debug - + Display debug window Mostra finestra di debug @@ -358,52 +371,68 @@ Minimizza nel vassoio - + + Apps + Applicazioni + + + + Start application + Applicazione di avvio + + + Save Salva - + Cancel Annulla - - + + Open Image Apri immagine - - + + Image Files (*.png *.jpg *.bmp) File immagine (*.png *.jpg *.bmp) + + + + Select application + Selezionare l'applicazione + SysTrayX - + &Show/Hide &Mostra/Nascondi - + &Preferences &Preferenze - + &About &Informazioni - + &Quit &Esci - + Close Chiudi diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.nl.qm b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.nl.qm index b1bc422..eb62c28 100644 Binary files a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.nl.qm and b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.nl.qm differ diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.nl.ts b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.nl.ts index 9bd75a6..294b87b 100644 --- a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.nl.ts +++ b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.nl.ts @@ -210,10 +210,6 @@ Default minimize Standaard minimalisatie - - Minimize to tray, method 1 - Minimaliseer naar systeemvak, methode 1 - Minimize to tray, method 2 @@ -239,10 +235,6 @@ Start application minimized Start programma geminimaliseerd - - Minimize on close - Minimaliseren bij sluiten - Number properties @@ -340,31 +332,58 @@ + Apps + Apps + + + + Close application + Stop programma + + + + + Browse... + Bestand zoeken... + + + + + Arguments: + Argumenten: + + + + Start application + Start programma + + + Mail Berichten - + Use the preferences dialog in Thunderbird to select the accounts and folders Gebruik het voorkeurenvenster in Thunderbird om de accounts en mappen te selecteren - + Debug Debug - + Display debug window Toon debug venster - + Save Bewaren - + Cancel Annnuleren @@ -375,42 +394,48 @@ Minimaliseer naar systeemvak - - + + Open Image Open afbeelding - - + + Image Files (*.png *.jpg *.bmp) Afbeeldingsbestanden (*.png *.jpg *.bmp) + + + + Select application + Selecteer programma + SysTrayX - + &Show/Hide &Tonen/Verbergen - + &Preferences &Opties - + &About O&ver - + &Quit &Afsluiten - + Close Sluiten diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.pt-BR.qm b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.pt-BR.qm index 24ef2fe..0aaa093 100644 Binary files a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.pt-BR.qm and b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.pt-BR.qm differ diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.pt-BR.ts b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.pt-BR.ts index 66ef4bf..c38073f 100644 --- a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.pt-BR.ts +++ b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.pt-BR.ts @@ -208,11 +208,6 @@ Default minimize Comportamento padrão - - Minimize to tray, method 1 - Minimizar para à área de notificações? (muito grande) - Minimizar para a tray, método 1 - Minimize to tray, method 2 @@ -239,10 +234,6 @@ Start application minimized Iniciar aplicação minimizada - - Minimize on close - Minimizar ao fechar - Number properties @@ -340,31 +331,58 @@ + Apps + Aplicativos + + + + Close application + Fechando aplicativo + + + + + Browse... + Procurar... + + + + + Arguments: + Argumentos: + + + + Start application + Aplicativo de inicialização + + + Mail E-mail - + Use the preferences dialog in Thunderbird to select the accounts and folders Use a janela de preferências no Thunderbird para selecionar as contas e pastas - + Debug Depuração - + Display debug window Mostrar janela de depuração - + Save Salvar - + Cancel Cancelar @@ -375,42 +393,48 @@ Minimizar para a tray - - + + Open Image Abrir imagem - - + + Image Files (*.png *.jpg *.bmp) Arquivo de imagem (*.png *.jpg *.bmp) + + + + Select application + Selecione o aplicativo + SysTrayX - + &Show/Hide &Exibir/Ocultar - + &Preferences &Preferências - + &About &Sobre - + &Quit &Sair - + Close Fechar diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.ru.qm b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.ru.qm index 38fc92a..19dbd48 100644 Binary files a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.ru.qm and b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.ru.qm differ diff --git a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.ru.ts b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.ru.ts index e40c73a..af72a01 100644 --- a/app/SysTray-X/SysTray-X-app/languages/SysTray-X.ru.ts +++ b/app/SysTray-X/SysTray-X-app/languages/SysTray-X.ru.ts @@ -207,10 +207,6 @@ Need documentation what methods do... Свернуть окно - - Minimize to tray, method 1 - Свернуть в трей, вариант 1 - Minimize to tray, method 2 @@ -236,10 +232,6 @@ Start application minimized Запуск приложения свернутым - - Minimize on close - Сворачивать при закрытии - Number properties @@ -337,31 +329,58 @@ + Apps + Программы + + + + Close application + Заявление о закрытии + + + + + Browse... + просматривать... + + + + + Arguments: + аргументы: + + + + Start application + Приложение при запуске + + + Mail Письма - + Use the preferences dialog in Thunderbird to select the accounts and folders Используйте диалоговое окно настроек в Thunderbird, чтобы выбрать учетные записи и папки - + Debug Отладка - + Display debug window Показывать окно отладки - + Save Сохранить - + Cancel Отменить @@ -372,42 +391,48 @@ Свернуть в трей - - + + Open Image Открыть изображение - - + + Image Files (*.png *.jpg *.bmp) Файлы изображений (*.png *.jpg *.bmp) + + + + Select application + выберите приложение + SysTrayX - + &Show/Hide &Показать/Скрыть - + &Preferences &Настройки - + &About &О приложении - + &Quit &Выход - + Close Закрыть diff --git a/app/SysTray-X/SysTray-X-app/preferences.cpp b/app/SysTray-X/SysTray-X-app/preferences.cpp index 7230af2..a65948d 100644 --- a/app/SysTray-X/SysTray-X-app/preferences.cpp +++ b/app/SysTray-X/SysTray-X-app/preferences.cpp @@ -80,6 +80,11 @@ Preferences::Preferences( QObject *parent ) : QObject( parent ) m_version_branch = QLatin1String( APP_GITBRANCH ); m_theme = PREF_THEME_LIGHT; + + m_start_app = ""; + m_start_app_args = ""; + m_close_app = ""; + m_close_app_args = ""; } @@ -687,6 +692,114 @@ void Preferences::setTheme( Theme theme ) } +/* + * Get the start application. + */ +QString Preferences::getStartApp() const +{ + + return m_start_app; +} + + +/* + * Set the start application. + */ +void Preferences::setStartApp( QString app ) +{ + if( m_start_app != app ) + { + m_start_app = app; + + /* + * Tell the world the new preference + */ + emit signalStartAppChange(); + } +} + + +/* + * Get the start application arguments. + */ +QString Preferences::getStartAppArgs() const +{ + + return m_start_app_args; +} + + +/* + * Set the start application arguments. + */ +void Preferences::setStartAppArgs( QString args ) +{ + if( m_start_app_args != args ) + { + m_start_app_args = args; + + /* + * Tell the world the new preference + */ + emit signalStartAppArgsChange(); + } +} + + +/* + * Get the close application. + */ +QString Preferences::getCloseApp() const +{ + + return m_close_app; +} + + +/* + * Set the close application. + */ +void Preferences::setCloseApp( QString app ) +{ + if( m_close_app != app ) + { + m_close_app = app; + + /* + * Tell the world the new preference + */ + emit signalCloseAppChange(); + } +} + + +/* + * Get the close application arguments. + */ +QString Preferences::getCloseAppArgs() const +{ + + return m_close_app_args; +} + + +/* + * Set the close application arguments. + */ +void Preferences::setCloseAppArgs( QString args ) +{ + if( m_close_app_args != args ) + { + m_close_app_args = args; + + /* + * Tell the world the new preference + */ + emit signalCloseAppArgsChange(); + } +} + + /* * Get the debug state. */ diff --git a/app/SysTray-X/SysTray-X-app/preferences.h b/app/SysTray-X/SysTray-X-app/preferences.h index 9af258b..abaca82 100644 --- a/app/SysTray-X/SysTray-X-app/preferences.h +++ b/app/SysTray-X/SysTray-X-app/preferences.h @@ -462,6 +462,62 @@ class Preferences : public QObject */ void setTheme( Theme theme ); + /** + * @brief getStartApp. Get the start application. + * + * @return The app. + */ + QString getStartApp() const; + + /** + * @brief setStartApp. Set the start application. + * + * @param app The app. + */ + void setStartApp( QString app ); + + /** + * @brief getStartAppArgs. Get the start application arguments. + * + * @return The arg. + */ + QString getStartAppArgs() const; + + /** + * @brief setStartAppArgs. Set the start application arguments. + * + * @param app The args. + */ + void setStartAppArgs( QString args ); + + /** + * @brief getCloseApp. Get the close application. + * + * @return The app. + */ + QString getCloseApp() const; + + /** + * @brief setCloseApp. Set the close application. + * + * @param app The app. + */ + void setCloseApp( QString app ); + + /** + * @brief getCloseAppArgs. Get the close application arguments. + * + * @return The args. + */ + QString getCloseAppArgs() const; + + /** + * @brief setCloseAppArgs. Set the close application arguments. + * + * @param args The args. + */ + void setCloseAppArgs( QString args ); + /** * @brief getDebug. Get the debug windows state. * @@ -613,6 +669,26 @@ class Preferences : public QObject */ void signalThemeChange(); + /** + * @brief signalStartAppChange. Signal a start application change. + */ + void signalStartAppChange(); + + /** + * @brief signalStartAppArgsChange. Signal a start application arguments change. + */ + void signalStartAppArgsChange(); + + /** + * @brief signalCloseAppChange. Signal a close application change. + */ + void signalCloseAppChange(); + + /** + * @brief signalCloseAppArgsChange. Signal a close application arguments change. + */ + void signalCloseAppArgsChange(); + private: /** @@ -769,6 +845,26 @@ class Preferences : public QObject * @brief m_theme. The theme. */ Theme m_theme; + + /** + * @brief m_start_app + */ + QString m_start_app; + + /** + * @brief m_start_app_args + */ + QString m_start_app_args; + + /** + * @brief m_close_app + */ + QString m_close_app; + + /** + * @brief m_close_app_args + */ + QString m_close_app_args; }; #endif // PREFERENCES_H diff --git a/app/SysTray-X/SysTray-X-app/preferences.ui b/app/SysTray-X/SysTray-X-app/preferences.ui index 2eec372..ff2cb03 100644 --- a/app/SysTray-X/SysTray-X-app/preferences.ui +++ b/app/SysTray-X/SysTray-X-app/preferences.ui @@ -29,7 +29,7 @@ - 0 + 2 @@ -824,6 +824,112 @@ + + + Apps + + + + + + + + Close application + + + + + + + + + + + + + Browse... + + + + + + + + + + + Arguments: + + + + + + + + + + + + + + + + + Start application + + + + + + + + + + + + + Browse... + + + + + + + + + + + Arguments: + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Mail @@ -953,12 +1059,12 @@ - - - - - + + + + + diff --git a/app/SysTray-X/SysTray-X-app/preferencesdialog.cpp b/app/SysTray-X/SysTray-X-app/preferencesdialog.cpp index 314d71f..3a356cc 100644 --- a/app/SysTray-X/SysTray-X-app/preferencesdialog.cpp +++ b/app/SysTray-X/SysTray-X-app/preferencesdialog.cpp @@ -118,6 +118,9 @@ PreferencesDialog::PreferencesDialog( SysTrayXLink *link, Preferences *pref, QWi connect( m_ui->savePushButton, &QPushButton::clicked, this, &PreferencesDialog::slotAccept); connect( m_ui->cancelPushButton, &QPushButton::clicked, this, &PreferencesDialog::slotReject); + connect( m_ui->startBrowseButton, &QPushButton::clicked, this, &PreferencesDialog::slotStartAppSelect ); + connect( m_ui->closeBrowseButton, &QPushButton::clicked, this, &PreferencesDialog::slotCloseAppSelect ); + /* * Set number color */ @@ -149,6 +152,14 @@ PreferencesDialog::PreferencesDialog( SysTrayXLink *link, Preferences *pref, QWi */ setNumberMargins( m_pref->getNumberMargins() ); + /* + * Set the start and close application parameters + */ + setStartApp( m_pref->getStartApp() ); + setStartAppArgs( m_pref->getStartAppArgs() ); + setCloseApp( m_pref->getCloseApp() ); + setCloseAppArgs( m_pref->getCloseAppArgs() ); + /* * Dialog on top */ @@ -433,6 +444,41 @@ void PreferencesDialog::setTheme( Preferences::Theme theme ) } +/* + * Set start application + */ +void PreferencesDialog::setStartApp( QString app ) +{ + m_ui->startAppLineEdit->setText( app ); +} + + +/* + * Set start application arguments + */ +void PreferencesDialog::setStartAppArgs( QString args ) +{ + m_ui->startAppArgsLineEdit->setText( args ); +} + +/* + * Set close application + */ +void PreferencesDialog::setCloseApp( QString app ) +{ + m_ui->closeAppLineEdit->setText( app ); +} + + +/* + * Set close application arguments + */ +void PreferencesDialog::setCloseAppArgs( QString args ) +{ + m_ui->closeAppArgsLineEdit->setText( args ); +} + + /* * Handle the accept signal */ @@ -473,6 +519,15 @@ void PreferencesDialog::slotAccept() Preferences::Theme theme = static_cast< Preferences::Theme >( m_ui->themeGroup->checkedId() ); m_pref->setTheme( theme ); + QString startApp = m_ui->startAppLineEdit->text(); + m_pref->setStartApp( startApp ); + QString startAppArgs= m_ui->startAppArgsLineEdit->text(); + m_pref->setStartAppArgs( startAppArgs ); + QString closeApp = m_ui->closeAppLineEdit->text(); + m_pref->setCloseApp( closeApp ); + QString closeAppArgs= m_ui->closeAppArgsLineEdit->text(); + m_pref->setCloseAppArgs( closeAppArgs ); + /* * Force different color? */ @@ -537,6 +592,10 @@ void PreferencesDialog::slotReject() setNumberAlignment( m_pref->getNumberAlignment() ); setNumberMargins( m_pref->getNumberMargins() ); setTheme( m_pref->getTheme() ); + setStartApp( m_pref->getStartApp() ); + setStartAppArgs( m_pref->getStartAppArgs() ); + setCloseApp( m_pref->getCloseApp() ); + setCloseAppArgs( m_pref->getCloseAppArgs() ); setDebug( m_pref->getDebug()); } @@ -606,6 +665,34 @@ void PreferencesDialog::slotColorSelect() } +/* + * Handle the start application button + */ +void PreferencesDialog::slotStartAppSelect() +{ + QFileDialog file_dialog( this, tr( "Select application" ), "", "" ); + + if( file_dialog.exec() ) + { + setStartApp( file_dialog.selectedFiles()[ 0 ] ); + } +} + + +/* + * Handle the close application button + */ +void PreferencesDialog::slotCloseAppSelect() +{ + QFileDialog file_dialog( this, tr( "Select application" ), "", "" ); + + if( file_dialog.exec() ) + { + setCloseApp( file_dialog.selectedFiles()[ 0 ] ); + } +} + + /* * Handle the debug change signal */ @@ -803,3 +890,39 @@ void PreferencesDialog::slotThemeChange() { setTheme( m_pref->getTheme() ); } + + +/* + * Handle the start application change signal + */ +void PreferencesDialog::slotStartAppChange() +{ + setStartApp( m_pref->getStartApp() ); +} + + +/* + * Handle the start application arguments change signal + */ +void PreferencesDialog::slotStartAppArgsChange() +{ + setStartAppArgs( m_pref->getStartAppArgs() ); +} + + +/* + * Handle the close application change signal + */ +void PreferencesDialog::slotCloseAppChange() +{ + setCloseApp( m_pref->getCloseApp() ); +} + + +/* + * Handle the close application arguments change signal + */ +void PreferencesDialog::slotCloseAppArgsChange() +{ + setCloseAppArgs( m_pref->getCloseAppArgs() ); +} diff --git a/app/SysTray-X/SysTray-X-app/preferencesdialog.h b/app/SysTray-X/SysTray-X-app/preferencesdialog.h index ca54b56..ae20b0e 100644 --- a/app/SysTray-X/SysTray-X-app/preferencesdialog.h +++ b/app/SysTray-X/SysTray-X-app/preferencesdialog.h @@ -209,6 +209,35 @@ class PreferencesDialog : public QDialog */ void setTheme( Preferences::Theme theme ); + /** + * @brief setStartApp. Set the start application. + * + * @param app The application. + */ + void setStartApp( QString app ); + + /** + * @brief setStartAppArgs. Set the start application arguments. + * + * @param args The application arguments. + */ + void setStartAppArgs( QString args ); + + /** + * @brief setCloseApp. Set the close application. + * + * @param app The application. + */ + void setCloseApp( QString app ); + + /** + * @brief setCloseAppArgs. Set the close application arguments. + * + * @param args The application arguments. + */ + void setCloseAppArgs( QString args ); + + signals: /** @@ -325,6 +354,26 @@ class PreferencesDialog : public QDialog */ void slotThemeChange(); + /** + * @brief slotStartAppChange. Slot for handling start application change. + */ + void slotStartAppChange(); + + /** + * @brief slotStartAppArgsChange. Slot for handling start application arguments change. + */ + void slotStartAppArgsChange(); + + /** + * @brief slotCloseAppChange. Slot for handling close application change. + */ + void slotCloseAppChange(); + + /** + * @brief slotCloseAppArgsChange. Slot for handling close application arguments change. + */ + void slotCloseAppArgsChange(); + private slots: /** @@ -352,6 +401,16 @@ class PreferencesDialog : public QDialog */ void slotColorSelect(); + /** + * @brief slotStartAppSelect. Handle the start application button click. + */ + void slotStartAppSelect(); + + /** + * @brief slotCloseAppSelect. Handle the close application button click. + */ + void slotCloseAppSelect(); + private: /** diff --git a/app/SysTray-X/SysTray-X-app/systrayx.cpp b/app/SysTray-X/SysTray-X-app/systrayx.cpp index 122cdce..e5a0178 100644 --- a/app/SysTray-X/SysTray-X-app/systrayx.cpp +++ b/app/SysTray-X/SysTray-X-app/systrayx.cpp @@ -14,6 +14,7 @@ * Qt includes */ #include +#include #include #include #include @@ -133,6 +134,10 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent ) connect( m_preferences, &Preferences::signalRestoreWindowPositionsChange, m_pref_dialog, &PreferencesDialog::slotRestoreWindowPositionsChange ); connect( m_preferences, &Preferences::signalCloseTypeChange, m_pref_dialog, &PreferencesDialog::slotCloseTypeChange ); connect( m_preferences, &Preferences::signalThemeChange, m_pref_dialog, &PreferencesDialog::slotThemeChange ); + connect( m_preferences, &Preferences::signalStartAppChange, m_pref_dialog, &PreferencesDialog::slotStartAppChange ); + connect( m_preferences, &Preferences::signalStartAppArgsChange, m_pref_dialog, &PreferencesDialog::slotStartAppArgsChange ); + connect( m_preferences, &Preferences::signalCloseAppChange, m_pref_dialog, &PreferencesDialog::slotCloseAppChange ); + connect( m_preferences, &Preferences::signalCloseAppArgsChange, m_pref_dialog, &PreferencesDialog::slotCloseAppArgsChange ); connect( m_preferences, &Preferences::signalDebugChange, m_pref_dialog, &PreferencesDialog::slotDebugChange ); connect( m_preferences, &Preferences::signalDefaultIconTypeChange, m_link, &SysTrayXLink::slotDefaultIconTypeChange ); @@ -153,6 +158,10 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent ) connect( m_preferences, &Preferences::signalRestoreWindowPositionsChange, m_link, &SysTrayXLink::slotRestoreWindowPositionsChange ); connect( m_preferences, &Preferences::signalCloseTypeChange, m_link, &SysTrayXLink::slotCloseTypeChange ); connect( m_preferences, &Preferences::signalThemeChange, m_link, &SysTrayXLink::slotThemeChange ); + connect( m_preferences, &Preferences::signalStartAppChange, m_link, &SysTrayXLink::slotStartAppChange ); + connect( m_preferences, &Preferences::signalStartAppArgsChange, m_link, &SysTrayXLink::slotStartAppArgsChange ); + connect( m_preferences, &Preferences::signalCloseAppChange, m_link, &SysTrayXLink::slotCloseAppChange ); + connect( m_preferences, &Preferences::signalCloseAppArgsChange, m_link, &SysTrayXLink::slotCloseAppArgsChange ); connect( m_preferences, &Preferences::signalDebugChange, m_link, &SysTrayXLink::slotDebugChange ); connect( m_preferences, &Preferences::signalHideDefaultIconChange, this, &SysTrayX::slotSelectIconObjectPref ); @@ -168,6 +177,8 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent ) connect( m_link, &SysTrayXLink::signalVersion, this, &SysTrayX::slotVersion ); connect( m_link, &SysTrayXLink::signalKdeIntegration, this, &SysTrayX::slotSelectIconObject ); connect( m_link, &SysTrayXLink::signalLocale, this, &SysTrayX::slotLoadLanguage ); + connect( m_link, &SysTrayXLink::signalStartApp, this, &SysTrayX::slotStartApp ); + connect( m_link, &SysTrayXLink::signalCloseApp, this, &SysTrayX::slotCloseApp ); #ifdef Q_OS_UNIX @@ -195,7 +206,15 @@ SysTrayX::SysTrayX( QObject *parent ) : QObject( parent ) //slotLoadLanguage( "ru" ); slotSelectIconObject( false ); +<<<<<<< HEAD slotMailCount( 10, 1 ); +======= + slotSetUnreadMail( 10 ); + + m_preferences->setStartApp( "/home/maxime/test.sh" ); + m_preferences->setStartAppArgs( "/home/maxime/startup.txt StartupString" ); + slotStartApp(); +>>>>>>> develop */ } @@ -573,6 +592,11 @@ void SysTrayX::slotErrorAddOnShutdown() m_tray_icon->hide(); } + /* + * Launch close application + */ + slotCloseApp(); + /* * Let's quit */ @@ -705,3 +729,36 @@ void SysTrayX::slotLoadLanguage( QString locale ) qApp->installTranslator( &m_translator ); } } + + +/* + * Handle a startup app launch request + */ +void SysTrayX::slotStartApp() +{ + QString app = m_preferences->getStartApp(); + QString args = m_preferences->getStartAppArgs(); + QStringList args_list = args.split( ' ', Qt::SkipEmptyParts ); + + if( !app.isEmpty() ) + { + QProcess::startDetached( app, args_list ); + } +} + + +/* + * Handle a close app launch request + */ +void SysTrayX::slotCloseApp() +{ + QString app = m_preferences->getCloseApp(); + QString args = m_preferences->getCloseAppArgs(); + QStringList args_list = args.split( ' ', Qt::SkipEmptyParts ); + + if( !app.isEmpty() ) + { + QProcess::startDetached( app, args_list ); + } +} + diff --git a/app/SysTray-X/SysTray-X-app/systrayx.h b/app/SysTray-X/SysTray-X-app/systrayx.h index 889f71e..ca45918 100644 --- a/app/SysTray-X/SysTray-X-app/systrayx.h +++ b/app/SysTray-X/SysTray-X-app/systrayx.h @@ -140,6 +140,16 @@ class SysTrayX : public QObject */ void slotLoadLanguage( QString locale ); + /** + * @brief slotStartApp. Handle a start app launch request. + */ + void slotStartApp(); + + /** + * @brief slotCloseApp. Handle a close app launch request. + */ + void slotCloseApp(); + private slots: /** diff --git a/app/SysTray-X/SysTray-X-app/systrayxlink.cpp b/app/SysTray-X/SysTray-X-app/systrayxlink.cpp index af1d06c..f3af352 100644 --- a/app/SysTray-X/SysTray-X-app/systrayxlink.cpp +++ b/app/SysTray-X/SysTray-X-app/systrayxlink.cpp @@ -351,6 +351,14 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message ) if( jsonObject.contains( "shutdown" ) && jsonObject[ "shutdown" ].isString() ) { + /* + * Launch close appplication + */ + emit signalCloseApp(); + + /* + * Shutdown the addon + */ emit signalAddOnShutdown(); } @@ -446,6 +454,26 @@ void SysTrayXLink::DecodeMessage( const QByteArray& message ) { DecodePreferences( jsonObject[ "preferences" ].toObject() ); } + + if( jsonObject.contains( "startApp" ) && jsonObject[ "startApp" ].isString() && + jsonObject.contains( "startAppArgs" ) && jsonObject[ "startAppArgs" ].isString() ) + { + QString app = jsonObject[ "startApp" ].toString(); + QString args = jsonObject[ "startAppArgs" ].toString(); + + /* + * Store the new start application parameters + */ + m_pref->setStartApp( app ); + m_pref->setStartAppArgs( args ); + + emit signalStartApp(); + } + + if( jsonObject.contains( "closeApp" ) && jsonObject[ "closeApp" ].isString() ) + { + emit signalCloseApp(); + } } } @@ -783,6 +811,46 @@ void SysTrayXLink::DecodePreferences( const QJsonObject& pref ) m_pref->setTheme( theme ); } + if( pref.contains( "startApp" ) && pref[ "startApp" ].isString() ) + { + QString app = pref[ "startApp" ].toString(); + + /* + * Store the new start application + */ + m_pref->setStartApp( app ); + } + + if( pref.contains( "startAppArgs" ) && pref[ "startAppArgs" ].isString() ) + { + QString args = pref[ "startAppArgs" ].toString(); + + /* + * Store the new start application arguments + */ + m_pref->setStartAppArgs( args ); + } + + if( pref.contains( "closeApp" ) && pref[ "closeApp" ].isString() ) + { + QString app = pref[ "closeApp" ].toString(); + + /* + * Store the new close application + */ + m_pref->setCloseApp( app ); + } + + if( pref.contains( "closeAppArgs" ) && pref[ "closeAppArgs" ].isString() ) + { + QString args = pref[ "closeAppArgs" ].toString(); + + /* + * Store the new close application arguments + */ + m_pref->setCloseAppArgs( args ); + } + if( pref.contains( "debug" ) && pref[ "debug" ].isString() ) { bool debug = pref[ "debug" ].toString() == "true"; @@ -863,6 +931,11 @@ void SysTrayXLink::EncodePreferences( const Preferences& pref ) prefObject.insert("startupDelay", QJsonValue::fromVariant( QString::number( pref.getStartupDelay() ) ) ); prefObject.insert("theme", QJsonValue::fromVariant( QString::number( pref.getTheme() ) ) ); + prefObject.insert("startApp", QJsonValue::fromVariant( pref.getStartApp() ) ); + prefObject.insert("startAppArgs", QJsonValue::fromVariant( pref.getStartAppArgs() ) ); + prefObject.insert("closeApp", QJsonValue::fromVariant( pref.getCloseApp() ) ); + prefObject.insert("closeAppArgs", QJsonValue::fromVariant( pref.getCloseAppArgs() ) ); + QJsonObject preferencesObject; preferencesObject.insert("preferences", prefObject ); @@ -1129,3 +1202,51 @@ void SysTrayXLink::slotThemeChange() sendPreferences(); } } + + +/* + * Handle a start application change signal + */ +void SysTrayXLink::slotStartAppChange() +{ + if( m_pref->getAppPrefChanged() ) + { + sendPreferences(); + } +} + + +/* + * Handle a start application arguments change signal + */ +void SysTrayXLink::slotStartAppArgsChange() +{ + if( m_pref->getAppPrefChanged() ) + { + sendPreferences(); + } +} + + +/* + * Handle a close application change signal + */ +void SysTrayXLink::slotCloseAppChange() +{ + if( m_pref->getAppPrefChanged() ) + { + sendPreferences(); + } +} + + +/* + * Handle a close application arguments change signal + */ +void SysTrayXLink::slotCloseAppArgsChange() +{ + if( m_pref->getAppPrefChanged() ) + { + sendPreferences(); + } +} diff --git a/app/SysTray-X/SysTray-X-app/systrayxlink.h b/app/SysTray-X/SysTray-X-app/systrayxlink.h index 670d1a7..bab500e 100644 --- a/app/SysTray-X/SysTray-X-app/systrayxlink.h +++ b/app/SysTray-X/SysTray-X-app/systrayxlink.h @@ -242,6 +242,16 @@ class SysTrayXLink : public QObject */ void signalWindowPositions( QList< QPoint > window_positions ); + /** + * @brief signalStartApp. Signal the start app launch request. + */ + void signalStartApp(); + + /** + * @brief signalCloseApp. Signal the close app launch request. + */ + void signalCloseApp(); + public slots: /** @@ -344,7 +354,27 @@ class SysTrayXLink : public QObject */ void slotThemeChange(); - private slots: + /** + * @brief slotStartAppChange. Slot for handling start application change signals. + */ + void slotStartAppChange(); + + /** + * @brief slotStartAppArgsChange. Slot for handling start application arguments change signals. + */ + void slotStartAppArgsChange(); + + /** + * @brief slotCloseAppChange. Slot for handling close application change signals. + */ + void slotCloseAppChange(); + + /** + * @brief slotCloseAppArgsChange. Slot for handling close application arguments change signals. + */ + void slotCloseAppArgsChange(); + + private slots: /** * @brief slotLinkRead. Read the link. diff --git a/webext/_locales/de/messages.json b/webext/_locales/de/messages.json index 7221578..1b12b34 100644 --- a/webext/_locales/de/messages.json +++ b/webext/_locales/de/messages.json @@ -34,6 +34,11 @@ "description": "Tab for Icon options" }, + "tab_apps": { + "message": "Anwendungen", + "description": "Tab for Apps options" + }, + "tab_mail": { "message": "Nachrichten", "description": "Tab for Mail options" @@ -304,6 +309,41 @@ "description": "The dark theme" }, + "apps": { + "message": "Anwendungen", + "description": "Title for Apps options" + }, + + "start_application": { + "message": "Startanwendung", + "description": "The start application parameters" + }, + + "start_app": { + "message": "Anwendung: ", + "description": "The start application" + }, + + "start_app_args": { + "message": "Argumente: ", + "description": "Arguments for a start application" + }, + + "close_application": { + "message": "Stopanwendung", + "description": "The close application parameters" + }, + + "close_app": { + "message": "Anwendung: ", + "description": "The close application" + }, + + "close_app_args": { + "message": "Argumente: ", + "description": "Arguments for a close application" + }, + "accounts": { "message": "Konten", "description": "Title for Accounts options" diff --git a/webext/_locales/el/messages.json b/webext/_locales/el/messages.json index a44c7ed..cc3b4ab 100644 --- a/webext/_locales/el/messages.json +++ b/webext/_locales/el/messages.json @@ -34,6 +34,11 @@ "description": "Tab for Icon options" }, + "tab_apps": { + "message": "Εφαρμογές", + "description": "Tab for Apps options" + }, + "tab_mail": { "message": "Αλληλογραφία", "description": "Tab for Mail options" @@ -304,6 +309,41 @@ "description": "The dark theme" }, + "apps": { + "message": "Εφαρμογές", + "description": "Title for Apps options" + }, + + "start_application": { + "message": "Εφαρμογή εκκίνησης", + "description": "The start application parameters" + }, + + "start_app": { + "message": "Εφαρμογή: ", + "description": "The start application" + }, + + "start_app_args": { + "message": "Επιχειρήματα: ", + "description": "Arguments for a start application" + }, + + "close_application": { + "message": "Κλείσιμο αίτησης", + "description": "The close application parameters" + }, + + "close_app": { + "message": "Εφαρμογή: ", + "description": "The close application" + }, + + "close_app_args": { + "message": "Επιχειρήματα: ", + "description": "Arguments for a close application" + }, + "accounts": { "message": "Λογαριασμοί", "description": "Title for Accounts options" diff --git a/webext/_locales/en-US/messages.json b/webext/_locales/en-US/messages.json index 38a468f..48e9fc7 100644 --- a/webext/_locales/en-US/messages.json +++ b/webext/_locales/en-US/messages.json @@ -34,6 +34,11 @@ "description": "Tab for Icon options" }, + "tab_apps": { + "message": "Apps", + "description": "Tab for Apps options" + }, + "tab_mail": { "message": "Mail", "description": "Tab for Mail options" @@ -304,6 +309,41 @@ "description": "The dark theme" }, + "apps": { + "message": "Apps", + "description": "Title for Apps options" + }, + + "start_application": { + "message": "Start application", + "description": "The start application parameters" + }, + + "start_app": { + "message": "Application: ", + "description": "The start application" + }, + + "start_app_args": { + "message": "Arguments: ", + "description": "Arguments for a start application" + }, + + "close_application": { + "message": "Closing application", + "description": "The close application parameters" + }, + + "close_app": { + "message": "Application: ", + "description": "The close application" + }, + + "close_app_args": { + "message": "Arguments: ", + "description": "Arguments for a close application" + }, + "accounts": { "message": "Accounts", "description": "Title for Accounts options" diff --git a/webext/_locales/it/messages.json b/webext/_locales/it/messages.json index 04bce52..864ff45 100644 --- a/webext/_locales/it/messages.json +++ b/webext/_locales/it/messages.json @@ -34,6 +34,11 @@ "description": "Tab for Icon options" }, + "tab_apps": { + "message": "Applicazioni", + "description": "Tab for Apps options" + }, + "tab_mail": { "message": "Posta", "description": "Tab for Mail options" @@ -304,6 +309,41 @@ "description": "The dark theme" }, + "apps": { + "message": "Applicazioni", + "description": "Title for Apps options" + }, + + "start_application": { + "message": "Applicazione di avvio", + "description": "The start application parameters" + }, + + "start_app": { + "message": "Applicazione: ", + "description": "The start application" + }, + + "start_app_args": { + "message": "Argomenti: ", + "description": "Arguments for a start application" + }, + + "close_application": { + "message": "Applicazione alla chiusura", + "description": "The close application parameters" + }, + + "close_app": { + "message": "Applicazione: ", + "description": "The close application" + }, + + "close_app_args": { + "message": "Argomenti: ", + "description": "Arguments for a close application" + }, + "accounts": { "message": "Account", "description": "Title for Accounts options" diff --git a/webext/_locales/nl/messages.json b/webext/_locales/nl/messages.json index bad4550..156b29a 100644 --- a/webext/_locales/nl/messages.json +++ b/webext/_locales/nl/messages.json @@ -34,6 +34,11 @@ "description": "Tab for Icon options" }, + "tab_apps": { + "message": "Apps", + "description": "Tab for Apps options" + }, + "tab_mail": { "message": "Berichten", "description": "Tab for Mail options" @@ -304,6 +309,41 @@ "description": "The dark theme" }, + "apps": { + "message": "Apps", + "description": "Title for Apps options" + }, + + "start_application": { + "message": "Start programma", + "description": "The start application parameters" + }, + + "start_app": { + "message": "Programma: ", + "description": "The start application" + }, + + "start_app_args": { + "message": "Argumenten: ", + "description": "Arguments for a start application" + }, + + "close_application": { + "message": "Stop programma", + "description": "The close application parameters" + }, + + "close_app": { + "message": "Programma: ", + "description": "The close application" + }, + + "close_app_args": { + "message": "Argumenten: ", + "description": "Arguments for a close application" + }, + "accounts": { "message": "Accounts", "description": "Title for Accounts options" diff --git a/webext/_locales/pt-BR/messages.json b/webext/_locales/pt-BR/messages.json index c24b0b5..0b65ab1 100644 --- a/webext/_locales/pt-BR/messages.json +++ b/webext/_locales/pt-BR/messages.json @@ -34,6 +34,11 @@ "description": "Tab for Icon options" }, + "tab_apps": { + "message": "Aplicativos", + "description": "Tab for Apps options" + }, + "tab_mail": { "message": "E-mail", "description": "Tab for Mail options" @@ -304,6 +309,41 @@ "description": "The dark theme" }, + "apps": { + "message": "Aplicativos", + "description": "Title for Apps options" + }, + + "start_application": { + "message": "Aplicativo de inicialização", + "description": "The start application parameters" + }, + + "start_app": { + "message": "Aplicativo: ", + "description": "The start application" + }, + + "start_app_args": { + "message": "Argumentos: ", + "description": "Arguments for a start application" + }, + + "close_application": { + "message": "Fechando aplicativo", + "description": "The close application parameters" + }, + + "close_app": { + "message": "Aplicativo: ", + "description": "The close application" + }, + + "close_app_args": { + "message": "Argumentos: ", + "description": "Arguments for a close application" + }, + "accounts": { "message": "Contas", "description": "Title for Accounts options" diff --git a/webext/_locales/ru/messages.json b/webext/_locales/ru/messages.json index ab8c34c..44ec014 100644 --- a/webext/_locales/ru/messages.json +++ b/webext/_locales/ru/messages.json @@ -34,6 +34,11 @@ "description": "Tab for Icon options" }, + "tab_apps": { + "message": "Программы", + "description": "Tab for Apps options" + }, + "tab_mail": { "message": "Письма", "description": "Tab for Mail options" @@ -304,6 +309,41 @@ "description": "The dark theme" }, + "apps": { + "message": "Программы", + "description": "Title for Apps options" + }, + + "start_application": { + "message": "Приложение при запуске", + "description": "The start application parameters" + }, + + "start_app": { + "message": "Приложение: ", + "description": "The start application" + }, + + "start_app_args": { + "message": "аргументы: ", + "description": "Arguments for a start application" + }, + + "close_application": { + "message": "Заявление о закрытии", + "description": "The close application parameters" + }, + + "close_app": { + "message": "Приложение: ", + "description": "The close application" + }, + + "close_app_args": { + "message": "аргументы: ", + "description": "Arguments for a close application" + }, + "accounts": { "message": "Аккаунты", "description": "Title for Accounts options" diff --git a/webext/background.js b/webext/background.js index f2ec9df..f3fdbf2 100644 --- a/webext/background.js +++ b/webext/background.js @@ -5,6 +5,9 @@ var SysTrayX = { startupWindowPositions: [], hideDefaultIcon: false, + + startApp: "", + startAppArgs: "", }; SysTrayX.Info = { @@ -63,6 +66,9 @@ SysTrayX.Messaging = { // Send preferences to app SysTrayX.Messaging.sendPreferences(); + // Send start app trigger + SysTrayX.Messaging.sendStartApp(); + // Let us wait until TB is ready, needed for TB91 and higher? const startupDelay = await storage() .get("startupDelay") @@ -525,6 +531,19 @@ SysTrayX.Messaging = { }); }, + sendStartApp: function () { + SysTrayX.Link.postSysTrayXMessage({ + startApp: SysTrayX.startApp, + startAppArgs: SysTrayX.startAppArgs, + }); + }, + + sendCloseApp: function () { + SysTrayX.Link.postSysTrayXMessage({ + closeApp: "closeApp", + }); + }, + sendPreferences: async function () { await storage() .get([ @@ -549,6 +568,10 @@ SysTrayX.Messaging = { "countType", "startupDelay", "theme", + "startApp", + "startAppArgs", + "closeApp", + "closeAppArgs", ]) .then( SysTrayX.Messaging.sendPreferencesStorage, @@ -583,6 +606,10 @@ SysTrayX.Messaging = { const countType = result.countType || "0"; const startupDelay = result.startupDelay || "5"; const theme = result.theme || "0"; + const startApp = result.startApp || ""; + const startAppArgs = result.startAppArgs || ""; + const closeApp = result.closeApp || ""; + const closeAppArgs = result.closeAppArgs || ""; if (theme == "0" && numberColor == "#ffffff") { numberColor = "#000000"; @@ -614,6 +641,10 @@ SysTrayX.Messaging = { countType, startupDelay, theme, + startApp, + startAppArgs, + closeApp, + closeAppArgs, }, }); @@ -657,7 +688,7 @@ SysTrayX.Link = { postSysTrayXMessage: function (object) { // Send object (will be stringified by postMessage) - console.debug("postSysTrayXMessage: " + JSON.stringify(object)); + // console.debug("postSysTrayXMessage: " + JSON.stringify(object)); SysTrayX.Link.portSysTrayX.postMessage(object); }, @@ -826,6 +857,34 @@ SysTrayX.Link = { }); } + const startApp = response["preferences"].startApp; + if (startApp !== undefined) { + await storage().set({ + startApp: startApp, + }); + } + + const startAppArgs = response["preferences"].startAppArgs; + if (startAppArgs !== undefined) { + await storage().set({ + startAppArgs: startAppArgs, + }); + } + + const closeApp = response["preferences"]. closeApp; + if (closeApp !== undefined) { + await storage().set({ + closeApp: closeApp, + }); + } + + const closeAppArgs = response["preferences"].closeAppArgs; + if (closeAppArgs !== undefined) { + await storage().set({ + closeAppArgs: closeAppArgs, + }); + } + const debug = response["preferences"].debug; if (debug) { await storage().set({ @@ -920,6 +979,11 @@ async function start() { const hideDefaultIcon = await getHideDefaultIcon(); SysTrayX.hideDefaultIcon = hideDefaultIcon; + // Get start app launch parameters + const {startApp, startAppArgs} = await getStartAppParam(); + SysTrayX.startApp = startApp; + SysTrayX.startAppArgs = startAppArgs; + // Used sync storage // const inUse = await browser.storage.sync.getBytesInUse(); // console.log("Storage in use: " + inUse); diff --git a/webext/css/options.css b/webext/css/options.css index 9f11706..a9b1fcd 100644 --- a/webext/css/options.css +++ b/webext/css/options.css @@ -138,6 +138,22 @@ body { padding: 10px 10px 10px 10px; } +#startappselect { + width: 25em; + border-style: solid; + border-width: 1px; + margin: 10px 10px 10px 10px; + padding: 10px 10px 10px 10px; +} + +#closeappselect { + width: 25em; + border-style: solid; + border-width: 1px; + margin: 10px 10px 10px 10px; + padding: 10px 10px 10px 10px; +} + ul, #accountsTree { list-style-type: none; @@ -198,6 +214,23 @@ ul, margin: 10px; } +label[id="fileDefaultIconTypeLabel"], +label[id="fileIconTypeLabel"] +{ + display: inline-block; + padding: 8px 16px; + vertical-align: middle; + overflow: hidden; + text-decoration: none; + color: inherit; + background-color: #f1f1f1; + text-align: center; + cursor: pointer; + white-space: nowrap; + border: 1px solid #ccc; + border-radius: 8px; +} + button[name="savebutton"] { display: inline-block; padding: 8px 16px; diff --git a/webext/js/defaults.js b/webext/js/defaults.js index b251c1f..63e4a72 100644 --- a/webext/js/defaults.js +++ b/webext/js/defaults.js @@ -286,6 +286,25 @@ async function getCountType() { return await storage().get("countType").then(resolve, reject); } +// +// Get start app parameters +// +async function getStartAppParam() { + function resolve(result) { + const startApp = result.startApp || ""; + const startAppArgs = result.startAppArgs || ""; + return { startApp, startAppArgs }; + } + + function reject() { + return { startApp: "", startAppArgs: "" }; + } + + return await storage() + .get(["startApp", "startAppArgs"]) + .then(resolve, reject); +} + // Helper funcs for TB91 and later folder handling async function getMailFolderInfo(folder) { diff --git a/webext/options.html b/webext/options.html index 7f52a86..9139e0f 100644 --- a/webext/options.html +++ b/webext/options.html @@ -29,6 +29,7 @@
+
@@ -219,8 +220,7 @@ +
+
+

__MSG_apps__

+ + + + + + + + + + + +
+ __MSG_start_application__ +
+ + + +
+ + + +
+ + + + + + + + + + + +
+ __MSG_close_application__ +
+ + + +
+ + + +
+
+
+

__MSG_accounts__

diff --git a/webext/options.js b/webext/options.js index 26661aa..7f8cedd 100644 --- a/webext/options.js +++ b/webext/options.js @@ -300,6 +300,27 @@ SysTrayX.SaveOptions = { startupDelay: startupDelay, }); + // + // Save launch parameters + // + const startAppInput = document.getElementById("startAppInput"); + const startApp = startAppInput.value; + const startAppArgsInput = document.getElementById("startAppArgsInput"); + const startAppArgs = startAppArgsInput.value; + + const closeAppInput = document.getElementById("closeAppInput"); + const closeApp = closeAppInput.value; + const closeAppArgsInput = document.getElementById("closeAppArgsInput"); + const closeAppArgs = closeAppArgsInput.value; + + // Store launch parameters + await storage().set({ + startApp: startApp, + startAppArgs: startAppArgs, + closeApp: closeApp, + closeAppArgs: closeAppArgs, + }); + // Mark add-on preferences changed await storage().set({ addonprefchanged: true, @@ -511,6 +532,37 @@ SysTrayX.RestoreOptions = { SysTrayX.RestoreOptions.setTheme, SysTrayX.RestoreOptions.onThemeError ); + + // + // Restore launch parameters + // + await storage() + .get("startApp") + .then( + SysTrayX.RestoreOptions.setStartApp, + SysTrayX.RestoreOptions.onStartAppError + ); + + await storage() + .get("startAppArgs") + .then( + SysTrayX.RestoreOptions.setStartAppArgs, + SysTrayX.RestoreOptions.onStartAppArgsError + ); + + await storage() + .get("closeApp") + .then( + SysTrayX.RestoreOptions.setCloseApp, + SysTrayX.RestoreOptions.onCloseAppError + ); + + await storage() + .get("closeAppArgs") + .then( + SysTrayX.RestoreOptions.setCloseAppArgs, + SysTrayX.RestoreOptions.onCloseAppArgsError + ); }, // @@ -911,6 +963,62 @@ SysTrayX.RestoreOptions = { console.log(`Theme Error: ${error}`); }, + // + // Restore start app callbacks + // + setStartApp: function (result) { + const startApp = result.startApp || ""; + + const startAppInput = document.getElementById("startAppInput"); + startAppInput.value = startApp; + }, + + onStartAppError: function (error) { + console.log(`StartApp Error: ${error}`); + }, + + // + // Restore start app args callbacks + // + setStartAppArgs: function (result) { + const startAppArgs = result.startAppArgs || ""; + + const startAppArgsInput = document.getElementById("startAppArgsInput"); + startAppArgsInput.value = startAppArgs; + }, + + onStartAppArgsError: function (error) { + console.log(`StartAppArgs Error: ${error}`); + }, + + // + // Restore close app callbacks + // + setCloseApp: function (result) { + const closeApp = result.closeApp || ""; + + const closeAppInput = document.getElementById("closeAppInput"); + closeAppInput.value = closeApp; + }, + + onCloseAppError: function (error) { + console.log(`CloseApp Error: ${error}`); + }, + + // + // Restore close app args callbacks + // + setCloseAppArgs: function (result) { + const closeAppArgs = result.closeAppArgs || ""; + + const closeAppArgsInput = document.getElementById("closeAppArgsInput"); + closeAppArgsInput.value = closeAppArgs; + }, + + onCloseAppArgsError: function (error) { + console.log(`CloseAppArgs Error: ${error}`); + }, + // // Restore filters callbacks // @@ -1161,6 +1269,26 @@ SysTrayX.StorageChanged = { theme: changes[item].newValue, }); } + if (item === "startApp") { + SysTrayX.RestoreOptions.setStartApp({ + startApp: changes[item].newValue, + }); + } + if (item === "startAppArgs") { + SysTrayX.RestoreOptions.setStartAppArgs({ + startAppArgs: changes[item].newValue, + }); + } + if (item === "closeApp") { + SysTrayX.RestoreOptions.setCloseApp({ + closeApp: changes[item].newValue, + }); + } + if (item === "closeAppArgs") { + SysTrayX.RestoreOptions.setCloseAppArgs({ + closeAppArgs: changes[item].newValue, + }); + } if (item === "filters") { SysTrayX.RestoreOptions.setFilters({ @@ -1193,6 +1321,8 @@ SysTrayX.StorageChanged = { document.getElementById("minimizeiconselect").className = "active"; document.getElementById("closeselect").className = "active"; document.getElementById("themeselect").className = "active"; + document.getElementById("startappselect").className = "active"; + document.getElementById("closeappselect").className = "active"; }, };