Cambalache is a new RAD tool for Gtk 4 and 3 with a clear MVC design and data model first philosophy.
Exactly one year ago I made the first commit…
commit 51d4185cd8556f0358cc463578df5a4138ac90b5 Author: Juan Pablo Ugarte Date: Wed Dec 9 19:14:53 2020 -0300 Initial commit Supports type system and interface data model. Basic history (undo/redo stack) implementation with triggers.
It consisted of just 3 files, the data model, a python script to generate history triggers automatically and a small sql script to test it.
Fast forward one year and I am starting to believe it can be on feature parity with Glade sooner than expected.
Having a pretty solid backend this release focus on adding all the big missing UX parts, like a good type selector, workspace placeholders and basic clipboard actions like copy/paste.
Type chooser bar
Borrowing the design from Glade I implemented a type chooser that categorizes object classes to make it easier to find what you need.
Workspace placeholders
Containers now have placeholders to make it easier to add children in a specific positions
It supports the following actions:
- Double click on a placeholder to create a new widget in place
- <Control> + Insert to add more placeholders
- <Control> + Delete to remove placeholders
- <Shift><Control> + Insert to add a new row
- <Shift><Control> + Delete to remove a row
Translatable properties
Thanks to the work of Philipp Unger it is possible to mark properties as translatable and add comments for translators.
Clipboard actions
To make life easier, common clipboard actions like, Copy, Paste, Cut and Delete where added.
Better unsupported features report
Cambalache will make its best effort to notify the user about unsupported features when importing UI files and export to a different filename as a precaution to avoid loosing data.
Matrix channel
Have any question? come chat with us at #cambalache:gnome.org
Where to get it?
As always you can get the code in gitlab
git clone https://gitlab.gnome.org/jpu/cambalache.git
or download the bundle from flathub
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install --user flathub ar.xjuan.Cambalache
UPDATE: Version 0.8.1 released!
Happy coding!
Very good job Juan! I’m already using Cambalache to port my gtk3 application to gtk4 and it’s very useful.
I will upgrade to this version.
Thank you very much for your work.
Hi Juan!
The progress in Cambalache is exciting!
Are there plans to integrate it with gnome-builder? Also, do gnome developers plan on deciding what will be the future of RAD tools considering Cambalache and Drafting?
Hey Marco thanks, how are you doing?
Not in the near future, I have plans to add some kind of interface for IDEs to interact with it eventually. But I want to focus on making it usable first.
To embed it I am not so sure since Cambalache is python not C so there is that extra dependency, also I am not ready to commit to a public API since it still evolving.
GNOME is not like a company, its a community of people with similar interests, so nobody really decides that kind of things.
I think for the time being there is place for both projects, since I also target gtk3, mostly because I do not want to maintain Glade anymore 🙂