Upgrade to gtk 3.12 and introduce reset menu

This commit is contained in:
Gobinath 2019-02-09 12:46:20 -05:00
parent 2119b62c81
commit 3ea9ee12c5
37 changed files with 431 additions and 83 deletions

View File

@ -317,8 +317,8 @@ def initialize_safeeyes():
style_dir_path = os.path.join(HOME_DIRECTORY, '.config/safeeyes/style') style_dir_path = os.path.join(HOME_DIRECTORY, '.config/safeeyes/style')
startup_dir_path = os.path.join(HOME_DIRECTORY, '.config/autostart') startup_dir_path = os.path.join(HOME_DIRECTORY, '.config/autostart')
# Remove the ~/.config/safeeyes directory # Remove the ~/.config/safeeyes/safeeyes.json file
delete(os.path.join(CONFIG_DIRECTORY, 'safeeyes.json')) delete(CONFIG_FILE_PATH)
# Remove the startup file # Remove the startup file
delete(os.path.join(HOME_DIRECTORY, os.path.join( delete(os.path.join(HOME_DIRECTORY, os.path.join(
@ -343,6 +343,13 @@ def initialize_safeeyes():
shutil.copy2(SYSTEM_STYLE_SHEET_PATH, STYLE_SHEET_PATH) shutil.copy2(SYSTEM_STYLE_SHEET_PATH, STYLE_SHEET_PATH)
def reset_config():
# Remove the ~/.config/safeeyes/safeeyes.json file
delete(CONFIG_FILE_PATH)
# Copy the safeeyes.json
shutil.copy2(SYSTEM_CONFIG_FILE_PATH, CONFIG_FILE_PATH)
def replace_style_sheet(): def replace_style_sheet():
""" """
Replace the user style sheet by system style sheet. Replace the user style sheet by system style sheet.

View File

@ -143,6 +143,14 @@ msgstr "ثبّت الحالة الداخلية"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "الاستراحات الطويلة يجب أن تكون من مضاعفات مدة الاستراحات القصيرة" msgstr "الاستراحات الطويلة يجب أن تكون من مضاعفات مدة الاستراحات القصيرة"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "خيارات" msgstr "خيارات"

View File

@ -141,6 +141,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -145,6 +145,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -144,6 +144,14 @@ msgstr "Zachovat vnitřní stav"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Je třeba, aby dlouhé přestávky byly násobkem krátkých přestávek" msgstr "Je třeba, aby dlouhé přestávky byly násobkem krátkých přestávek"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Možnosti" msgstr "Možnosti"

View File

@ -143,6 +143,14 @@ msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
"Tiden for en lang pause skal være et multiplum af tiden for en kort pause" "Tiden for en lang pause skal være et multiplum af tiden for en kort pause"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Indstillinger" msgstr "Indstillinger"
@ -340,7 +348,6 @@ msgid "Minimum seconds to skip without screensaver"
msgstr "Mindste antal sekunder for at springe over uden pauseskærm" msgstr "Mindste antal sekunder for at springe over uden pauseskærm"
# plugin/screensaver # plugin/screensaver
#, fuzzy
msgid "Lock screen" msgid "Lock screen"
msgstr "Lås skærm" msgstr "Lås skærm"

View File

@ -144,6 +144,14 @@ msgstr "Internen Zustand persistieren"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Lange Pausen müssen ein Vielfaches von kurzen Pausen lang dauern" msgstr "Lange Pausen müssen ein Vielfaches von kurzen Pausen lang dauern"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Einstellungen" msgstr "Einstellungen"

View File

@ -145,6 +145,14 @@ msgstr "Persist the internal state"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Long break interval must be a multiple of short break interval" msgstr "Long break interval must be a multiple of short break interval"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "Are you sure you want to delete this break?"
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Options" msgstr "Options"

View File

@ -144,6 +144,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Opciones" msgstr "Opciones"

View File

@ -144,6 +144,14 @@ msgstr "Sisemise seisundi säilitamine"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Pika pausi intervall peab olema lühikese pausi pikkuse kordne" msgstr "Pika pausi intervall peab olema lühikese pausi pikkuse kordne"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Valikud" msgstr "Valikud"

View File

@ -144,6 +144,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -147,6 +147,14 @@ msgstr ""
"Lintervalle entre les pauses longues doit être un multiple de lintervalle " "Lintervalle entre les pauses longues doit être un multiple de lintervalle "
"entre les pauses courtes" "entre les pauses courtes"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Options" msgstr "Options"

View File

@ -142,6 +142,14 @@ msgstr "आंतरिक अवस्था को जारी रखें"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "लम्बी ब्रेक अंतराल लघु ब्रेक अंतराल के एक बहुमान होना चाहिए" msgstr "लम्बी ब्रेक अंतराल लघु ब्रेक अंतराल के एक बहुमान होना चाहिए"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "विकल्प" msgstr "विकल्प"

View File

@ -142,6 +142,14 @@ msgstr "Belső állapot elmentése"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Hosszú pihenő fel kell legyen bontva több kicsire" msgstr "Hosszú pihenő fel kell legyen bontva több kicsire"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Opciók" msgstr "Opciók"

View File

@ -141,6 +141,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -147,6 +147,14 @@ msgstr ""
"L'intervallo per la pausa lunga deve essere un multiplo dell'intervallo per " "L'intervallo per la pausa lunga deve essere un multiplo dell'intervallo per "
"la pausa breve" "la pausa breve"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Preferenze" msgstr "Preferenze"

View File

@ -147,6 +147,14 @@ msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
"Ilgos pertraukos laikotarpis turi būti sudarytas iš kelių trumpų pertraukų" "Ilgos pertraukos laikotarpis turi būti sudarytas iš kelių trumpų pertraukų"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Parametrai" msgstr "Parametrai"

View File

@ -144,6 +144,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -8,8 +8,8 @@ msgstr ""
"POT-Creation-Date: \n" "POT-Creation-Date: \n"
"PO-Revision-Date: 2019-01-19 13:21+0000\n" "PO-Revision-Date: 2019-01-19 13:21+0000\n"
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n" "Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/" "Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/safe-"
"safe-eyes/translations/nb_NO/>\n" "eyes/translations/nb_NO/>\n"
"Language: nb\n" "Language: nb\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@ -142,6 +142,14 @@ msgstr "Fortsett i inngangstilstand"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Tiden mellom lange pauser må være være en inndeling av de små pausene" msgstr "Tiden mellom lange pauser må være være en inndeling av de små pausene"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Innstillinger" msgstr "Innstillinger"
@ -207,7 +215,6 @@ msgid "Duration"
msgstr "Varighet" msgstr "Varighet"
# Settings dialog # Settings dialog
#, fuzzy
msgid "Time to wait" msgid "Time to wait"
msgstr "Tid å vente" msgstr "Tid å vente"
@ -340,7 +347,6 @@ msgid "Minimum seconds to skip without screensaver"
msgstr "Minimalt antall sekunder å hoppe over uten skjermsparer" msgstr "Minimalt antall sekunder å hoppe over uten skjermsparer"
# plugin/screensaver # plugin/screensaver
#, fuzzy
msgid "Lock screen" msgid "Lock screen"
msgstr "Lås skjerm" msgstr "Lås skjerm"

View File

@ -147,6 +147,14 @@ msgstr ""
"De tussenpoos van een lange pauze moet een vermenigvuldiging zijn van de " "De tussenpoos van een lange pauze moet een vermenigvuldiging zijn van de "
"korte" "korte"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Opties" msgstr "Opties"

View File

@ -145,6 +145,14 @@ msgstr "Utrzymaj stan wewnętrzny"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Długa przerwa musi być poprzedzona kilkoma krótkimi" msgstr "Długa przerwa musi być poprzedzona kilkoma krótkimi"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Opcje" msgstr "Opcje"

View File

@ -146,6 +146,14 @@ msgstr ""
"O intervalo de uma parada longa deve ser um múltiplo do intervalo de uma " "O intervalo de uma parada longa deve ser um múltiplo do intervalo de uma "
"parada curta" "parada curta"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Opções" msgstr "Opções"

View File

@ -143,6 +143,14 @@ msgstr "Сохранять внутреннее состояние"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Время длинного перерыва должно быть кратно времени короткого перерыва" msgstr "Время длинного перерыва должно быть кратно времени короткого перерыва"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Параметры" msgstr "Параметры"

View File

@ -130,6 +130,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -144,6 +144,14 @@ msgstr "Zachovať vnútorný stav"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Dlhá prestávka musí byť násobkom krátkej prestávky" msgstr "Dlhá prestávka musí byť násobkom krátkej prestávky"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Možnosti" msgstr "Možnosti"

View File

@ -141,6 +141,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -147,6 +147,14 @@ msgstr ""
"நீண்ட இடைவேளைகளுக்கிடையிலான நேரம் குறுகிய இடைவேளைகளுக்கிடையிலான நேரத்தின் மடங்காக " "நீண்ட இடைவேளைகளுக்கிடையிலான நேரம் குறுகிய இடைவேளைகளுக்கிடையிலான நேரத்தின் மடங்காக "
"இருக்க வேண்டும்" "இருக்க வேண்டும்"
# Settings dialog
msgid "Reset"
msgstr "மீளமை"
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr "எல்லா அமைப்புகளையும் இயல்புநிலைக்கு நிச்சயமாக மாற்ற வேண்டுமா?"
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "தேர்வுகள்" msgstr "தேர்வுகள்"

View File

@ -145,6 +145,14 @@ msgstr "İç durum kalıcı olsun"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Uzun mola aralığı, kısa mola aralığının katı olmalıdır" msgstr "Uzun mola aralığı, kısa mola aralığının katı olmalıdır"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Seçenekler" msgstr "Seçenekler"

View File

@ -141,6 +141,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -146,6 +146,14 @@ msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
"Довгий інтервал перерви повинен бути кратним короткому інтервалу перерви" "Довгий інтервал перерви повинен бути кратним короткому інтервалу перерви"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Параметри" msgstr "Параметри"

View File

@ -145,6 +145,14 @@ msgstr "Persist the internal state"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "Thời gian nghỉ dài phải là bội số của thời gian nghỉ ngắn" msgstr "Thời gian nghỉ dài phải là bội số của thời gian nghỉ ngắn"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "Tùy chọn" msgstr "Tùy chọn"

View File

@ -144,6 +144,14 @@ msgstr "维持内部状态"
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "长休息时间间隔必须是短休息间隔的倍数" msgstr "长休息时间间隔必须是短休息间隔的倍数"
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "选项" msgstr "选项"

View File

@ -142,6 +142,14 @@ msgstr ""
msgid "Long break interval must be a multiple of short break interval" msgid "Long break interval must be a multiple of short break interval"
msgstr "" msgstr ""
# Settings dialog
msgid "Reset"
msgstr ""
# Settings dialog
msgid "Are you sure you want to reset all settings to default?"
msgstr ""
# Settings dialog # Settings dialog
msgid "Options" msgid "Options"
msgstr "" msgstr ""

View File

@ -99,4 +99,11 @@
background: black; background: black;
opacity: 0.9; opacity: 0.9;
border-color: transparent; border-color: transparent;
}
.btn_menu {
border-width: 0px;
border-radius: 0px;
border-image: None;
border-color: transparent;
} }

View File

@ -20,7 +20,7 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>. ~ along with this program. If not, see <http://www.gnu.org/licenses/>.
--> -->
<interface> <interface>
<requires lib="gtk+" version="3.10"/> <requires lib="gtk+" version="3.12"/>
<object class="GtkAdjustment" id="adjustment_duration"> <object class="GtkAdjustment" id="adjustment_duration">
<property name="lower">1</property> <property name="lower">1</property>
<property name="upper">3600</property> <property name="upper">3600</property>
@ -232,6 +232,7 @@
<object class="GtkBox" id="box9"> <object class="GtkBox" id="box9">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_right">10</property>
<property name="margin_top">5</property> <property name="margin_top">5</property>
<property name="margin_bottom">10</property> <property name="margin_bottom">10</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>

View File

@ -20,7 +20,7 @@
~ along with this program. If not, see <http://www.gnu.org/licenses/>. ~ along with this program. If not, see <http://www.gnu.org/licenses/>.
--> -->
<interface> <interface>
<requires lib="gtk+" version="3.10"/> <requires lib="gtk+" version="3.12"/>
<object class="GtkAdjustment" id="adjust_disable_keyboard_shortcut_duration"> <object class="GtkAdjustment" id="adjust_disable_keyboard_shortcut_duration">
<property name="upper">15</property> <property name="upper">15</property>
<property name="step_increment">1</property> <property name="step_increment">1</property>
@ -66,28 +66,114 @@
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="stock">gtk-add</property> <property name="stock">gtk-add</property>
</object> </object>
<object class="GtkWindow" id="window_settings"> <object class="GtkPopover" id="popover">
<property name="can_focus">False</property>
<child>
<object class="GtkBox">
<property name="width_request">128</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkButton">
<property name="label" translatable="yes">Reset</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_reset_menu_clicked" swapped="no"/>
<style>
<class name="btn_menu"/>
</style>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
</child>
</object>
<object class="GtkApplicationWindow" id="window_settings">
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="title" translatable="yes">Safe Eyes</property>
<property name="window_position">center</property> <property name="window_position">center</property>
<property name="default_width">450</property> <property name="default_width">450</property>
<property name="default_height">600</property> <property name="default_height">600</property>
<property name="icon_name">safeeyes</property> <property name="icon_name">safeeyes</property>
<property name="gravity">center</property> <property name="gravity">center</property>
<signal name="delete-event" handler="on_window_delete" swapped="no"/> <signal name="delete-event" handler="on_window_delete" swapped="no"/>
<child> <child type="titlebar">
<object class="GtkNotebook" id="notebook"> <object class="GtkHeaderBar" id="header_bar">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">False</property>
<property name="show_border">False</property> <property name="spacing">91</property>
<property name="show_close_button">True</property>
<property name="decoration_layout">menu:close</property>
<child>
<object class="GtkMenuButton">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="popover">popover</property>
<child>
<object class="GtkImage" id="img_icon">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">safeeyes</property>
<property name="icon_size">1</property>
</object>
</child>
</object>
</child>
<child type="title">
<object class="GtkBox">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">5</property>
<property name="label" translatable="yes">Safe Eyes</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkStackSwitcher">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stack">stack</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkStack" id="stack">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="interpolate_size">True</property>
<child> <child>
<object class="GtkBox" id="box_settings"> <object class="GtkBox" id="box_settings">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_left">10</property> <property name="margin_left">5</property>
<property name="margin_right">10</property> <property name="margin_right">5</property>
<property name="margin_top">10</property>
<property name="margin_bottom">10</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">15</property> <property name="spacing">15</property>
<child> <child>
@ -250,7 +336,7 @@
<signal name="close" handler="on_info_bar_long_break_close" swapped="no"/> <signal name="close" handler="on_info_bar_long_break_close" swapped="no"/>
<signal name="response" handler="on_info_bar_long_break_close" swapped="no"/> <signal name="response" handler="on_info_bar_long_break_close" swapped="no"/>
<child internal-child="action_area"> <child internal-child="action_area">
<object class="GtkButtonBox" id="infobar-action_area1"> <object class="GtkButtonBox">
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="spacing">6</property> <property name="spacing">6</property>
<property name="layout_style">start</property> <property name="layout_style">start</property>
@ -265,7 +351,7 @@
</packing> </packing>
</child> </child>
<child internal-child="content_area"> <child internal-child="content_area">
<object class="GtkBox" id="infobar-content_area1"> <object class="GtkBox">
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="spacing">16</property> <property name="spacing">16</property>
<child> <child>
@ -300,6 +386,9 @@
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>
<child>
<placeholder/>
</child>
<style> <style>
<class name="info_bar_long_break"/> <class name="info_bar_long_break"/>
</style> </style>
@ -711,25 +800,16 @@
</child> </child>
</object> </object>
<packing> <packing>
<property name="tab_expand">True</property> <property name="name">Settings</property>
</packing> <property name="title" translatable="yes">Settings</property>
</child>
<child type="tab">
<object class="GtkLabel" id="lbl_settings">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Settings</property>
</object>
<packing>
<property name="menu_label">lbl_settings</property>
<property name="tab_expand">True</property>
<property name="tab_fill">False</property>
</packing> </packing>
</child> </child>
<child> <child>
<object class="GtkBox" id="box_break"> <object class="GtkBox" id="box_break">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_left">5</property>
<property name="margin_right">5</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<child> <child>
<object class="GtkScrolledWindow" id="scrolledwindow_breaks"> <object class="GtkScrolledWindow" id="scrolledwindow_breaks">
@ -745,8 +825,6 @@
<object class="GtkBox" id="box_breaks"> <object class="GtkBox" id="box_breaks">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_left">10</property>
<property name="margin_right">10</property>
<property name="margin_top">10</property> <property name="margin_top">10</property>
<property name="margin_bottom">10</property> <property name="margin_bottom">10</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
@ -860,8 +938,6 @@
<object class="GtkButtonBox" id="buttonbox1"> <object class="GtkButtonBox" id="buttonbox1">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_left">5</property>
<property name="margin_right">5</property>
<property name="margin_top">10</property> <property name="margin_top">10</property>
<property name="margin_bottom">10</property> <property name="margin_bottom">10</property>
<property name="layout_style">end</property> <property name="layout_style">end</property>
@ -902,20 +978,9 @@
</child> </child>
</object> </object>
<packing> <packing>
<property name="name">page1</property>
<property name="title" translatable="yes">Breaks</property>
<property name="position">1</property> <property name="position">1</property>
<property name="tab_expand">True</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="lbl_breaks">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Breaks</property>
</object>
<packing>
<property name="position">1</property>
<property name="tab_expand">True</property>
<property name="tab_fill">False</property>
</packing> </packing>
</child> </child>
<child> <child>
@ -932,8 +997,6 @@
<object class="GtkBox" id="box_plugins"> <object class="GtkBox" id="box_plugins">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="margin_left">10</property>
<property name="margin_right">10</property>
<property name="margin_top">10</property> <property name="margin_top">10</property>
<property name="margin_bottom">10</property> <property name="margin_bottom">10</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
@ -959,20 +1022,9 @@
</child> </child>
</object> </object>
<packing> <packing>
<property name="name">page2</property>
<property name="title" translatable="yes">Plugins</property>
<property name="position">2</property> <property name="position">2</property>
<property name="tab_expand">True</property>
</packing>
</child>
<child type="tab">
<object class="GtkLabel" id="lbl_plugins">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Plugins</property>
</object>
<packing>
<property name="position">2</property>
<property name="tab_expand">True</property>
<property name="tab_fill">False</property>
</packing> </packing>
</child> </child>
</object> </object>

View File

@ -21,6 +21,7 @@ import os
import gi import gi
from safeeyes import Utility from safeeyes import Utility
from safeeyes.model import Config
gi.require_version('Gtk', '3.0') gi.require_version('Gtk', '3.0')
from gi.repository import Gtk from gi.repository import Gtk
@ -58,14 +59,8 @@ class SettingsDialog(object):
self.window = builder.get_object('window_settings') self.window = builder.get_object('window_settings')
self.box_short_breaks = builder.get_object('box_short_breaks') self.box_short_breaks = builder.get_object('box_short_breaks')
self.box_long_breaks = builder.get_object('box_long_breaks') self.box_long_breaks = builder.get_object('box_long_breaks')
box_plugins = builder.get_object('box_plugins') self.box_plugins = builder.get_object('box_plugins')
for short_break in config.get('short_breaks'): self.popover = builder.get_object('popover')
self.__create_break_item(short_break, True)
for long_break in config.get('long_breaks'):
self.__create_break_item(long_break, False)
for plugin_config in Utility.load_plugins_config(config):
box_plugins.pack_start(self.__create_plugin_item(plugin_config), False, False, 0)
self.spin_short_break_duration = builder.get_object('spin_short_break_duration') self.spin_short_break_duration = builder.get_object('spin_short_break_duration')
self.spin_long_break_duration = builder.get_object('spin_long_break_duration') self.spin_long_break_duration = builder.get_object('spin_long_break_duration')
@ -81,6 +76,28 @@ class SettingsDialog(object):
self.info_bar_long_break.hide() self.info_bar_long_break.hide()
# Set the current values of input fields # Set the current values of input fields
self.__initialize(config)
# Update relative states
# GtkSwitch state-set signal is available only from 3.14
if Gtk.get_minor_version() >= 14:
self.switch_strict_break.connect('state-set', self.on_switch_strict_break_activate)
self.switch_postpone.connect('state-set', self.on_switch_postpone_activate)
self.on_switch_strict_break_activate(self.switch_strict_break, self.switch_strict_break.get_active())
self.on_switch_postpone_activate(self.switch_postpone, self.switch_postpone.get_active())
self.initializing = False
def __initialize(self, config):
# Don't show infobar for changes made internally
self.infobar_long_break_shown = True
for short_break in config.get('short_breaks'):
self.__create_break_item(short_break, True)
for long_break in config.get('long_breaks'):
self.__create_break_item(long_break, False)
for plugin_config in Utility.load_plugins_config(config):
self.box_plugins.pack_start(self.__create_plugin_item(plugin_config), False, False, 0)
self.spin_short_break_duration.set_value(config.get('short_break_duration')) self.spin_short_break_duration.set_value(config.get('short_break_duration'))
self.spin_long_break_duration.set_value(config.get('long_break_duration')) self.spin_long_break_duration.set_value(config.get('long_break_duration'))
self.spin_short_break_interval.set_value(config.get('short_break_interval')) self.spin_short_break_interval.set_value(config.get('short_break_interval'))
@ -91,15 +108,7 @@ class SettingsDialog(object):
self.switch_strict_break.set_active(config.get('strict_break')) self.switch_strict_break.set_active(config.get('strict_break'))
self.switch_postpone.set_active(config.get('allow_postpone') and not config.get('strict_break')) self.switch_postpone.set_active(config.get('allow_postpone') and not config.get('strict_break'))
self.switch_persist.set_active(config.get('persist_state')) self.switch_persist.set_active(config.get('persist_state'))
self.infobar_long_break_shown = False
# Update relative states
# GtkSwitch state-set signal is available only from 3.14
if Gtk.get_minor_version() >= 14:
self.switch_strict_break.connect('state-set', self.on_switch_strict_break_activate)
self.switch_postpone.connect('state-set', self.on_switch_postpone_activate)
self.on_switch_strict_break_activate(self.switch_strict_break, self.switch_strict_break.get_active())
self.on_switch_postpone_activate(self.switch_postpone, self.switch_postpone.get_active())
self.initializing = False
def __create_break_item(self, break_config, is_short): def __create_break_item(self, break_config, is_short):
""" """
@ -137,6 +146,25 @@ class SettingsDialog(object):
parent_box.pack_start(box, False, False, 0) parent_box.pack_start(box, False, False, 0)
return box return box
def on_reset_menu_clicked(self, button):
self.popover.hide()
def __confirmation_dialog_response(widget, response_id):
if response_id == Gtk.ResponseType.OK:
Utility.reset_config()
self.config = Config()
self.__initialize(self.config)
widget.destroy()
messagedialog = Gtk.MessageDialog(parent=self.window,
flags=Gtk.DialogFlags.MODAL,
type=Gtk.MessageType.WARNING,
buttons=(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
_("Reset"), Gtk.ResponseType.OK),
message_format=_("Are you sure you want to reset all settings to default?"))
messagedialog.connect("response", __confirmation_dialog_response)
messagedialog.format_secondary_text(_("You can't undo this action."))
messagedialog.show()
def __delete_break(self, break_config, is_short, on_remove): def __delete_break(self, break_config, is_short, on_remove):
""" """
Remove the break after a confirmation. Remove the break after a confirmation.