Upgrade to gtk 3.12 and introduce reset menu
This commit is contained in:
parent
2119b62c81
commit
3ea9ee12c5
|
@ -317,8 +317,8 @@ def initialize_safeeyes():
|
|||
style_dir_path = os.path.join(HOME_DIRECTORY, '.config/safeeyes/style')
|
||||
startup_dir_path = os.path.join(HOME_DIRECTORY, '.config/autostart')
|
||||
|
||||
# Remove the ~/.config/safeeyes directory
|
||||
delete(os.path.join(CONFIG_DIRECTORY, 'safeeyes.json'))
|
||||
# Remove the ~/.config/safeeyes/safeeyes.json file
|
||||
delete(CONFIG_FILE_PATH)
|
||||
|
||||
# Remove the startup file
|
||||
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)
|
||||
|
||||
|
||||
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():
|
||||
"""
|
||||
Replace the user style sheet by system style sheet.
|
||||
|
|
|
@ -143,6 +143,14 @@ msgstr "ثبّت الحالة الداخلية"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr "الاستراحات الطويلة يجب أن تكون من مضاعفات مدة الاستراحات القصيرة"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "خيارات"
|
||||
|
|
|
@ -141,6 +141,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -145,6 +145,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -144,6 +144,14 @@ msgstr "Zachovat vnitřní stav"
|
|||
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"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "Možnosti"
|
||||
|
|
|
@ -143,6 +143,14 @@ msgid "Long break interval must be a multiple of short break interval"
|
|||
msgstr ""
|
||||
"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
|
||||
msgid "Options"
|
||||
msgstr "Indstillinger"
|
||||
|
@ -340,7 +348,6 @@ msgid "Minimum seconds to skip without screensaver"
|
|||
msgstr "Mindste antal sekunder for at springe over uden pauseskærm"
|
||||
|
||||
# plugin/screensaver
|
||||
#, fuzzy
|
||||
msgid "Lock screen"
|
||||
msgstr "Lås skærm"
|
||||
|
||||
|
|
|
@ -144,6 +144,14 @@ msgstr "Internen Zustand persistieren"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
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
|
||||
msgid "Options"
|
||||
msgstr "Einstellungen"
|
||||
|
|
|
@ -145,6 +145,14 @@ msgstr "Persist the internal state"
|
|||
msgid "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
|
||||
msgid "Options"
|
||||
msgstr "Options"
|
||||
|
|
|
@ -144,6 +144,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "Opciones"
|
||||
|
|
|
@ -144,6 +144,14 @@ msgstr "Sisemise seisundi säilitamine"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
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
|
||||
msgid "Options"
|
||||
msgstr "Valikud"
|
||||
|
|
|
@ -144,6 +144,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -147,6 +147,14 @@ msgstr ""
|
|||
"L’intervalle entre les pauses longues doit être un multiple de l’intervalle "
|
||||
"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
|
||||
msgid "Options"
|
||||
msgstr "Options"
|
||||
|
|
|
@ -142,6 +142,14 @@ msgstr "आंतरिक अवस्था को जारी रखें"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr "लम्बी ब्रेक अंतराल लघु ब्रेक अंतराल के एक बहुमान होना चाहिए"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "विकल्प"
|
||||
|
|
|
@ -142,6 +142,14 @@ msgstr "Belső állapot elmentése"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
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
|
||||
msgid "Options"
|
||||
msgstr "Opciók"
|
||||
|
|
|
@ -141,6 +141,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -147,6 +147,14 @@ msgstr ""
|
|||
"L'intervallo per la pausa lunga deve essere un multiplo dell'intervallo per "
|
||||
"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
|
||||
msgid "Options"
|
||||
msgstr "Preferenze"
|
||||
|
|
|
@ -147,6 +147,14 @@ msgid "Long break interval must be a multiple of short break interval"
|
|||
msgstr ""
|
||||
"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
|
||||
msgid "Options"
|
||||
msgstr "Parametrai"
|
||||
|
|
|
@ -144,6 +144,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -8,8 +8,8 @@ msgstr ""
|
|||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: 2019-01-19 13:21+0000\n"
|
||||
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
|
||||
"safe-eyes/translations/nb_NO/>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/safe-"
|
||||
"eyes/translations/nb_NO/>\n"
|
||||
"Language: nb\n"
|
||||
"MIME-Version: 1.0\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"
|
||||
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
|
||||
msgid "Options"
|
||||
msgstr "Innstillinger"
|
||||
|
@ -207,7 +215,6 @@ msgid "Duration"
|
|||
msgstr "Varighet"
|
||||
|
||||
# Settings dialog
|
||||
#, fuzzy
|
||||
msgid "Time to wait"
|
||||
msgstr "Tid å vente"
|
||||
|
||||
|
@ -340,7 +347,6 @@ msgid "Minimum seconds to skip without screensaver"
|
|||
msgstr "Minimalt antall sekunder å hoppe over uten skjermsparer"
|
||||
|
||||
# plugin/screensaver
|
||||
#, fuzzy
|
||||
msgid "Lock screen"
|
||||
msgstr "Lås skjerm"
|
||||
|
||||
|
|
|
@ -147,6 +147,14 @@ msgstr ""
|
|||
"De tussenpoos van een lange pauze moet een vermenigvuldiging zijn van de "
|
||||
"korte"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "Opties"
|
||||
|
|
|
@ -145,6 +145,14 @@ msgstr "Utrzymaj stan wewnętrzny"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
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
|
||||
msgid "Options"
|
||||
msgstr "Opcje"
|
||||
|
|
|
@ -146,6 +146,14 @@ msgstr ""
|
|||
"O intervalo de uma parada longa deve ser um múltiplo do intervalo de uma "
|
||||
"parada curta"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "Opções"
|
||||
|
|
|
@ -143,6 +143,14 @@ msgstr "Сохранять внутреннее состояние"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr "Время длинного перерыва должно быть кратно времени короткого перерыва"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "Параметры"
|
||||
|
|
|
@ -130,6 +130,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -144,6 +144,14 @@ msgstr "Zachovať vnútorný stav"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
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
|
||||
msgid "Options"
|
||||
msgstr "Možnosti"
|
||||
|
|
|
@ -141,6 +141,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -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
|
||||
msgid "Options"
|
||||
msgstr "தேர்வுகள்"
|
||||
|
|
|
@ -145,6 +145,14 @@ msgstr "İç durum kalıcı olsun"
|
|||
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"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "Seçenekler"
|
||||
|
|
|
@ -141,6 +141,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -146,6 +146,14 @@ msgid "Long break interval must be a multiple of short break interval"
|
|||
msgstr ""
|
||||
"Довгий інтервал перерви повинен бути кратним короткому інтервалу перерви"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "Параметри"
|
||||
|
|
|
@ -145,6 +145,14 @@ msgstr "Persist the internal state"
|
|||
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"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "Tùy chọn"
|
||||
|
|
|
@ -144,6 +144,14 @@ msgstr "维持内部状态"
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr "长休息时间间隔必须是短休息间隔的倍数"
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr "选项"
|
||||
|
|
|
@ -142,6 +142,14 @@ msgstr ""
|
|||
msgid "Long break interval must be a multiple of short break interval"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Reset"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Are you sure you want to reset all settings to default?"
|
||||
msgstr ""
|
||||
|
||||
# Settings dialog
|
||||
msgid "Options"
|
||||
msgstr ""
|
||||
|
|
|
@ -99,4 +99,11 @@
|
|||
background: black;
|
||||
opacity: 0.9;
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.btn_menu {
|
||||
border-width: 0px;
|
||||
border-radius: 0px;
|
||||
border-image: None;
|
||||
border-color: transparent;
|
||||
}
|
|
@ -20,7 +20,7 @@
|
|||
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.10"/>
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<object class="GtkAdjustment" id="adjustment_duration">
|
||||
<property name="lower">1</property>
|
||||
<property name="upper">3600</property>
|
||||
|
@ -232,6 +232,7 @@
|
|||
<object class="GtkBox" id="box9">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_right">10</property>
|
||||
<property name="margin_top">5</property>
|
||||
<property name="margin_bottom">10</property>
|
||||
<property name="orientation">vertical</property>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
~ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
-->
|
||||
<interface>
|
||||
<requires lib="gtk+" version="3.10"/>
|
||||
<requires lib="gtk+" version="3.12"/>
|
||||
<object class="GtkAdjustment" id="adjust_disable_keyboard_shortcut_duration">
|
||||
<property name="upper">15</property>
|
||||
<property name="step_increment">1</property>
|
||||
|
@ -66,28 +66,114 @@
|
|||
<property name="can_focus">False</property>
|
||||
<property name="stock">gtk-add</property>
|
||||
</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="title" translatable="yes">Safe Eyes</property>
|
||||
<property name="window_position">center</property>
|
||||
<property name="default_width">450</property>
|
||||
<property name="default_height">600</property>
|
||||
<property name="icon_name">safeeyes</property>
|
||||
<property name="gravity">center</property>
|
||||
<signal name="delete-event" handler="on_window_delete" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkNotebook" id="notebook">
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar" id="header_bar">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="show_border">False</property>
|
||||
<property name="can_focus">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>
|
||||
<object class="GtkBox" id="box_settings">
|
||||
<property name="visible">True</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_bottom">10</property>
|
||||
<property name="margin_left">5</property>
|
||||
<property name="margin_right">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">15</property>
|
||||
<child>
|
||||
|
@ -250,7 +336,7 @@
|
|||
<signal name="close" 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">
|
||||
<object class="GtkButtonBox" id="infobar-action_area1">
|
||||
<object class="GtkButtonBox">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">6</property>
|
||||
<property name="layout_style">start</property>
|
||||
|
@ -265,7 +351,7 @@
|
|||
</packing>
|
||||
</child>
|
||||
<child internal-child="content_area">
|
||||
<object class="GtkBox" id="infobar-content_area1">
|
||||
<object class="GtkBox">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="spacing">16</property>
|
||||
<child>
|
||||
|
@ -300,6 +386,9 @@
|
|||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
<style>
|
||||
<class name="info_bar_long_break"/>
|
||||
</style>
|
||||
|
@ -711,25 +800,16 @@
|
|||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="tab_expand">True</property>
|
||||
</packing>
|
||||
</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>
|
||||
<property name="name">Settings</property>
|
||||
<property name="title" translatable="yes">Settings</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="box_break">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="margin_left">5</property>
|
||||
<property name="margin_right">5</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow" id="scrolledwindow_breaks">
|
||||
|
@ -745,8 +825,6 @@
|
|||
<object class="GtkBox" id="box_breaks">
|
||||
<property name="visible">True</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_bottom">10</property>
|
||||
<property name="orientation">vertical</property>
|
||||
|
@ -860,8 +938,6 @@
|
|||
<object class="GtkButtonBox" id="buttonbox1">
|
||||
<property name="visible">True</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_bottom">10</property>
|
||||
<property name="layout_style">end</property>
|
||||
|
@ -902,20 +978,9 @@
|
|||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">page1</property>
|
||||
<property name="title" translatable="yes">Breaks</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>
|
||||
</child>
|
||||
<child>
|
||||
|
@ -932,8 +997,6 @@
|
|||
<object class="GtkBox" id="box_plugins">
|
||||
<property name="visible">True</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_bottom">10</property>
|
||||
<property name="orientation">vertical</property>
|
||||
|
@ -959,20 +1022,9 @@
|
|||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="name">page2</property>
|
||||
<property name="title" translatable="yes">Plugins</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>
|
||||
</child>
|
||||
</object>
|
||||
|
|
|
@ -21,6 +21,7 @@ import os
|
|||
|
||||
import gi
|
||||
from safeeyes import Utility
|
||||
from safeeyes.model import Config
|
||||
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
|
@ -58,14 +59,8 @@ class SettingsDialog(object):
|
|||
self.window = builder.get_object('window_settings')
|
||||
self.box_short_breaks = builder.get_object('box_short_breaks')
|
||||
self.box_long_breaks = builder.get_object('box_long_breaks')
|
||||
box_plugins = builder.get_object('box_plugins')
|
||||
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):
|
||||
box_plugins.pack_start(self.__create_plugin_item(plugin_config), False, False, 0)
|
||||
self.box_plugins = builder.get_object('box_plugins')
|
||||
self.popover = builder.get_object('popover')
|
||||
|
||||
self.spin_short_break_duration = builder.get_object('spin_short_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()
|
||||
|
||||
# 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_long_break_duration.set_value(config.get('long_break_duration'))
|
||||
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_postpone.set_active(config.get('allow_postpone') and not config.get('strict_break'))
|
||||
self.switch_persist.set_active(config.get('persist_state'))
|
||||
|
||||
# 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
|
||||
self.infobar_long_break_shown = False
|
||||
|
||||
def __create_break_item(self, break_config, is_short):
|
||||
"""
|
||||
|
@ -137,6 +146,25 @@ class SettingsDialog(object):
|
|||
parent_box.pack_start(box, False, False, 0)
|
||||
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):
|
||||
"""
|
||||
Remove the break after a confirmation.
|
||||
|
|
Loading…
Reference in New Issue