2021-01-11 08:12:08 +13:00
use gtk ::prelude ::* ;
2021-12-01 23:09:47 +13:00
use gtk ::Widget ;
2021-01-11 08:12:08 +13:00
#[ derive(Clone) ]
2021-03-28 01:14:02 +13:00
pub struct GuiBottomButtons {
2021-01-11 08:12:08 +13:00
pub buttons_search : gtk ::Button ,
2021-12-01 23:09:47 +13:00
pub buttons_select : gtk ::MenuButton ,
2021-01-11 08:12:08 +13:00
pub buttons_delete : gtk ::Button ,
pub buttons_save : gtk ::Button ,
pub buttons_symlink : gtk ::Button ,
2021-02-25 01:53:46 +13:00
pub buttons_hardlink : gtk ::Button ,
2021-11-20 20:32:28 +13:00
pub buttons_move : gtk ::Button ,
2021-01-11 08:12:08 +13:00
pub buttons_show_errors : gtk ::Button ,
2021-12-07 02:30:29 +13:00
pub buttons_show_upper_notebook : gtk ::Button ,
2021-11-20 20:32:28 +13:00
pub buttons_names : [ String ; 7 ] ,
2021-12-01 23:09:47 +13:00
pub buttons_array : [ Widget ; 7 ] ,
2021-01-11 08:12:08 +13:00
}
2021-03-28 01:14:02 +13:00
impl GuiBottomButtons {
2021-12-01 23:09:47 +13:00
pub fn create_from_builder ( builder : & gtk ::Builder , popover_select : & gtk ::Popover ) -> Self {
2021-06-26 04:07:13 +12:00
let buttons_search : gtk ::Button = builder . object ( " buttons_search " ) . unwrap ( ) ;
2021-12-01 23:09:47 +13:00
let buttons_select : gtk ::MenuButton = builder . object ( " buttons_select " ) . unwrap ( ) ;
2021-06-26 04:07:13 +12:00
let buttons_delete : gtk ::Button = builder . object ( " buttons_delete " ) . unwrap ( ) ;
let buttons_save : gtk ::Button = builder . object ( " buttons_save " ) . unwrap ( ) ;
let buttons_symlink : gtk ::Button = builder . object ( " buttons_symlink " ) . unwrap ( ) ;
let buttons_hardlink : gtk ::Button = builder . object ( " buttons_hardlink " ) . unwrap ( ) ;
2021-11-20 20:32:28 +13:00
let buttons_move : gtk ::Button = builder . object ( " buttons_move " ) . unwrap ( ) ;
2021-01-11 08:12:08 +13:00
2021-12-01 00:45:09 +13:00
buttons_search . set_tooltip_text ( Some ( " Start to search for files/folders " ) ) ;
buttons_select . set_tooltip_text ( Some ( " Selects records \n Only selected files/folders can be later processed. " ) ) ;
buttons_delete . set_tooltip_text ( Some ( " Delete selected files/folders " ) ) ;
buttons_save . set_tooltip_text ( Some ( " Save data about search to file " ) ) ;
buttons_symlink . set_tooltip_text ( Some (
" Creates symbolic links \n Only works when at least 2 results in group are selected \n First is unchanged and second and later are symlinked to first " ,
) ) ;
buttons_hardlink . set_tooltip_text ( Some ( " Creates hardlinks \n Only works when at least 2 results in group are selected \n First is unchanged and second and later are hardlinked to first " ) ) ;
buttons_move . set_tooltip_text ( Some (
" Moves files to chosen folder \n It copy all files to folder without preserving directory tree \n When trying to move 2 files with identical name to folder, second will fail and show error " ,
) ) ;
2021-06-26 04:07:13 +12:00
let buttons_show_errors : gtk ::Button = builder . object ( " buttons_show_errors " ) . unwrap ( ) ;
2021-12-07 02:30:29 +13:00
buttons_show_errors . set_tooltip_text ( Some ( " Show/Hide bottom error panel. " ) ) ;
let buttons_show_upper_notebook : gtk ::Button = builder . object ( " buttons_show_upper_notebook " ) . unwrap ( ) ;
buttons_show_upper_notebook . set_tooltip_text ( Some ( " Show/Hide upper notebook panel. " ) ) ;
2021-01-11 08:12:08 +13:00
2021-11-20 20:32:28 +13:00
let buttons_names = [
" search " . to_string ( ) ,
" select " . to_string ( ) ,
" delete " . to_string ( ) ,
" save " . to_string ( ) ,
" symlink " . to_string ( ) ,
" hardlink " . to_string ( ) ,
" move " . to_string ( ) ,
] ;
2021-12-01 23:09:47 +13:00
let buttons_array : [ Widget ; 7 ] = [
buttons_search . clone ( ) . upcast ::< Widget > ( ) ,
buttons_select . clone ( ) . upcast ::< Widget > ( ) ,
buttons_delete . clone ( ) . upcast ::< Widget > ( ) ,
buttons_save . clone ( ) . upcast ::< Widget > ( ) ,
buttons_symlink . clone ( ) . upcast ::< Widget > ( ) ,
buttons_hardlink . clone ( ) . upcast ::< Widget > ( ) ,
buttons_move . clone ( ) . upcast ::< Widget > ( ) ,
2021-11-20 20:32:28 +13:00
] ;
2021-12-01 23:09:47 +13:00
buttons_select . set_popover ( Some ( popover_select ) ) ;
2021-01-11 08:12:08 +13:00
Self {
buttons_search ,
buttons_select ,
buttons_delete ,
buttons_save ,
buttons_symlink ,
2021-02-25 01:53:46 +13:00
buttons_hardlink ,
2021-11-20 20:32:28 +13:00
buttons_move ,
2021-01-11 08:12:08 +13:00
buttons_show_errors ,
2021-12-07 02:30:29 +13:00
buttons_show_upper_notebook ,
2021-01-11 08:12:08 +13:00
buttons_names ,
buttons_array ,
}
}
}