mirror of
https://github.com/morgan9e/warehouse
synced 2026-04-15 00:34:42 +09:00
Initial work for remotes page
This commit is contained in:
@@ -25,6 +25,7 @@ import time
|
||||
from gi.repository import Adw, Gdk, Gio, GLib, Gtk
|
||||
from .host_info import HostInfo
|
||||
from .packages_page import PackagesPage
|
||||
from .remotes_page import RemotesPage
|
||||
from .user_data_page import UserDataPage
|
||||
from .const import Config
|
||||
from .error_toast import ErrorToast
|
||||
@@ -83,7 +84,7 @@ class WarehouseWindow(Adw.ApplicationWindow):
|
||||
file_drop = Gtk.DropTarget.new(Gio.File, Gdk.DragAction.COPY)
|
||||
self.pages = {
|
||||
self.packages_row: PackagesPage(main_window=self),
|
||||
|
||||
self.remotes_row: RemotesPage(main_window=self),
|
||||
self.user_data_row: UserDataPage(main_window=self),
|
||||
}
|
||||
|
||||
@@ -108,7 +109,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(2).activate()
|
||||
self.navigation_row_listbox.get_row_at_index(1).activate()
|
||||
self.main_split.set_show_sidebar(True)
|
||||
|
||||
self.start_loading()
|
||||
|
||||
@@ -13,6 +13,7 @@ blueprints = custom_target('blueprints',
|
||||
'user_data_page/data_box.blp',
|
||||
'user_data_page/user_data_page.blp',
|
||||
'user_data_page/data_subpage.blp',
|
||||
'remotes_page/remotes_page.blp',
|
||||
'change_version_page/change_version_page.blp',
|
||||
),
|
||||
output: '.',
|
||||
@@ -66,6 +67,7 @@ warehouse_sources = [
|
||||
'user_data_page/data_box.py',
|
||||
'user_data_page/user_data_page.py',
|
||||
'user_data_page/data_subpage.py',
|
||||
'remotes_page/remotes_page.py',
|
||||
'../data/style.css',
|
||||
]
|
||||
|
||||
|
||||
64
src/remotes_page/remotes_page.blp
Normal file
64
src/remotes_page/remotes_page.blp
Normal file
@@ -0,0 +1,64 @@
|
||||
using Gtk 4.0;
|
||||
using Adw 1;
|
||||
|
||||
template $RemotesPage : Adw.NavigationPage {
|
||||
title: _("Manage Remotes");
|
||||
Adw.ToolbarView {
|
||||
[top]
|
||||
Adw.HeaderBar {
|
||||
[start]
|
||||
ToggleButton sidebar_button {
|
||||
icon-name: "dock-left-symbolic";
|
||||
tooltip-text: _("Show Sidebar");
|
||||
}
|
||||
}
|
||||
Adw.ToastOverlay {
|
||||
Stack stack {
|
||||
Adw.StatusPage loading_remotes {
|
||||
visible: false;
|
||||
title: _("Loading Remotes");
|
||||
description: _("This should only take a moment");
|
||||
child:
|
||||
Spinner {
|
||||
spinning: true;
|
||||
}
|
||||
;
|
||||
}
|
||||
Adw.StatusPage no_packages {
|
||||
visible: false;
|
||||
title: _("No Remotes Found");
|
||||
description: _("Warehouse cannot see the current remotes or your system has no remotes added");
|
||||
icon-name: "error-symbolic";
|
||||
}
|
||||
Adw.PreferencesPage content_page {
|
||||
Adw.PreferencesGroup current_remotes {
|
||||
title: _("Current Remotes");
|
||||
description: _("Remotes available on your system");
|
||||
Adw.ActionRow {
|
||||
title: "test";
|
||||
}
|
||||
Adw.ActionRow {
|
||||
title: "test";
|
||||
}
|
||||
Adw.ActionRow {
|
||||
title: "test";
|
||||
}
|
||||
}
|
||||
Adw.PreferencesGroup new_remotes {
|
||||
title: _("Add Remotes");
|
||||
description: _("Add new remotes to get more software");
|
||||
Adw.ActionRow {
|
||||
title: "test";
|
||||
}
|
||||
Adw.ActionRow {
|
||||
title: "test";
|
||||
}
|
||||
Adw.ActionRow {
|
||||
title: "test";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
26
src/remotes_page/remotes_page.py
Normal file
26
src/remotes_page/remotes_page.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from gi.repository import Adw, Gtk, GLib, Gio
|
||||
from .host_info import HostInfo
|
||||
from .error_toast import ErrorToast
|
||||
import subprocess
|
||||
|
||||
@Gtk.Template(resource_path="/io/github/flattool/Warehouse/remotes_page/remotes_page.ui")
|
||||
class RemotesPage(Adw.NavigationPage):
|
||||
__gtype_name__ = 'RemotesPage'
|
||||
gtc = Gtk.Template.Child
|
||||
|
||||
sidebar_button = gtc()
|
||||
|
||||
# Referred to in the main window
|
||||
# It is used to determine if a new page should be made or not
|
||||
# This must be set to the created object from within the class's __init__ method
|
||||
instance = None
|
||||
|
||||
def __init__(self, main_window, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
||||
# Extra Object Creation
|
||||
ms = main_window.main_split
|
||||
|
||||
# Connections
|
||||
ms.connect("notify::show-sidebar", lambda *_: self.sidebar_button.set_active(ms.get_show_sidebar()))
|
||||
self.sidebar_button.connect("toggled", lambda *_: ms.set_show_sidebar(self.sidebar_button.get_active()))
|
||||
@@ -198,7 +198,7 @@ class UserDataPage(Adw.BreakpointBin):
|
||||
|
||||
# Connections
|
||||
# self.sidebar_button.connect("clicked", lambda *_, ms=main_window.main_split: ms.set_show_sidebar(not ms.get_show_sidebar() if not ms.get_collapsed() else True))
|
||||
main_window.main_split.connect("notify::show-sidebar", lambda *_: self.sidebar_button.set_active(ms.get_show_sidebar()))
|
||||
ms.connect("notify::show-sidebar", lambda *_: self.sidebar_button.set_active(ms.get_show_sidebar()))
|
||||
self.sidebar_button.connect("toggled", lambda *_: ms.set_show_sidebar(self.sidebar_button.get_active()))
|
||||
self.stack.connect("notify::visible-child", self.view_change_handler)
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<file preprocess="xml-stripblanks">user_data_page/data_box.ui</file>
|
||||
<file preprocess="xml-stripblanks">user_data_page/user_data_page.ui</file>
|
||||
<file preprocess="xml-stripblanks">user_data_page/data_subpage.ui</file>
|
||||
<file preprocess="xml-stripblanks">remotes_page/remotes_page.ui</file>
|
||||
<!-- <file preprocess="xml-stripblanks">../data/io.github.flattool.Warehouse.metainfo.xml.in</file> -->
|
||||
</gresource>
|
||||
<gresource prefix="/io/github/flattool/Warehouse/icons/scalable/actions/">
|
||||
|
||||
Reference in New Issue
Block a user