data deletion optimization

This commit is contained in:
DYefremov
2021-07-25 22:42:38 +03:00
parent a7a2809028
commit bca138993a
2 changed files with 10 additions and 7 deletions

View File

@@ -74,8 +74,8 @@ class Application(Gtk.Application):
ALT_MODEL_NAME = "alt_list_store"
DRAG_SEP = "::::"
DEL_FACTOR = 50 # Batch size to delete in one pass.
FAV_FACTOR = DEL_FACTOR * 2
DEL_FACTOR = 100 # Batch size to delete in one pass.
FAV_FACTOR = DEL_FACTOR * 5
_TV_TYPES = ("TV", "TV (HD)", "TV (UHD)", "TV (H264)")
@@ -905,11 +905,16 @@ class Application(Gtk.Application):
yield True
self.update_fav_num_column(model)
self.on_model_changed(self._fav_model)
self._wait_dialog.hide()
yield True
def delete_services(self, itrs, model, rows):
""" Deleting services """
if self._services_load_spinner.get_property("active"):
show_dialog(DialogType.ERROR, self._main_window, get_message("Data loading in progress!"))
return
for index, s_itr in enumerate(get_base_itrs(itrs, model)):
self._services_model.remove(s_itr)
if index % self.DEL_FACTOR == 0:
@@ -931,6 +936,7 @@ class Application(Gtk.Application):
for f_itr in filter(lambda r: r[Column.FAV_ID] in srv_ids_to_delete, self._fav_model):
self._fav_model.remove(f_itr.iter)
self.on_model_changed(self._services_model)
self.update_fav_num_column(self._fav_model)
self.update_sat_positions()
self._wait_dialog.hide()
@@ -954,6 +960,7 @@ class Application(Gtk.Application):
self._bq_selected = ""
self._bq_name_label.set_text(self._bq_selected)
self.on_model_changed(model)
self._wait_dialog.hide()
yield True
@@ -2263,8 +2270,7 @@ class Application(Gtk.Application):
value = None if value else LOCKED_ICON if flag is Flag.LOCK else HIDE_ICON
model.set_value(itr, 1 if flag is Flag.LOCK else 2, value)
@run_idle
def on_model_changed(self, model, path, itr=None):
def on_model_changed(self, model, path=None, itr=None):
model_name = model.get_name()
if model_name == self.FAV_MODEL_NAME:

View File

@@ -189,7 +189,6 @@ Author: Dmitriy Yefremov
<!-- column-name type -->
<column type="gchararray"/>
</columns>
<signal name="row-deleted" handler="on_model_changed" swapped="no"/>
<signal name="row-inserted" handler="on_model_changed" swapped="no"/>
</object>
<object class="GtkImage" id="control_image">
@@ -222,7 +221,6 @@ Author: Dmitriy Yefremov
<!-- column-name background -->
<column type="GdkRGBA"/>
</columns>
<signal name="row-deleted" handler="on_model_changed" swapped="no"/>
<signal name="row-inserted" handler="on_model_changed" swapped="no"/>
</object>
<object class="GtkMenu" id="fav_popup_menu">
@@ -818,7 +816,6 @@ Author: Dmitriy Yefremov
<!-- column-name background -->
<column type="GdkRGBA"/>
</columns>
<signal name="row-deleted" handler="on_model_changed" swapped="no"/>
</object>
<object class="GtkTreeModelFilter" id="services_model_filter">
<property name="child_model">services_list_store</property>