169 lines
No EOL
4.7 KiB
Text
169 lines
No EOL
4.7 KiB
Text
import { Button, VerticalBox , HorizontalBox, TabWidget, ListView, StandardListView, StandardTableView, CheckBox, ScrollView, LineEdit, SpinBox, ComboBox, TextEdit} from "std-widgets.slint";
|
|
import { Settings } from "settings.slint";
|
|
import { Callabler } from "callabler.slint";
|
|
|
|
// TODO use Spinbox instead LineEdit {} to be able to set only numbers
|
|
|
|
global SettingsSize {
|
|
out property <length> item_height: 30px;
|
|
}
|
|
|
|
component TextComponent inherits HorizontalLayout {
|
|
in-out property <string> model;
|
|
in property <string> name;
|
|
spacing: 5px;
|
|
Text {
|
|
horizontal-stretch: 0.0;
|
|
vertical-alignment: TextVerticalAlignment.center;
|
|
text: name;
|
|
}
|
|
LineEdit {
|
|
horizontal-stretch: 1.0;
|
|
height: SettingsSize.item_height;
|
|
text <=> model;
|
|
}
|
|
}
|
|
|
|
component MinMaxSizeComponent inherits HorizontalLayout {
|
|
spacing: 20px;
|
|
Text {
|
|
horizontal-stretch: 0.0;
|
|
text:"Items Size(Bytes)";
|
|
vertical-alignment: TextVerticalAlignment.center;
|
|
}
|
|
HorizontalLayout {
|
|
spacing: 5px;
|
|
horizontal-stretch: 1.0;
|
|
Text {
|
|
text:"Min:";
|
|
vertical-alignment: TextVerticalAlignment.center;
|
|
}
|
|
LineEdit {
|
|
height: SettingsSize.item_height;
|
|
text <=> Settings.minimum_file_size;
|
|
}
|
|
Text {
|
|
text:"Max:";
|
|
vertical-alignment: TextVerticalAlignment.center;
|
|
}
|
|
LineEdit {
|
|
height: SettingsSize.item_height;
|
|
text <=> Settings.maximum_file_size;
|
|
}
|
|
}
|
|
}
|
|
|
|
component Presets inherits Rectangle {
|
|
property <bool> edit_name;
|
|
property <string> current_index;
|
|
if !edit_name: HorizontalLayout {
|
|
spacing: 5px;
|
|
Text {
|
|
text : "Current Preset:";
|
|
vertical-alignment: TextVerticalAlignment.center;
|
|
}
|
|
combo_box := ComboBox {
|
|
current-index <=> Settings.settings_preset_idx;
|
|
model: Settings.settings_presets;
|
|
selected(item) => {
|
|
Settings.settings_preset_idx = self.current_index;
|
|
Callabler.changed_settings_preset();
|
|
}
|
|
}
|
|
Button {
|
|
text: "Edit name";
|
|
clicked => {
|
|
root.edit_name = !root.edit_name;
|
|
}
|
|
}
|
|
}
|
|
if edit_name : HorizontalLayout{
|
|
spacing: 5px;
|
|
Text {
|
|
text: "Choose name for prefix " + (Settings.settings_preset_idx + 1);
|
|
vertical-alignment: TextVerticalAlignment.center;
|
|
}
|
|
current_name := LineEdit {
|
|
text: Settings.settings_presets[Settings.settings_preset_idx];
|
|
}
|
|
Button {
|
|
text: "Save";
|
|
clicked => {
|
|
Settings.settings_presets[Settings.settings_preset_idx] = current_name.text;
|
|
edit_name = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
component Language inherits HorizontalLayout {
|
|
spacing: 5px;
|
|
Text {
|
|
text: Callabler.translate("settings_language", []);
|
|
vertical-alignment: TextVerticalAlignment.center;
|
|
}
|
|
ComboBox {
|
|
model: ["English"];
|
|
}
|
|
}
|
|
|
|
export component SettingsList inherits VerticalLayout {
|
|
preferred-height: 300px;
|
|
preferred-width: 400px;
|
|
|
|
Text {
|
|
text: "Settings";
|
|
height: SettingsSize.item_height;
|
|
horizontal-alignment: TextHorizontalAlignment.center;
|
|
font-size: 20px;
|
|
}
|
|
ScrollView {
|
|
VerticalLayout {
|
|
spacing: 5px;
|
|
Presets{
|
|
height: SettingsSize.item_height;
|
|
}
|
|
Language {
|
|
height: SettingsSize.item_height;
|
|
}
|
|
Text {
|
|
text: "General settings";
|
|
height: SettingsSize.item_height;
|
|
horizontal-alignment: TextHorizontalAlignment.center;
|
|
vertical-alignment: TextVerticalAlignment.center;
|
|
}
|
|
TextComponent {
|
|
name: "Excluded item:";
|
|
model <=> Settings.excluded_items;
|
|
}
|
|
TextComponent {
|
|
name: "Allowed extensions:";
|
|
model <=> Settings.allowed_extensions;
|
|
}
|
|
MinMaxSizeComponent {
|
|
|
|
}
|
|
}
|
|
}
|
|
HorizontalLayout {
|
|
spacing: 5px;
|
|
Button {
|
|
text: "Save";
|
|
clicked => {
|
|
Callabler.save_current_preset();
|
|
}
|
|
}
|
|
Button {
|
|
text: "Load";
|
|
clicked => {
|
|
Callabler.load_current_preset();
|
|
}
|
|
}
|
|
Button {
|
|
text: "Reset";
|
|
clicked => {
|
|
Callabler.reset_current_preset();
|
|
}
|
|
}
|
|
}
|
|
} |