Hello community,

here is the log from the commit of package when-command for openSUSE:Factory 
checked in at 2016-08-03 11:44:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/when-command (Old)
 and      /work/SRC/openSUSE:Factory/.when-command.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "when-command"

Changes:
--------
--- /work/SRC/openSUSE:Factory/when-command/when-command.changes        
2016-05-17 17:16:16.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.when-command.new/when-command.changes   
2016-08-03 11:44:54.000000000 +0200
@@ -1,0 +2,10 @@
+Sat Jul 23 16:15:39 UTC 2016 - [email protected]
+
+- Update to version 0.9.12~beta3:
+  * Add a possibility to reset the success status of condition
+    tests so that also tests that have been successful during one
+    very long session can be performed again at user's request.
+  * Workaround a potential error when a locale is not supported.
+- Add a missing python3-gobject-Gdk dependency.
+
+-------------------------------------------------------------------

Old:
----
  when-command-0.9.11-beta.1.tar.gz

New:
----
  when-command-0.9.12-beta.3.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ when-command.spec ++++++
--- /var/tmp/diff_new_pack.PVWf7u/_old  2016-08-03 11:44:55.000000000 +0200
+++ /var/tmp/diff_new_pack.PVWf7u/_new  2016-08-03 11:44:55.000000000 +0200
@@ -16,9 +16,9 @@
 #
 
 
-%define _version 0.9.11-beta.1
+%define _version 0.9.12-beta.3
 Name:           when-command
-Version:        0.9.11~beta1
+Version:        0.9.12~beta3
 Release:        0
 Summary:        Configurable user task scheduler
 License:        BSD-3-Clause
@@ -41,6 +41,9 @@
 Requires:       python3-pyinotify
 Recommends:     %{name}-lang
 BuildArch:      noarch
+%if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200
+Requires:       python3-gobject-Gdk
+%endif
 
 %description
 When is a configurable user task scheduler. It interacts with the

++++++ when-command-0.9.11-beta.1.tar.gz -> when-command-0.9.12-beta.3.tar.gz 
++++++
++++ 1973 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/when-command-0.9.11-beta.1/po/it.po new/when-command-0.9.12-beta.3/po/it.po
--- old/when-command-0.9.11-beta.1/po/it.po     2016-05-03 19:52:11.000000000 
+0200
+++ new/when-command-0.9.12-beta.3/po/it.po     2016-06-15 23:35:46.000000000 
+0200
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: when-command 0.9.1-beta.1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2016-02-09 19:35+0100\n"
+"POT-Creation-Date: 2016-05-14 21:02+0200\n"
 "PO-Revision-Date: 2015-12-21 14:43+0100\n"
 "Last-Translator: Francesco Garosi <[email protected]>\n"
 "Language-Team: Italian\n"
@@ -18,61 +18,73 @@
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 1.5.4\n"
 
-#: when-command.py:599
+#: when-command.py:623
 #, python-format
 msgid "Are you sure you want to delete task %s?"
 msgstr "Confermi di voler eliminare il task %s?"
 
-#: when-command.py:600
+#: when-command.py:624
 #, python-format
 msgid "Are you sure you want to delete condition %s?"
 msgstr "Confermi di voler eliminare la condizione %s?"
 
-#: when-command.py:601
+#: when-command.py:625
 #, python-format
 msgid "Are you sure you want to delete signal handler %s?"
 msgstr "Confermi di voler eliminare il gestore di segnali %s?"
 
-#: when-command.py:602
+#: when-command.py:626
+msgid "Are you sure you want to reset condition tests?"
+msgstr "Confermi di voler ripristinare i test delle condizioni?"
+
+#: when-command.py:627
 #, python-format
 msgid "Task %s could not be deleted."
 msgstr "Il task %s non può essere eliminato."
 
-#: when-command.py:603
+#: when-command.py:628
 #, python-format
 msgid "Condition %s could not be deleted."
 msgstr "La condizione %s non può essere eliminata."
 
-#: when-command.py:604
+#: when-command.py:629
 #, python-format
 msgid "Signal handler %s could not be deleted."
 msgstr "Il gestore di segnali %s non può essere eliminato."
 
-#: when-command.py:605
+#: when-command.py:630
 #, python-format
 msgid "Task %s could not be found."
 msgstr "Il task %s non è stato trovato."
 
-#: when-command.py:606
+#: when-command.py:631
 #, python-format
 msgid "Condition %s could not be found."
 msgstr "La condizione %s non è stata trovata."
 
-#: when-command.py:607
+#: when-command.py:632
 #, python-format
 msgid "Signal handler %s could not be found."
 msgstr "Il gestore di segnali %s non è stato trovato."
 
-#: when-command.py:608
+#: when-command.py:633
 #, python-format
 msgid "Signal handler %s could not be registered."
 msgstr "Il gestore di segnali %s non può essere registrato."
 
-#: when-command.py:609
+#: when-command.py:634 when-command.py:647
+msgid ""
+"Could not reset tests: a restart\n"
+"of the applet may be required"
+msgstr ""
+"Impossibile effettuare il reset dei test:\n"
+"potrebbe essere necessario riavviare l'applet"
+
+#: when-command.py:635
 msgid "Must specify watched path: condition not created."
 msgstr "Il percorso va specificato: condizione non creata."
 
-#: when-command.py:610
+#: when-command.py:636
 msgid ""
 "Invalid value for exit status specified.\n"
 "Please consider reviewing it."
@@ -80,7 +92,7 @@
 "Il valore specificato per l'esito non è valido.\n"
 "Si prega di verificarlo."
 
-#: when-command.py:611
+#: when-command.py:637
 msgid ""
 "Invalid value for signal parameter index specified.\n"
 "Cannot add parameter test."
@@ -88,457 +100,474 @@
 "Il valore specificato per il parametro del segnale non è valido.\n"
 "Non è possibile aggiungere il test sul parametro."
 
