All Versions
21
Latest Version
Avg Release Cycle
37 days
Latest Release
869 days ago

Changelog History
Page 1

  • v0.3.1 Changes

    October 28, 2022

    ๐Ÿ”„ Changed

    • The property Window::background is now a brush instead of a color (allowing gradients).
    • Switch to yeslogic-fontconfig-sys from servo-fontconfig dependency. This allows for fontconfig to be a run-time dependency via dlopen.
    • Skia renderer: Improvements to text input.

    โž• Added

    • Added slint::FilterModel, slint::MapModel to the C++ API.
    • Added slint::SortModel to Rust and C++ API.
    • Added VecModel::extend and VecModel::extend_from_slice.
    • Online editor: Added "Properties" and "Outline" tabs.
    • Added initial support for input methods with pre-edit text.
    • Added a dark theme for the Fluent style, which is automatically selected if the system color scheme is dark.
    • Added fluent-light and fluent-dark as explicit styles to select a light/dark variant, regardless of the system color scheme setting.

    ๐Ÿ›  Fixed

    • TextInput now shows the text mouse cursor.
    • In Flickable, added a small delay before passing the Press pointer event to the children.
    • Online editor: Fixed "go to definition" across files.
    • Fixed a panic in the slint compiler when visiting layout properties for loop analysis (#1659).
    • Fixed compilation error in the generated code (#1733, #1735).
  • v0.3.0 Changes

    September 14, 2022

    ๐Ÿ’ฅ Breaking Changes

    • mod now works on any numeric type, not only integers.
    • Minimum rust version is now 1.60.
    • The "backend-gl-*" Rust crate features for configuring the GL renderer have been changed and split by renderer.
    • VecModel::remove now returns the removed element.
    • slint::invoke_from_event_loop and slint::quit_event_loop now return a Result.

    โž• Added

    • Added the platform module providing API to use slint on bare metal with a software renderer.
    • Added an experimental Skia renderer.
    • Button: Add a checkable property that turns the button into a toggle button. Use the new checked property to query whether the toggle button is pressed down or not.
    • Added support for slint::Window::set_position and slint::Window::position to set and get the placement of the window on the screen.
    • Added slint::Window::scale_factor() as getter to read the system device pixel ratio.
    • Added support for slint::Window::set_size and slint::Window::size to set and get the size of the window on the screen.
    • Added slint::Window::dispatch_event and slint::WindowEvent to be able to manually send a mouse or touch event to a window.
    • Added animation-tick().
    • SharedString implements std::fmt::Write and added slint::format!.
    • Image can now be rotated with the rotation-* properties.
    • Use docking widgets and integration of slint-lsp into the Online Code Editor.

    ๐Ÿ›  Fixed

    • Fixed Ctrl+Backspace/Ctrl+Del not deleting words in text input elements.
    • Resizing of live-preview window in the IDE integrations.
    • Preferred size of the TabWidget in the fluent style take in account the size of the tabs (#1363).
    • Fixed cursor behavior when typing the Enter key at the end of a TextEdit (#1318).
    • Fixed a memory leak of images when using the GL backend.
    • Fixed starting and stopping slint::Timer from withing their callback (#1532).
  • v0.2.5 Changes

    July 06, 2022

    ๐Ÿ”„ Changed

    • Interpreter: Implement TryFrom<Value> instead of TryInto for Value (#1258)

    โž• Added

    • Added the Model Adapters FilterModel and MapModel.
    • Added @radial-gradient(circle, ...)
    • Added read-only property to TextInput, TextEdit and LineEdit.
    • VSCode extension can be installed as a web extension. (eg, from https://vscode.dev)
    • LSP: completion of @ macros
    • LSP: completion of element that require an import
    • Basic accessibility support using the accessible- properties

    ๐Ÿ›  Fixed

    • GL backend: Fixed animation sometimes not starting from input event (#1255)
    • C++ fix compilation when writing to the model data
    • Fix mouse exit events not triggered by scrolling a Flickable (#1107)
  • v0.2.4 Changes

    May 09, 2022
    • Fixed crash when opening a native (Qt) ComboBox
  • v0.2.3 Changes

    May 09, 2022

    ๐Ÿ›  Fixed

    • Fixed crashes with the Qt backend in release mode. (#1230)
    • Fixed panic when drop-shadow is used in a ListView (#1233)
    • Fixed combining a brush and a color to always convert to brush, to avoid loosing gradient information (#1235)
    • Fixed properties not having the right default value when set by some states (#1237)
    • Fixed properties with multiples aliases, and default values.
    • Enable fontdb's fontconfig feature to fix finding some fonts (#1240)
  • v0.2.2 Changes

    May 04, 2022

    ๐Ÿ”„ Changed

    • On wasm, the input event are handled via a hidden <input> element, allowing the keyboard to show on mobile platform
    • The size of the window is kept when reloading a window in the preview (instead of being reset to the preferred size)
    • Minimum rust version is now 1.59

    โž• Added

    • Support for keyboard focus with the tab key
    • Support more keyboard shortcut in the editing element
    • Added From<&str> and From<SharedString> to StandardListViewItem to make creation and modification of StandardListView's models easier.
    • Added on_close_requested function to Window to register callbacks that are emitted when the user tries to close a window.
    • Added VecModel::set_vec to replace the entire contents with new data.
    • Added a cache-rendering-hint boolean property that can be applied to any element, to hint to the renderer that it should cache the element and its children into a cached layer. This may speed up rendering of complex sub-trees if they rarely change.
    • The brighter and lighter functions also work on values of type brush.
    • Added a reset function to C++'s Model, Rust's ModelNotify and JS's ModelPeer
    • Added a row_data_tracked function to ModelExt (an extension to the Model trait)

    ๐Ÿ›  Fixed

    • Fixed application of the opacity property evenly to child elements (#725).
    • Windows: Fixed font lookup of strings including several scripts (eg, containing asian characters)
    • Fixed PopupWindow in a repeater (#1113, #1132)
    • LSP: do not always resize the preview window to its preferred each time the code is modified
  • v0.2.1 Changes

    March 10, 2022

    โž• Added

    • C++ interpreter API: added a Value::Value(int) constructor
    • Global singletons in .slint files may now refer to other global singletons
    • Added input-type property to TextInput and LineEdit that allows for characters to be replaced in password fields
    • The SpinBox widget now handles up and down key events

    ๐Ÿ›  Fixed

    • TouchArea::has-hover is now properly set to false when the mouse leaves the window
    • Fixed some cases of panics with 'Constant property being changed'
    • Fixed Flickable animation
    • Better compilation error when selecting unknown styles
    • Fixed duplicated key event for some keys (such as tab) with the GL backend
    • Improved property optimizations by inlining some bindings and remove more unused properties
  • v0.2.0 Changes

    February 10, 2022

    ๐Ÿ‘€ This version changes some APIs in incompatible ways. For details how to migrate your application code, see the [C++ migration guide](api/cpp/docs/cpp_migration.md) ๐Ÿ‘• as well as the [Rust migration guide for the sixtyfps crate](api/rs/slint/migration.md) and for the ๐Ÿ‘• [slint-interpreter crate](internal/interpreter/migration.rs).

    ๐Ÿ”„ Changed

    • Minimum rust version is now 1.56
    • C++ compiler requires C++20
    • In the C++ interpreter API std::span is used for callbacks arguments, instead of sixtyfps::Slice
    • Model::row_data will now return a Option<T> / std::optional<T> instead of a plain T.
    • Model::model_tracker no longer has a default implementation.
    • The deprecated methods Model::attach_peer and ModelNotify::attach were removed.
    • The interpreter does not differentiate anymore between Value::Array and Value::Model everything is a Value::Model, which now contains a ModelRc
    • In Rust, slint::SharedPixelBuffer and slint::SharedImageBuffer now use a u32 instead of usize for width, height and stride.
    • In Rust and C++, slint::Image::size() now returns an integer size type.
    • sixtyfps::interpreter::CallCallbackError was renamed to slint::interpreter::InvokeCallbackError
    • Some deprecation warning in .60 became hard errors
    • Replace ModelHandle with ModelRc
    • slint::interpreter::ComponentInstance in Rust now implements slint::ComponentHandle. This removes sixtyfps_interpreter::WeakComponentInstance in favor of slint_interpreter::Weak<slint_interpreter::ComponentInstance>.
    • For the Rust API crate, the Rust Interpreter API crate, the backend-gl, x11, and wayland features were renamed to backend-gl-all, backend-gl-x11, and backend-gl-wayland.
    • For the C++ CMake interface, the SIXTYFPS_BACKEND_GL, SIXTYFPS_FEATURE_X11, and SIXTYFPS_FEATURE_WAYLAND options were renamed to SLINT_BACKEND_GL_ALL, SLINT_FEATURE_BACKEND_GL_X11, and SLINT_FEATURE_BACKEND_GL_WAYLAND.
    • The animation loop-count property was replaced by iteration-count (which is the same as loop-count plus one)

    โž• Added

    • TextEdit::font-size and LineEdit::font-size have been added to control the size of these widgets.
    • Added slint::Window::set_rendering_notifier to get a callback before and after a new frame is being rendered.
    • Added slint::Window::request_redraw() to schedule redrawing of the window contents.

    ๐Ÿ›  Fixed

    • Models initialized from arrays are now also mutable when run in the interpreter.
    • Fixed compilation error when accessing object members of array through the array index syntax
  • v0.1.6 Changes

    January 21, 2022

    ๐Ÿ”„ Changed

    • Breaking: The internal key code for the keys left, right, home and end has changed. This was undocumented, but if you were handling this in the FocusScope event, these keys will now be ignored. Use the Keys.LeftArrow and other code exposed in the Keys namespace instead.
    • For sixtyfps::Timer (C++ and Rust), it's now possible to call restart() after a timer has been stopped previously by calling stop().
    • Property access in .60 was optimized by doing more constant propagation.

    โž• Added

    • Color names can now be accessed through the Colors namespace (in .60).
    • Math function are now available through the Math namespace (in .60).
    • TouchArea gained a mouse-cursor property to change the mouse cursor.
    • C++: Added SIXTYFPS_VERSION_MAJOR/SIXTYFPS_VERSION_MINOR/SIXTYFPS_VERSION_PATCH version macros.
    • More special keyboard key codes are provided in the FocusScope, and special keys are handled
    • start(), stop(), running() and a default constructor for C++ sixtyfps::Timer
    • Added math functions log, and pow.
    • Property animations now have a delay property, which will delay the start of the animation. Use this to create sequential animations.
    • Rust: Added sixtyfps::VecModel::insert(&self, index, value).
    • C++: Added sixtyfps::VecModel::insert(index, value).
    • Added ability to access elements of a model with the [index] syntax.

    ๐Ÿ›  Fixed

    • Memory leak in C++.
    • Native style: Colors are updated automatically when the Windowing system switches to and from dark mode (#687)
    • Ctrl/Command+X in text fields copies the selected text to the clipboard and deletes it (cut).
    • Improved native ComboBox look.
    • Fixed panics or compilation error when using two way bindings on global properties.
  • v0.1.5 Changes

    November 24, 2021

    ๐Ÿ”„ Changed

    • The sixtyfps compiler no longer "inline" all the elements, resulting in faster compilation time and smaller binaries.
    • Implemented basic constant propagation in the sixtyfps compiler

    ๐Ÿ›  Fixed

    • The Slider's changed callback was not being called with the fluent style (#621).
    • Fixed compilation error in C++'s sixtyfps::blocking_invoke_from_main_loop when the callable returns void (#623).
    • Improve rendering quality on High-DPI screens on Windows when using Qt.
    • Fixed linking errors when selecting the native style on Windows with C++.
    • Fixed the maximization button in the window decoration when a window has a fixed size.