Some work in progress in Confy


You know, Confy: the Gnome-based, mobile-friendly Conferences schedule viewer

Some days ago I posted a screenshot about an experiment I was doing with #confy , which atm is on hold.
I'm still looking about the best way to draw a calendar view which can be zoomed in and out fast.

This is using Gtk.Snapshot to draw boxes and Pango.Layout to draw text.
It's still not fast enough with large conferences (mostly because I want to keep the text the same size and just change the boxes...)

Meanwhile I made some other things: some are papercuts, some are to try to have cleaner code, and some are quite big changes:

Actions get enabled/disable correctly per context

"search" action is disabled until an event is opened, and "copy" action is enabled only while a details page is shown.
Small change but prevents some errors.

Update recent list when deleting custom event from menu

Custom event in the "open" window can be removed. Now the entry is also removed from the recent events list.

Navigation sidebar has been updated

Now items does not get out of order after opening an Event with one already opened. Previously, items not needed (eg. 'Traks' where the Event has no tracks) were removed and re-added, which caused them to appear out of order.
Now the items are hidden and shown as needed, thus they do not change order anymore. Plus they are now defined in sidebar widget template. More clear and nice.

Navigation between pages has been revisited.

Originally, every talk details page opened was simply pushed on the stack. This caused some trouble as details page can link to other details pages via overlapping talks, which where pushed on the stack too. But overlapping talks are 'circular' as if Talk A overlaps with Talk B, also Talk B overlaps with Talk A, which can lead to very long stack to navigate back, e.g.:

List -> Talk A -> Talk B -> Talk C -> Talk A -> Talk C 

In latest revisions, clicking on an overlapping talk was simply updating the page in place, losing navigation (and a nice transition between pages):
List -> Talk A
  user clicks on overlapping Talk B
List -> Talk B

Now, we are back to pushing pages on the stack, but if an event has ben already pushed to the stack, we pop back to that page:
List -> Talk A
  user clicks on overlapping Talk B
List -> Talk A -> Talk B
  user clicks on overlapping Talk C
List -> Talk A -> Talk B -> Talk C
  user clicks on overlapping Talk A
List -> Talk A

From my esaustive user testing (me while developing) looks like this could be a nice solution. The animation on page push/pop helps the user to keep track on where is going. At least, it helps me. Get used to it. :)

This is also relevant for the new Search page navigation.

Search can be toggled

Search action now is toggleable (is this a word?), the "search" button in the headerbar is now a togglebutton. One click opens the search, another click closes the search (as does ctrl-f).
When search is opened, the search page is pushed on the stack. Closing the search pop the page (and popping the page closes the search).

From the search page, talk details pages follow the same logic as before, but in a separate 'group'. That is, if the search page is opened from a detail page, and from the search page the same talk is clicked, we don't pop back to the already pushed page (which closes the search) but a new detail page is pushed on the stack:

List -> Talk A -> Talk B
  user clicks the "search" button
List -> Talk A -> Talk B -> Search
  user clicks talk C
List -> Talk A -> Talk B -> Search -> Talk C
  user clicks overlapping talk A
List -> Talk A -> Talk B -> Search -> Talk C -> Talk A
  user clicks the "search" button
List -> Talk A -> Talk B

I hope this make sense and it's usable :)

( btw: the search entry still get focused when the search page pops in. I'm quite proud I managed to keep that :) )

Updated Preference dialog

The design has been moved to template, with a simple custom widget to set caches duration.
Option to clear the recent opened events list has been added.

Everything is in git if anyone want to test it, maybe on some mobile devices, maybe during one of the upcoming conferences...

Mh.
last update of #archlinux defaults to #GTK4 #GSK #Vulcan Renderer:


(note: here I'm defining GDK_BACKEND=wayland because the terminal is in VSCode, which runs on XWayland and define GDK_BACKEND=x11. In VSCode because gnome console was a black rectangle too)

Yes, that white rectangle is the window.

I had to set GSK_RENDERER=ngl in .config/environment.d/gtk4.conf

Diego Roversi reshared this.

in reply to Fabio

Mario non sa fare il lavoro, Paolo sí.

Paolo con il macchinario di Mario potrebbe fare il grosso e poi fare gli aggiustamenti di fino che é in grado di fare con l'esperienza.

Io uso da due anni e mi ha velocizzato molte fasi del lavoro noiose senza impattare sul risultato finale, anzi a volte ho visto approci nuovi e interessanti facendo crescere le mie conoscenze di tubarolo.

É il vibe piping che é una 💩

Rant

Fatemi il sacrosanto favore, se il vostro progetto implementa un controllo della qualità della password alla creazione di un utente, di mettere un opzione per disabilitarla

Che se voglio provare qualcosa in locale, al secondo "la password è forte solo al 79%" mi girano le palle e cancello tutto.

Se voglio creare un utente admin con password admin in locale, per San Bittér, lo devo poter fare!

Confy 0.8.0


Hey! Confy 0.8.0 has been released!

In this release :

  • Updated UI to latest Adwaita widgets and style
  • An handy list of latest opened conferences at start (and in application menu)
  • Talks list grouping can be set by user. Is there a multi-room track and you want to group the list of talks by room? Now you can!
  • Fixed and enhanced XML parsing for past events (I know... better later than never!), eg: try to not panic on not expected date formats, try to handle completely different xml structures, extract and show speakers avatar if available. Man, I love the ever changing world of unstandardized XML schedule format!

Updated screenshots on official home page:
confy.kirgroup.net/

and in your nearest appstream-enabled appstore!

I would like to thank everyone who helped with code, tickets, distro packaging and general moral support :)

If you want to contribute, jump in the dev mailing list at lists.sr.ht/~fabrixxm/confy-de… or open a ticket at todo.sr.ht/~fabrixxm/confy
(and you don't even need to create an account on sourcehut, just send an email to ~fabrixxm/confy-dev (a) lists.sr.ht or ~fabrixxm/confy (a) todo.sr.ht )

You have a #Gtk4 application, written in python with #PyGObject, which use a template to build a window.
If you define a callback in code but you do not use it in template, an exception is raised.
If you use a callback in template which is not defined in code, no errors are reported.
But.
CSS classes are not applied to widgets. 🤷

Look:
With the callback:

Without the callback:

I lost some good hours trying to find why my button was not styled.

#Gtk 4.16.5

Questo sito utilizza cookie per riconosce gli utenti loggati e quelli che tornano a visitare. Proseguendo la navigazione su questo sito, accetti l'utilizzo di questi cookie.