From d857c4b786fa91d5049a454f8e48e206114dbcbd Mon Sep 17 00:00:00 2001 From: DYefremov Date: Tue, 1 May 2018 21:05:18 +0300 Subject: [PATCH] append output for sat update dialog --- app/ftp.py | 2 +- app/ui/main_helper.py | 8 ++++++ app/ui/picons_downloader.py | 14 +++------- app/ui/satellites_dialog.glade | 47 ++++++++++++++++++++-------------- app/ui/satellites_dialog.py | 13 ++++++++-- 5 files changed, 52 insertions(+), 32 deletions(-) diff --git a/app/ftp.py b/app/ftp.py index 76697f0e..11eb39e5 100644 --- a/app/ftp.py +++ b/app/ftp.py @@ -67,7 +67,7 @@ def upload_data(*, properties, download_type=DownloadDataType.ALL, remove_unused tn = telnet(host=host, user=properties.get("telnet_user", "root"), password=properties.get("telnet_password", ""), timeout=properties.get("telnet_timeout", 5)) next(tn) - # terminate enigma or enigma + # terminate enigma or neutrino tn.send("init 4") with FTP(host=host) as ftp: diff --git a/app/ui/main_helper.py b/app/ui/main_helper.py index b414bf3d..337f7b8b 100644 --- a/app/ui/main_helper.py +++ b/app/ui/main_helper.py @@ -525,5 +525,13 @@ def get_base_model(model): return model +def append_text_to_tview(char, view): + """ Appending text and scrolling to a given line in the text view. """ + buf = view.get_buffer() + buf.insert_at_cursor(char) + insert = buf.get_insert() + view.scroll_to_mark(insert, 0.0, True, 0.0, 1.0) + + if __name__ == "__main__": pass diff --git a/app/ui/picons_downloader.py b/app/ui/picons_downloader.py index cb5b879c..dbad05b8 100644 --- a/app/ui/picons_downloader.py +++ b/app/ui/picons_downloader.py @@ -9,9 +9,9 @@ from app.commons import run_idle, run_task from app.ftp import upload_data, DownloadDataType from app.tools.picons import PiconsParser, parse_providers, Provider, convert_to from app.properties import Profile -from app.ui.uicommons import Gtk, Gdk, UI_RESOURCES_PATH, TEXT_DOMAIN -from app.ui.dialogs import show_dialog, DialogType, get_message -from app.ui.main_helper import update_entry_data +from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, TEXT_DOMAIN +from .dialogs import show_dialog, DialogType, get_message +from .main_helper import update_entry_data, append_text_to_tview class PiconsDialog: @@ -166,13 +166,7 @@ class PiconsDialog: @run_idle def append_output(self, char): - buf = self._text_view.get_buffer() - buf.insert_at_cursor(char) - self.scroll_to_end(buf) - - def scroll_to_end(self, buf): - insert = buf.get_insert() - self._text_view.scroll_to_mark(insert, 0.0, True, 0.0, 1.0) + append_text_to_tview(char, self._text_view) def resize(self, path): if self._resize_no_radio_button.get_active(): diff --git a/app/ui/satellites_dialog.glade b/app/ui/satellites_dialog.glade index a7341bdb..2ce681b5 100644 --- a/app/ui/satellites_dialog.glade +++ b/app/ui/satellites_dialog.glade @@ -1575,6 +1575,7 @@ + 150 True True in @@ -1672,21 +1673,6 @@ True False - - - True - False - True - Update - True - gtk-refresh - - - - True - True - - True @@ -1702,11 +1688,27 @@ True + + + True + False + True + Update + True + gtk-refresh + + + + True + True + + True False False + True Receive True gtk-goto-bottom @@ -1732,18 +1734,25 @@ True True - - 100 + + 120 True True - False + in + + + True + True + False + + True False - expander + Extra: diff --git a/app/ui/satellites_dialog.py b/app/ui/satellites_dialog.py index ff61bd88..429722cd 100644 --- a/app/ui/satellites_dialog.py +++ b/app/ui/satellites_dialog.py @@ -6,7 +6,7 @@ from app.eparser import get_satellites, write_satellites, Satellite, Transponder from app.tools.satellites import SatellitesParser from .uicommons import Gtk, Gdk, UI_RESOURCES_PATH, TEXT_DOMAIN, MOVE_KEYS from .dialogs import show_dialog, DialogType, WaitDialog -from .main_helper import move_items, scroll_to +from .main_helper import move_items, scroll_to, append_text_to_tview def show_satellites_dialog(transient, options): @@ -457,6 +457,8 @@ class SatellitesUpdateDialog: self._main_model = main_model # self._dialog.get_content_area().set_border_width(0) self._sat_view = builder.get_object("sat_update_tree_view") + self._sat_update_expander = builder.get_object("sat_update_expander") + self._text_view = builder.get_object("text_view") self._receive_sat_list_tool_button = builder.get_object("receive_sat_list_tool_button") self._download_task = False self._parser = None @@ -502,10 +504,13 @@ class SatellitesUpdateDialog: for sat in [r for r in model if r[4]]: if not self._download_task: return - print("Process:", sat[0]) + self._sat_update_expander.set_expanded(True) + text = "Process: {}\n" + self.append_output(text.format(sat[0])) sats.append(self._parser.get_satellite(sat[:-1])) sats = {s[2]: s for s in sats} # key = position, v = satellite + for row in self._main_model: pos = row[-1] if pos in sats: @@ -513,6 +518,10 @@ class SatellitesUpdateDialog: print("The remaining satellites:", sats) self._download_task = False + @run_idle + def append_output(self, text): + append_text_to_tview(text, self._text_view) + @run_idle def on_cancel_receive(self, item=None): self._download_task = False