Accéder au contenu principal

GSoC 2014 report 1

Week #1

I started my work on Boxes on June's 2nd. This first week served as a transition from my examinaton period to the GSoC.

I had some unfinished work from my application period: two bugs to solve.

The first one was #726252 - Refactor topbar's children into separate classes/modules

The patches were pretty much finished but they were not perfect, all they required was some love.
It took me time to transition my mind from the student mindset to a more engineering one, but hopefully, the patches were accepted at the end of the week.

The second one was #692383 - Allow editing of box name in the tite

Just as for the first bug, I had patches ready but not perfect, and they were dependent on work done for the first bug.
As it took me time to correct the patches for the first bug, I let this one aside.

My project is to add multi-monitor support to Boxes, so I also took time to read Boxes' code, especially the App, AppWindow, Display and Machine classes as they seem to be the one I'll hack the most, and to think about how I can implement multi-monitor support on top of this.

Week #2

I updated my patches for bug #692383 but let them aside to focus on my project.

While discussing the project with several persons like Zeeshan Ali, Christophe Fergeau, Jakub Steiner and Lasse Schuirmann, a problem came up: everybody have a different idea of what "adding multi-monitor support" means.

The main ideas where:
  • multiple monitors for one machine
  • multiple monitors for one machine only on fullscreen
  • multiple machines with one monitor
  • multiple machines with multiple monitors 
What will finaly be done will be decided by the maintainers and the designers (mainly Zeeshan Ali and Jakub Steiner).

I continued to read Boxes' code and understand its design.

Currently the Display listen to the App's state and set the state in response (via a static instance).
The App handles the window's state, wich is not problematic since they both are singleton.

This design works well for a single machine and a single window but is too static for multiple ones, so a deep rewrite may be needed and will take more time.

What needs to be done will be done but don't expect results soon.

Commentaires

Posts les plus consultés de ce blog

GTK+ Apps on Phones

As some of you may already know, I recently joined Purism to help developing GTK+ apps for the upcoming Librem 5 phone.Purism and GNOME share a lot of ideas and values, so the GNOME HIG and GNOME apps are what we will focus on primarily: we will do all we can to not fork nor to reinvent the wheel but to help allowing existing GTK+ applications to work on phones.How Fit are Existing GTK+ Apps?Phones are very different from laptops and even tablets: their screen is very small and their main input method is a single thumb on a touchscreen. Luckily, many GNOME applications are touch-friendly and are fit for small screens. Many applications present you a tree of information you can browse and I see two main layouts used by for GNOME applications to let you navigate it.A first kind of layout is found in applications like Documents, I'll call it stack UI: it uses all the available space to display the collection of information sources (in that case, documents), clicking an element from t…

One Widget to Adapt Them All and to The Librem 5 Port Them

In my previous article I shared my plans to help porting existing GTK+ applications to Purism's upcoming Librem 5 phone without having to fork them. This article will present the GTK+ widget I developed for Purism to make this happen.For more information on what Purism is working on for the Librem 5, please check Nicole Faerber's latest article.C'est pas sorcierThe underlying idea is to allow applications to dynamically switch between the two main GNOME application layouts: a row of panels — each panel being the view of an element from the previous one — and a stack of panels. The goal isn't to changes applications using the stack paradigm but the ones using the row one, allowing them to reach smaller sizes and to be usable on constrained sizes while keeping their initial paradigm and design when the screen space is sufficient. The development cost to port the applications to this adaptive design should be as low as possible.To achieve that, I wrote a GTK+ widget which…

Adaptive GNOME Web

I started working on making GNOME Web work well on the Librem 5; to be sure it fits a phone's screen I want the windows to fit in a 360 points width, which is definitely small. To do so I started with the advices from Tobias Bernard to make Web have two modes that I named normal and narrow. The normal mode is Web as you know it, while the narrow mode moves all buttons from the header bar but the hamburger menu to a new action bar at the bottom, letting the windows reach yet unreachable widths. Web autmatically adapting to small sizes. And now, with device rotation on a tablet. The code is overall ready, I still need to break it into reviewable bits before submitting it upstream.Once this get merged:we want to not show tabs in narrow mode and instead to display a popover listing the available pages,we want to make the search bar shrink rather than to limit the minimum window size,we consider migrating away from the application menu model.A quick layout test of the pages popover. P.S.…