Апублікаваны рэліз праекта Cambalache 0.8.0, які развівае інструмент хуткай распрацоўкі інтэрфейсаў для GTK 3 і GTK 4, які выкарыстоўвае парадыгму MVC і філасофію першараднага значэння мадэлі дадзеных. У адрозненні ад Glade у Cambalache падаецца падтрымка вядзення некалькіх інтэрфейсаў карыстача ў адным праекце. Па функцыянальных магчымасцях выпуск Cambalache 0.8.0 адзначаецца як блізкі да парытэту з Glade. Код напісаны на Python і пастаўляецца пад ліцэнзіяй GPLv2.
Cambalache не залежыць ад GtkBuilder і GObject, але дае мадэль дадзеных, якая адпавядае сістэме тыпаў GObject. Мадэль дадзеных можа імпартаваць і экспартаваць зараз некалькі інтэрфейсаў, падтрымлівае аб'екты, уласцівасці і сігналы GtkBuilder, падае стэк адкату аперацый (Undo / Redo) і магчымасць сціску гісторыі каманд. Для генерацыі мадэлі дадзеных з gir-файлаў падаецца ўтыліта cambalache-db, а для генерацыі класаў GObject з табліц мадэлі дадзеных - утыліта db-codegen.
Інтэрфейс можа генеравацца на базе GTK 3 і GTK 4, у залежнасці ад вызначанай у праекце версіі. Для забеспячэння падтрымкі розных галінак GTK фармаванне працоўнай вобласці ажыццяўляецца з прыцягненнем бэкенда Broadway, які дазваляе адмалёўваць выснову бібліятэкі GTK у акне web-браўзэра. Асноўны працэс Cambalache дае абвязку на базе WebKit WebView, у якой пры дапамозе Broadway транслюецца выснова з працэсу Merengue, які непасрэдна займаецца адмалёўкай інтэрфейсу, які ствараецца карыстачом.
У новым выпуску:
- Дададзена панэль інтэрактыўнага выбару аб'ектаў, якая катэгарызуе класы аб'ектаў і спрашчае пошук неабходнай інфармацыі.
- Рэалізаваны запаўняльнікі працоўнай вобласці, якія спрашчаюць даданне даччыных элементаў у зададзеныя пазіцыі. Дадаць віджэт замест запаўняльніка можна клікнуўшы на ім два разы.
- Дадзена падтрымка перакладаных уласцівасцяў і рэалізаваная магчымасць пакідання каментароў для перакладчыкаў.
- Дададзена падтрымка аперацый з буферам абмену (Copy, Paste, Cut і Delete).
- Палепшаная выснова інфармацыі аб непадтрымліваемых магчымасцях пры імпарце UI-файлаў і пры экспарце ў іншы файл.
Крыніца: opennet.ru