added prototype of backup tool gui

This commit is contained in:
DYefremov
2018-12-20 18:14:19 +03:00
parent ec69bae2a6
commit 2b63a59c91
4 changed files with 212 additions and 22 deletions

41
app/ui/backup.py Normal file
View File

@@ -0,0 +1,41 @@
import os
from .uicommons import Gtk, UI_RESOURCES_PATH
class BackupDialog:
def __init__(self, transient, backup_path):
handlers = {"on_extract": self.on_extract, "on_remove": self.on_remove}
builder = Gtk.Builder()
builder.set_translation_domain("demon-editor")
builder.add_from_file(UI_RESOURCES_PATH + "backup_dialog.glade")
builder.connect_signals(handlers)
self._dialog_window = builder.get_object("dialog_window")
self._dialog_window.set_transient_for(transient)
self._model = builder.get_object("main_list_store")
self._backup_path = backup_path
self.init_data()
def show(self):
self._dialog_window.show()
def init_data(self):
try:
files = os.listdir(self._backup_path)
except FileNotFoundError as e:
print(e)
else:
for file in filter(lambda x: x.endswith(".zip"), files):
self._model.append((file.rstrip(".zip"), False))
def on_extract(self, item):
pass
def on_remove(self, item):
pass
if __name__ == "__main__":
pass

106
app/ui/backup_dialog.glade Normal file
View File

@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkListStore" id="main_list_store">
<columns>
<!-- column-name date -->
<column type="gchararray"/>
<!-- column-name selected -->
<column type="gboolean"/>
</columns>
</object>
<object class="GtkWindow" id="dialog_window">
<property name="width_request">480</property>
<property name="height_request">320</property>
<property name="can_focus">False</property>
<property name="modal">True</property>
<property name="destroy_with_parent">True</property>
<property name="icon_name">extract-archive</property>
<child type="titlebar">
<object class="GtkHeaderBar" id="header_bar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Backup tool</property>
<property name="spacing">2</property>
<property name="show_close_button">True</property>
<child>
<object class="GtkButton" id="extract_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Extract</property>
<signal name="clicked" handler="on_extract" swapped="no"/>
<child>
<object class="GtkImage" id="extract_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">extract-archive-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="remove_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Remove</property>
<signal name="clicked" handler="on_remove" swapped="no"/>
<child>
<object class="GtkImage" id="remove_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">user-trash-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<child>
<object class="GtkScrolledWindow" id="main_view_scrolled_window">
<property name="width_request">480</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="main_view">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">main_list_store</property>
<property name="headers_visible">False</property>
<property name="search_column">0</property>
<property name="rubber_banding">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="backup_date_column">
<property name="title" translatable="yes">Backup</property>
<property name="clickable">True</property>
<property name="alignment">0.5</property>
<property name="reorderable">True</property>
<property name="sort_column_id">0</property>
<child>
<object class="GtkCellRendererText" id="date_render">
<property name="xpad">10</property>
</object>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@@ -17,6 +17,7 @@ from app.eparser.enigma.bouquets import BqServiceType
from app.eparser.neutrino.bouquets import BqType
from app.properties import get_config, write_config, Profile
from app.tools.media import Player
from app.ui.backup import BackupDialog
from .download_dialog import DownloadDialog
from .iptv import IptvDialog, SearchUnavailableDialog, IptvListConfigurationDialog
from .search import SearchProvider
@@ -104,6 +105,7 @@ class Application(Gtk.Application):
"on_locked": self.on_locked,
"on_model_changed": self.on_model_changed,
"on_import_m3u": self.on_import_m3u,
"on_backup_tool_show": self.on_backup_tool_show,
"on_insert_marker": self.on_insert_marker,
"on_fav_press": self.on_fav_press,
"on_locate_in_services": self.on_locate_in_services,
@@ -1248,6 +1250,12 @@ class Application(Gtk.Application):
bq_services.append(ch.fav_id)
next(self.update_bouquet_services(self._fav_model, None, self._bq_selected), False)
# ***************** Backup tool ****************#
def on_backup_tool_show(self, item):
""" Shows backup tool dialog """
BackupDialog(self._main_window, self._options.get(self._profile).get("data_dir_path", "") + "backup/").show()
# ***************** Player *********************#
def on_play_stream(self, item=None):

