flatpak update dialog
This commit is contained in:
parent
5364e4fdf5
commit
521dfe6ecb
@ -8,10 +8,9 @@
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="df2ca9e1-e07d-43f4-bc68-0a6113fc1fa2" name="Changes" comment="">
|
||||
<change afterPath="$PROJECT_DIR$/data/com.github.pikaos-linux.pikmanupdatemanager.gschema.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/locales/en_US.json" beforeDir="false" afterPath="$PROJECT_DIR$/locales/en_US.json" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/bin/gui/flatpak_update_page/mod.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/bin/gui/flatpak_update_page/mod.rs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/bin/gui/flatpak_update_page/process.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/bin/gui/flatpak_update_page/process.rs" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/src/bin/gui/build_ui/mod.rs" beforeDir="false" afterPath="$PROJECT_DIR$/src/bin/gui/build_ui/mod.rs" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@ -166,7 +165,7 @@
|
||||
<workItem from="1720668957580" duration="53000" />
|
||||
<workItem from="1720669130008" duration="560000" />
|
||||
<workItem from="1721340242546" duration="6495000" />
|
||||
<workItem from="1721388775654" duration="5094000" />
|
||||
<workItem from="1721388775654" duration="8284000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
24
data/com.github.pikaos-linux.pikmanupdatemanager.gschema.xml
Normal file
24
data/com.github.pikaos-linux.pikmanupdatemanager.gschema.xml
Normal file
@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<schemalist>
|
||||
<schema id="com.github.pikaos-linux.pikmanupdatemanager" path="/com/github/pikaos-linux/pikmanupdatemanager/">
|
||||
<key name="window-width" type="i">
|
||||
<default>1400</default>
|
||||
<summary>Default window width</summary>
|
||||
</key>
|
||||
<key name="window-height" type="i">
|
||||
<default>700</default>
|
||||
<summary>Default window height</summary>
|
||||
</key>
|
||||
<key name="is-maximized" type="b">
|
||||
<default>false</default>
|
||||
<summary>Default window maximized behaviour</summary>
|
||||
</key>
|
||||
<key type="b" name="startup-show">
|
||||
<default>true</default>
|
||||
<summary>Show PikaOS Welcome on startup.</summary>
|
||||
<description>
|
||||
Show PikaOS Welcome on startup.
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
@ -14,6 +14,7 @@ pub fn build_ui(app: &Application) {
|
||||
// setup glib
|
||||
glib::set_prgname(Some(t!("application_name").to_string()));
|
||||
glib::set_application_name(&t!("application_name").to_string());
|
||||
let glib_settings = gio::Settings::new(APP_ID);
|
||||
|
||||
let internet_connected = Rc::new(RefCell::new(false));
|
||||
let (internet_loop_sender, internet_loop_receiver) = async_channel::unbounded();
|
||||
@ -61,23 +62,25 @@ pub fn build_ui(app: &Application) {
|
||||
.title_widget(&WindowTitle::builder().title(t!("application_name")).build())
|
||||
.build();
|
||||
|
||||
let window_adw_view_stack = ViewStack::builder()
|
||||
let window_adw_stack = gtk::Stack::builder()
|
||||
.hhomogeneous(true)
|
||||
.vhomogeneous(true)
|
||||
.transition_type(gtk::StackTransitionType::SlideUpDown)
|
||||
.build();
|
||||
|
||||
let window_toolbar = ToolbarView::builder()
|
||||
.content(&window_adw_view_stack)
|
||||
.content(&window_adw_stack)
|
||||
.top_bar_style(ToolbarStyle::Flat)
|
||||
.bottom_bar_style(ToolbarStyle::Flat)
|
||||
.build();
|
||||
|
||||
let window_adw_view_switcher_bar = ViewSwitcherBar::builder()
|
||||
.stack(&window_adw_view_stack)
|
||||
.reveal(true)
|
||||
let window_adw_view_switcher_sidebar = gtk::StackSidebar::builder()
|
||||
.vexpand(true)
|
||||
.hexpand(true)
|
||||
.stack(&window_adw_stack)
|
||||
.build();
|
||||
|
||||
window_headerbar.pack_start(&window_adw_view_switcher_bar);
|
||||
window_headerbar.pack_start(&window_adw_view_switcher_sidebar);
|
||||
|
||||
window_toolbar.add_top_bar(&window_headerbar);
|
||||
window_toolbar.add_top_bar(&window_banner);
|
||||
@ -92,6 +95,9 @@ pub fn build_ui(app: &Application) {
|
||||
// Application icon
|
||||
.icon_name(APP_ICON)
|
||||
// Minimum Size/Default
|
||||
.default_width(glib_settings.int("window-width"))
|
||||
.default_height(glib_settings.int("window-height"))
|
||||
//
|
||||
.width_request(700)
|
||||
.height_request(500)
|
||||
.content(&window_toolbar)
|
||||
@ -100,6 +106,21 @@ pub fn build_ui(app: &Application) {
|
||||
// build the window
|
||||
.build();
|
||||
|
||||
if glib_settings.boolean("is-maximized") == true {
|
||||
window.maximize()
|
||||
}
|
||||
|
||||
window.connect_close_request(move |window| {
|
||||
if let Some(application) = window.application() {
|
||||
let size = window.default_size();
|
||||
let _ = glib_settings.set_int("window-width", size.0);
|
||||
let _ = glib_settings.set_int("window-height", size.1);
|
||||
let _ = glib_settings.set_boolean("is-maximized", window.is_maximized());
|
||||
application.remove_window(window);
|
||||
}
|
||||
glib::Propagation::Proceed
|
||||
});
|
||||
|
||||
let credits_button = gtk::Button::builder()
|
||||
.icon_name("dialog-information-symbolic")
|
||||
.build();
|
||||
@ -175,11 +196,10 @@ pub fn build_ui(app: &Application) {
|
||||
}
|
||||
));
|
||||
|
||||
window_adw_view_stack.add_titled_with_icon(
|
||||
window_adw_stack.add_titled(
|
||||
&apt_update_view_stack_bin,
|
||||
Some("apt_update_page"),
|
||||
&t!("apt_update_page_title"),
|
||||
"software-update-available-symbolic",
|
||||
);
|
||||
//
|
||||
|
||||
@ -187,9 +207,9 @@ pub fn build_ui(app: &Application) {
|
||||
#[weak]
|
||||
apt_retry_signal_action,
|
||||
#[weak]
|
||||
window_adw_view_stack,
|
||||
window_adw_stack,
|
||||
move |_| {
|
||||
match window_adw_view_stack.visible_child_name().unwrap().as_str() {
|
||||
match window_adw_stack.visible_child_name().unwrap().as_str() {
|
||||
"apt_update_page" => apt_retry_signal_action.activate(None),
|
||||
_ => {}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user