Support scaling image depended on encoding

This commit is contained in:
2025-03-06 21:56:52 +01:00
parent 454fa43492
commit 8ead2a205d
6 changed files with 89 additions and 28 deletions

View File

@@ -19,10 +19,11 @@ component ConvertImageWidget inherits Rectangle {
in-out property <int> image-width;
in-out property <int> image-height;
in-out property <image> palette_data;
in-out property <int> palette_width: 0;
in-out property <int> palette_height: 0;
in-out property <bool> enable_view: false;
in-out property <bool> palette_visible: false;
in-out property <int> palette_width: 0;
in-out property <int> palette_height: 0;
in-out property <string> selected_encoding;
in-out property <bool> enable_view: false;
in-out property <bool> palette_visible: false;
callback browse_clicked();
callback add_clicked();
@@ -92,8 +93,13 @@ component ConvertImageWidget inherits Rectangle {
VerticalLayout {
alignment: center;
ComboBox {
model: root.encoding_options;
enabled: root.enable_view;
model: root.encoding_options;
enabled: root.enable_view;
current-value: root.encoding_options[0];
selected(current-value) => {
root.selected_encoding = current-value;
}
}
}
}
@@ -205,6 +211,7 @@ export component FileTab inherits Rectangle {
in-out property <image> conv-palette_data;
in-out property <int> conv-palette_width;
in-out property <int> conv-palette_height;
in-out property <string> conv-selected_encoding;
in-out property <bool> conv-palette_enable;
in-out property <bool> conv-enable_view;
@@ -244,17 +251,18 @@ export component FileTab inherits Rectangle {
}
if root.state == State.ConvertImage : ConvertImageWidget {
encoding_options <=> root.conv-encoding_options;
image_path <=> root.conv-image_path;
image_data <=> root.conv-image_data;
image-width <=> root.conv-image_width;
image-height <=> root.conv-image_height;
palette_data <=> root.conv-palette_data;
palette_width <=> root.conv-palette_width;
palette_height <=> root.conv-palette_height;
palette_visible <=> root.conv-palette_enable;
image_name <=> root.conv-image_name;
enable_view <=> root.conv-enable_view;
encoding_options <=> root.conv-encoding_options;
image_path <=> root.conv-image_path;
image_data <=> root.conv-image_data;
image-width <=> root.conv-image_width;
image-height <=> root.conv-image_height;
palette_data <=> root.conv-palette_data;
palette_width <=> root.conv-palette_width;
palette_height <=> root.conv-palette_height;
palette_visible <=> root.conv-palette_enable;
selected_encoding <=> root.conv-selected_encoding;
image_name <=> root.conv-image_name;
enable_view <=> root.conv-enable_view;
update_palette_size(width, height) => {
root.conv-image_update_palette_size(width, height);