From b62b5040c7ea31468b59bc276f2daec267efe932 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Sun, 30 Apr 2023 23:18:41 -0500 Subject: [PATCH] Trying to insure eventual gc cleanup --- .../solarfm/core/mixins/ui/grid_mixin.py | 2 +- .../solarfm/core/mixins/ui/tab_mixin.py | 34 +++++++++++++----- .../core/widgets/files_view/tab_mixin.py | 36 ++++++++++++++----- 3 files changed, 55 insertions(+), 17 deletions(-) diff --git a/src/versions/solarfm-0.0.1/solarfm/core/mixins/ui/grid_mixin.py b/src/versions/solarfm-0.0.1/solarfm/core/mixins/ui/grid_mixin.py index 9e7fc42..3dcc163 100644 --- a/src/versions/solarfm-0.0.1/solarfm/core/mixins/ui/grid_mixin.py +++ b/src/versions/solarfm-0.0.1/solarfm/core/mixins/ui/grid_mixin.py @@ -18,7 +18,7 @@ from ...widgets.icon_tree_widget import IconTreeWidget class GridMixin: """docstring for GridMixin""" - def load_store(self, tab, store, save_state=False): + def load_store(self, tab, store, save_state = False): store.clear() dir = tab.get_current_directory() files = tab.get_files() diff --git a/src/versions/solarfm-0.0.1/solarfm/core/mixins/ui/tab_mixin.py b/src/versions/solarfm-0.0.1/solarfm/core/mixins/ui/tab_mixin.py index 54fb309..d75fac0 100644 --- a/src/versions/solarfm-0.0.1/solarfm/core/mixins/ui/tab_mixin.py +++ b/src/versions/solarfm-0.0.1/solarfm/core/mixins/ui/tab_mixin.py @@ -52,23 +52,41 @@ class TabMixin(GridMixin): - def close_tab(self, button, eve=None): + def close_tab(self, button, eve = None): notebook = button.get_parent().get_parent() if notebook.get_n_pages() == 1: return - wid = int(notebook.get_name()[-1]) - tid = self.get_id_from_tab_box(button.get_parent()) - scroll = self.builder.get_object(f"{wid}|{tid}") - page = notebook.page_num(scroll) - tab = self.get_fm_window(wid).get_tab_by_id(tid) - watcher = tab.get_dir_watcher() + tab_box = button.get_parent() + wid = int(notebook.get_name()[-1]) + tid = self.get_id_from_tab_box(tab_box) + scroll = self.builder.get_object(f"{wid}|{tid}") + icon_grid = scroll.get_children()[0] + store = icon_grid.get_model() + page_num = notebook.page_num(scroll) + tab = self.get_fm_window(wid).get_tab_by_id(tid) + watcher = tab.get_dir_watcher() watcher.cancel() self.get_fm_window(wid).delete_tab_by_id(tid) - notebook.remove_page(page) + + store.clear() + icon_grid.destroy() + scroll.destroy() + tab_box.destroy() + notebook.remove_page(page_num) + + del page_num + del store + del icon_grid + del scroll + del tab_box + del watcher + del tab + if not settings.is_trace_debug(): self.fm_controller.save_state() + self.set_window_title() # NOTE: Not actually getting called even tho set in the glade file... diff --git a/src/versions/solarfm-0.0.1/solarfm/core/widgets/files_view/tab_mixin.py b/src/versions/solarfm-0.0.1/solarfm/core/widgets/files_view/tab_mixin.py index 3f0e60e..21c3bd1 100644 --- a/src/versions/solarfm-0.0.1/solarfm/core/widgets/files_view/tab_mixin.py +++ b/src/versions/solarfm-0.0.1/solarfm/core/widgets/files_view/tab_mixin.py @@ -52,21 +52,41 @@ class TabMixin(GridMixin): self.set_file_watcher(tab) - def close_tab(self, button, eve=None): + def close_tab(self, button, eve = None): notebook = button.get_parent().get_parent() if notebook.get_n_pages() == 1: return - wid = int(notebook.get_name()[-1]) - tid = self.get_id_from_tab_box(button.get_parent()) - scroll = self.builder.get_object(f"{wid}|{tid}") - page = notebook.page_num(scroll) - tab = self.get_fm_window(wid).get_tab_by_id(tid) - watcher = tab.get_dir_watcher() + tab_box = button.get_parent() + wid = int(notebook.get_name()[-1]) + tid = self.get_id_from_tab_box(tab_box) + scroll = self.builder.get_object(f"{wid}|{tid}") + icon_grid = scroll.get_children()[0] + store = icon_grid.get_model() + page_num = notebook.page_num(scroll) + tab = self.get_fm_window(wid).get_tab_by_id(tid) + watcher = tab.get_dir_watcher() watcher.cancel() self.get_fm_window(wid).delete_tab_by_id(tid) - notebook.remove_page(page) + + icon_grid = scroll.get_children()[0] + store = icon_grid.get_model() + + store.clear() + icon_grid.destroy() + scroll.destroy() + tab_box.destroy() + notebook.remove_page(page_num) + + del page_num + del store + del icon_grid + del scroll + del tab_box + del watcher + del tab + if not settings.is_trace_debug(): self.fm_controller.save_state() self.set_window_title()