mirror of
https://github.com/morgan9e/warehouse
synced 2026-04-14 00:04:08 +09:00
Fix bug when selecting leftover snapshots
This commit is contained in:
@@ -130,7 +130,7 @@ class SnapshotPage(Adw.BreakpointBin):
|
||||
|
||||
def leftover_select_handler(self, listbox, row, should_show_content=True, refresh=False):
|
||||
self.active_listbox.select_row(None)
|
||||
self.list_page.set_snapshots(row.package, refresh)
|
||||
self.list_page.set_snapshots(row.folder, refresh)
|
||||
self.split_view.set_show_content(should_show_content)
|
||||
|
||||
def select_first_row(self):
|
||||
|
||||
@@ -31,6 +31,7 @@ template $SnapshotsListPage : Adw.NavigationPage {
|
||||
}
|
||||
[bottom]
|
||||
ActionBar {
|
||||
revealed: bind new_button.visible;
|
||||
[center]
|
||||
Button new_button {
|
||||
margin-top: 3;
|
||||
|
||||
@@ -30,14 +30,22 @@ class SnapshotsListPage(Adw.NavigationPage):
|
||||
self.listbox.append(row)
|
||||
self.listbox.get_row_at_index(i).set_activatable(False)
|
||||
|
||||
def set_snapshots(self, package, refresh=False):
|
||||
folder = package.info["id"]
|
||||
if self.current_folder == folder and not refresh:
|
||||
def set_snapshots(self, package_or_folder, refresh=False):
|
||||
if package_or_folder == self.package_or_folder and not refresh:
|
||||
return
|
||||
|
||||
self.current_package = package
|
||||
|
||||
folder = None
|
||||
self.package_or_folder = package_or_folder
|
||||
if type(package_or_folder) is str:
|
||||
self.set_title(package_or_folder)
|
||||
folder = package_or_folder
|
||||
self.new_button.set_visible(False)
|
||||
else:
|
||||
folder = package_or_folder.info["id"]
|
||||
self.set_title(_("{} Snapshots").format(package_or_folder.info["name"]))
|
||||
self.new_button.set_visible(os.path.exists(package_or_folder.data_path))
|
||||
|
||||
self.current_folder = folder
|
||||
self.set_title(_("{} Snapshots").format(package.info["name"]))
|
||||
self.snapshots_rows.clear()
|
||||
self.listbox.remove_all()
|
||||
|
||||
@@ -56,10 +64,10 @@ class SnapshotsListPage(Adw.NavigationPage):
|
||||
|
||||
def on_done(self):
|
||||
self.parent_page.status_stack.set_visible_child(self.parent_page.split_view)
|
||||
self.set_snapshots(self.current_package, refresh=True)
|
||||
self.set_snapshots(self.package_or_folder, refresh=True)
|
||||
|
||||
def on_new(self, button):
|
||||
dialog = NewSnapshotDialog(self.parent_page, self.parent_page.snapshotting_status, self.on_done, self.current_package)
|
||||
dialog = NewSnapshotDialog(self.parent_page, self.parent_page.snapshotting_status, self.on_done, self.package_or_folder)
|
||||
dialog.create_button.connect("clicked", lambda *_: self.parent_page.status_stack.set_visible_child(self.parent_page.snapshotting_view))
|
||||
dialog.present(HostInfo.main_window)
|
||||
|
||||
@@ -70,7 +78,7 @@ class SnapshotsListPage(Adw.NavigationPage):
|
||||
self.parent_page = parent_page
|
||||
self.snapshots_path = HostInfo.snapshots_path
|
||||
self.current_folder = None
|
||||
self.current_package = None
|
||||
self.package_or_folder = None
|
||||
self.snapshots_rows = []
|
||||
|
||||
# Connections
|
||||
|
||||
Reference in New Issue
Block a user