GSoC update #2 – Bouncing cards

Some time has passed since the first update, but I have a good news: we have a basic media history viewer!

The first task of my milestone was to implement a GListModel that is able to load media messages. This is needed to place items inside the GtkGridView of the media history viewer. My first implementation of the list was to manually filter the messages that weren’t of our interest after requesting them from the API, but that led to the obvious problem of possibly making useless requests that don’t return media messages at all. Fortunately Kévin Commaille came to help and suggested to use matrix’s API to filter the messages that contain URLs in their content, this way we know that these calls will just return media messages, thus being a much more efficient method compared to the previous one.

The next tasks were about creating the actual media history viewer’s page inside the room dialog and creating the various widgets that represent each media message type that will be placed inside the grid. This is all pretty straightforward for me since I’ve experienced with this kind of widgets for a while now in Telegrand. Next, after binding the GListModel to the GtkGridView and after creating the factory that will create the media widgets, we have a basic media history viewer:

There’s still a problem though. The default style of the items being hovered or activated is not really visible because it places a grey background below the items that, since these items have images on top, it’s not really visible, except for the few pixels around each one of them thanks to the padding. So, I’ve experimented a different style based on scaling that looked really great after applying some suggestions from the GNOME Design matrix room:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s