-#: when-command.py:612
+#: when-command.py:638
 msgid "This feature has not been implemented yet."
 msgstr "Questa feature non è stata ancora realizzata."
 
-#: when-command.py:613
+#: when-command.py:639
 msgid ""
 "This feature is not enabled.\n"
 "Please check documentation for possible reasons."
 msgstr ""
-"Questa feature non è abilitata. Consulta la documentazione per il possibile "
-"motivo."
+"Questa feature non è abilitata.\n"
+"Consulta la documentazione per il possibile motivo."
 
-#: when-command.py:614
+#: when-command.py:640
 #, python-format
 msgid "Version: %s"
 msgstr "Versione: %s"
 
-#: when-command.py:615
+#: when-command.py:641
 msgid "[disabled]"
 msgstr "[disabilitato]"
 
-#: when-command.py:616
+#: when-command.py:642
 msgid "Choose File"
 msgstr "Scelta File"
 
-#: when-command.py:617
+#: when-command.py:643
 msgid "Choose Directory"
 msgstr "Scelta Directory"
 
-#: when-command.py:618
+#: when-command.py:644
 msgid "Choose File or Directory"
 msgstr "Scelta File o Directory"
 
-#: when-command.py:620
+#: when-command.py:646
 #, python-format
 msgid "Task failed: %s"
 msgstr "Task fallito: %s"
 
-#: when-command.py:622
+#: when-command.py:649
 msgid "Edit Tasks..."
 msgstr "Modifica Task..."
 
-#: when-command.py:623
+#: when-command.py:650
 msgid "Edit Conditions..."
 msgstr "Modifica Condizioni..."
 
-#: when-command.py:624
+#: when-command.py:651
 msgid "Settings..."
 msgstr "Impostazioni..."
 
-#: when-command.py:625
+#: when-command.py:652
 msgid "Task History..."
 msgstr "Storico Task..."
 
-#: when-command.py:626
+#: when-command.py:653
 msgid "Pause"
 msgstr "Pausa"
 
-#: when-command.py:627
+#: when-command.py:654
+msgid "Reset Tests"
+msgstr "Ripristino Test"
+
+#: when-command.py:655
 msgid "About..."
 msgstr "Informazioni..."
 
-#: when-command.py:628
+#: when-command.py:656
 msgid "Quit"
 msgstr "Esci"
 
-#: when-command.py:630
+#: when-command.py:658
 msgid "User Defined Event"
 msgstr "Evento Definito dall'Utente"
 
-#: when-command.py:632
+#: when-command.py:660
 msgid "Variable"
 msgstr "Variabile"
 
-#: when-command.py:633 when-command.py:646
+#: when-command.py:661 when-command.py:674
 msgid "Value"
 msgstr "Valore"
 
-#: when-command.py:634 when-command.py:636
+#: when-command.py:662 when-command.py:664
 msgid "Task Name"
 msgstr "Nome Task"
 
-#: when-command.py:635
+#: when-command.py:663
 msgid "Time / Duration"
 msgstr "Orario / Durata"
 
-#: when-command.py:637
+#: when-command.py:665
 msgid "Trigger"
 msgstr "Causa"
 
-#: when-command.py:638 when-command-edit-condition.glade.h:10
+#: when-command.py:666 when-command-edit-condition.glade.h:10
 #: when-command-edit-task.glade.h:14
 msgid "Exit Code"
 msgstr "Esito"
 
-#: when-command.py:639
+#: when-command.py:667
 msgid "Result"
 msgstr "Risultato"
 
-#: when-command.py:640
+#: when-command.py:668
 msgid "Reason"
 msgstr "Motivo"
 
-#: when-command.py:641
+#: when-command.py:669
 msgid "Row ID"
 msgstr "ID Riga"
 
-#: when-command.py:642
+#: when-command.py:670
 msgid "Param"
 msgstr "Param"
 
-#: when-command.py:643
+#: when-command.py:671
 msgid "Sub"
 msgstr "Sub"
 
-#: when-command.py:644
+#: when-command.py:672
 msgid "Negate"
 msgstr "Negazione"
 
-#: when-command.py:645
+#: when-command.py:673
 msgid "Compare"
 msgstr "Comparazione"
 
-#: when-command.py:649
+#: when-command.py:677
 #, python-format
 msgid "an existing instance will be %s"
 msgstr "un'istanza esistente verrà %s"
 
-#: when-command.py:650
+#: when-command.py:678
 msgid "shut down"
 msgstr "arrestata"
 
-#: when-command.py:651
+#: when-command.py:679
 msgid "killed"
 msgstr "terminata"
 
-#: when-command.py:652
+#: when-command.py:680
 msgid "instance shutdown finished"
 msgstr "arresto dell'istanza concluso"
 
-#: when-command.py:653
+#: when-command.py:681
 #, python-format
 msgid "showing %s box of currently running instance"
 msgstr "visualizzazione %s box dell'istanza corrente"
 
-#: when-command.py:654
+#: when-command.py:682
 #, python-format
 msgid "attempting to run condition %s"
 msgstr "tentativo di avviare la condizione %s"
 
-#: when-command.py:655
+#: when-command.py:683
 #, python-format
 msgid "condition %s could not be run"
 msgstr "la condizione %s non è stata avviata"
 
-#: when-command.py:656
+#: when-command.py:684
 #, python-format
 msgid "attempting to export task history to %s"
 msgstr "tentativo di esportare lo storico dei task su %s"
 
-#: when-command.py:657
+#: when-command.py:685
 msgid "could not save task history"
 msgstr "impossibile esportare lo storico task"
 
-#: when-command.py:658
+#: when-command.py:686
 msgid "history exported to specified file"
 msgstr "storico file esportato nel file specificato"
 