View File

@@ -735,7 +735,7 @@ Author: Dmitriy Yefremov
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkModelButton">
<object class="GtkModelButton" id="sat_editor_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -749,7 +749,7 @@ Author: Dmitriy Yefremov
</packing>
</child>
<child>
<object class="GtkModelButton">
<object class="GtkModelButton" id="picons_downloader_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -763,7 +763,7 @@ Author: Dmitriy Yefremov
</packing>
</child>
<child>
<object class="GtkModelButton">
<object class="GtkModelButton" id="import_m3u_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -777,7 +777,21 @@ Author: Dmitriy Yefremov
</packing>
</child>
<child>
<object class="GtkSeparator">
<object class="GtkModelButton" id="backup_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="text" translatable="yes">Backup</property>
<signal name="clicked" handler="on_backup_tool_show" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="popover_menu_separator">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
@@ -788,7 +802,7 @@ Author: Dmitriy Yefremov
</packing>
</child>
<child>
<object class="GtkModelButton">
<object class="GtkModelButton" id="settings_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -802,7 +816,7 @@ Author: Dmitriy Yefremov
</packing>
</child>
<child>
<object class="GtkSeparator">
<object class="GtkSeparator" id="popover_menu_separator2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="margin_top">5</property>
@@ -815,7 +829,7 @@ Author: Dmitriy Yefremov
</packing>
</child>
<child>
<object class="GtkModelButton">
<object class="GtkModelButton" id="about_menu_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -980,7 +994,7 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="download_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">network-transmit-receive</property>
<property name="icon_name">network-transmit-receive-symbolic</property>
</object>
</child>
</object>
@@ -1001,7 +1015,7 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="save_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-save</property>
<property name="icon_name">document-save-symbolic</property>
</object>
</child>
</object>
@@ -1034,7 +1048,7 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="filter_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-spell-check</property>
<property name="icon_name">tools-check-spelling-symbolic</property>
</object>
</child>
</object>
@@ -1055,7 +1069,7 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="search_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-find</property>
<property name="icon_name">system-search-symbolic</property>
</object>
</child>
</object>
@@ -1111,7 +1125,7 @@ Author: Dmitriy Yefremov
<object class="GtkImage">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">go-jump</property>
<property name="icon_name">go-jump-symbolic</property>
</object>
</child>
</object>
@@ -1139,7 +1153,7 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="edit_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-edit</property>
<property name="icon_name">document-edit-symbolic</property>
</object>
</child>
</object>
@@ -1161,7 +1175,7 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="new_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-new</property>
<property name="icon_name">document-new-symbolic</property>
</object>
</child>
</object>
@@ -1193,14 +1207,14 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="sat_editor_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="stock">gtk-select-all</property>
<property name="icon_name">edit-select-all-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
<property name="position">3</property>
</packing>
</child>
<child>
@@ -1214,14 +1228,14 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="picons_downloader_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-image</property>
<property name="icon_name">insert-image-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
<property name="position">4</property>
</packing>
</child>
<child>
@@ -1235,14 +1249,35 @@ Author: Dmitriy Yefremov
<object class="GtkImage" id="import_m3u_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">insert-link</property>
<property name="icon_name">insert-link-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">7</property>
<property name="position">5</property>
</packing>
</child>
<child>
<object class="GtkButton" id="backup_tool_header_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="tooltip_text" translatable="yes">Backup</property>
<signal name="clicked" handler="on_backup_tool_show" swapped="no"/>
<child>
<object class="GtkImage" id="backup_tool_header_button_image">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="icon_name">extract-archive-symbolic</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">6</property>
</packing>
</child>
<child>
@@ -1446,7 +1481,7 @@ Author: Dmitriy Yefremov
<property name="height_request">32</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">edit-find-symbolic</property>
<property name="primary_icon_name">system-search-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<signal name="changed" handler="on_search" swapped="no"/>
@@ -1539,7 +1574,7 @@ Author: Dmitriy Yefremov
<property name="height_request">32</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_name">tools-check-spelling</property>
<property name="primary_icon_name">tools-check-spelling-symbolic</property>
<property name="primary_icon_activatable">False</property>
<property name="primary_icon_sensitive">False</property>
<signal name="search-changed" handler="on_filter_changed" swapped="no"/>