scroll to for bouquets

This commit is contained in:
Dmitriy Yefremov
2017-11-18 20:49:53 +03:00
parent 4db934621f
commit 958185e26b
2 changed files with 30 additions and 45 deletions

View File

@@ -63,6 +63,7 @@ class MainAppWindow:
self.__rows_buffer = []
self.__channels = {}
self.__bouquets = {}
self.__bouquets_to_del = []
builder = Gtk.Builder()
builder.add_from_file("app/ui/main_window.glade")
@@ -239,10 +240,8 @@ class MainAppWindow:
""" Deleting bouquet """
self.__bouquets.pop(bouquet)
self.__fav_model.clear()
# removing bouquet file
bqf = "{}userbouquet.{}.{}".format(self.__options["data_dir_path"], *bouquet.split(":"))
with suppress(FileNotFoundError):
os.remove(bqf)
bouquet_file_name = "{}userbouquet.{}.{}".format(self.__options["data_dir_path"], *bouquet.split(":"))
self.__bouquets_to_del.append(bouquet_file_name)
def on_new_bouquet(self, view):
""" Creates a new item in the bouquets tree """
@@ -261,23 +260,28 @@ class MainAppWindow:
key = "{}:{}".format(bq_name, bq_type)
response = show_dialog("input_dialog", self.__main_window, bq_name)
if response == Gtk.ResponseType.CANCEL:
return
bq = response, bq_type
if model.iter_n_children(itr): # parent
model.insert(itr, 0, bq)
ch_itr = model.insert(itr, 0, bq)
self.scroll_to(model.get_path(ch_itr), paths, view)
else:
parent_itr = model.iter_parent(itr)
if parent_itr:
index = int(model.get_path(itr)[1]) + 1
model.insert(parent_itr, index, bq)
else:
model.append(itr, bq)
p_itr = model.iter_parent(itr)
it = model.insert(p_itr, int(model.get_path(itr)[1]) + 1, bq) if p_itr else model.append(itr, bq)
self.scroll_to(model.get_path(it), paths, view)
self.__bouquets[key] = []
def scroll_to(self, path, paths, view):
""" Scrolling to and selecting given path """
view.expand_row(paths[0], 0)
selection = view.get_selection()
selection.unselect_all()
view.scroll_to_cell(path, None)
selection.select_path(path)
def on_bouquets_edit(self, view):
""" Rename bouquets """
if not self.is_bouquet_selected():
@@ -437,6 +441,12 @@ class MainAppWindow:
bouquets = []
services_model = self.__services_view.get_model()
# removing bouquet files
for bqf in self.__bouquets_to_del:
with suppress(FileNotFoundError):
os.remove(bqf)
self.__bouquets_to_del.clear()
def parse_bouquets(model, b_path, itr):
if model.iter_has_child(itr):
num_of_children = model.iter_n_children(itr)

View File

@@ -109,16 +109,6 @@
<property name="can_focus">False</property>
<property name="icon_name">mail-send-receive</property>
</object>
<object class="GtkTreeViewColumn" id="package_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Package</property>
</object>
<object class="GtkTreeViewColumn" id="service_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Service</property>
</object>
<object class="GtkListStore" id="services_list_store">
<columns>
<!-- column-name cas -->
@@ -677,7 +667,7 @@
</packing>
</child>
<child>
<object class="GtkPaned" id="paned1">
<object class="GtkPaned" id="main_paned">
<property name="height_request">250</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -728,7 +718,6 @@
<child>
<object class="GtkTreeViewColumn" id="cas_column">
<property name="visible">False</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">CAS</property>
<child>
<object class="GtkCellRendererText" id="cas_cellrenderertext1"/>
@@ -741,7 +730,6 @@
<child>
<object class="GtkTreeViewColumn" id="type_column">
<property name="visible">False</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Type</property>
<child>
<object class="GtkCellRendererText" id="type_cellrenderertext2"/>
@@ -752,9 +740,8 @@
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="service_column2">
<object class="GtkTreeViewColumn" id="service_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Service</property>
<property name="expand">True</property>
<property name="reorderable">True</property>
@@ -768,9 +755,8 @@
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="package_column2">
<object class="GtkTreeViewColumn" id="package_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Package</property>
<property name="expand">True</property>
<property name="reorderable">True</property>
@@ -803,7 +789,6 @@
<child>
<object class="GtkTreeViewColumn" id="ssid_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Ssid</property>
<property name="expand">True</property>
<property name="reorderable">True</property>
@@ -821,7 +806,6 @@
<child>
<object class="GtkTreeViewColumn" id="freq_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Freq</property>
<property name="expand">True</property>
<property name="reorderable">True</property>
@@ -839,7 +823,6 @@
<child>
<object class="GtkTreeViewColumn" id="rate_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Rate</property>
<property name="expand">True</property>
<property name="reorderable">True</property>
@@ -857,7 +840,6 @@
<child>
<object class="GtkTreeViewColumn" id="pol_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Pol</property>
<property name="expand">True</property>
<property name="reorderable">True</property>
@@ -875,7 +857,6 @@
<child>
<object class="GtkTreeViewColumn" id="fec_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">FEC</property>
<property name="expand">True</property>
<property name="reorderable">True</property>
@@ -893,7 +874,6 @@
<child>
<object class="GtkTreeViewColumn" id="system_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">System</property>
<property name="expand">True</property>
<property name="reorderable">True</property>
@@ -927,7 +907,6 @@
<child>
<object class="GtkTreeViewColumn" id="data_id_column">
<property name="visible">False</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">data_id</property>
<child>
<object class="GtkCellRendererText" id="data_id_cellrenderertext"/>
@@ -940,7 +919,6 @@
<child>
<object class="GtkTreeViewColumn" id="fav_id_column">
<property name="visible">False</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">fav_id</property>
<child>
<object class="GtkCellRendererText" id="fav_id_cellrenderertext"/>
@@ -953,7 +931,6 @@
<child>
<object class="GtkTreeViewColumn" id="transponder_column">
<property name="visible">False</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">transponder</property>
<child>
<object class="GtkCellRendererText" id="transponder_cellrenderertext3"/>
@@ -975,11 +952,11 @@
</object>
<packing>
<property name="resize">True</property>
<property name="shrink">True</property>
<property name="shrink">False</property>
</packing>
</child>
<child>
<object class="GtkPaned" id="paned3">
<object class="GtkPaned" id="fav_bouquets_paned">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="wide_handle">True</property>
@@ -1028,12 +1005,11 @@
</child>
<child>
<object class="GtkTreeViewColumn" id="num_column">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Num</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText" id="num_cellrenderertext"/>
<object class="GtkCellRendererText" id="num_cellrenderertext">
<property name="xalign">0.20000000298023224</property>
</object>
<attributes>
<attribute name="text">0</attribute>
</attributes>
@@ -1043,7 +1019,6 @@
<child>
<object class="GtkTreeViewColumn" id="service_column1">
<property name="resizable">True</property>
<property name="sizing">autosize</property>
<property name="title" translatable="yes">Service</property>
<property name="expand">True</property>
<child>