-#: when-command.py:659
+#: when-command.py:687
 msgid "removing all items"
 msgstr "rimozione di tutti gli elementi"
 
-#: when-command.py:660
+#: when-command.py:688
 msgid "could not remove condition list file"
 msgstr "impossibile rimuovere il file lista di condizioni"
 
-#: when-command.py:661
+#: when-command.py:689
 msgid "could not remove task list file"
 msgstr "impossibile rimuovere il file lista di task"
 
-#: when-command.py:662
+#: when-command.py:690
 msgid "could not remove signal handler list file"
 msgstr "impossibile rimuovere il file lista di gestori di segnali"
 
-#: when-command.py:663
+#: when-command.py:691
 msgid "exporting items:"
 msgstr "esportazione elementi:"
 
-#: when-command.py:664 when-command.py:671
+#: when-command.py:692 when-command.py:699
 #, python-format
 msgid "    %s tasks"
 msgstr "    %s task"
 
-#: when-command.py:665 when-command.py:672
+#: when-command.py:693 when-command.py:700
 #, python-format
 msgid "    %s conditions"
 msgstr "    %s condizioni"
 
-#: when-command.py:666 when-command.py:673
+#: when-command.py:694 when-command.py:701
 #, python-format
 msgid "    %s signal handlers"
 msgstr "    %s gestori di segnali"
 
-#: when-command.py:667
+#: when-command.py:695
 #, python-format
 msgid "items exported to file %s"
 msgstr "elementi esportati nel file %s"
 
-#: when-command.py:668
+#: when-command.py:696
 #, python-format
 msgid "importing items from file %s"
 msgstr "importazione elementi dal file %s"
 
-#: when-command.py:669
+#: when-command.py:697
 msgid "could not import from dump file"
 msgstr "impossibile importare dal file di dump"
 
-#: when-command.py:670
+#: when-command.py:698
 msgid "restoring items:"
 msgstr "ripristino elementi:"
 
-#: when-command.py:674
+#: when-command.py:702
 msgid "items successfully imported"
 msgstr "elementi importati con successo"
 
-#: when-command.py:675
+#: when-command.py:703
 msgid "item successfully deleted"
 msgstr "elemento eliminato con successo"
 
-#: when-command.py:676
+#: when-command.py:704
 msgid "cannot delete item"
 msgstr "impossibile eliminare elemento"
 
-#: when-command.py:677
+#: when-command.py:705
 msgid "cannot add items from provided file"
 msgstr "impossibile aggiungere elementi dal file"
 
-#: when-command.py:678
+#: when-command.py:706
 msgid "cannot add items: malformed item file"
 msgstr "impossibile aggiungere elementi: file malformato"
 
-#: when-command.py:679
+#: when-command.py:707
+msgid "condition checks restarted successfully"
+msgstr "test delle condizioni riavviati correttamente"
+
+#: when-command.py:708
 msgid "no instance could be found"
 msgstr "impossibile trovare un'istanza"
 
-#: when-command.py:680
+#: when-command.py:709
 msgid "found a running instance"
 msgstr "istanza attiva trovata"
 
-#: when-command.py:681
+#: when-command.py:710
 msgid "tasks and conditions successfully exported"
 msgstr "task e condizioni esportati con successo"
 
-#: when-command.py:682
+#: when-command.py:711
 msgid "configuration has been reset"
 msgstr "la configurazione è stata reimpostata"
 
-#: when-command.py:683
+#: when-command.py:712
 msgid "tasks and conditions deleted"
 msgstr "task e condizioni eliminati"
 
-#: when-command.py:684
+#: when-command.py:713
 msgid "icons and data installed"
 msgstr "icone e dati installati"
 
-#: when-command.py:686
+#: when-command.py:715
 msgid "this program requires a graphical session"
 msgstr "questo programma ha bisogno di una sessione grafica"
 
-#: when-command.py:687
+#: when-command.py:716
 msgid "another instance is present: leaving"
 msgstr "istanza attiva già presente: uscita"
 
-#: when-command.py:688
+#: when-command.py:717
 msgid "could not find a running instance, please start it first"
 msgstr "impossibile trovare un'istanza attiva, deve essere avviata"
 
-#: when-command.py:689
+#: when-command.py:718
 msgid "feature not available in minimalistic mode"
 msgstr "non disponibile in modalità minimale"
 
-#: when-command.py:690
+#: when-command.py:719
 msgid "could not find a running instance"
 msgstr "impossibile trovare un'istanza attiva"
 
-#: when-command.py:691
+#: when-command.py:720
 msgid "dbus signals disabled by configuration"
 msgstr "segnali dbus disabilitati dalla configurazione"
 
-#: when-command.py:692
+#: when-command.py:721
 msgid "error in communication with running applet"
 msgstr "errore nella comunicazione con l'istanza attiva"
 
-#: when-command.py:693
+#: when-command.py:722
 msgid "an error occurred while trying to export items"
 msgstr "si è verificato un errore nell'esportazione degli elementi"
 
-#: when-command.py:694
+#: when-command.py:723
 msgid "cannot reset configuration, please close instance first"
 msgstr "impossibile reimpostare la configurazione, chiudere l'istanza"
 
-#: when-command.py:695
+#: when-command.py:724
 msgid "an error occurred while trying to reset configuration"
 msgstr "errore verificato nel reimpostare la configurazione"
 
-#: when-command.py:696
+#: when-command.py:725
 msgid "cannot clear items, please close instance first"
 msgstr "impossibile eliminare elementi, chiudere l'istanza"
 
-#: when-command.py:697
+#: when-command.py:726
 msgid "an error occurred while trying to delete items"
 msgstr "errore verificato nell'eliminazione degli elementi"
 
-#: when-command.py:698
+#: when-command.py:727
 msgid "cannot import items, please close instance first"
 msgstr "impossibile importare elementi, chiudere l'istanza"
 
