89 lines
No EOL
2.5 KiB
Text
89 lines
No EOL
2.5 KiB
Text
import { Button, VerticalBox , HorizontalBox, TabWidget, ListView, StandardListView, StandardTableView, CheckBox} from "std-widgets.slint";
|
|
import {CurrentTab} from "common.slint";
|
|
import {ColorPalette} from "color_palette.slint";
|
|
|
|
component TabItem {
|
|
in property <bool> scanning;
|
|
in-out property <CurrentTab> active-tab;
|
|
in property <string> text;
|
|
in property <CurrentTab> curr_tab;
|
|
|
|
|
|
Rectangle {
|
|
width: parent.width;
|
|
horizontal-stretch: 1.0;
|
|
background: touch-area.has-hover ? ColorPalette.tab-hovered-color : transparent;
|
|
opacity: 0.05;
|
|
|
|
touch_area:= TouchArea {
|
|
clicked => {
|
|
root.active-tab = root.curr-tab;
|
|
}
|
|
}
|
|
}
|
|
HorizontalLayout {
|
|
width: parent.width;
|
|
alignment: LayoutAlignment.end;
|
|
Rectangle {
|
|
visible: (root.active-tab == root.curr-tab);
|
|
width: 5px;
|
|
background: ColorPalette.tab_selected_color;
|
|
}
|
|
}
|
|
Text {
|
|
text: root.text;
|
|
width: parent.width;
|
|
horizontal-alignment: center;
|
|
}
|
|
}
|
|
|
|
export component LeftSidePanel {
|
|
in-out property <CurrentTab> active-tab;
|
|
in-out property <bool> scanning;
|
|
width: 120px;
|
|
|
|
VerticalLayout {
|
|
spacing: 20px;
|
|
Rectangle {
|
|
height: 100px;
|
|
Image {
|
|
width: root.width;
|
|
source: @image-url("../icons/logo.png");
|
|
}
|
|
}
|
|
VerticalLayout {
|
|
// spacing: 3px;
|
|
alignment: center;
|
|
out property <length> element-size: 25px;
|
|
TabItem {
|
|
height: parent.element-size;
|
|
scanning: scanning;
|
|
text: "Empty Folders";
|
|
active-tab <=> root.active-tab;
|
|
curr_tab: CurrentTab.EmptyFolders;
|
|
}
|
|
TabItem {
|
|
height: parent.element-size;
|
|
scanning: scanning;
|
|
text: "Empty Files";
|
|
active-tab <=> root.active-tab;
|
|
curr_tab: CurrentTab.EmptyFiles;
|
|
}
|
|
TabItem {
|
|
height: parent.element-size;
|
|
scanning: scanning;
|
|
text: "Similar Images";
|
|
active-tab <=> root.active-tab;
|
|
curr_tab: CurrentTab.SimilarImages;
|
|
}
|
|
}
|
|
HorizontalLayout {
|
|
height: 20px;
|
|
alignment: end;
|
|
Image {
|
|
width: 20px;
|
|
source: @image-url("../icons/settings.png");
|
|
}
|
|
}
|
|
}
|
|
} |