Popover sort basic
This commit is contained in:
parent
208529cf98
commit
b1a41585e4
|
@ -238,11 +238,11 @@ popover_custom_all_in_group_label = Don't select all records in group
|
|||
popover_custom_mode_unselect = Unselect Custom
|
||||
popover_custom_mode_select = Select Custom
|
||||
|
||||
popover_sort_file_name = "Sort by file name"
|
||||
popover_sort_folder_name = "Sort by folder name"
|
||||
popover_sort_full_name = "Sort by full name"
|
||||
popover_sort_size = "Sort by size"
|
||||
popover_sort_selection = "Sort by selection"
|
||||
popover_sort_file_name = File name
|
||||
popover_sort_folder_name = Folder name
|
||||
popover_sort_full_name = Full name
|
||||
popover_sort_size = Size
|
||||
popover_sort_selection = Selection
|
||||
|
||||
popover_invalid_regex = Regex is invalid
|
||||
popover_valid_regex = Regex is valid
|
||||
|
|
|
@ -512,6 +512,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
BottomButtonsEnum::Save,
|
||||
BottomButtonsEnum::Delete,
|
||||
BottomButtonsEnum::Select,
|
||||
BottomButtonsEnum::Sort,
|
||||
BottomButtonsEnum::Symlink,
|
||||
BottomButtonsEnum::Hardlink,
|
||||
BottomButtonsEnum::Move,
|
||||
|
@ -949,6 +950,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
BottomButtonsEnum::Save,
|
||||
BottomButtonsEnum::Delete,
|
||||
BottomButtonsEnum::Select,
|
||||
BottomButtonsEnum::Sort,
|
||||
BottomButtonsEnum::Symlink,
|
||||
BottomButtonsEnum::Hardlink,
|
||||
BottomButtonsEnum::Move,
|
||||
|
@ -1121,6 +1123,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
BottomButtonsEnum::Save,
|
||||
BottomButtonsEnum::Delete,
|
||||
BottomButtonsEnum::Select,
|
||||
BottomButtonsEnum::Sort,
|
||||
BottomButtonsEnum::Symlink,
|
||||
BottomButtonsEnum::Hardlink,
|
||||
BottomButtonsEnum::Move,
|
||||
|
@ -1326,6 +1329,7 @@ pub fn connect_compute_results(gui_data: &GuiData, glib_stop_receiver: Receiver<
|
|||
BottomButtonsEnum::Save,
|
||||
BottomButtonsEnum::Delete,
|
||||
BottomButtonsEnum::Select,
|
||||
BottomButtonsEnum::Sort,
|
||||
BottomButtonsEnum::Symlink,
|
||||
BottomButtonsEnum::Hardlink,
|
||||
BottomButtonsEnum::Move,
|
||||
|
|
|
@ -1,9 +1,44 @@
|
|||
use crate::gui_structs::gui_data::GuiData;
|
||||
use crate::gui_structs::gui_popovers_sort::GuiSortPopovers;
|
||||
use crate::help_functions::PopoverTypes;
|
||||
use crate::notebook_enums::{to_notebook_main_enum, NotebookMainEnum};
|
||||
use crate::notebook_info::NOTEBOOKS_INFO;
|
||||
use gtk4::prelude::*;
|
||||
|
||||
pub fn connect_button_sort(_gui_data: &GuiData) {
|
||||
// let popovers_select = gui_data.popovers_select.clone();
|
||||
// let notebook_main = gui_data.main_notebook.notebook_main.clone();
|
||||
// let gc_buttons_select = gui_data.bottom_buttons.gc_buttons_select.clone();
|
||||
//
|
||||
// gc_buttons_select.connect_pressed(move |_, _, _, _| ());
|
||||
pub fn connect_button_sort(gui_data: &GuiData) {
|
||||
let popovers_sort = gui_data.popovers_sort.clone();
|
||||
let notebook_main = gui_data.main_notebook.notebook_main.clone();
|
||||
let gc_buttons_sort = gui_data.bottom_buttons.gc_buttons_sort.clone();
|
||||
|
||||
gc_buttons_sort.connect_pressed(move |_, _, _, _| {
|
||||
show_required_popovers(&popovers_sort, &to_notebook_main_enum(notebook_main.current_page().unwrap()));
|
||||
});
|
||||
}
|
||||
|
||||
fn show_required_popovers(popovers_sort: &GuiSortPopovers, current_mode: &NotebookMainEnum) {
|
||||
let buttons_popover_sort_file_name = popovers_sort.buttons_popover_sort_file_name.clone();
|
||||
let buttons_popover_sort_size = popovers_sort.buttons_popover_sort_size.clone();
|
||||
let buttons_popover_sort_folder_name = popovers_sort.buttons_popover_sort_folder_name.clone();
|
||||
let buttons_popover_sort_full_name = popovers_sort.buttons_popover_sort_full_name.clone();
|
||||
let buttons_popover_sort_selection = popovers_sort.buttons_popover_sort_selection.clone();
|
||||
|
||||
let arr = &NOTEBOOKS_INFO[*current_mode as usize].available_modes;
|
||||
|
||||
if arr.contains(&PopoverTypes::All) {
|
||||
buttons_popover_sort_selection.show();
|
||||
buttons_popover_sort_file_name.show();
|
||||
buttons_popover_sort_folder_name.show();
|
||||
buttons_popover_sort_full_name.show();
|
||||
} else {
|
||||
buttons_popover_sort_selection.hide();
|
||||
buttons_popover_sort_file_name.hide();
|
||||
buttons_popover_sort_folder_name.hide();
|
||||
buttons_popover_sort_full_name.hide();
|
||||
}
|
||||
|
||||
if arr.contains(&PopoverTypes::Size) {
|
||||
buttons_popover_sort_size.show();
|
||||
} else {
|
||||
buttons_popover_sort_size.hide();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ pub struct GuiBottomButtons {
|
|||
}
|
||||
|
||||
impl GuiBottomButtons {
|
||||
pub fn create_from_builder(builder: >k4::Builder, popover_select: >k4::Popover) -> Self {
|
||||
pub fn create_from_builder(builder: >k4::Builder, popover_select: >k4::Popover, popover_sort: >k4::Popover) -> Self {
|
||||
let buttons_search: gtk4::Button = builder.object("buttons_search").unwrap();
|
||||
let buttons_select: gtk4::MenuButton = builder.object("buttons_select").unwrap();
|
||||
let buttons_delete: gtk4::Button = builder.object("buttons_delete").unwrap();
|
||||
|
@ -92,6 +92,7 @@ impl GuiBottomButtons {
|
|||
];
|
||||
|
||||
buttons_select.set_popover(Some(popover_select));
|
||||
buttons_sort.set_popover(Some(popover_sort));
|
||||
|
||||
#[cfg(target_family = "windows")]
|
||||
buttons_hardlink.set_sensitive(test_hardlinks());
|
||||
|
|
|
@ -130,7 +130,7 @@ impl GuiData {
|
|||
let upper_notebook = GuiUpperNotebook::create_from_builder(&builder);
|
||||
let popovers_select = GuiSelectPopovers::create_from_builder();
|
||||
let popovers_sort = GuiSortPopovers::create_from_builder();
|
||||
let bottom_buttons = GuiBottomButtons::create_from_builder(&builder, &popovers_select.popover_select);
|
||||
let bottom_buttons = GuiBottomButtons::create_from_builder(&builder, &popovers_select.popover_select, &popovers_sort.popover_sort);
|
||||
let progress_window = GuiProgressDialog::create_from_builder(&window_main);
|
||||
let about = GuiAbout::create_from_builder(&window_main, &pixbuf);
|
||||
let header = GuiHeader::create_from_builder(&builder);
|
||||
|
|
|
@ -6,6 +6,10 @@ use crate::flg;
|
|||
#[derive(Clone)]
|
||||
pub struct GuiSortPopovers {
|
||||
pub buttons_popover_sort_file_name: gtk4::Button,
|
||||
pub buttons_popover_sort_folder_name: gtk4::Button,
|
||||
pub buttons_popover_sort_full_name: gtk4::Button,
|
||||
pub buttons_popover_sort_size: gtk4::Button,
|
||||
pub buttons_popover_sort_selection: gtk4::Button,
|
||||
|
||||
pub popover_sort: gtk4::Popover,
|
||||
}
|
||||
|
@ -16,16 +20,27 @@ impl GuiSortPopovers {
|
|||
let builder = Builder::from_string(glade_src.as_str());
|
||||
|
||||
let buttons_popover_sort_file_name: gtk4::Button = builder.object("buttons_popover_sort_file_name").unwrap();
|
||||
let buttons_popover_sort_folder_name: gtk4::Button = builder.object("buttons_popover_sort_folder_name").unwrap();
|
||||
let buttons_popover_sort_full_name: gtk4::Button = builder.object("buttons_popover_sort_full_name").unwrap();
|
||||
let buttons_popover_sort_size: gtk4::Button = builder.object("buttons_popover_sort_size").unwrap();
|
||||
let buttons_popover_sort_selection: gtk4::Button = builder.object("buttons_popover_sort_selection").unwrap();
|
||||
|
||||
let popover_sort: gtk4::Popover = builder.object("popover_sort").unwrap();
|
||||
|
||||
Self {
|
||||
buttons_popover_sort_file_name,
|
||||
buttons_popover_sort_folder_name,
|
||||
buttons_popover_sort_full_name,
|
||||
buttons_popover_sort_size,
|
||||
buttons_popover_sort_selection,
|
||||
popover_sort,
|
||||
}
|
||||
}
|
||||
pub fn update_language(&self) {
|
||||
self.buttons_popover_sort_file_name.set_label(&flg!("popover_sort_file_name"));
|
||||
// TODO more languages
|
||||
self.buttons_popover_sort_folder_name.set_label(&flg!("popover_sort_folder_name"));
|
||||
self.buttons_popover_sort_full_name.set_label(&flg!("popover_sort_full_name"));
|
||||
self.buttons_popover_sort_size.set_label(&flg!("popover_sort_size"));
|
||||
self.buttons_popover_sort_selection.set_label(&flg!("popover_sort_selection"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,24 +31,11 @@ use crate::opening_selecting_records::*;
|
|||
pub fn initialize_gui(gui_data: &mut GuiData) {
|
||||
//// Initialize button
|
||||
{
|
||||
let buttons_search = gui_data.bottom_buttons.buttons_search.clone();
|
||||
let buttons_save = gui_data.bottom_buttons.buttons_save.clone();
|
||||
let buttons_delete = gui_data.bottom_buttons.buttons_delete.clone();
|
||||
let buttons_select = gui_data.bottom_buttons.buttons_select.clone();
|
||||
let buttons_symlink = gui_data.bottom_buttons.buttons_symlink.clone();
|
||||
let buttons_hardlink = gui_data.bottom_buttons.buttons_hardlink.clone();
|
||||
let buttons_move = gui_data.bottom_buttons.buttons_move.clone();
|
||||
let buttons_compare = gui_data.bottom_buttons.buttons_compare.clone();
|
||||
|
||||
// Disable and show buttons - only search button should be visible
|
||||
buttons_search.show();
|
||||
buttons_save.hide();
|
||||
buttons_delete.hide();
|
||||
buttons_select.hide();
|
||||
buttons_symlink.hide();
|
||||
buttons_hardlink.hide();
|
||||
buttons_move.hide();
|
||||
buttons_compare.hide();
|
||||
let buttons = &gui_data.bottom_buttons.buttons_array;
|
||||
for button in buttons {
|
||||
button.hide();
|
||||
}
|
||||
gui_data.bottom_buttons.buttons_search.show();
|
||||
}
|
||||
//// Initialize language combo box
|
||||
{
|
||||
|
|
|
@ -989,6 +989,8 @@
|
|||
(9,59,"GtkAccessible","accessible-role","menu-item-checkbox",None,None,None,None,None),
|
||||
(9,59,"GtkWidget","margin-bottom","4",None,None,None,None,None),
|
||||
(9,59,"GtkWidget","margin-top","5",None,None,None,None,None),
|
||||
(10,1,"GtkPopover","child",None,None,None,None,None,2),
|
||||
(10,1,"GtkPopover","position","top",None,None,None,None,None),
|
||||
(10,2,"GtkOrientable","orientation","vertical",None,None,None,None,None),
|
||||
(10,3,"GtkButton","label","File name",None,None,None,None,None),
|
||||
(10,3,"GtkWidget","focusable","1",None,None,None,None,None),
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<!-- interface-name popover_sort.ui -->
|
||||
<requires lib="gtk" version="4.6"/>
|
||||
<object class="GtkPopover" id="popover_sort">
|
||||
<child>
|
||||
<property name="child">
|
||||
<object class="GtkBox">
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
|
@ -43,6 +43,7 @@
|
|||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</property>
|
||||
<property name="position">top</property>
|
||||
</object>
|
||||
</interface>
|
||||
|
|
Loading…
Reference in a new issue