1
0
Fork 0
mirror of synced 2024-05-17 19:03:08 +12:00

Console text

This commit is contained in:
Rafał Mikrut 2023-11-10 16:49:54 +01:00
parent ea29b65c11
commit 812164bce9
8 changed files with 32 additions and 63 deletions

View file

@ -1,4 +1,5 @@
use crate::settings::{collect_settings, SettingsCustom};
use crate::Settings;
use crate::{CurrentTab, MainListModel, MainWindow, ProgressToSend};
use chrono::NaiveDateTime;
use crossbeam_channel::{Receiver, Sender};
@ -49,6 +50,7 @@ fn scan_empty_files(a: Weak<MainWindow>, progress_sender: Sender<ProgressData>,
finder.find_empty_files(Some(&stop_receiver), Some(&progress_sender));
let mut vector = finder.get_empty_files().clone();
let messages = finder.get_text_messages().create_messages_text();
vector.sort_unstable_by_key(|e| {
let t = split_path(e.get_path());
@ -56,6 +58,7 @@ fn scan_empty_files(a: Weak<MainWindow>, progress_sender: Sender<ProgressData>,
});
a.upgrade_in_event_loop(move |app| {
let number_of_empty_files = vector.len();
let items = Rc::new(VecModel::default());
for fe in vector {
let (directory, file) = split_path(fe.get_path());
@ -74,7 +77,8 @@ fn scan_empty_files(a: Weak<MainWindow>, progress_sender: Sender<ProgressData>,
items.push(main);
}
app.set_empty_files_model(items.into());
app.invoke_scan_ended();
app.invoke_scan_ended(format!("Found {} empty files", number_of_empty_files).into());
app.global::<Settings>().set_info_text(messages.into());
})
});
}
@ -87,6 +91,7 @@ fn scan_empty_folders(a: Weak<MainWindow>, progress_sender: Sender<ProgressData>
finder.find_empty_folders(Some(&stop_receiver), Some(&progress_sender));
let mut vector = finder.get_empty_folder_list().keys().cloned().collect::<Vec<PathBuf>>();
let messages = finder.get_text_messages().create_messages_text();
vector.sort_unstable_by_key(|e| {
let t = split_path(e.as_path());
@ -113,7 +118,8 @@ fn scan_empty_folders(a: Weak<MainWindow>, progress_sender: Sender<ProgressData>
items.push(main);
}
app.set_empty_folder_model(items.into());
app.invoke_scan_ended();
app.invoke_scan_ended(format!("Found {} empty folders", folder_map.len()).into());
app.global::<Settings>().set_info_text(messages.into());
})
});
}

View file

@ -5,16 +5,19 @@ use std::path::PathBuf;
use crate::common::create_string_standard_list_view_from_pathbuf;
use crate::Settings;
use home::home_dir;
use slint::{ComponentHandle, Model, SharedString};
use slint::{ComponentHandle, Model};
#[cfg(target_family = "unix")]
const DEFAULT_EXCLUDED_DIRECTORIES: &[&str] = &["/proc", "/dev", "/sys", "/run", "/snap"];
#[cfg(not(target_family = "unix"))]
const DEFAULT_EXCLUDED_DIRECTORIES: &[&str] = &["C:\\Windows"];
pub fn reset_settings(app: &MainWindow) {
app.invoke_set_console_text(SharedString::from(""));
pub struct SettingsCustom {
pub included_directories: Vec<PathBuf>,
pub excluded_directories: Vec<PathBuf>,
}
pub fn reset_settings(app: &MainWindow) {
set_settings_to_gui(app, &SettingsCustom::default());
}
@ -28,11 +31,9 @@ pub fn set_settings_to_gui(app: &MainWindow, custom_settings: &SettingsCustom) {
// Excluded directories
let excluded_items = create_string_standard_list_view_from_pathbuf(&custom_settings.excluded_directories);
settings.set_excluded_directories(excluded_items);
}
pub struct SettingsCustom {
pub included_directories: Vec<PathBuf>,
pub excluded_directories: Vec<PathBuf>,
// Clear text
app.global::<Settings>().set_info_text("".into());
}
impl Default for SettingsCustom {

View file

@ -87,7 +87,7 @@ export component ActionButtons inherits HorizontalLayout {
height: parent.height;
button-visibility: BottomPanelVisibility.NotVisible;
bottom_panel_visibility <=> bottom_panel_visibility;
text: "NotVS";
text: "None";
}
}
}

View file

