import { Button, VerticalBox , HorizontalBox, TabWidget, ListView, StandardListView, StandardTableView, CheckBox, LineEdit} from "std-widgets.slint"; import {SelectableTableView} from "selectable_tree_view.slint"; import {LeftSidePanel} from "left_side_panel.slint"; import {MainList} from "main_lists.slint"; import {CurrentTab, ProgressToSend} from "common.slint"; import { ActionButtons } from "action_buttons.slint"; import { Progress } from "progress.slint"; import {MainListModel} from "common.slint"; import {Settings, SettingsModel} from "settings.slint"; import { BottomPanel } from "bottom_panel.slint"; export {Settings} export component MainWindow inherits Window { callback deleted; callback scan_stopping; callback scan_starting(CurrentTab); callback item_opened(string); callback scan_ended(); min-width: 300px; preferred-width: 1024px; min-height: 300px; preferred-height: 600px; in-out property stop_requested: false; in-out property scanning: false; in-out property progress_datas : { current_progress: 15, all_progress: 20, step_name: "Cache", }; in-out property active-tab: CurrentTab.EmptyFolders; in-out property <[MainListModel]> empty_folder_model: [ {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: []; in-out property <[MainListModel]> similar_images_model: []; title: root.active-tab == CurrentTab.EmptyFiles ? "EmptyFiles" : (root.active-tab == CurrentTab.EmptyFolders ? "EmptyFolders" : "Similar Images"); VerticalBox { HorizontalBox { vertical-stretch: 1.0; // min-width: 600px; preferred-height: 300px; LeftSidePanel { horizontal-stretch: 0.0; scanning <=> root.scanning; active-tab <=> root.active-tab; } VerticalLayout { horizontal-stretch: 1.0; 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)} } if root.scanning: Progress { horizontal-stretch: 0.0; progress_datas <=> root.progress_datas; } } } action_buttons := ActionButtons { vertical-stretch: 0.0; scanning <=> root.scanning; active-tab <=> root.active-tab; stop_requested <=> root.stop-requested; deleted => {root.deleted();} scan_stopping => { text_summary.text = "Stopping scan, please wait..."; root.scan_stopping(); } scan_starting(item) => { text-summary.text = "Searching..."; root.scan_starting(item); } } text_summary := LineEdit { read-only: true; } BottomPanel { bottom-panel-visibility <=> action_buttons.bottom-panel-visibility; vertical-stretch: 0.0; } } scan_ended() => { text-summary.text = ""; // TODO this should be filled with results root.scanning = false; root.stop_requested = false; } }