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 @@
+
+
+
+
+
+
+
+
+
+
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
+
+
+
+
+
+