-#: when-command.py:699
+#: when-command.py:728
 msgid "an error occurred while trying to import items"
 msgstr "errore verificato nell'importazione degli elementi"
 
-#: when-command.py:700
+#: when-command.py:729
+#, python-format
 msgid "%s items could not be imported"
 msgstr "%s elementi non sono stati importati"
 
-#: when-command.py:701
+#: when-command.py:730
 msgid "cannot install, please close instance first"
 msgstr "impossibile installare, chiudere l'istanza"
 
-#: when-command.py:702
+#: when-command.py:731
 msgid "an error occurred while trying to install icons"
 msgstr "errore verificato nell'installazione"
 
-#: when-command.py:703
+#: when-command.py:732
+msgid "an error occurred while restarting conditions"
+msgstr "errore nel ripristino dei test delle condizioni"
+
+#: when-command.py:733
 msgid "no error found"
 msgstr "nessun errore trovato"
 
-#: when-command.py:704
+#: when-command.py:734
 msgid "unknown item type"
 msgstr "tipo di elemento sconosciuto"
 
-#: when-command.py:705
+#: when-command.py:735
 msgid "item name conflict"
 msgstr "conflitto tra nomi di elementi"
 
-#: when-command.py:706
+#: when-command.py:736
 msgid "item not found"
 msgstr "elemento non trovato"
 
-#: when-command.py:707
+#: when-command.py:737
 msgid "error communicating with applet"
 msgstr "errore nella comunicazione con l'applet"
 
-#: when-command.py:708
+#: when-command.py:738
 msgid "unknown error or dependency conflict"
 msgstr "errore sconosciuto o conflitto di dipendenza"
 
-#: when-command.py:710
+#: when-command.py:740
 msgid "show applet version"
 msgstr "visualizza la versione dell'applet"
 
-#: when-command.py:711
+#: when-command.py:741
 msgid "show settings dialog box for the running instance [R]"
 msgstr "visualizza box impostazioni per l'istanza attiva [R]"
 
-#: when-command.py:712
+#: when-command.py:742
 msgid "show history dialog box for the running instance [R]"
 msgstr "visualizza box storico per l'istanza attiva [R]"
 
-#: when-command.py:713
+#: when-command.py:743
 msgid "show tasks dialog box for the running instance [R]"
 msgstr "visualizza box dei task per l'istanza attiva [R]"
 
-#: when-command.py:714
+#: when-command.py:744
 msgid "show conditions box for the running instance [R]"
 msgstr "visualizza box condizioni per l'istanza attiva [R]"
 
-#: when-command.py:715
+#: when-command.py:745
 msgid "show dbus signals box for the running instance [R]"
 msgstr "visualizza box segnali dbus per l'istanza attiva [R]"
 
-#: when-command.py:716
+#: when-command.py:746
 msgid "reset general configuration to default [S]"
 msgstr "reimposta la configurazione a predefinita [S]"
 
-#: when-command.py:717
+#: when-command.py:747
 msgid "show applet icon"
 msgstr "visualizza icona applet"
 
-#: when-command.py:718
+#: when-command.py:748
 msgid "clear all tasks and conditions [S]"
 msgstr "elimina tutti i task e condizioni [S]"
 
-#: when-command.py:719
+#: when-command.py:749
 msgid "install application icons and autostart [S]"
 msgstr "installazione di icone e autostart applicazione [S]"
 
-#: when-command.py:720
+#: when-command.py:750
 msgid "query for a running instance"
 msgstr "verifica se c'è un'istanza attiva"
 
-#: when-command.py:721
+#: when-command.py:751
 msgid "export task history to a text file [R]"
 msgstr "esporta storico task in un file di testo [R]"
 
-#: when-command.py:722
+#: when-command.py:752
 msgid "run a command-line bound condition [R]"
 msgstr "avvia una condizione da linea di comando [R]"
 
-#: when-command.py:723
+#: when-command.py:753
 msgid "enqueue a command-line bound condition [R]"
 msgstr "accoda una condizione da linea di comando [R]"
 
-#: when-command.py:724
+#: when-command.py:754
 msgid "run shutdown tasks and close an existing istance [R]"
 msgstr "chiusura istanza attiva avviando task di chiusura [R]"
 
-#: when-command.py:725
+#: when-command.py:755
+msgid "reset tests for already successful conditions [R]"
+msgstr "ripristina test per condizioni già verificate [R]"
+
+#: when-command.py:756
 msgid "kill an existing istance [R]"
 msgstr "terminazione istanza attiva [R]"
 
-#: when-command.py:726
+#: when-command.py:757
 msgid "save tasks and conditions to a portable format"
 msgstr "esporta task e condizioni su file portabile"
 
-#: when-command.py:727
+#: when-command.py:758
 msgid "import tasks and conditions from saved file [S]"
 msgstr "importa task e condizioni da file portabile [S]"
 
-#: when-command.py:728
+#: when-command.py:759
 msgid "list items of the given type to console"
 msgstr "mostra elementi del tipo specificato su console"
 
-#: when-command.py:729
+#: when-command.py:760
 msgid "add items from specified file or standard input"
 msgstr "aggiungi elementi da un file o dallo standard input"
 
-#: when-command.py:730
+#: when-command.py:761
 msgid "delete the item specified as [type:]NAME"
 msgstr "elimina elemento specificato come [tipo:]NOME"
 
-#: when-command.py:731
+#: when-command.py:762
 msgid "show verbose output for some options"
 msgstr "visualizza output esteso per alcune opzioni"
 
-#: when-command.py:732
+#: when-command.py:763
 #, python-format
 msgid "%s: %s, version %s"
 msgstr "%s: %s, versione %s"
 
-#: when-command.py:733
+#: when-command.py:764
 #, python-format
 msgid ""
 "%s: %s - %s /\n"
