Accéder au contenu principal

Articles

Affichage des articles associés au libellé boxes

Adding a list view to Boxes

A list view was a requested feature for Boxes, I decided to commit myself to implement this during this GSoC. March: exploring the idea I started working on adding a list view to Boxes in march 2015. By that time, the expected columns for the list view where: the thumbnail; the machine's name; a system monitor; the machine's IP; the OS' icon; an icon to display show a favorite machine. Implementing such a view using libgd's MainView (the same widget responsible of the icon view) required me: to learn how to write a custom GtkCellRenderer for the system monitor; to find how to get a machine's IP adress; to find how to OS icons are retrieved in Boxes. Unfortunately, I had to pause the implementation of this feature to focus on my studies. July 6–12: designing the list view I joined a chat on Google Hangout where Alan Day, Jakub Steiner and Zeeshan Ali on july 8th. During this talk, Zeeshan stated its desire to stop using l...

Boxes' thumbnails overhaul

I recently spent quite some time reworking the overall look of Boxes' machine thumbnails. Here is the result. Stopped boxes Up until now, Boxes' stopped machines were represented by a black box. It was nice as it represented the idea of a shut down screen, but it was pretty hard to differentiate a stopped machine from a running one displaying a black screen. This was stated in bug #730258 where Jimmac suggested to follow this design where thumbnails are draw as gray frames with a medium sized emblem in their center, using the system-shutdown-symbolic icon to suggest the stopped state. Boxes' thumbnail for stopped machines: old (left) and new (right) Updating the other thumbnails Machines under construction used to simply display their thumbnail with a spinner on top. This doesn't change but stopped machines being constructed now display their spinner in a frame, to be consistent with the new...

Extracting Boxes' wizard's pages

A few days ago, Zeeshan suggested me to extract Boxes' wizard's pages out of the Wizard class and to make them full fledged widgets/classes. This idea is very welcome as it would move a lot of complexity out of the Wizard class (as it is currently implementing most of the pages) and, in the long run, make its port to GtkAssistant easier. I spent the last few days playing with the pages, discovering how they are implemented and extracting some of them. Extracting pages, kind of The current state of Boxes' installation wizard Here is the wizard's page flow as presented to the user: The current page flow The wizard is currently implemented with such a widget hierarchy: the WizardWindow class the WizardToolbar class the Wizard class, a stack of pages the WizardSource class the source selection page the URL entry page the preparation page ...

Playing with GtkAssistant

I decided to spend some time today to play with GtkAssistant, more precisely, I tried to build a mock installation wizard mimicking Boxes' one in order to test how I could adapt its behaviour to make it GtkAssistant ready. Overall, I enjoyed using GtkAssistant, it is a quite well thought out widget offering a lot of potential for a small API. But despite how good GtkAssistant is, I encountered problems adapting it to my need. Here follows a list of what bogged me down. A sequence of pages GtkAssistant is great at implementing a sequence of pages, unfortunately, Boxes' wizard is more like a graph of pages. Boxes' wizard's page graph Such a configuration is clearly out of GtkAssistant's scope and it can easily be solved by arranging the pages as a sequence and setting a custom "forward" function, so it's not that much of a problem. Action area GtkAssistant allows you to mark a page as custom, which will show no button in the action are...

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 h...