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 a

libhandy 0.0.10

libhandy 0.0.10 just got released, and it comes with a few new adaptive widgets for your GTK app. You can get this new version here . The View Switcher GNOME applications typically use a GtkStackSwitcher to switch between their views. This design works fine on a desktop, but not so well on really narrow devices like mobile phones, so Tobias Bernard designed a more modern and adaptive replacement — now available in libhandy as the HdyViewSwitcher . In many ways, the HdyViewSwitcher functions very similarly to a GtkStackSwitcher : you assign it a GtkStack containing your application's pages, and it will display a row of side-by-side, homogeneously-sized buttons, each representing a page. It differs in that it can display both the title and the icon of your pages, and that the layout of the buttons automatically adapts to a narrower version, depending on the available width. We have also added a view switcher bar, designed to be used at he bottom of the window: HdyView

Boxes' hardening sprint: two weeks in

Finishing my 4th year of CS studies I spent the last two weeks working hard on the report and the presentation of the project my colleagues and I worked on all the semester long: creating the Stibbons multi-agent system programming language and development environment. I am very proud of what we accomplished and I’ll probably present it to you in the upcoming weeks. =) Planning the port of Boxes' installation wizard to GtkAssistant All this work unfortunately let me little time to work on Boxes, but I nonetheless took some time to look at how its installation wizard is implemented and planned how to port it to GtkAssistant. Boxes' installation wizard Currently, the wizard is ordered that way: WizardWindow WizardToolbar: the toolbar containing the navigation buttons Wizard: the stack of pages Most of the wizard’s intelligence seems to lie in Wizard and its pages, I’ll have to dig further into Boxes' code in order to fully understand how th