@@ -556,7 +585,7 @@
 "l'opzione --verbose per ottenere output dal comando, poiché la maggior parte "
 "delle operazioni non produce output per default.\n"
 
-#: when-command.py:740
+#: when-command.py:771
 #, python-format
 msgid ""
 "Note: options marked with [R] require an instance running in the "
@@ -1047,62 +1076,66 @@
 msgstr "Mantiene Pausa tra Sessioni"
 
 #: when-command-settings.glade.h:15
+msgid "Reset Condition Tests on Wakeup Events"
+msgstr "Ripristino Test su Condizioni per Eventi di Wakeup"
+
+#: when-command-settings.glade.h:16
 msgid "Scheduler"
 msgstr "Scheduler"
 
-#: when-command-settings.glade.h:16
+#: when-command-settings.glade.h:17
 msgid "Max Concurrent Tasks:"
 msgstr "Max Task Concorrenti:"
 
-#: when-command-settings.glade.h:17
+#: when-command-settings.glade.h:18
 msgid "Critical"
 msgstr "Critical"
 
-#: when-command-settings.glade.h:18
+#: when-command-settings.glade.h:19
 msgid "Error"
 msgstr "Error"
 
-#: when-command-settings.glade.h:19
+#: when-command-settings.glade.h:20
 msgid "Warning"
 msgstr "Warning"
 
-#: when-command-settings.glade.h:20
+#: when-command-settings.glade.h:21
 msgid "Info"
 msgstr "Info"
 
-#: when-command-settings.glade.h:21
+#: when-command-settings.glade.h:22
 msgid "Debug"
 msgstr "Debug"
 
-#: when-command-settings.glade.h:22
+#: when-command-settings.glade.h:23
 msgid "Log Level:"
 msgstr "Livello Log:"
 
-#: when-command-settings.glade.h:23
+#: when-command-settings.glade.h:24
 msgid "Max Log Size (bytes):"
 msgstr "Max Dimensione Log (byte):"
 
-#: when-command-settings.glade.h:24
+#: when-command-settings.glade.h:25
 msgid "Number Of Log Backups:"
 msgstr "Numero dei Backup Log:"
 
-#: when-command-settings.glade.h:25
+#: when-command-settings.glade.h:26
 msgid "Instance History Items:"
 msgstr "Elementi Storico Istanza:"
 
-#: when-command-settings.glade.h:26
+#: when-command-settings.glade.h:27
 msgid "Enable User Defined Events (DBus)"
 msgstr "Abilita Eventi Utente (DBus)"
 
-#: when-command-settings.glade.h:27
+#: when-command-settings.glade.h:28
 msgid "Enable File and Directory Notifications"
 msgstr "Abilita Notifiche File e Directory"
 
-#: when-command-settings.glade.h:28
+#: when-command-settings.glade.h:29
 msgid "Enable Task and Condition Environment Variables"
 msgstr "Abilita Variabili Ambiente di Task e Condizioni"
 
-#: when-command-settings.glade.h:29
+#: when-command-settings.glade.h:30
 msgid "Advanced"
 msgstr "Avanzate"
 
Files 
old/when-command-0.9.11-beta.1/share/locale/it/LC_MESSAGES/when-command.mo and 
new/when-command-0.9.12-beta.3/share/locale/it/LC_MESSAGES/when-command.mo 
differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/when-command-0.9.11-beta.1/share/man/man1/when-command.1 
new/when-command-0.9.12-beta.3/share/man/man1/when-command.1
--- old/when-command-0.9.11-beta.1/share/man/man1/when-command.1        
2016-05-03 19:52:11.000000000 +0200
+++ new/when-command-0.9.12-beta.3/share/man/man1/when-command.1        
2016-06-15 23:35:46.000000000 +0200
@@ -1,6 +1,6 @@
 .\" Man page generated from reStructuredText.
 .
-.TH "WHEN-COMMAND" "1" "January 12, 2016" "0.9" "When Documentation"
+.TH "WHEN-COMMAND" "1" "May 22, 2016" "0.9" "When Documentation"
 .SH NAME
 when-command \- When Documentation
 .
@@ -51,7 +51,7 @@
 something has gone the wrong way \-\- such as the \fB\-\-show\-settings\fP 
switch
 mentioned above, or the \fB\-I\fP (or \fB\-\-show\-icon\fP) switch, to recover 
from an
 unwantedly hidden icon. There are also switches that grant access to "advanced"
-features, which are better covered in the next sections.
+features, which are better covered in the online documentation.
 .sp
 The available options are:
 .INDENT 0.0
@@ -72,15 +72,19 @@
 .TP
 .B \-d\fP,\fB  \-\-show\-signals
 show the DBus signal handler editor box for an
-existing instance [1]
+existing instance
 .TP
 .B \-R\fP,\fB  \-\-reset\-config
 reset applet configuration to default, requires the
 applet to be shut down with an appropriate switch
 .TP
+.B \-E\fP,\fB  \-\-restart\-conditions
+reset conditions to be checked as if they had not
+been already successful: it allows to restore checks
+also for conditions that are not recurrent
+.TP
 .B \-I\fP,\fB  \-\-show\-icon
-show applet icon, the icon will be shown at the next
-startup
+show applet icon
 .TP
 .B \-T\fP,\fB  \-\-install
 install or reinstall application icon and autostart
@@ -241,7 +245,12 @@
 will remain paused upon applet restart if it was paused when the applet (or
 session) was closed. Please notice that the indicator icon gives feedback
 anyway about the paused/non\-paused state. Use \fBpreserve pause\fP in the
