2023-10-27 07:57:17 +13:00
|
|
|
import { Button, VerticalBox , HorizontalBox, TabWidget, ListView, StandardListView, StandardTableView, CheckBox, LineEdit} from "std-widgets.slint";
|
2023-10-18 08:31:08 +13:00
|
|
|
import {SelectableTableView} from "selectable_tree_view.slint";
|
2023-10-21 19:36:56 +13:00
|
|
|
import {LeftSidePanel} from "left_side_panel.slint";
|
2023-10-22 22:32:13 +13:00
|
|
|
import {MainList} from "main_lists.slint";
|
2023-10-23 09:12:59 +13:00
|
|
|
import {CurrentTab, ProgressToSend} from "common.slint";
|
2023-10-22 22:32:13 +13:00
|
|
|
import { ActionButtons } from "action_buttons.slint";
|
2023-10-23 09:12:59 +13:00
|
|
|
import { Progress } from "progress.slint";
|
2023-10-18 08:31:08 +13:00
|
|
|
|
2023-10-21 19:36:56 +13:00
|
|
|
export component MainWindow inherits Window {
|
2023-10-22 10:33:29 +13:00
|
|
|
callback deleted;
|
2023-10-27 07:57:17 +13:00
|
|
|
callback scan_stopping;
|
|
|
|
callback scan_starting(CurrentTab);
|
2023-10-22 23:18:41 +13:00
|
|
|
callback item_opened(string);
|
2023-10-23 09:12:59 +13:00
|
|
|
|
2023-10-27 07:57:17 +13:00
|
|
|
callback scan_ended();
|
|
|
|
|
2023-10-22 10:33:29 +13:00
|
|
|
min-width: 300px;
|
2023-10-22 22:32:13 +13:00
|
|
|
preferred-width: 1024px;
|
|
|
|
min-height: 300px;
|
|
|
|
preferred-height: 600px;
|
2023-10-21 19:36:56 +13:00
|
|
|
|
2023-10-27 07:57:17 +13:00
|
|
|
in-out property <bool> stop_requested: false;
|
2023-10-21 19:36:56 +13:00
|
|
|
in-out property <bool> scanning: false;
|
2023-10-23 09:12:59 +13:00
|
|
|
in-out property <ProgressToSend> progress_datas : {
|
|
|
|
current_progress: 15,
|
|
|
|
all_progress: 20,
|
|
|
|
step_name: "Cache",
|
|
|
|
};
|
2023-10-21 19:36:56 +13:00
|
|
|
|
|
|
|
in-out property <CurrentTab> active-tab: CurrentTab.EmptyFolders;
|
2023-10-22 10:33:29 +13:00
|
|
|
in-out property <[{checked: bool, header_row: bool, selected_row: bool, val:[string]}]> empty_folder_model: [
|
2023-10-21 19:36:56 +13:00
|
|
|
{checked: false, selected_row: false, header_row: true, val: ["kropkarz", "/Xd1", "24.10.2023"]} ,
|
2023-10-22 10:33:29 +13:00
|
|
|
{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"]} ,
|
2023-10-22 22:32:13 +13:00
|
|
|
{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"]} ,
|
2023-10-21 19:36:56 +13:00
|
|
|
{checked: true, selected_row: false, header_row: false, val: ["lokkaler", "/Xd1/Vide2", "01.23.1911"]}
|
|
|
|
];
|
2023-10-22 10:33:29 +13:00
|
|
|
in-out property <[{checked: bool, header_row: bool, selected_row: bool, val:[string]}]> empty_files_model: [];
|
|
|
|
in-out property <[{checked: bool, header_row: bool, selected_row: bool, val:[string]}]> similar_images_model: [];
|
2023-10-21 19:36:56 +13:00
|
|
|
|
|
|
|
title: root.active-tab == CurrentTab.EmptyFiles ? "EmptyFiles" : (root.active-tab == CurrentTab.EmptyFolders ? "EmptyFolders" : "Similar Images");
|
2023-10-19 20:32:37 +13:00
|
|
|
|
2023-10-18 08:31:08 +13:00
|
|
|
VerticalBox {
|
|
|
|
HorizontalBox {
|
2023-10-22 22:32:13 +13:00
|
|
|
vertical-stretch: 1.0;
|
2023-10-19 20:32:37 +13:00
|
|
|
// min-width: 600px;
|
2023-10-18 08:31:08 +13:00
|
|
|
preferred-height: 300px;
|
|
|
|
|
2023-10-21 19:36:56 +13:00
|
|
|
LeftSidePanel {
|
2023-10-22 22:32:13 +13:00
|
|
|
horizontal-stretch: 0.0;
|
|
|
|
scanning <=> root.scanning;
|
2023-10-21 19:36:56 +13:00
|
|
|
active-tab <=> root.active-tab;
|
2023-10-18 08:31:08 +13:00
|
|
|
}
|
|
|
|
|
2023-10-23 09:12:59 +13:00
|
|
|
VerticalLayout {
|
2023-10-22 22:32:13 +13:00
|
|
|
horizontal-stretch: 1.0;
|
2023-10-23 09:12:59 +13:00
|
|
|
MainList {
|
|
|
|
vertical-stretch: 1.0;
|
|
|
|
active-tab <=> root.active-tab;
|
|
|
|
empty_folder_model <=> root.empty_folder_model;
|
|
|
|
empty_files_model <=> root.empty_files_model;
|
|
|
|
similar_images_model <=> root.similar_images_model;
|
|
|
|
|
|
|
|
item_opened(item) => {item_opened(item)}
|
|
|
|
}
|
2023-10-27 07:57:17 +13:00
|
|
|
if root.scanning: Progress {
|
2023-10-23 09:12:59 +13:00
|
|
|
horizontal-stretch: 0.0;
|
|
|
|
progress_datas <=> root.progress_datas;
|
|
|
|
}
|
2023-10-21 19:36:56 +13:00
|
|
|
}
|
2023-10-18 08:31:08 +13:00
|
|
|
}
|
2023-10-22 22:32:13 +13:00
|
|
|
ActionButtons {
|
|
|
|
vertical-stretch: 0.0;
|
|
|
|
scanning <=> root.scanning;
|
|
|
|
active-tab <=> root.active-tab;
|
2023-10-27 07:57:17 +13:00
|
|
|
stop_requested <=> root.stop-requested;
|
2023-10-22 22:32:13 +13:00
|
|
|
deleted => {root.deleted();}
|
2023-10-27 07:57:17 +13:00
|
|
|
scan_stopping => {root.scan_stopping();}
|
|
|
|
scan_starting(item) => {root.scan_starting(item);}
|
|
|
|
}
|
|
|
|
LineEdit {
|
|
|
|
text: root.stop-requested ? "Stopping scan, please wait..." : "Search stopped";
|
|
|
|
read-only: true;
|
2023-10-18 08:31:08 +13:00
|
|
|
}
|
|
|
|
}
|
2023-10-27 07:57:17 +13:00
|
|
|
|
|
|
|
scan_ended() => {
|
|
|
|
root.scanning = false;
|
|
|
|
root.stop_requested = false;
|
|
|
|
}
|
2023-10-18 08:31:08 +13:00
|
|
|
}
|