mirror of
https://github.com/morgan9e/warehouse
synced 2026-04-14 00:04:08 +09:00
Finally add change versions feature
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user