qleany 1.7.3

Architecture generator for Rust and C++/Qt applications.
import { CheckBox, ScrollView } from "std-widgets.slint";
import { ProjectTabState, UserInterfaceTabState } from "../globals.slint";
import { Paper, FormField } from "../components/misc.slint";

export component UserInterfaceTab inherits Rectangle {
    background: #ffffff;

    VerticalLayout {
        padding: 5px;
        spacing: 0px;

        // Title
        Text {
            text: "User Interface Settings";
            font-size: 28px;
            font-weight: 700;
            color: #212529;
        }

        // Form in Paper
        Paper {
            with-border: true;
            
            VerticalLayout {
                padding: 16px;
                spacing: 16px;

                if ProjectTabState.language == "Rust" : VerticalLayout {
                    spacing: 16px;
                    Text {
                        text: "Rust User Interfaces";
                        font-size: 18px;
                        font-weight: 600;
                    }

                    CheckBox {
                        text: "CLI";
                        checked <=> UserInterfaceTabState.rust_cli;
                        toggled => {
                            UserInterfaceTabState.rust_cli_changed(self.checked);
                        }
                    }

                    CheckBox {
                        text: "Slint";
                        checked <=> UserInterfaceTabState.rust_slint;
                        toggled => {
                            UserInterfaceTabState.rust_slint_changed(self.checked);
                        }
                    }

                    CheckBox {
                        text: "iOS (UniFFI)";
                        checked <=> UserInterfaceTabState.rust_ios;
                        toggled => {
                            UserInterfaceTabState.rust_ios_changed(self.checked);
                        }
                    }

                    CheckBox {
                        text: "Android (UniFFI)";
                        checked <=> UserInterfaceTabState.rust_android;
                        toggled => {
                            UserInterfaceTabState.rust_android_changed(self.checked);
                        }
                    }
                }

                if ProjectTabState.language == "C++ / Qt" : VerticalLayout {
                    spacing: 16px;
                    Text {
                        text: "C++ / Qt User Interfaces";
                        font-size: 18px;
                        font-weight: 600;
                    }

                    CheckBox {
                        text: "Qt Widgets";
                        checked <=> UserInterfaceTabState.cpp_qt_qtwidgets;
                        toggled => {
                            UserInterfaceTabState.cpp_qt_qtwidgets_changed(self.checked);
                        }
                    }

                    CheckBox {
                        text: "Qt Quick";
                        checked <=> UserInterfaceTabState.cpp_qt_qtquick;
                        toggled => {
                            UserInterfaceTabState.cpp_qt_qtquick_changed(self.checked);
                        }
                    }
                }
            }
        }

        // Spacer
        Rectangle { vertical-stretch: 1; }
    }
}