-configuration file.
+configuration file
+.IP \(bu 2
+\fIReset Condition Tests on Wakeup Events\fP: automatically restore condition
+checks for non recurring conditions also on wakeup (usually from suspended
+state) as if the applet were restarted. The option is \fBwakeup reset\fP in
+the configuration.
 .UNINDENT
 .UNINDENT
 .UNINDENT
@@ -286,20 +295,10 @@
 .UNINDENT
 .UNINDENT
 .sp
-The configuration is \fIimmediately stored upon confirmation\fP to the
-configuration file, although some settings (such as \fINotifications\fP,
-\fIIcon Theme\fP, and most advanced settings) might require a restart of the
-applet. The configuration file can be edited with a standard text editor, and
-it follows some conventions common to most configuration files. The sections
+The configuration file can be edited with a standard text editor, and it
+follows some conventions common to most configuration files. The sections
 in the file might slightly differ from the tabs in the \fISettings\fP dialog, 
but
 the entries are easily recognizable.
-.sp
-Manual configuration can be particularly useful to bring back the program
-icon once the user decided to hide it losing access to the menu,
-by setting the \fBshow icon\fP entry to \fBtrue\fP\&. Another way to force 
access to
-the \fISettings\fP dialog box when the icon is hidden is to invoke the applet 
from
-the command line using the \fB\-\-show\-settings\fP (or \fB\-s\fP) switch when 
an
-instance is running.
 .SH ITEM DEFINITION FILE
 .sp
 The \fIitems\fP (\fItasks\fP, \fIconditions\fP and especially \fIsignal 
handlers\fP) managed
@@ -402,7 +401,7 @@
 .SS Signal Handlers
 .sp
 Signal handlers are an advanced feature, and cannot be defined if they are
-not enabled in the configuration: read the appropriate section on how to
+not enabled in the configuration: read the appropriate paragraph on how to
 enable \fIuser defined events\fP\&. If user events are enabled, the following
 entries can be used:
 .INDENT 0.0
@@ -711,10 +710,6 @@
 generated using the \fB\-\-export\fP switch. If no argument is given, 
\fBWhen\fP
 expects that items have been exported giving no file specification to the
 \fB\-\-export\fP switch. After import \fBWhen\fP can be restarted.
-.IP [1] 5
-This is an advanced feature and is not available by default.
-It has to be enabled in the program settings to be accessible. Refer to the
-appropriate chapter for more information.
 .SH AUTHOR
 Francesco Garosi
 .SH COPYRIGHT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/when-command-0.9.11-beta.1/share/when-command/when-command-settings.glade 
new/when-command-0.9.12-beta.3/share/when-command/when-command-settings.glade
--- 
old/when-command-0.9.11-beta.1/share/when-command/when-command-settings.glade   
    2016-05-03 19:52:11.000000000 +0200
+++ 
new/when-command-0.9.12-beta.3/share/when-command/when-command-settings.glade   
    2016-06-15 23:35:46.000000000 +0200
@@ -304,6 +304,22 @@
                         <property name="height">1</property>
                       </packing>
                     </child>
+                    <child>
+                      <object class="GtkCheckButton" id="chkResetConditions">
+                        <property name="label" translatable="yes">Reset 
Condition Tests on Wakeup Events</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="receives_default">False</property>
+                        <property name="xalign">0</property>
+                        <property name="draw_indicator">True</property>
+                      </object>
+                      <packing>
+                        <property name="left_attach">0</property>
+                        <property name="top_attach">4</property>
+                        <property name="width">2</property>
+                        <property name="height">1</property>
+                      </packing>
+                    </child>
                   </object>
                   <packing>
                     <property name="expand">False</property>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/when-command-0.9.11-beta.1/share/when-command/when-command.py 
new/when-command-0.9.12-beta.3/share/when-command/when-command.py
--- old/when-command-0.9.11-beta.1/share/when-command/when-command.py   
2016-05-03 19:52:11.000000000 +0200
+++ new/when-command-0.9.12-beta.3/share/when-command/when-command.py   
2016-06-15 23:35:46.000000000 +0200
@@ -78,8 +78,8 @@
 # * the first holds the version ID that build utilities can extract
 # * the second one includes a message that is used both as a commit message
 #   and as a tag-associated message (in `git tag -m`)
-APPLET_VERSION = '0.9.11~beta.1'
-APPLET_TAGDESC = 'Correctly manage storage device attachment in Xenial'
+APPLET_VERSION = '0.9.12~beta.3'
+APPLET_TAGDESC = 'Work around an issue occurring on unsupported locales'
 
 # logging constants
 LOG_FORMAT = '%(asctime)s %(levelname)s: %(message)s'
@@ -493,6 +493,12 @@
     # TODO: add more stock event definitions here
 }
 
+# list of events that may reset conditions
+sysevents_reset_conditions = [
+    EVENT_SYSTEM_RESUME,
+    # EVENT_SESSION_SCREENSAVER_EXIT,
+]
+
 
 # verify that the user folders are present, otherwise create them
 def verify_user_folders():
@@ -566,9 +572,12 @@
 
 
 # setup i18n for both applet text and dialogs
-locale.setlocale(locale.LC_ALL, locale.getlocale())
-locale.bindtextdomain(APPLET_NAME, APP_LOCALE_FOLDER)
-locale.textdomain(APPLET_NAME)
+try:
+    locale.setlocale(locale.LC_ALL, locale.getlocale())
+    locale.bindtextdomain(APPLET_NAME, APP_LOCALE_FOLDER)
+    locale.textdomain(APPLET_NAME)
+except locale.Error:
+    locale.setlocale(locale.LC_ALL, 'C')
 _ = locale.gettext
 
 
