mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-01-20 22:43:23 +01:00
support of setting backup path
This commit is contained in:
@@ -45,6 +45,7 @@ def get_default_settings():
|
||||
"services_path": "/etc/enigma2/", "user_bouquet_path": "/etc/enigma2/",
|
||||
"satellites_xml_path": "/etc/tuxbox/", "data_dir_path": DATA_PATH + "enigma2/",
|
||||
"picons_path": "/usr/share/enigma2/picon", "picons_dir_path": DATA_PATH + "enigma2/picons/",
|
||||
"backup_dir_path": DATA_PATH + "enigma2/backup/",
|
||||
"backup_before_save": True, "backup_before_downloading": True,
|
||||
"v5_support": False, "http_api_support": False,
|
||||
"use_colors": True, "new_color": "rgb(255,230,204)", "extra_color": "rgb(179,230,204)"},
|
||||
@@ -55,6 +56,7 @@ def get_default_settings():
|
||||
"services_path": "/var/tuxbox/config/zapit/", "user_bouquet_path": "/var/tuxbox/config/zapit/",
|
||||
"satellites_xml_path": "/var/tuxbox/config/", "data_dir_path": DATA_PATH + "neutrino/",
|
||||
"picons_path": "/usr/share/tuxbox/neutrino/icons/logo/", "picons_dir_path": DATA_PATH + "neutrino/picons/",
|
||||
"backup_dir_path": DATA_PATH + "neutrino/backup/",
|
||||
"backup_before_save": True, "backup_before_downloading": True},
|
||||
"profile": Profile.ENIGMA_2.value}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ from datetime import datetime
|
||||
from enum import Enum
|
||||
|
||||
from app.commons import run_idle
|
||||
from app.properties import Profile
|
||||
from app.properties import Profile, get_default_settings
|
||||
from app.ui.dialogs import show_dialog, DialogType
|
||||
from app.ui.main_helper import append_text_to_tview
|
||||
from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH
|
||||
@@ -19,22 +19,25 @@ class RestoreType(Enum):
|
||||
|
||||
|
||||
class BackupDialog:
|
||||
def __init__(self, transient, data_path, profile, callback):
|
||||
def __init__(self, transient, options, profile, callback):
|
||||
handlers = {"on_restore_bouquets": self.on_restore_bouquets,
|
||||
"on_restore_all": self.on_restore_all,
|
||||
"on_remove": self.on_remove,
|
||||
"on_view_popup_menu": self.on_view_popup_menu,
|
||||
"on_info_button_toggled": self.on_info_button_toggled,
|
||||
"on_info_bar_close": self.on_info_bar_close,
|
||||
"on_cursor_changed": self.on_cursor_changed}
|
||||
"on_cursor_changed": self.on_cursor_changed,
|
||||
"on_resize": self.on_resize}
|
||||
|
||||
builder = Gtk.Builder()
|
||||
builder.set_translation_domain("demon-editor")
|
||||
builder.add_from_file(UI_RESOURCES_PATH + "backup_dialog.glade")
|
||||
builder.connect_signals(handlers)
|
||||
|
||||
self._data_path = data_path
|
||||
self._backup_path = data_path + "backup/"
|
||||
def_settings = get_default_settings().get(profile.value)
|
||||
self._options = options.get(profile.value)
|
||||
self._data_path = options.get("data_dir_path", def_settings["data_dir_path"])
|
||||
self._backup_path = options.get("backup_dir_path", def_settings["backup_dir_path"])
|
||||
self._profile = profile
|
||||
self._open_data_callback = callback
|
||||
self._dialog_window = builder.get_object("dialog_window")
|
||||
@@ -46,6 +49,11 @@ class BackupDialog:
|
||||
self._info_check_button = builder.get_object("info_check_button")
|
||||
self._info_bar = builder.get_object("info_bar")
|
||||
self._message_label = builder.get_object("message_label")
|
||||
# Setting the last size of the dialog window if it was saved
|
||||
window_size = self._options.get("backup_tool_window_size", None)
|
||||
if window_size:
|
||||
self._dialog_window.resize(*window_size)
|
||||
|
||||
self.init_data()
|
||||
|
||||
def show(self):
|
||||
@@ -157,6 +165,10 @@ class BackupDialog:
|
||||
self.show_info_message("Done!", Gtk.MessageType.INFO)
|
||||
self._open_data_callback(self._data_path)
|
||||
|
||||
def on_resize(self, window):
|
||||
if self._options:
|
||||
self._options["backup_tool_window_size"] = window.get_size()
|
||||
|
||||
|
||||
def backup_data(path):
|
||||
""" Creating data backup from a folder at the specified path """
|
||||
|
||||
@@ -50,6 +50,7 @@ Author: Dmitriy Yefremov
|
||||
<property name="destroy_with_parent">True</property>
|
||||
<property name="icon_name">document-revert</property>
|
||||
<property name="gravity">center</property>
|
||||
<signal name="check-resize" handler="on_resize" swapped="no"/>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar" id="header_bar">
|
||||
<property name="visible">True</property>
|
||||
|
||||
Binary file not shown.
@@ -1295,7 +1295,7 @@ class Application(Gtk.Application):
|
||||
def on_backup_tool_show(self, item):
|
||||
""" Shows backup tool dialog """
|
||||
BackupDialog(self._main_window,
|
||||
self._options.get(self._profile).get("data_dir_path", ""),
|
||||
self._options,
|
||||
Profile(self._profile),
|
||||
self.open_data).show()
|
||||
|
||||
|
||||
@@ -727,7 +727,7 @@ Author: Dmitriy Yefremov
|
||||
<property name="row_spacing">2</property>
|
||||
<property name="column_homogeneous">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label5">
|
||||
<object class="GtkLabel" id="services_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Services and Bouquets files:</property>
|
||||
@@ -751,8 +751,7 @@ Author: Dmitriy Yefremov
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label6">
|
||||
<property name="visible">True</property>
|
||||
<object class="GtkLabel" id="user_bouquet_label">
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">User bouquet files:</property>
|
||||
<property name="xalign">2.2351741291171123e-10</property>
|
||||
@@ -764,8 +763,6 @@ Author: Dmitriy Yefremov
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="user_bouquet_field">
|
||||
<property name="visible">True</property>
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="text">/etc/enigma2/</property>
|
||||
<property name="primary_icon_stock">gtk-edit</property>
|
||||
@@ -776,7 +773,7 @@ Author: Dmitriy Yefremov
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label7">
|
||||
<object class="GtkLabel" id="satellites_xml_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Satellites.xml file:</property>
|
||||
@@ -800,7 +797,7 @@ Author: Dmitriy Yefremov
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label20">
|
||||
<object class="GtkLabel" id="picons_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Picons:</property>
|
||||
@@ -855,7 +852,7 @@ Author: Dmitriy Yefremov
|
||||
<property name="row_spacing">2</property>
|
||||
<property name="column_homogeneous">True</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label18">
|
||||
<object class="GtkLabel" id="picons_dir_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Picons path:</property>
|
||||
@@ -872,8 +869,10 @@ Author: Dmitriy Yefremov
|
||||
<property name="can_focus">True</property>
|
||||
<property name="text">/data/picons</property>
|
||||
<property name="primary_icon_stock">gtk-edit</property>
|
||||
<property name="secondary_icon_name">folder-open-symbolic</property>
|
||||
<signal name="icon-press" handler="on_picons_dir_field_icon_press" swapped="no"/>
|
||||
<property name="secondary_icon_name">folder-open</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_tooltip_text" translatable="yes">Select</property>
|
||||
<signal name="icon-press" handler="on_field_icon_press" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
@@ -881,7 +880,7 @@ Author: Dmitriy Yefremov
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label8">
|
||||
<object class="GtkLabel" id="data_dir_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Data path:</property>
|
||||
@@ -899,17 +898,45 @@ Author: Dmitriy Yefremov
|
||||
<property name="can_focus">True</property>
|
||||
<property name="text">/data</property>
|
||||
<property name="primary_icon_stock">gtk-edit</property>
|
||||
<property name="secondary_icon_name">folder-open-symbolic</property>
|
||||
<property name="secondary_icon_name">folder-open</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_tooltip_text" translatable="yes">Select</property>
|
||||
<property name="secondary_icon_tooltip_markup" translatable="yes">Select</property>
|
||||
<signal name="icon-press" handler="on_data_dir_field_icon_press" swapped="no"/>
|
||||
<signal name="icon-press" handler="on_field_icon_press" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="backup_dir_label">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">False</property>
|
||||
<property name="label" translatable="yes">Backup path:</property>
|
||||
<property name="xalign">0.019999999552965164</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEntry" id="backup_dir_field">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="text" translatable="yes">/data/backup</property>
|
||||
<property name="primary_icon_stock">gtk-edit</property>
|
||||
<property name="secondary_icon_name">folder-open</property>
|
||||
<property name="primary_icon_activatable">False</property>
|
||||
<property name="secondary_icon_tooltip_text" translatable="yes">Select</property>
|
||||
<signal name="icon-press" handler="on_field_icon_press" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left_attach">0</property>
|
||||
<property name="top_attach">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
|
||||
@@ -23,8 +23,7 @@ class Property(Enum):
|
||||
class SettingsDialog:
|
||||
|
||||
def __init__(self, transient, options):
|
||||
handlers = {"on_data_dir_field_icon_press": self.on_data_dir_field_icon_press,
|
||||
"on_picons_dir_field_icon_press": self.on_picons_dir_field_icon_press,
|
||||
handlers = {"on_field_icon_press": self.on_field_icon_press,
|
||||
"on_profile_changed": self.on_profile_changed,
|
||||
"on_reset": self.on_reset,
|
||||
"apply_settings": self.apply_settings,
|
||||
@@ -60,6 +59,7 @@ class SettingsDialog:
|
||||
self._data_dir_field = builder.get_object("data_dir_field")
|
||||
self._picons_field = builder.get_object("picons_field")
|
||||
self._picons_dir_field = builder.get_object("picons_dir_field")
|
||||
self._backup_dir_field = builder.get_object("backup_dir_field")
|
||||
# Info bar
|
||||
self._info_bar = builder.get_object("info_bar")
|
||||
self._message_label = builder.get_object("info_bar_message_label")
|
||||
@@ -98,10 +98,7 @@ class SettingsDialog:
|
||||
|
||||
return response
|
||||
|
||||
def on_data_dir_field_icon_press(self, entry, icon, event_button):
|
||||
update_entry_data(entry, self._dialog, self._options.get(self._options.get("profile")))
|
||||
|
||||
def on_picons_dir_field_icon_press(self, entry, icon, event_button):
|
||||
def on_field_icon_press(self, entry, icon, event_button):
|
||||
update_entry_data(entry, self._dialog, self._options.get(self._options.get("profile")))
|
||||
|
||||
def on_profile_changed(self, item):
|
||||
@@ -130,26 +127,29 @@ class SettingsDialog:
|
||||
self.set_settings()
|
||||
|
||||
def set_settings(self):
|
||||
def_settings = get_default_settings().get(self._active_profile)
|
||||
options = self._options.get(self._active_profile)
|
||||
self._host_field.set_text(options.get("host", ""))
|
||||
self._port_field.set_text(options.get("port", ""))
|
||||
self._login_field.set_text(options.get("user", ""))
|
||||
self._password_field.set_text(options.get("password", ""))
|
||||
self._http_login_field.set_text(options.get("http_user", ""))
|
||||
self._http_password_field.set_text(options.get("http_password", ""))
|
||||
self._http_port_field.set_text(options.get("http_port", "80"))
|
||||
self._telnet_login_field.set_text(options.get("telnet_user", ""))
|
||||
self._telnet_password_field.set_text(options.get("telnet_password", ""))
|
||||
self._telnet_port_field.set_text(options.get("telnet_port", ""))
|
||||
self._telnet_timeout_spin_button.set_value(options.get("telnet_timeout", 5))
|
||||
self._services_field.set_text(options.get("services_path", ""))
|
||||
self._user_bouquet_field.set_text(options.get("user_bouquet_path", ""))
|
||||
self._satellites_xml_field.set_text(options.get("satellites_xml_path", ""))
|
||||
self._picons_field.set_text(options.get("picons_path", ""))
|
||||
self._data_dir_field.set_text(options.get("data_dir_path", ""))
|
||||
self._picons_dir_field.set_text(options.get("picons_dir_path", ""))
|
||||
self._before_save_switch.set_active(options.get("backup_before_save", True))
|
||||
self._before_downloading_switch.set_active(options.get("backup_before_downloading", True))
|
||||
self._host_field.set_text(options.get("host", def_settings["host"]))
|
||||
self._port_field.set_text(options.get("port", def_settings["port"]))
|
||||
self._login_field.set_text(options.get("user", def_settings["user"]))
|
||||
self._password_field.set_text(options.get("password", def_settings["password"]))
|
||||
self._http_login_field.set_text(options.get("http_user", def_settings["http_user"]))
|
||||
self._http_password_field.set_text(options.get("http_password", def_settings["http_password"]))
|
||||
self._http_port_field.set_text(options.get("http_port", def_settings["http_port"]))
|
||||
self._telnet_login_field.set_text(options.get("telnet_user", def_settings["telnet_user"]))
|
||||
self._telnet_password_field.set_text(options.get("telnet_password", def_settings["telnet_password"]))
|
||||
self._telnet_port_field.set_text(options.get("telnet_port", def_settings["telnet_port"]))
|
||||
self._telnet_timeout_spin_button.set_value(options.get("telnet_timeout", def_settings["telnet_timeout"]))
|
||||
self._services_field.set_text(options.get("services_path", def_settings["services_path"]))
|
||||
self._user_bouquet_field.set_text(options.get("user_bouquet_path", def_settings["user_bouquet_path"]))
|
||||
self._satellites_xml_field.set_text(options.get("satellites_xml_path", def_settings["satellites_xml_path"]))
|
||||
self._picons_field.set_text(options.get("picons_path", def_settings["picons_path"]))
|
||||
self._data_dir_field.set_text(options.get("data_dir_path", def_settings["data_dir_path"]))
|
||||
self._picons_dir_field.set_text(options.get("picons_dir_path", def_settings["picons_dir_path"]))
|
||||
self._backup_dir_field.set_text(options.get("backup_dir_path", def_settings["backup_dir_path"]))
|
||||
self._before_save_switch.set_active(options.get("backup_before_save", def_settings["backup_before_save"]))
|
||||
self._before_downloading_switch.set_active(options.get("backup_before_downloading",
|
||||
def_settings["backup_before_downloading"]))
|
||||
|
||||
if Profile(self._active_profile) is Profile.ENIGMA_2:
|
||||
self._support_ver5_check_button.set_active(options.get("v5_support", False))
|
||||
@@ -184,6 +184,7 @@ class SettingsDialog:
|
||||
options["picons_path"] = self._picons_field.get_text()
|
||||
options["data_dir_path"] = self._data_dir_field.get_text()
|
||||
options["picons_dir_path"] = self._picons_dir_field.get_text()
|
||||
options["backup_dir_path"] = self._backup_dir_field.get_text()
|
||||
options["backup_before_save"] = self._before_save_switch.get_active()
|
||||
options["backup_before_downloading"] = self._before_downloading_switch.get_active()
|
||||
|
||||
|
||||
Binary file not shown.
@@ -592,6 +592,9 @@ msgstr "Резервное копирование"
|
||||
msgid "Backups"
|
||||
msgstr "Резервные копии"
|
||||
|
||||
msgid "Backup path:"
|
||||
msgstr "Путь к резервным копиям:"
|
||||
|
||||
msgid "Restore bouquets"
|
||||
msgstr "Восстановить букеты"
|
||||
|
||||
@@ -613,6 +616,9 @@ msgstr "Помеченные как новые:"
|
||||
msgid "With an extra name in the bouquet:"
|
||||
msgstr "С пользовательским именем в букете:"
|
||||
|
||||
msgid "Select"
|
||||
msgstr "Выбрать"
|
||||
|
||||
msgid "About"
|
||||
msgstr "О программе"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user