18 KiB
18 KiB
Changelog
Unreleased
0.6.2 - 2023-9-27
Fixed
- macros: Add support for accessing nested template children
0.6.1 - 2023-8-9
Added
- core: Add
TypedColumnViewas a typed wrapper forgtk::ColumnView - core: Add
set_margin_verticalandset_margin_horizontalto RelmWidgetExt
Fixed
- core: Don't panic when dropping components from asynchronous contexts
- core: Fix an issue with using
connect_openongtk::Application - core: Use GNOME 42 as baseline feature to help with Ubuntu 22.04
- core: Fix compiler error when not using the "macros" feature
- macros: Allow trailing commas in view!
- macros: Allow multiple instances of the same template children
- components: Disable default features of relm4
- examples: Fix libadwaita tab examples
Changed
- examples: Add a separator to the libadwaita leaflet example.
0.6.0 - 2023-5-31
Added
- core: Implemented
RelmRemoveExtforadw::ExpanderRow. - core: Implemented
ContainerChildforadw::ExpanderRow. - core: Add
TypedListViewas idiomatic wrapper overgtk::ListView
Fixed
- macros: Improve error messages for non-identifier parameter patterns
0.6.0-beta.1 - 2023-4-19
Added
- core: Introduce setting and action safeties
- core: Implement
RelmSetChildExtforgtk::AspectFrame - core: Add
FactoryHashMapas alternative toFactoryVecDeque - core: Add gnome_44 feature flag for GNOME 44
- core: Documentation and better support for data bindings
- core: Add
set_tooltipmethod toRelmWidgetExt - core: Add
main_adw_applicationmethod to retrieve theadw::Applicationwhen the libadwaita feature is enabled - macros: Add
skip_initoption for watch and track attributes to skip their initialization - examples: Introduce setting and action safeties
- examples: Example for using relm4-icons
Changed
- core: Replace
FactoryVecDeque's associated functionfrom_vecwithfrom_iter - core: Added
Indextype to theFactoryComponenttrait - core: Rename factory component traits
output_to_parent_inputmethod toforward_to_parent - core: Improved
RelmActionGroupAPI - all: Increase MSRV to 1.65 to match the dependencies
Fixed
- all: Fix doc links
- core: Improve worker docs
Removed
- core: Remove the deprecated
send!macro
0.6.0-alpha.2 - 2023-3-13
Added
- core: Add data bindings
- core: Implement
FactoryViewforadw::Leaflet - components: WebImage as component for easily loading images from the web
Fixed
- macros: Support template children of templates that are root widgets
- macros: Fix order of assignment and connect statements
0.6.0-alpha.1 - 2023-2-29
Added
- core: Add
RelmAppbuilder methodswith_argsandwith_broker - core: Add
MessageBrokersupport forAsyncComponent
Changed
- core: Change
MessageBrokergeneric type parameter to message type - core: Rename
RelmAppmethodwith_apptofrom_app - core: Deprecate
RelmAppmethodsrun_with_argsandrun_async_with_args
0.5.0 - 2023-2-17
Added
- core: Implement
RelmSetChildExtforgtk::Expander - macros: Support submenus in menu! macro
- macros: Support widget templates as root widgets of components and factories
- macros: Implement
Clonefor widget templates
Changed
- all: Use docs.rs to host the documentation. The documentation on the website will be deprecated.
Fixed
- core: Call shutdown on components even on application shutdown
- core: Clearing and dropping a factory properly calls the shutdown method of its elements
- components: Fix doc links to examples on GitHub
- macros: Fix panic on incorrect root type syntax
- macros: Fix incorrect type generation for generics
- macros: Allow mutably root widgets
0.5.0-rc.2 - 2023-2-5
Changed
- core: Increase MSRV to 1.64 to match the gtk4 crate
- all: Move examples into the corresponding crates
Added
- core: Add
broadcasttoFactoryVecDeque
Fixed
- core: Don't crash when the application is started multiple times
- core: Support tokio also on local futures
- core: Prevent leaking
CommandSenderInnerstruct - core: Improve error message when sending input messages to dropped components
- core: Fix scaping of examples on docs.rs
- core: Fix crash caused by UID overflow with very large or frequently changing factories
- macros: Fix clippy warning triggered by the view macro in some edge cases
- macros: Import
relm4::ComponentSenderisn’t longer required
0.5.0-rc.1 - 2022-12-21
Added
- core: Add
try_readandtry_writemethods toSharedState - core: Allow initializing
FactoryVecDequefrom aVecand make it cloneable - core: Support factories with
adw::PreferencePage
Changed
- core: Pass
&selfto thePosition::position()function for positioning widgets - core: Take
&strinstead of&[u8]inset_global_css() - macros: Allow expressions for names of menu entries
Fixed
- core: Initialize GTK when calling
RelmApp::new()
0.5.0-beta.5 - 2022-11-26
Added
- core: Add asynchronous components including macro support
- core: Add asynchronous factories including macro support
- core: Temporary widget initialization for async components and factories
- core: Add
LoadingWidgetsto help with temporary loading widgets in async factories and components - core: Add
Reduceras message based alternative toSharedState - core: Synchronous API for commands
- core: Remove async-broadcast dependency
- core: Runtimes of
Components andAsyncComponentscan now be detached for a static lifetime - core: Add
ComponentStreamas alternative toControllerthat implementsStreamfor async message handling - core: Add
gnome_42andgnome_43feature flags - core: Implement
RelmContainerExtforadw::Squeezer - core: Implement
RelmSetChildExtforgtk::WindowHandle - macros: Auto-generate the name of the
Widgetstype if possible
Changed
- core: Rename
FactoryComponentSendertoFactorySenderandAsyncFactoryComponentSendertoAsyncFactorySender - core: The sender API now supports proper error handling
- core: Pass
Rootduringupdateandupdate_cmdforComponentandAsyncComponent - core: Rename
OnDestroytoRelmObjectExt - core: Remove
EmptyRootin favor of the unit type - macros: Allow using methods calls as widget initializers in the
viewmacro - macros: Explicitly using
visibilityas attribute name is no longer supported
Fixed
- all: Fix doc builds on docs.rs and add a CI job to prevent future doc failures
- core: Fix various bugs related to component shutdown
- core:
shutdownonComponentnow works as expected - core:
shutdownonFactoryComponentnow works as expected - core:
transient_foronComponentBuildernow works properly when called after the application has been initialized - macros: Mark template children of public widget templates as public as well
- macros: Only get template children in scope when they are actually used
- macros: Fix type parsing after arrow operator in widget assignments
0.5.0-beta.4 - 2022-10-24
Added
- core: Added
doxfeature to be able to build the docs without the dependencies - core: Added widget templates
- core: Allow changing the priority of event loops of components
- core: Impl
ContainerChildandRelmSetChildExtforadw::ToastOverlay - components: Added
doxfeature to be able to build the docs without the dependencies - examples: Add libadwaita Leaflet sidebar example
- examples: Port entry, actions and popover examples to 0.5
Changed
- core: Improved
DrawHandler - core: Made the
macrosfeature a default feature - core: Remove async-oneshot dependency and replace it with tokio's oneshot channel
- core: Remove WidgetPlus in favor of RelmWidgetExt
- core: Add convenience getter-methods to Controller
- core:
add_actionofRelmActionGroupnow takes a reference to aRelmActionas a parameter - examples: Many improvements
- macros:
parse_with_path,update_stream,inject_view_codeandgenerate_tokenstake references for some of their parameters - artwork: Update logo
Fixed
- macros: Fix usage of RelmContainerExt with local_ref attribute
- macros: Report RelmContainerExt error at the correct span
0.5.0-beta.3 - 2022-9-28
Added
- core: Add
iter_muttoFactoryVecDeque - core: Impl extension traits and
FactoryViewforadw::PreferencesGroup - core: Add a
preludemodule that contains commonly imported traits and types - core: Implement RelmContainerExt for Leaflet, Carousel and TabView
- core: Add
iter()method toFactoryVecDeque - core: Add getter for global application to simplify graceful shutdown of applications
- core: Add MessageBroker type to allow communication between components on different levels
- core: Return a clone of the
DynamicIndexafter inserting into a factory - macros: Add shorthand syntax for simple input messages
- macros: Add chain attribute for properties
- components: Add
SimpleComboBoxtype as a more idiomatic wrapper aroundgtk::ComboBoxText - components: Port
OpenButtonto 0.5 - book: Many chapters ported to 0.5
Changed
- core: Improve
SharedStateinterface and prefer method names related toRwLock - core: Remove Debug requirement for FactoryComponent
- core: Remove
inputandoutputfields onComponentSenderandFactoryComponentSenderin favor ofinput_senderandoutput_sendermethods - core: Make
ComponentSenderandFactoryComponentSenderstructs instead of type aliases - core: Increase MSRV to 1.63 to match the gtk4 crate
- core: Rename
ParentMsgandoutput_to_parent_msgtoParentInputandoutput_to_parent_input, respectively. - core: Do not call
gtk_initandadw_initin favor of the application startup handler - core: Remove
Applicationtype alias in favor ofgtk::Application - core: Make
appfield onRelmAppprivate - core: Use late initialization for transient_for and its native variant
- core: Rename InitParams to Init in SimpleComponent and Worker too
- macros: Don't generate dead code in the widgets struct
- macros: Improve error reporting on invalid trait implementations
Fixed
- core: Append children for
gtk::Dialogto its content area instead of usingset_child - macros: Fix returned widgets assignment in the view macro
Misc
- all: Use more clippy lints and clean up the code in general
0.5.0-beta.2 - 2022-8-12
Added
- core: Add oneshot_command method to ComponentSender
- core: Implement FactoryView for adw::Carousel
- components: Complete port to 0.5
- examples: More examples ported to 0.5
Changed
- core: Rename InitParams to Init
- core: Pass senders by value
- core: Make factories use FactoryComponentSender instead of individual senders for input and output
- core: Remove generics from FactoryComponent
Fixed
- macros: Fix unsoundness with thread local memory
0.5.0-beta.1 - 2022-7-26
Added
- core: Introduce commands
Changed
- core: The Component trait replaces AppUpdate, ComponentUpdate, AsyncComponentUpdate, MessageHandler, MicroModel, MicroWidgets, Components and Widgets
- core: Replace FactoryPrototype with FactoryComponent
- core: Drop FactoryVec and make FactoryVecDeque easier to use
- core: Improved component initialization and lifecycle
- macros: Replace iterate, track and watch with attributes
- macros: Replace args! with only parenthesis
- macros: Improved macro syntax
- examples: Many rewrites for the new version
0.4.4 - 2022-3-30
Changed
- all: Repositories were transferred to the Relm4 organization
Fixed
- macros: Don't interpret expr != expr as macro
- core: Always initialize GTK/Libadwaita before running apps
- macros: Some doc link fixes
0.4.3 - 2022-3-13
Added
- core: Add WidgetRef trait to make AsRef easier accessible for widgets
- macros: Destructure widgets in Widgets::view
Fixed
- macros: Use correct widget type in derive macro for components
- macros: Fix parsing of
property: value == other,expressions - core: Fixed the position type for TabView
- core: Fixed state changes in FactoryVec (by V02460)
- macros: Parse whole expressions instead of just literals
0.4.2 - 2022-2-4
Added
- macros: The view macro now allows dereferencing widgets with *
Fixed
- core: Fixed clear method of FactoryVec
- macros: The micro_component macro now parses post_view correctly
- macros: Fix the ordering of properties in the view macro
- macros: Fix the ordering of widget assignments in the view macro
0.4.1 - 2022-1-17
Added
- macros: Improved documentation
Fixed
- core: Action macros now include the required traits themselves
- macros: Allow connecting events in the view macro
0.4.0 - 2022-1-16
Added
- all: Update gtk4-rs to v0.4
- core: Introduce the "macro" feature as alternative to using relm4-macros separately
- macros: Add a macros for MicroComponents and Factories
- macros: Add a post_view function to execute code after the view code of the macro
- macros: Allow using the view and menu macros independently from the widget macro
- macros: Allow using mutable widgets in view
- macros: Improve error messages for anonymous widgets
Changed
- core: Renamed methods of the FactoryPrototype trait to better match with the rest of Relm4
- macros: manual_view is now called pre_view
- book: Reworked introduction and first chapter
Fixed
- core: Fix panic caused by the clear method of FactoryVecDeque
0.4.0-beta.3 - 2021-12-28
Added
- core: A factory view implementation for libadwaita's StackView
- macros: Allow early returns in manual_view (by euclio)
Changed
- core: Make GTK's command line argument handling optional (by euclio)
- core: DynamicIndex now implements Send but panics when used on other threads
0.4.0-beta.2 - 2021-11-26
- macros: Add optional returned widget syntax
0.4.0-beta.1 - 2021-11-21
Added
- core: Micro components
- core: Type safe actions API
- macros: Menu macro for creating menus
- macros: New returned widget syntax
- examples Micro components example
Changed
- core: Initialize widgets from the outermost components to the app
- macros: component! removed and parent! was added instead
Removed
- core: RelmComponent::with_new_thread
0.2.1 - 2021-10-17
Added
- core: Added sender method to RelmComponent
- macros: New shorthand tracker syntax
- macros: Allow generic function parameters in properties
Changed
- core: Use adw::Application when "libadwaita" feature is active
0.2.0 - 2021-10-09
Changed
- core: Pass model in connect_components function of the Widgets trait
- core: Mini rework of factories
- core: Removed DefaultWidgets trait in favor of Default implementations in gkt4-rs
- book: Many book improvements by tronta
Added
- core: Added with_app method that allows passing an existing gtk::Application to Relm4
- core: Methods to access the widgets of components
- core: Re-export for gtk
- macros: Support named arguments in the widget macro (by mskorkowski)
- macros: Support usage of re-export paths in the widget macro (by mskorkowski)
- macros: Added error message when confusing
=and: - macros: Allow usage of visibilities other than pub
- macros: New pre_connect_components and post_connect_components for manual components code
Fixed
- macros: Parsing the first widget should now always work as expected
- macros: #20 Fix wrong order when using components in the widget macro
0.1.0 - 2021-09-06
Added
- core: Added message handler type
- core: More methods for factory data structures
- macros: Add syntax for connecting events with components
- examples: Stack example
- book: Added macro expansion chapter
Changed
- book: Added message handler chapter and reworked the threads and async chapter
- book: Many book improvements by tronta
- core: The send! macro no longer clones the sender
- macros: Make fields of public widgets public
- components: Use &'static str instead of String for configurations
- examples: Many improvements
Fixed
- macros: Use fully qualified syntax for factories
- macros: Passing additional arguments now works for components and other properties, too.
0.1.0-beta.9 - 2021-08-24
Added
- components: Open button with automatic recent files list
- components: Removed trait duplication and added more docs
- core: Iterators added to factory data structures
- core: More widgets added as FactoryView
Changed
Fixed
- macros: Parsing additional fields should be more stable now
- macros: Widgets can not include comments at the top
0.1.0-beta.8 - 2021-08-20
Added
- core: Support for libadwaita 🎉
- macros: Fully qualified syntax for trait disambiguation
- macros: Allow passing additional arguments to widget initialization (useful e.g. for grids)
- book: Reusable components and widget macro reference chapters
Changed
- macros: Improved error messages
0.1.0-beta.7 - 2021-08-19
Added
- book: Factory, components, worker and thread + async chapters
Changed
- core: get and get_mut of FactoryVec and FactoryVecDeque now return an Option to prevent panics
Fixed
- macros: Fixed components
- core: Fixed unsound removal of elements in FactoryVecDeque
0.1.0-beta.6 - 2021-08-18
Changed
- core: Improved and adjusted the FactoryPrototype trait
Added
- core: Added the FactoryListView trait for more flexibility
- core: Added a FactoryVecDeque container
- core: Implemented FactoryView and FactoryListView for more widgets
- examples: More examples
Fixed
- macros: Fixed the factory! macro
0.1.0-beta.5 - 2021-08-15
Added
- core: Drawing handler for gtk::DrawingArea
- core: New CSS methods in WidgetPlus trait
- examples: Many new examples
Changed
- core: Many doc improvements
- macros: Improved tracker! macro