@ -84,21 +84,19 @@ component DirectoriesPanel {
}
}
}
// TODO this should be a normal read only Text editor
component TextErrorsPanel inherits TextEdit {
height: 20px;
read-only: true;
text: "Something\nShould be\nASFASF\nasgasg\nASfgasga\nasfgAGAWGW\nAfgAWFGAWG\nfawfafgweg\nAFGWGTwgwg\nGawgAWFWAF\nawfawgaw\nasfa \nasfawgw\nawfawg\nRRRRRR";
text <=> Settings.info_text;
}
export component BottomPanel {
in-out property <BottomPanelVisibility> bottom_panel_visibility: BottomPanelVisibility.Directories;
in-out property <string> console_text;
callback folder-choose-requested(bool);
callback show_manual_add_dialog(bool);
callback set_console_text(string);
min-height: bottom-panel-visibility == BottomPanelVisibility.NotVisible ? 0px : 150px;
min-width: bottom-panel-visibility == BottomPanelVisibility.NotVisible ? 0px : 400px;
@ -111,13 +109,7 @@ export component BottomPanel {
}
if bottom-panel-visibility == BottomPanelVisibility.TextErrors : TextErrorsPanel {
text: console_text;
width: parent.width;
height: parent.height;
}
set_console_text(text) => {
console_text = text;
}
}

View file

@ -6,9 +6,9 @@ export global ColorPalette {
in-out property<color> tab_hovered_color: StyleMetrics.dark-color-scheme ? #49494926 : #80808014;
// ListView
in-out property<color> list_view_normal_color: StyleMetrics.dark-color-scheme ? #474747 : #dddddd;
in-out property<color> list_view_normal_header_color: StyleMetrics.dark-color-scheme ? #292929 : #888888;
in-out property<color> list_view_normal_selected_header: StyleMetrics.dark-color-scheme ? #575757 : #cccccc;
in-out property<color> list_view_normal_color: StyleMetrics.dark-color-scheme ? #222222 : #dddddd;
in-out property<color> list_view_normal_header_color: StyleMetrics.dark-color-scheme ? #111111 : #888888;
in-out property<color> list_view_normal_selected_header: StyleMetrics.dark-color-scheme ? #444444 : #cccccc;
// Popup
in-out property<color> popup_background: StyleMetrics.dark-color-scheme ? #353535 : #5e5e5e;

View file

@ -28,9 +28,9 @@ export component MainList {
if root.active-tab == CurrentTab.EmptyFiles: SelectableTableView {
min-width: 200px;
columns: ["Selection", "Folder Name", "Path"];
columns: ["Selection", "File Name", "Path"];
last-column: "Modification Date";
column-sizes: [30px, 100px, 100px, 100px];
column-sizes: [35px, 100px, 350px, 100px];
values <=> empty-files-model;
parentPathIdx: 2;
fileNameIdx: 1;
@ -40,9 +40,9 @@ export component MainList {
if root.active-tab == CurrentTab.SimilarImages: SelectableTableView {
min-width: 200px;
columns: ["Selection", "Folder Name", "Path"];
columns: ["Selection", "File Name", "Path"];
last-column: "Modification Date";
column-sizes: [30px, 100px, 100px, 100px];
column-sizes: [35px, 100px, 350px, 100px];
values <=> similar-images-model;
parentPathIdx: 2;
fileNameIdx: 1;

View file

@ -19,9 +19,8 @@ export component MainWindow inherits Window {
callback scan_starting(CurrentTab);
callback item_opened(string);
callback folder-choose-requested(bool);
callback set_console_text(string);
callback scan_ended();
callback scan_ended(string);
min-width: 300px;
preferred-width: 800px;
@ -41,29 +40,6 @@ export component MainWindow inherits Window {
{checked: false, selected_row: false, header_row: true, val: ["kropkarz", "/Xd1", "24.10.2023"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: false, selected_row: false, header_row: false, val: ["witasphere", "/Xd1/Imagerren2", "25.11.1991"]} ,
{checked: true, selected_row: false, header_row: false, val: ["lokkaler", "/Xd1/Vide2", "01.23.1911"]}
];
in-out property <[MainListModel]> empty_files_model: [];
@ -146,10 +122,8 @@ export component MainWindow inherits Window {
width: popup_item.width - 20px;
height: popup_item.height - 20px;
border-radius: 20px;
background: ColorPalette.popup_background; // TODO Dark theme
background: ColorPalette.popup_background;
VerticalLayout {
// width: parent.width - 20px;
// height: parent.height - 20px;
Text {
text: "Please add directories one per line";
horizontal-alignment: TextHorizontalAlignment.center;
@ -182,12 +156,8 @@ export component MainWindow inherits Window {
}
set_console_text(text) => {
bottom-panel.set_console_text(text);
}
scan_ended() => {
text-summary.text = ""; // TODO this should be filled with results
scan_ended(scan_text) => {
text-summary.text = scan_text;
root.scanning = false;
root.stop_requested = false;
}

View file

@ -1,6 +1,6 @@
export global Settings {
in-out property<bool> checkbox_checked: false;
in-out property <[StandardListViewItem]> included_directories: [{text: "ABCD"}, {text: "BCDA"}];
in-out property <[StandardListViewItem]> excluded_directories: [{text: "ABCD"}, {text: "BCDA"}, {text: "CDFFF"}];
in-out property <string> info_text: "Nothing to report";
}