1
0
Fork 0
mirror of synced 2024-06-15 00:45:29 +12:00

Again fixes

This commit is contained in:
Rafał Mikrut 2023-11-13 21:47:02 +01:00
parent 0b99d9c1d9
commit 74ae728cde
2 changed files with 62 additions and 56 deletions

View file

@ -22,6 +22,7 @@ pub struct SettingsCustom {
#[serde(default = "default_excluded_directories")] #[serde(default = "default_excluded_directories")]
pub excluded_directories: Vec<PathBuf>, pub excluded_directories: Vec<PathBuf>,
} }
impl Default for SettingsCustom { impl Default for SettingsCustom {
fn default() -> Self { fn default() -> Self {
Self { Self {

View file

@ -24,14 +24,16 @@ export component SelectableTableView inherits Rectangle {
} }
} }
ScrollView { VerticalBox {
VerticalBox { padding: 0px;
padding: 5px; forward-focus: focus-item;
forward-focus: focus-item; ScrollView {
height: 30px;
viewport-x <=> list_view.viewport-x;
vertical-stretch: 0;
HorizontalLayout { HorizontalLayout {
padding: 5px;
spacing: 5px; spacing: 5px;
vertical-stretch: 0;
for title [idx] in root.columns: HorizontalLayout { for title [idx] in root.columns: HorizontalLayout {
width: root.column-sizes[idx]; width: root.column-sizes[idx];
Text { Text {
@ -66,70 +68,73 @@ export component SelectableTableView inherits Rectangle {
} }
} }
} }
}
list_view := ListView { list_view := ListView {
min-width: 100px; padding: 0px;
min-width: 100px;
forward-focus: focus-item;
for r [idx] in root.values: Rectangle {
width: column_sizes[0] + column_sizes[1] + column_sizes[2] + column_sizes[3] + column_sizes[4] + column_sizes[5] + column_sizes[6] + column_sizes[7] + column_sizes[8] + column_sizes[9] + column_sizes[10] + column_sizes[11];
border-radius: 5px;
forward-focus: focus-item; forward-focus: focus-item;
for r [idx] in root.values: Rectangle { height: 20px;
border-radius: 5px; background: r.header-row ? ColorPalette.list_view_normal_header_color : (touch-area.has-hover ? (r.selected_row ? ColorPalette.list-view-normal-selected-header : ColorPalette.list_view_normal_color) : (r.selected_row ? ColorPalette.list-view-normal-selected-header : ColorPalette.list_view_normal_color));
touch_area := TouchArea {
forward-focus: focus-item; forward-focus: focus-item;
height: 20px; clicked => {
background: r.header-row ? ColorPalette.list_view_normal_header_color : (touch-area.has-hover ? (r.selected_row ? ColorPalette.list-view-normal-selected-header : ColorPalette.list_view_normal_color) : (r.selected_row ? ColorPalette.list-view-normal-selected-header : ColorPalette.list_view_normal_color)); if (!r.header_row) {
touch_area := TouchArea { r.selected_row = !r.selected_row;
forward-focus: focus-item; if (root.selected-item == -1) {
clicked => { root.selected-item = idx;
if (!r.header_row) { } else {
r.selected_row = !r.selected_row; if (r.selected_row == true) {
if (root.selected-item == -1) { root.values[root.selected-item].selected_row = false;
root.selected-item = idx; root.selected-item = idx;
} else { } else {
if (r.selected_row == true) { root.selected-item = -1;
root.values[root.selected-item].selected_row = false;
root.selected-item = idx;
} else {
root.selected-item = -1;
}
} }
}
if (root.selected_item != -1) { if (root.selected_item != -1) {
Callabler.load_image_preview(r.val[root.parentPathIdx - 1] + "/" + r.val[root.fileNameIdx - 1]); Callabler.load_image_preview(r.val[root.parentPathIdx - 1] + "/" + r.val[root.fileNameIdx - 1]);
} else { } else {
GuiState.preview-visible = false; GuiState.preview-visible = false;
}
} }
} }
pointer-event(event) => { }
// TODO this should be clicked by double-click pointer-event(event) => {
if (event.button == PointerEventButton.right && event.kind == PointerEventKind.up) { // TODO this should be clicked by double-click
Callabler.item_opened(r.val[root.parentPathIdx - 1]) if (event.button == PointerEventButton.right && event.kind == PointerEventKind.up) {
} else if (event.button == PointerEventButton.middle && event.kind == PointerEventKind.up) { Callabler.item_opened(r.val[root.parentPathIdx - 1])
Callabler.item_opened(r.val[root.parentPathIdx - 1] + "/" + r.val[root.fileNameIdx - 1]) } else if (event.button == PointerEventButton.middle && event.kind == PointerEventKind.up) {
} Callabler.item_opened(r.val[root.parentPathIdx - 1] + "/" + r.val[root.fileNameIdx - 1])
}
}
}
HorizontalLayout {
forward-focus: focus-item;
CheckBox {
visible: !r.header-row;
checked: r.checked && !r.header-row;
width: root.column-sizes[0];
forward-focus: focus-item;
toggled => {
r.checked = self.checked;
} }
} }
HorizontalLayout { HorizontalLayout {
forward-focus: focus-item; spacing: 5px;
CheckBox { for f [idx] in r.val: Text {
visible: !r.header-row; width: root.column-sizes[idx + 1];
checked: r.checked && !r.header-row; text: f;
width: root.column-sizes[0]; font-size: 12px;
forward-focus: focus-item; forward-focus: focus-item;
toggled => { vertical-alignment: center;
r.checked = self.checked; overflow: elide;
}
}
HorizontalLayout {
spacing: 5px;
for f [idx] in r.val: Text {
width: root.column-sizes[idx + 1];
text: f;
font-size: 12px;
forward-focus: focus-item;
vertical-alignment: center;
overflow: elide;
}
} }
} }
} }