Newsflash 4.0 (beta)

The big refactor

With Newsflash being one of the earliest gtk-rs applications it went through a lot of iterations already as the ecosystem evolved:

  • from just slapping widgets together in structs to subclassing support in gtk-rs
  • from just cloning everything to weak references with the clone!-macro
  • from GtkBuilder xml to blueprint
  • from interacting with Listboxes directly to GLib.ListModel based ListViews
And now that the boilerplate is down and ergonomics are at a good level, I felt is was finally time to go all in on gobject properties, bindings and signals.
Now the code is much easier to reason about while also dropping about ~2k lines:

 

 

While refactoring was the main focus point and the reason why I felt the major version jump was justified, it doesn’t mean there are no new features to play  with.

Enclosures to the front row

So far Image, Audio and Video attachments were hidden behind a small button in the header bar. No more. With Newsflash 4.0 the article view is a hybrid of Gtk for the header with title, author, date, etc. And a web view for the HTML content. This means Newsflash can show widgets for attachments right in the article itself.

Audio Widget
Audio Widget
Image Widget
Image Widget
Video Widget
Video Widget

Misc

  • Clear article pane if selection in article list goes away
  • Allow manual hiding of the sidebar
  • New user agent based on app name
  • Option to set custom user agent per feed (only relevant for Local RSS)
  • Subcategories (also mostly only relevant for Local RSS)
  • Local RSS: in addition to etags, use cache-control header to reduce traffic to feeds

And many smaller fixes and improvements you can read about in the change log.

Sadly I had to deactivate the webkit DMABuf Renderer for now. I discovered a bug creating the now needed larger frame buffers for articles. Fingers crossed that this will get fixed and the DMABuf render can be re-activated.

Available on flathub beta channel

Version 4.0.0-beta1 is available on the flathub beta channel. The first few bugs have already been found and squashed. But I’m sure there are more to discover.

Make sure to back up your data and settings before switching to the beta in case a migration eats your database.
~/.var/app/io.gitlab.news_flash.NewsFlash/config/news-flash/
~/.var/app/io.gitlab.news_flash.NewsFlash/data/news-flash/

Leave a Reply

Your email address will not be published. Required fields are marked *