4th of October to 10th of October 2021
Releases / Blog Posts
- Released SixtyFPS 0.1.3
- Released Cargo UI 0.2
- Blogged about the releases
SixtyFPS UI Library
- New Features
- TouchArea: add the
pointer-event
callback ( 2716e4 )... instead of
pressed-changed
This allows to see what mouse button was pressed.
Closes #535
- Enable support for gzip-ed SVG images ( 7aa654 )
- Add
AboutSixtyFPS
element ( 4a26fa ) - Allow normal elements to be in the Dialog's button row with
dialog-button-role
( ae3e1b ) - Add support for embedding data in generated C++ code (
c91a38
)
This allows compiling with
SIXTYFPS_EMBED_RESOURCES=true
and images/fonts are embedded as inline variables.
- TouchArea: add the
- Changes to the
.60
language - Fixes
- Visit globals when finding usages of structs (
72d556
)
Otherwise some used struct might not be found, and they can cause compilation failure in the generated C++ or Rust code
Fixes #549
- Fix granularity of run-time borrows in GL backend window handling (
e987a4
)
When processing window specific events, or generally when accessing the ALL_WINDOWS refcell, keep the time for borrow to an absolute minimum. That way any subsequent method calls may further acquire the refcell.
This patch re-organizes the entire deeply nested window event handling in a function with slightly less indentation.
Fixes a panic when calling hide on a Window from within a callback handler.
Fixes #539
- Fix the middle mouse button with Qt ( b0c87c )
- Fix extra '}' when doing a
debug()
with an enum. ( 85772d )The code was copy-pasted from the code that output the structs
- Bound Text contents width (
f916ca
)
The contents of a Text would wander to the left with center and right alignment because some size calculations don't take the maximum available width into account.
- Put filename in quote in import errors (
b99ff1
)
So that the
debug_assert!
that fires when a error message ends with a period does not crash the LSP when typing an incomplete filename that ends with a '.' - Fix materialized property being wrongly re-initialized when used within the same Element (
cc0d5e
)
Because the
bindings
field is taken in order not to keep the Element borrowed.Fixes original report from #553
- Fix panic in the interpreter if there are properties that are aliased to struct ( 7939d8 )
- Fix standard button OK text ( 7102f9 )
- Fix rendering of push buttons with QStyle on macOS (
6dce5a
)
The button bevel was rendered upside down, which happens due to some weird double y-axis inversion, which goes away when passing the QWidget pointer to the style. When using the Qt backend, we can do that.
- Fix embedded window icon with the Qt backend (
db10bf
)
Also add a window icon to the gallery
- Fix sixtyfps-build always forcing a rebuild when a builtin image is include (
106f1b
)
We can't call return-if-changed with "builtin:" URL, otherwise cargo thinks the build script always need to be re-run
Fix the gallery example always being rebuilt because it uses AboutSixtyFPS
- Qt style: Improve default layout spacing on macOS (
4c6c82
)
When the PM_LayoutHorizontalSpacing pixel metric is negative, we're supposed to call layoutSpacing() on the style. Until we have a detailed overview over the controls, a default spacing is better than -1 :-)
- Qt style: Only show icons in standard buttons if the style permits ( d43e0a )
- Native style: properly initialize the layout padding ( aa05e9 )
- Fix panic with GL backend when using non-existent font families ( 30e79d )
- Further speed up font handling in the GL backend (
0e8efe
)
Use the new fontdb API to mmap fonts from disk and avoid making copies of embedded application fonts.
- Fix ListView not always making the window to be redrawn when a model change (
8150bb
)
Example: expending or collapsing the cargo-ui dependency tree after scrolling.
- Improve error message for parse errors (
521bf1
)
print the literal token symbol instead of the internal token name
- Document the current-index property of the TabWidget ( 98e1bb )
- viewer: Prettify help output ( d79894 )
- Visit globals when finding usages of structs (
72d556
)
- Examples & Demos
- Added a bash example that shows how to display system information using
sixtyfps-viewer
- Added a bash example that shows how to display system information using
- Janitor work
Applications
News about applications built with SixtyFPS
![Screenshot of cargo ui](../thisweek/2021-10-11/cargo-ui-20211011.png)
Cargo UI
- Add button to remove or upgrade dependencies in the dependency tree ( 0e2065 )
- Show outdated dependency in red ( 9e17ce )
- Simplification of the worker thread loop (
6b3758
8a2950
)
Follow the instruction from https://rust-lang.github.io/async-book/06_multiple_futures/03_select.html#concurrent-tasks-in-a-select-loop-with-fuse-and-futuresunordered
- When we are not in a workspace, it all should behave as if the only package was selected ( c5b0b1 )
- Enable wayland by default ( 3c2e13 )
- Use the rust logo as the window icon ( b6e6a4 )
- Add an "About" tab ( b68215 )
Contributions in 3rd party projects
Contributions submitted to third-party projects.
fontdb
- Add the ability to share font data with the application (PR #19)
This adds a function that will convert font data to an
Arc<dyn AsRef<[u8]> + Send + Sync>
that's returned to the application.If the face is backed by a file on disk, then it will be mmapped.
The
load_font_source
function allows supplying a pre-constructed `Source` to the fontdb. In combination with the newSource::Binary(Arc<dyn AsRef<[u8]> + Sync + Send>)
variant this allow sharing application created font data with the fontdb.
Statistics
75 patches were committed by 5 authors.
← Next : 11th of October 2021 to 17th of October 2021 | Previous : 27th of September to 3rd of October 2021 →
Slint is a declarative GUI toolkit to build native user interfaces for desktop and embedded applications written in Rust, C++, JavaScript, and Python. Find more information at https://slint.dev/ or check out the source code at https://github.com/slint-ui/slint