From 45707d54c7a6a4e7c596fd52f04b859d140a5bb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mikrut?= <41945903+qarmin@users.noreply.github.com> Date: Wed, 7 Jul 2021 21:13:36 +0200 Subject: [PATCH] Split UI into multiple files (#391) --- czkawka_gui/src/gui_about.rs | 7 +- czkawka_gui/src/gui_data.rs | 10 +- czkawka_gui/src/gui_popovers.rs | 13 +- czkawka_gui/src/gui_progress_dialog.rs | 6 +- czkawka_gui/src/gui_settings.rs | 7 +- czkawka_gui/ui/about_dialog.glade | 124 +++ .../{czkawka.glade => ui/main_window.glade} | 801 ------------------ czkawka_gui/ui/popover_right_click.glade | 72 ++ czkawka_gui/ui/popover_select.glade | 232 +++++ czkawka_gui/ui/progress.glade | 165 ++++ czkawka_gui/ui/settings.glade | 383 +++++++++ 11 files changed, 1007 insertions(+), 813 deletions(-) create mode 100644 czkawka_gui/ui/about_dialog.glade rename czkawka_gui/{czkawka.glade => ui/main_window.glade} (74%) create mode 100644 czkawka_gui/ui/popover_right_click.glade create mode 100644 czkawka_gui/ui/popover_select.glade create mode 100644 czkawka_gui/ui/progress.glade create mode 100644 czkawka_gui/ui/settings.glade diff --git a/czkawka_gui/src/gui_about.rs b/czkawka_gui/src/gui_about.rs index 9630373..e7ea45c 100644 --- a/czkawka_gui/src/gui_about.rs +++ b/czkawka_gui/src/gui_about.rs @@ -1,5 +1,5 @@ use gtk::prelude::*; -use gtk::WindowPosition; +use gtk::{Builder, WindowPosition}; #[derive(Clone)] pub struct GuiAbout { @@ -11,7 +11,10 @@ pub struct GuiAbout { } impl GuiAbout { - pub fn create_from_builder(builder: >k::Builder) -> Self { + pub fn create_from_builder() -> Self { + let glade_src = include_str!("../ui/about_dialog.glade").to_string(); + let builder = Builder::from_string(glade_src.as_str()); + let about_dialog: gtk::AboutDialog = builder.object("about_dialog").unwrap(); about_dialog.set_position(WindowPosition::Center); diff --git a/czkawka_gui/src/gui_data.rs b/czkawka_gui/src/gui_data.rs index 9b0926a..0dde280 100644 --- a/czkawka_gui/src/gui_data.rs +++ b/czkawka_gui/src/gui_data.rs @@ -80,7 +80,7 @@ pub struct GuiData { impl GuiData { pub fn new() -> Self { //// Loading glade file content and build with it help UI - let glade_src = include_str!("../czkawka.glade").to_string(); + let glade_src = include_str!("../ui/main_window.glade").to_string(); let builder = Builder::from_string(glade_src.as_str()); //// Windows @@ -91,12 +91,12 @@ impl GuiData { let main_notebook = GuiMainNotebook::create_from_builder(&builder); let upper_notebook = GuiUpperNotebook::create_from_builder(&builder); - let popovers = GuiPopovers::create_from_builder(&builder); + let popovers = GuiPopovers::create_from_builder(); let bottom_buttons = GuiBottomButtons::create_from_builder(&builder); - let progress_window = GuiProgressDialog::create_from_builder(&builder); - let about = GuiAbout::create_from_builder(&builder); + let progress_window = GuiProgressDialog::create_from_builder(); + let about = GuiAbout::create_from_builder(); let header = GuiHeader::create_from_builder(&builder); - let settings = GuiSettings::create_from_builder(&builder); + let settings = GuiSettings::create_from_builder(); //////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/czkawka_gui/src/gui_popovers.rs b/czkawka_gui/src/gui_popovers.rs index cf9fac1..3b1c5d9 100644 --- a/czkawka_gui/src/gui_popovers.rs +++ b/czkawka_gui/src/gui_popovers.rs @@ -1,4 +1,5 @@ use gtk::prelude::*; +use gtk::Builder; #[derive(Clone)] pub struct GuiPopovers { @@ -27,7 +28,10 @@ pub struct GuiPopovers { } impl GuiPopovers { - pub fn create_from_builder(builder: >k::Builder) -> Self { + pub fn create_from_builder() -> Self { + let glade_src = include_str!("../ui/popover_select.glade").to_string(); + let builder = Builder::from_string(glade_src.as_str()); + let buttons_popover_select_all: gtk::Button = builder.object("buttons_popover_select_all").unwrap(); let buttons_popover_unselect_all: gtk::Button = builder.object("buttons_popover_unselect_all").unwrap(); let buttons_popover_reverse: gtk::Button = builder.object("buttons_popover_reverse").unwrap(); @@ -45,10 +49,15 @@ impl GuiPopovers { let separator_select_date: gtk::Separator = builder.object("separator_select_date").unwrap(); let separator_select_custom: gtk::Separator = builder.object("separator_select_custom").unwrap(); + let popover_select: gtk::Popover = builder.object("popover_select").unwrap(); + + // Popover right click + let glade_src = include_str!("../ui/popover_right_click.glade").to_string(); + let builder = Builder::from_string(glade_src.as_str()); + let buttons_popover_right_click_open_file: gtk::Button = builder.object("buttons_popover_right_click_open_file").unwrap(); let buttons_popover_right_click_open_folder: gtk::Button = builder.object("buttons_popover_right_click_open_folder").unwrap(); - let popover_select: gtk::Popover = builder.object("popover_select").unwrap(); let popover_right_click: gtk::Popover = builder.object("popover_right_click").unwrap(); Self { diff --git a/czkawka_gui/src/gui_progress_dialog.rs b/czkawka_gui/src/gui_progress_dialog.rs index b3a2ccc..2261291 100644 --- a/czkawka_gui/src/gui_progress_dialog.rs +++ b/czkawka_gui/src/gui_progress_dialog.rs @@ -1,4 +1,5 @@ use gtk::prelude::*; +use gtk::Builder; #[derive(Clone)] pub struct GuiProgressDialog { @@ -15,7 +16,10 @@ pub struct GuiProgressDialog { } impl GuiProgressDialog { - pub fn create_from_builder(builder: >k::Builder) -> Self { + pub fn create_from_builder() -> Self { + let glade_src = include_str!("../ui/progress.glade").to_string(); + let builder = Builder::from_string(glade_src.as_str()); + let window_progress: gtk::Window = builder.object("window_progress").unwrap(); let progress_bar_current_stage: gtk::ProgressBar = builder.object("progress_bar_current_stage").unwrap(); diff --git a/czkawka_gui/src/gui_settings.rs b/czkawka_gui/src/gui_settings.rs index c62b71e..0682cac 100644 --- a/czkawka_gui/src/gui_settings.rs +++ b/czkawka_gui/src/gui_settings.rs @@ -1,5 +1,5 @@ use gtk::prelude::*; -use gtk::WindowPosition; +use gtk::{Builder, WindowPosition}; #[derive(Clone)] pub struct GuiSettings { @@ -28,7 +28,10 @@ pub struct GuiSettings { } impl GuiSettings { - pub fn create_from_builder(builder: >k::Builder) -> Self { + pub fn create_from_builder() -> Self { + let glade_src = include_str!("../ui/settings.glade").to_string(); + let builder = Builder::from_string(glade_src.as_str()); + let window_settings: gtk::Window = builder.object("window_settings").unwrap(); window_settings.set_position(WindowPosition::Center); diff --git a/czkawka_gui/ui/about_dialog.glade b/czkawka_gui/ui/about_dialog.glade new file mode 100644 index 0000000..2ac87d6 --- /dev/null +++ b/czkawka_gui/ui/about_dialog.glade @@ -0,0 +1,124 @@ + + + + + + + + + + False + center + dialog + Czkawka + 3.1.0 + 2020 - 2021 Rafał Mikrut(qarmin) + +This program is free to use and will always be. + + Rafał Mikrut(qarmin) + system-search + mit-x11 + + + False + vertical + 2 + + + False + end + + + + + + + + + False + False + 0 + + + + + True + False + 3 + + + Repository + True + True + True + + + True + False + 0 + + + + + Instruction + True + True + True + + + True + False + 1 + + + + + Donation + True + True + True + + + True + False + 2 + + + + + False + True + 2 + + + + + + diff --git a/czkawka_gui/czkawka.glade b/czkawka_gui/ui/main_window.glade similarity index 74% rename from czkawka_gui/czkawka.glade rename to czkawka_gui/ui/main_window.glade index 40c747f..b93637e 100644 --- a/czkawka_gui/czkawka.glade +++ b/czkawka_gui/ui/main_window.glade @@ -32,329 +32,6 @@ Author: Rafał Mikrut - - False - center - dialog - Czkawka - 3.1.0 - 2020 - 2021 Rafał Mikrut(qarmin) - -This program is free to use and will always be. - - Rafał Mikrut(qarmin) - system-search - mit-x11 - - - False - vertical - 2 - - - False - end - - - - - - - - - False - False - 0 - - - - - True - False - 3 - - - Repository - True - True - True - - - True - False - 0 - - - - - Instruction - True - True - True - - - True - False - 1 - - - - - Donation - True - True - True - - - True - False - 2 - - - - - False - True - 2 - - - - - - - False - left - - - True - False - vertical - - - Open File - True - True - True - - - False - True - 0 - - - - - Open Folder - True - True - True - - - False - True - 1 - - - - - - - False - - - True - False - vertical - - - Select custom - True - True - True - - - False - True - 0 - - - - - Unselect custom - True - True - True - - - False - True - 1 - - - - - True - False - - - False - True - 2 - - - - - Select all except biggest - True - True - True - - - False - True - 3 - - - - - Select all except smallest - True - True - True - - - False - True - 4 - - - - - True - False - - - False - True - 5 - - - - - Select all except oldest - True - True - True - - - False - True - 6 - - - - - Select all except newest - True - True - True - - - False - True - 7 - - - - - Select one oldest - True - True - True - - - False - True - 8 - - - - - Select one newest - True - True - True - - - False - True - 9 - - - - - True - False - - - False - True - 10 - - - - - Reverse Selection - True - True - True - - - False - True - 11 - - - - - True - False - - - False - True - 12 - - - - - Select All - True - True - True - - - False - True - 13 - - - - - Unselect All - True - True - True - - - False - True - 14 - - - - - False 1100 @@ -2294,482 +1971,4 @@ This program is free to use and will always be. - - False - Czkawka Progress Window - - - True - False - 10 - 10 - 10 - 10 - vertical - 10 - - - - True - False - - - True - False - All stages: - - - 0 - 1 - - - - - True - False - True - 0.099999999776482579 - True - - - 1 - 1 - - - - - True - False - Current stage: - - - 0 - 0 - - - - - True - False - True - - - 1 - 0 - - - - - True - True - 0 - - - - - True - False - Stage 1/2 - - - False - True - 1 - - - - - True - True - True - end - - - True - False - - - True - False - dialog-cancel - - - False - True - 0 - - - - - True - False - Stop - - - True - True - 1 - - - - - - - False - False - end - 2 - - - - - - - False - Czkawka Options - - - True - False - vertical - - - True - False - vertical - - - True - False - - - False - False - 0 - - - - - False - True - 0 - - - - - True - True - left - - - True - False - vertical - - - True - False - vertical - - - Load configuration at start - True - True - False - True - True - - - False - True - 0 - - - - - Save configuration at exit - True - True - False - True - True - - - False - True - 1 - - - - - Show confirm dialog when deleting - True - True - False - True - True - - - False - True - 2 - - - - - Show confirm dialog when deleting all files in group - True - True - False - True - True - - - False - True - 3 - - - - - Show bottom text panel - True - True - False - True - True - - - False - False - 4 - - - - - Use cache - True - True - False - True - True - - - False - True - 5 - - - - - Move deleted files to trash - True - True - False - True - True - - - False - True - 6 - - - - - False - False - 1 - - - - - - - True - False - General - - - False - - - - - True - False - vertical - - - Hide hard links(only Linux and MacOS) - True - True - False - True - True - - - False - True - 0 - - - - - True - False - 4 - 4 - - - True - False - Minimal cached file size in bytes - - - True - True - 0 - - - - - True - True - 15 - 2097152 - False - number - - - False - False - end - 1 - - - - - False - True - 2 - - - - - 1 - - - - - True - False - Duplicate Finder - - - 1 - False - - - - - True - False - vertical - - - Show image preview - True - True - False - True - True - - - False - True - 0 - - - - - 2 - - - - - True - False - Similar Images - - - 2 - False - - - - - True - True - 1 - - - - - True - False - 3 - 3 - 3 - - - Load configuration - True - True - True - - - False - False - 0 - - - - - Reset configuration - True - True - True - - - True - False - 1 - - - - - Save configuration - True - True - True - - - False - False - end - 2 - - - - - False - True - 3 - 2 - - - - - diff --git a/czkawka_gui/ui/popover_right_click.glade b/czkawka_gui/ui/popover_right_click.glade new file mode 100644 index 0000000..37cd8c7 --- /dev/null +++ b/czkawka_gui/ui/popover_right_click.glade @@ -0,0 +1,72 @@ + + + + + + + + + + False + left + + + True + False + vertical + + + Open File + True + True + True + + + False + True + 0 + + + + + Open Folder + True + True + True + + + False + True + 1 + + + + + + diff --git a/czkawka_gui/ui/popover_select.glade b/czkawka_gui/ui/popover_select.glade new file mode 100644 index 0000000..b69e08c --- /dev/null +++ b/czkawka_gui/ui/popover_select.glade @@ -0,0 +1,232 @@ + + + + + + + + + + False + + + True + False + vertical + + + Select custom + True + True + True + + + False + True + 0 + + + + + Unselect custom + True + True + True + + + False + True + 1 + + + + + True + False + + + False + True + 2 + + + + + Select all except biggest + True + True + True + + + False + True + 3 + + + + + Select all except smallest + True + True + True + + + False + True + 4 + + + + + True + False + + + False + True + 5 + + + + + Select all except oldest + True + True + True + + + False + True + 6 + + + + + Select all except newest + True + True + True + + + False + True + 7 + + + + + Select one oldest + True + True + True + + + False + True + 8 + + + + + Select one newest + True + True + True + + + False + True + 9 + + + + + True + False + + + False + True + 10 + + + + + Reverse Selection + True + True + True + + + False + True + 11 + + + + + True + False + + + False + True + 12 + + + + + Select All + True + True + True + + + False + True + 13 + + + + + Unselect All + True + True + True + + + False + True + 14 + + + + + + diff --git a/czkawka_gui/ui/progress.glade b/czkawka_gui/ui/progress.glade new file mode 100644 index 0000000..205c098 --- /dev/null +++ b/czkawka_gui/ui/progress.glade @@ -0,0 +1,165 @@ + + + + + + + + + + False + Czkawka Progress Window + + + True + False + 10 + 10 + 10 + 10 + vertical + 10 + + + + True + False + + + True + False + All stages: + + + 0 + 1 + + + + + True + False + True + 0.099999999776482579 + True + + + 1 + 1 + + + + + True + False + Current stage: + + + 0 + 0 + + + + + True + False + True + + + 1 + 0 + + + + + True + True + 0 + + + + + True + False + Stage 1/2 + + + False + True + 1 + + + + + True + True + True + end + + + True + False + + + True + False + dialog-cancel + + + False + True + 0 + + + + + True + False + Stop + + + True + True + 1 + + + + + + + False + False + end + 2 + + + + + + diff --git a/czkawka_gui/ui/settings.glade b/czkawka_gui/ui/settings.glade new file mode 100644 index 0000000..60df232 --- /dev/null +++ b/czkawka_gui/ui/settings.glade @@ -0,0 +1,383 @@ + + + + + + + + + + False + Czkawka Options + + + True + False + vertical + + + True + False + vertical + + + True + False + + + False + False + 0 + + + + + False + True + 0 + + + + + True + True + left + + + True + False + vertical + + + True + False + vertical + + + Load configuration at start + True + True + False + True + True + + + False + True + 0 + + + + + Save configuration at exit + True + True + False + True + True + + + False + True + 1 + + + + + Show confirm dialog when deleting + True + True + False + True + True + + + False + True + 2 + + + + + Show confirm dialog when deleting all files in group + True + True + False + True + True + + + False + True + 3 + + + + + Show bottom text panel + True + True + False + True + True + + + False + False + 4 + + + + + Use cache + True + True + False + True + True + + + False + True + 5 + + + + + Move deleted files to trash + True + True + False + True + True + + + False + True + 6 + + + + + False + False + 1 + + + + + + + True + False + General + + + False + + + + + True + False + vertical + + + Hide hard links(only Linux and MacOS) + True + True + False + True + True + + + False + True + 0 + + + + + True + False + 4 + 4 + + + True + False + Minimal cached file size in bytes + + + True + True + 0 + + + + + True + True + 15 + 2097152 + False + number + + + False + False + end + 1 + + + + + False + True + 2 + + + + + 1 + + + + + True + False + Duplicate Finder + + + 1 + False + + + + + True + False + vertical + + + Show image preview + True + True + False + True + True + + + False + True + 0 + + + + + 2 + + + + + True + False + Similar Images + + + 2 + False + + + + + True + True + 1 + + + + + True + False + 3 + 3 + 3 + + + Load configuration + True + True + True + + + False + False + 0 + + + + + Reset configuration + True + True + True + + + True + False + 1 + + + + + Save configuration + True + True + True + + + False + False + end + 2 + + + + + False + True + 3 + 2 + + + + + +