From eb29237f248e9ff92617df7ed0fa08fa7de77d9f Mon Sep 17 00:00:00 2001 From: Jaby Date: Thu, 13 Mar 2025 20:29:48 +0100 Subject: [PATCH] Create connections --- src/Tools/tim_tool/ui/app-window.slint | 17 +++++-- src/Tools/tim_tool/ui/tab/file-tab.slint | 60 ++++++++++++++++++++++-- 2 files changed, 67 insertions(+), 10 deletions(-) diff --git a/src/Tools/tim_tool/ui/app-window.slint b/src/Tools/tim_tool/ui/app-window.slint index 6d58590e..5d16b2c0 100644 --- a/src/Tools/tim_tool/ui/app-window.slint +++ b/src/Tools/tim_tool/ui/app-window.slint @@ -5,12 +5,19 @@ import { TabWidget } from "std-widgets.slint"; export component MainWindow inherits Window { // Main Tab values - in-out property main_tab_vram_bg <=> main_tab.vram_bg; - in-out property main_tab_vram_file_list <=> main_tab.vram_files; - in-out property main_tab_vram_images <=> main_tab.vram_images; + in-out property main_tab_vram_bg <=> main_tab.vram_bg; + in-out property main_tab_vram_file_list <=> main_tab.vram_files; + in-out property main_tab_vram_images <=> main_tab.vram_images; + callback main_tab_remove_file_clicked <=> main_tab.remove_file_clicked; + callback move_vram_image <=> main_tab.move_vram_image; - callback main_tab_remove_file_clicked <=> main_tab.remove_file_clicked; - callback move_vram_image <=> main_tab.move_vram_image; + // Project widget values + in-out property project_widget-open_project_path <=> file_tab.project_widget-open_project_path; + in-out property project_widget-save_project_path <=> file_tab.project_widget-save_project_path; + callback project_widget-load_project_clicked <=> file_tab.project_widget-load_project_clicked; + callback project_widget-save_project_clicked <=> file_tab.project_widget-save_project_clicked; + callback project_widget-browse_open_project_clicked <=> file_tab.project_widget-browse_open_project_clicked; + callback project_widget-browse_save_project_clicked <=> file_tab.project_widget-browse_save_project_clicked; // Convert Image values in-out property file_tab-encoding_options <=> file_tab.conv-encoding_options; diff --git a/src/Tools/tim_tool/ui/tab/file-tab.slint b/src/Tools/tim_tool/ui/tab/file-tab.slint index 32b04c15..48670657 100644 --- a/src/Tools/tim_tool/ui/tab/file-tab.slint +++ b/src/Tools/tim_tool/ui/tab/file-tab.slint @@ -6,6 +6,14 @@ export enum State { } component ProjectWidget inherits Rectangle { + in-out property open_project_path; + in-out property save_project_path; + + callback load_project_clicked(); + callback save_project_clicked(); + callback browse_open_project_clicked(); + callback browse_save_project_clicked(); + background: #D0D0D0; VerticalLayout { @@ -22,15 +30,22 @@ component ProjectWidget inherits Rectangle { alignment: start; LineEdit { width: 300pt; + text: root.open_project_path; } Button { text: "Browse"; + clicked => { + root.browse_open_project_clicked(); + } } } HorizontalLayout { alignment: start; Button { text: "Load"; + clicked => { + root.load_project_clicked(); + } } } } @@ -47,9 +62,13 @@ component ProjectWidget inherits Rectangle { alignment: start; LineEdit { width: 300pt; + text: root.save_project_path; } Button { text: "Browse"; + clicked => { + root.browse_save_project_clicked(); + } } } CheckBox { @@ -59,6 +78,9 @@ component ProjectWidget inherits Rectangle { alignment: start; Button { text: "Save"; + clicked => { + root.save_project_clicked(); + } } } } @@ -256,6 +278,16 @@ component ConvertImageWidget inherits Rectangle { } export component FileTab inherits Rectangle { + in-out property state; + // For project widget + in-out property project_widget-open_project_path; + in-out property project_widget-save_project_path; + callback project_widget-load_project_clicked(); + callback project_widget-save_project_clicked(); + callback project_widget-browse_open_project_clicked(); + callback project_widget-browse_save_project_clicked(); + + // For image conversion widget in-out property <[string]> conv-encoding_options; in-out property conv-image_path; in-out property conv-image_name; @@ -267,12 +299,12 @@ export component FileTab inherits Rectangle { in-out property conv-palette_height; in-out property conv-selected_encoding; in-out property conv-palette_enable; - in-out property conv-enable_view; + in-out property conv-enable_view; + callback conv-image_update_palette_size(int, int); + callback conv-image_browse_clicked; + callback conv-image_add_clicked; + - in-out property state; - callback conv-image_update_palette_size(int, int); - callback conv-image_browse_clicked; - callback conv-image_add_clicked; x: 0px; y: 0px; @@ -302,6 +334,24 @@ export component FileTab inherits Rectangle { padding: 4px; alignment: start; if root.state == State.Project : ProjectWidget { + open_project_path <=> root.project_widget-open_project_path; + save_project_path <=> root.project_widget-save_project_path; + + load_project_clicked() => { + root.project_widget-load_project_clicked(); + } + + save_project_clicked() => { + root.project_widget-save_project_clicked(); + } + + browse_open_project_clicked() => { + root.project_widget-browse_open_project_clicked(); + } + + browse_save_project_clicked() => { + root.project_widget-save_project_clicked(); + } } if root.state == State.ConvertImage : ConvertImageWidget {