All Versions
21
Latest Version
Avg Release Cycle
37 days
Latest Release
869 days ago
Changelog History
Page 1
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
andVecModel::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
andfluent-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).
- The property
-
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
andslint::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 acheckable
property that turns the button into a toggle button. Use the newchecked
property to query whether the toggle button is pressed down or not.- Added support for
slint::Window::set_position
andslint::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
andslint::Window::size
to set and get the size of the window on the screen. - Added
slint::Window::dispatch_event
andslint::WindowEvent
to be able to manually send a mouse or touch event to a window. - Added
animation-tick()
. SharedString
implementsstd::fmt::Write
and addedslint::format!
.Image
can now be rotated with therotation-*
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 ofTryInto for Value
(#1258)
โ Added
- Added the Model Adapters
FilterModel
andMapModel
. - Added
@radial-gradient(circle, ...)
- Added
read-only
property toTextInput
,TextEdit
andLineEdit
. - 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)
- Interpreter: Implement
-
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>
andFrom<SharedString>
toStandardListViewItem
to make creation and modification ofStandardListView
's models easier. - Added
on_close_requested
function toWindow
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
andlighter
functions also work on values of type brush. - Added a
reset
function to C++'sModel
, Rust'sModelNotify
and JS'sModelPeer
- Added a
row_data_tracked
function toModelExt
(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
- On wasm, the input event are handled via a hidden
-
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 toTextInput
andLineEdit
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
- C++ interpreter API: added a
-
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 ofsixtyfps::Slice
Model::row_data
will now return aOption<T>
/std::optional<T>
instead of a plainT
.Model::model_tracker
no longer has a default implementation.- The deprecated methods
Model::attach_peer
andModelNotify::attach
were removed. - The interpreter does not differentiate anymore between
Value::Array
andValue::Model
everything is aValue::Model
, which now contains aModelRc
- In Rust,
slint::SharedPixelBuffer
andslint::SharedImageBuffer
now use au32
instead ofusize
forwidth
,height
andstride
. - In Rust and C++,
slint::Image::size()
now returns an integer size type. sixtyfps::interpreter::CallCallbackError
was renamed toslint::interpreter::InvokeCallbackError
- Some deprecation warning in .60 became hard errors
- Replace
ModelHandle
withModelRc
slint::interpreter::ComponentInstance
in Rust now implementsslint::ComponentHandle
. This removessixtyfps_interpreter::WeakComponentInstance
in favor ofslint_interpreter::Weak<slint_interpreter::ComponentInstance>
.- For the Rust API crate, the Rust Interpreter API crate, the
backend-gl
,x11
, andwayland
features were renamed tobackend-gl-all
,backend-gl-x11
, andbackend-gl-wayland
. - For the C++ CMake interface, the
SIXTYFPS_BACKEND_GL
,SIXTYFPS_FEATURE_X11
, andSIXTYFPS_FEATURE_WAYLAND
options were renamed toSLINT_BACKEND_GL_ALL
,SLINT_FEATURE_BACKEND_GL_X11
, andSLINT_FEATURE_BACKEND_GL_WAYLAND
. - The animation
loop-count
property was replaced byiteration-count
(which is the same asloop-count
plus one)
โ Added
TextEdit::font-size
andLineEdit::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 theKeys.LeftArrow
and other code exposed in theKeys
namespace instead. - For
sixtyfps::Timer
(C++ and Rust), it's now possible to callrestart()
after a timer has been stopped previously by callingstop()
. - 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 amouse-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
, andpow
. - 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.
- 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
-
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 returnsvoid
(#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.