diff --git a/src/main_window/window.blp b/src/main_window/window.blp index 0141a56..e36c75e 100644 --- a/src/main_window/window.blp +++ b/src/main_window/window.blp @@ -130,6 +130,10 @@ template $WarehouseWindow: Adw.ApplicationWindow { } } ; + content: + Stack stack { + } + ; } ; } diff --git a/src/main_window/window.py b/src/main_window/window.py index 765d1bc..9825f1e 100644 --- a/src/main_window/window.py +++ b/src/main_window/window.py @@ -35,6 +35,7 @@ class WarehouseWindow(Adw.ApplicationWindow): gtc = Gtk.Template.Child main_breakpoint = gtc() main_split = gtc() + stack = gtc() refresh_button = gtc() navigation_row_listbox = gtc() packages_row = gtc() @@ -54,17 +55,7 @@ class WarehouseWindow(Adw.ApplicationWindow): row = row.get_child() page = self.pages[row] - if hide_sidebar and self.main_split.get_collapsed(): - self.main_split.set_show_sidebar(False) - - if type(self.main_split.get_content()) == page: - # Skip when the user clicks on the row that is already showing the page - return - - if page.instance: - self.main_split.set_content(page.instance) - else: - self.main_split.set_content(page(main_window=self)) + self.stack.set_visible_child(page) def start_loading(self, *args): for _, page in self.pages.items(): @@ -88,11 +79,14 @@ class WarehouseWindow(Adw.ApplicationWindow): event_controller = Gtk.EventControllerKey() file_drop = Gtk.DropTarget.new(Gio.File, Gdk.DragAction.COPY) self.pages = { - self.packages_row: PackagesPage, + self.packages_row: PackagesPage(main_window=self), - self.user_data_row: UserDataPage, + self.user_data_row: UserDataPage(main_window=self), } + for _, page in self.pages.items(): + self.stack.add_child(page) + # Apply ErrorToast.main_window = self self.settings.bind("window-width", self, "default-width", Gio.SettingsBindFlags.DEFAULT) @@ -111,7 +105,7 @@ class WarehouseWindow(Adw.ApplicationWindow): # file_drop.connect("drop", self.drop_callback) self.refresh_button.connect("clicked", self.refresh_handler) - self.navigation_row_listbox.get_row_at_index(0).activate() + self.navigation_row_listbox.get_row_at_index(2).activate() self.main_split.set_show_sidebar(True) self.start_loading() diff --git a/src/user_data_page/active_data_page.py b/src/user_data_page/active_data_page.py index 0efb0b9..04ca401 100644 --- a/src/user_data_page/active_data_page.py +++ b/src/user_data_page/active_data_page.py @@ -2,20 +2,30 @@ from gi.repository import Adw, Gtk, GLib, Gio, Pango from .host_info import HostInfo from .error_toast import ErrorToast from .data_box import DataBox +import pathlib, os @Gtk.Template(resource_path="/io/github/flattool/Warehouse/user_data_page/active_data_page.ui") class ActiveDataPage(Gtk.ScrolledWindow): __gtype_name__ = 'ActiveDataPage' gtc = Gtk.Template.Child + flow_box = gtc() + + def generate_list(self, *args): + data = f"{HostInfo.home}/.var/app" + for folder in os.listdir(data): + print(folder) + def __init__(self, main_window, data_page, **kwargs): super().__init__(**kwargs) + self.generate_list() + # self.select_button.connect("toggled", lambda *_: self.set_selection_mode(self.select_button.get_active())) # self.flow_box.connect("child-activated", lambda _, item: (cb := (row := item.get_child()).check_button).set_active((not cb.get_active()) if row.get_activatable() else False)) - # Extra Object Creation + # Extra Object Creation - # Apply + # Apply - # Connections \ No newline at end of file + # Connections \ No newline at end of file