Skip to content
March 31, 2011 / thebengaliheart

Tab grouping for Rekonq using sessions

Ever since I have attended conf.KDE.in, I have grown a certain liking to the KDE community. Truly speaking, in my one year in the opensource world, I have felt that the KDE guys are one of the most encouraging and active groups around. The developers actively offer help, and questions are always addressed and answered. It is a very closely-knit community.

I may submit 2-3 proposals for this year’s Google Summer of Code. One of them which I personally find very very interesting is implementing Tab Groups in the Rekonq browser, the WebKit-based lightweight KDE browser, that is now the default for Kubuntu. It has most of the features that a good modern browser has, but there is no option to group tabs under categories, or sessions, as I would like to call them. Each session has a name, for example, GSOC, study, surfing, etc. There are some tabs that span accross sessions, called application tabs or pinned tabs. Such a thing can be implemented by having a special session called pinned session. I hacked a bit on the Rekonq codebase, and after getting an idea about the coding style and understanding how I want to implement what I want to implement, I started off immediately with coding. Here is my progress so far –

  • I have written a Session class that holds information about the session, basically the list of tabs, current tab and the title of the session.
  • I created a SessionWidget class which shows all tabs in a session as thumbnails, and highlights the current tab. Currently it is a QFrame, but I plan to change it to a QGraphicsView. It uses a Session object internally.
  • A SessionsView class shows all SessionWidget objects. The MainView is hidden when this is shown, and this is hidden when MainView is shown.
  • I made a few changes to the MainView class so that it can load Session objects, and connected the tabsChanged signal of MainView to update the current Session object.
  • Currently a hotkey shows the SessionsView with the SessionWidget for the current session, it has thumbnails of the tabs from current session only, and highlights the current tab.

These points are mostly code-specific and will only be clear when one reads through the Rekonq codebase. As an overview, quite some of the backend code is done, and a lot of work remains to be done in the frontend. Here is a preview screenshot of what I achieved –

Hoping to learn a lot and work a lot this summer.
Cheers.

One Comment

Leave a Comment
  1. Tirtha Chatterjee / Mar 31 2011 12:55 am

    Here is the actual project idea proposed by me on the KDE ideas list

Leave a comment