diff --git a/src/main_window/window.py b/src/main_window/window.py
index f392fb9..32cabf1 100644
--- a/src/main_window/window.py
+++ b/src/main_window/window.py
@@ -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()
diff --git a/src/meson.build b/src/meson.build
index 139d30d..16f2ae2 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -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',
]
diff --git a/src/remotes_page/remotes_page.blp b/src/remotes_page/remotes_page.blp
new file mode 100644
index 0000000..4ac76f9
--- /dev/null
+++ b/src/remotes_page/remotes_page.blp
@@ -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";
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/remotes_page/remotes_page.py b/src/remotes_page/remotes_page.py
new file mode 100644
index 0000000..282bf51
--- /dev/null
+++ b/src/remotes_page/remotes_page.py
@@ -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()))
\ No newline at end of file
diff --git a/src/user_data_page/user_data_page.py b/src/user_data_page/user_data_page.py
index c36bde8..fd9a868 100644
--- a/src/user_data_page/user_data_page.py
+++ b/src/user_data_page/user_data_page.py
@@ -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)
diff --git a/src/warehouse.gresource.xml b/src/warehouse.gresource.xml
index fdccf7a..d16d910 100644
--- a/src/warehouse.gresource.xml
+++ b/src/warehouse.gresource.xml
@@ -12,6 +12,7 @@
user_data_page/data_box.ui
user_data_page/user_data_page.ui
user_data_page/data_subpage.ui
+ remotes_page/remotes_page.ui