Finally add change versions feature

This commit is contained in:
heliguy4599
2024-10-11 21:34:26 -04:00
parent 9e6a066912
commit 2e3d246285
4 changed files with 31 additions and 8 deletions

View File

@@ -87,19 +87,29 @@ class ChangeVersionPage(Adw.NavigationPage):
else:
self.scrolled_window.set_child(self.versions_clamp)
def callback(self, did_error):
HostInfo.main_window.refresh_handler()
if not did_error:
HostInfo.main_window.toast_overlay.add_toast(Adw.Toast(title=_("Changed {}'s Version").format(self.package.info['name'])))
def error_callback(self, user_facing_label, error_message):
HostInfo.main_window.toast_overlay.add_toast(ErrorToast(user_facing_label, error_message).toast)
def on_apply(self, *args):
ChangeVersionWorker.change_version(
if ChangeVersionWorker.change_version(
self.mask_row.get_active(),
self.package, self.selected_commit,
None,
lambda did_error: print("done!", did_error),
print,
)
def __init__(self, main_window, package, **kwargs):
self.packages_page.changing_version,
self.callback,
self.error_callback,
):
self.packages_page.set_status(self.packages_page.changing_version)
def __init__(self, packages_page, package, **kwargs):
super().__init__(**kwargs)
# Extra Object Creation
self.packages_page = packages_page
self.package = package
# Apply

View File

@@ -40,6 +40,13 @@ template $PackagesPage : Adw.BreakpointBin {
$SidebarButton {}
}
}
Adw.ToolbarView changing_version_view {
[top]
Adw.HeaderBar {
[start]
$SidebarButton {}
}
}
Adw.NavigationSplitView packages_split {
sidebar-width-fraction: 0.5;
max-sidebar-width: 999999999;

View File

@@ -8,6 +8,7 @@ from .sidebar_button import SidebarButton
from .uninstall_dialog import UninstallDialog
from .loading_status import LoadingStatus
from .package_install_worker import PackageInstallWorker
from .change_version_worker import ChangeVersionWorker
import subprocess, os
@Gtk.Template(resource_path="/io/github/flattool/Warehouse/packages_page/packages_page.ui")
@@ -22,6 +23,7 @@ class PackagesPage(Adw.BreakpointBin):
loading_view = gtc()
uninstalling_view = gtc()
reinstalling_view = gtc()
changing_version_view = gtc()
no_filter_results = gtc()
reset_filters_button = gtc()
no_packages = gtc()
@@ -84,6 +86,8 @@ class PackagesPage(Adw.BreakpointBin):
self.stack.set_visible_child(self.uninstalling_view)
elif to_set is self.reinstalling:
self.stack.set_visible_child(self.reinstalling_view)
elif to_set is self.changing_version:
self.stack.set_visible_child(self.changing_version_view)
else:
self.stack.set_visible_child(self.packages_split)
self.status_stack.set_visible_child(to_set)
@@ -321,6 +325,8 @@ class PackagesPage(Adw.BreakpointBin):
self.uninstalling_view.set_content(self.uninstalling)
self.reinstalling = LoadingStatus(_("Reinstalling Package"), _("This could take a while"), True, PackageInstallWorker.cancel)
self.reinstalling_view.set_content(self.reinstalling)
self.changing_version = LoadingStatus(_("Changing Version"), _("This could take a while"), True, ChangeVersionWorker.cancel)
self.changing_version_view.set_content(self.changing_version)
self.properties_page = PropertiesPage(main_window, self)
self.filters_page = FiltersPage(main_window, self)
self.filter_settings = Gio.Settings.new("io.github.flattool.Warehouse.filter")

View File

@@ -263,7 +263,7 @@ class PropertiesPage(Adw.NavigationPage):
self.toast_overlay.add_toast(Adw.Toast(title=_("Copied {}").format(row.get_title())))
def change_version_handler(self, row):
page = ChangeVersionPage(self.main_window, self.package)
page = ChangeVersionPage(self.packages_page, self.package)
self.nav_view.push(page)
def reinstall_callback(self):