@@ -617,6 +626,7 @@
 resources.DLG_CONFIRM_DELETE_TASK = _("Are you sure you want to delete task 
%s?")
 resources.DLG_CONFIRM_DELETE_CONDITION = _("Are you sure you want to delete 
condition %s?")
 resources.DLG_CONFIRM_DELETE_SIGHANDLER = _("Are you sure you want to delete 
signal handler %s?")
+resources.DLG_CONFIRM_RESET_CONDITIONS = _("Are you sure you want to reset 
condition tests?")
 resources.DLG_CANNOT_DELETE_TASK = _("Task %s could not be deleted.")
 resources.DLG_CANNOT_DELETE_CONDITION = _("Condition %s could not be deleted.")
 resources.DLG_CANNOT_DELETE_SIGHANDLER = _("Signal handler %s could not be 
deleted.")
@@ -624,6 +634,7 @@
 resources.DLG_CANNOT_FIND_CONDITION = _("Condition %s could not be found.")
 resources.DLG_CANNOT_FIND_SIGHANDLER = _("Signal handler %s could not be 
found.")
 resources.DLG_CANNOT_REGISTER_SIGHANDLER = _("Signal handler %s could not be 
registered.")
+resources.DLG_RESET_CONDITIONS_FAILED = _("Could not reset tests: a 
restart\nof the applet may be required")
 resources.DLG_PATH_NOT_SPECIFIED = _("Must specify watched path: condition not 
created.")
 resources.DLG_WRONG_EXIT_STATUS = _("Invalid value for exit status 
specified.\nPlease consider reviewing it.")
 resources.DLG_WRONG_PARAM_INDEX = _("Invalid value for signal parameter index 
specified.\nCannot add parameter test.")
@@ -636,12 +647,14 @@
 resources.DLG_TITLE_CHOOSE_FILEDIR = _("Choose File or Directory")
 
 resources.NOTIFY_TASK_FAILED = _("Task failed: %s")
+resources.NOTIFY_RESET_CONDITIONS_FAILED = _("Could not reset tests: a 
restart\nof the applet may be required")
 
 resources.MENU_EDIT_TASKS = _("Edit Tasks...")
 resources.MENU_EDIT_CONDITIONS = _("Edit Conditions...")
 resources.MENU_SETTINGS = _("Settings...")
 resources.MENU_TASK_HISTORY = _("Task History...")
 resources.MENU_PAUSE = _("Pause")
+resources.MENU_RESET_CONDS = _("Reset Tests")
 resources.MENU_ABOUT = _("About...")
 resources.MENU_QUIT = _("Quit")
 
@@ -694,6 +707,7 @@
 resources.OERR_ITEMOPS_DEL_FAIL = _("cannot delete item")
 resources.OERR_ITEMOPS_ADD_NOREAD = _("cannot add items from provided file")
 resources.OERR_ITEMOPS_ADD_FAIL = _("cannot add items: malformed item file")
+resources.OERR_RESTART_CONDITIONS = _("condition checks restarted 
successfully")
 resources.OERR_NO_INSTANCE = _("no instance could be found")
 resources.OERR_FOUND_INSTANCE = _("found a running instance")
 resources.OERR_EXPORT = _("tasks and conditions successfully exported")
@@ -718,6 +732,7 @@
 resources.OERR_ERR_IMPORT_FAILITEMS = _("%s items could not be imported")
 resources.OERR_ERR_INSTALL_RUNNING = _("cannot install, please close instance 
first")
 resources.OERR_ERR_INSTALL_GENERIC = _("an error occurred while trying to 
install icons")
+resources.OERR_ERR_RESTART_CONDITIONS = _("an error occurred while restarting 
conditions")
 resources.OERR_ERR_ITEMOPS_OK = _("no error found")
 resources.OERR_ERR_ITEMOPS_TYPE = _("unknown item type")
 resources.OERR_ERR_ITEMOPS_CONFLICT = _("item name conflict")
@@ -740,6 +755,7 @@
 resources.COMMAND_LINE_HELP_RUN_CONDITION = _("run a command-line bound 
condition [R]")
 resources.COMMAND_LINE_HELP_DEFER_CONDITION = _("enqueue a command-line bound 
condition [R]")
 resources.COMMAND_LINE_HELP_SHUTDOWN = _("run shutdown tasks and close an 
existing istance [R]")
+resources.COMMAND_LINE_HELP_RESTART_CONDITIONS = _("reset tests for already 
successful conditions [R]")
 resources.COMMAND_LINE_HELP_KILL = _("kill an existing istance [R]")
 resources.COMMAND_LINE_HELP_EXPORT = _("save tasks and conditions to a 
portable format")
 resources.COMMAND_LINE_HELP_IMPORT = _("import tasks and conditions from saved 
file [S]")
@@ -1927,6 +1943,10 @@
             signal_handlers.save()
             conditions.save()
 
+    @dbus.service.method(APPLET_BUS_NAME, out_signature='b')
+    def RestartConditions(self):
+        return reset_conditions()
+
     @dbus.service.method(APPLET_BUS_NAME, out_signature='as')
     def GetHistoryEntries(self):
         l = []
@@ -1978,6 +1998,7 @@
                 'tick seconds': int,
                 'skip seconds': int,
                 'preserve pause': bool_spec,
+                'wakeup reset': bool_spec,
             },
             'General': {
                 'show icon': bool_spec,
@@ -2006,6 +2027,7 @@
             tick seconds = 15
             skip seconds = 60
             preserve pause = true
+            wakeup reset = true
 
             [General]
             show icon = true
@@ -2148,6 +2170,17 @@
         applet_lock.release()
 
 
+# check if current event should reset conditions
+def sysevent_check_reset_conditions(event):
+    if event in sysevents_reset_conditions \
+       and config.get('Scheduler', 'wakeup reset'):
+        applet_log.info("SYSEVENT: event %s is configured to reset conditions" 
% event)
+        if not reset_conditions():
+            applet_log.error("SYSEVENT: conditions could not be correctly 
reset")
+            applet.set_attention()
+            applet.notify(resources.NOTIFY_RESET_CONDITIONS_FAILED)
+
+
 # check among the path notifications by setting the global changed path:
 # it is not going to be used for now, all file notification events are handled
 # in a deferred fashion until a safe way to specify synchronous notifications
@@ -2344,6 +2377,18 @@
             return next((c for c in self._list if c.cond_name == cond_name), 
None)
 
 
+# a simple utility to reset successfulness flag on all conditions
+# note that the flag name is not mangled, so it can be used as it is
+# TODO: transition to either a condition method or a non private variable
+def reset_conditions():
+    applet_log.info("MAIN: resetting success flag on all conditions")
+    applet_lock.acquire()
+    for condition in conditions:
+        condition._has_succeeded = False
+    applet_lock.release()
+    return True
+
+
 class SignalHandlers(object):
 
     _list = []
@@ -4358,6 +4403,7 @@
             return
         if signal_caught and self.callback(self.manager, *args):
             self._info("stock event signal caught: raising event %s" % 
self.handler_name)
+            sysevent_check_reset_conditions(self.handler_name)
             if self.defer:
                 deferred_events.append(self.handler_name)
             else:
@@ -5573,6 +5619,8 @@
         o('chkNotifications').set_active(config.get('General', 
'notifications'))
         o('chkPreservePause').set_active(
             config.get('Scheduler', 'preserve pause'))
+        o('chkResetConditions').set_active(
+            config.get('Scheduler', 'wakeup reset'))
         o('cbLogLevel').set_active(log_level_idx)
         o('cbIconTheme').set_active(icon_theme_idx)
         o('txtTickSeconds').set_text(
@@ -5634,6 +5682,8 @@
                        o('chkEnableEnvVars').get_active())
             preserve_pause = o('chkPreservePause').get_active()
             config.set('Scheduler', 'preserve pause', preserve_pause)
+            wakeup_reset = o('chkResetConditions').get_active()
+            config.set('Scheduler', 'wakeup reset', wakeup_reset)
             if not preserve_pause:
                 unlink_pause_file()
             try:
@@ -6129,6 +6179,12 @@
         item_pause.show()
         menu.append(item_pause)
 
+        if not minimalistic:
+            item_reset_conds = Gtk.MenuItem(label=resources.MENU_RESET_CONDS)
+            item_reset_conds.connect('activate', self.reset_conditions)
+            item_reset_conds.show()
+            menu.append(item_reset_conds)
+
         separator = Gtk.SeparatorMenuItem()
         separator.show()
         menu.append(separator)
@@ -6162,6 +6218,22 @@
         self.indicator.set_icon_theme_path(
             os.path.join(APP_ICON_FOLDER, icon_suffix))
 
+    def reset_conditions(self, _):
+        msgbox = Gtk.MessageDialog(type=Gtk.MessageType.QUESTION,
+                                   buttons=Gtk.ButtonsType.YES_NO)
+        msgbox.set_markup(resources.DLG_CONFIRM_RESET_CONDITIONS)
+        ret = msgbox.run()
+        msgbox.hide()
+        msgbox.destroy()
+        if ret == Gtk.ResponseType.YES:
+            if not reset_conditions():
+                msgbox = Gtk.MessageDialog(type=Gtk.MessageType.ERROR,
+                                           buttons=Gtk.ButtonsType.OK)
+                msgbox.set_markup(resources.DLG_RESET_CONDITIONS_FAILED)
+                msgbox.run()
+                msgbox.hide()
+                msgbox.destroy()
+
     # try to do most configuration tasks automatically
     def reconfigure(self):
         global ui_add_task
@@ -6469,6 +6541,23 @@
         return False
 
 
+def call_restart_conditions(verbose=False):
+    bus = dbus.SessionBus()
+    proxy = bus.get_object(APPLET_BUS_NAME, APPLET_BUS_PATH)
+    try:
+        if not proxy.RestartConditions():
+            applet_log.error("MAIN: failed to restart conditions")
+            oerr(resources.OERR_ERR_RESTART_CONDITIONS, verbose)
+            return False
+        else:
+            applet_log.info("MAIN: conditions restarted successfully")
+            oerr(resources.OERR_RESTART_CONDITIONS, verbose)
+            return True
+    except dbus.exceptions.DBusException:
+        oerr(resources.OERR_ERR_ITEMOPS_DBUS, verbose)
+        return False
+
+
 def do_add_items(filename, verbose=False):
     if filename == '-':
         applet_log.info("MAIN: reading items from standard input")
@@ -6961,6 +7050,11 @@
             help=resources.COMMAND_LINE_HELP_DEFER_CONDITION
         )
         parser.add_argument(
+            '-E', '--restart-conditions',
+            dest='restart_conditions', action='store_true',
+            help=resources.COMMAND_LINE_HELP_RESTART_CONDITIONS
+        )
+        parser.add_argument(
             '--item-list',
             dest='item_list', metavar='ITEMTYPE', nargs='?', const='*',
             help=resources.COMMAND_LINE_HELP_ITEM_LIST
@@ -7082,19 +7176,27 @@
 
         if args.run_condition:
             if not running:
-                oerr(resources.OERR_ERR_DBUS_DISABLED, verbose)
+                oerr(resources.OERR_ERR_REQUIRE_INSTANCE, verbose)
                 sys.exit(2)
             else:
                 if not(call_run_condition(args.run_condition, False, verbose)):
                     sys.exit(2)
         if args.defer_condition:
             if not running:
-                oerr(resources.OERR_ERR_DBUS_DISABLED, verbose)
+                oerr(resources.OERR_ERR_REQUIRE_INSTANCE, verbose)
                 sys.exit(2)
             else:
                 if not(call_run_condition(args.defer_condition, True, 
verbose)):
                     sys.exit(2)
 
+        if args.restart_conditions:
+            if not running:
+                oerr(resources.OERR_ERR_REQUIRE_INSTANCE, verbose)
+                sys.exit(2)
+            else:
+                if not(call_restart_conditions(verbose)):
+                    sys.exit(2)
+
         if args.item_delete:
             if running:
                 if not call_remove_item(args.item_delete, verbose):



Reply via email to