Harsh J

Memoirs of a QWERTY Keyboard

Archive for October, 2009

Sorting entries in a QStringList Case-insensitively

4 comments

This post is simply a snippet-post for the users of Nokia’s Qt C++ cross-platform toolkit.

While writing some C++ code (after 2 long years since I last wrote them for academic reasons), I had this simple issue of sorting a QStringList in a case-insensitive manner. Normally, there exists a QStringList::sort() function that does the sorting of the strings stored in it in a case-sensitive manner, and is very fast at it. But Qt does not provide a way to perform the sort in a non case-sensitive manner, although it has hints on how to in the class’ documentation.

Being mostly a PyQt/PySide user who uses inbuilt Python lists to do all list-work, here’s how its apparently done in Qt/C++, using a QtCore class called QMap:

#include <QtCore/QStringList>
#include <QtCore/QMap>

void sortNonCaseSensitive( QStringList &sList ) {
    ///  Sorts the passed sList non-case-sensitively.
    ///  (Preserves the cases! Just doesn't use them
    ///  while sorting.)
    QMap<QString, QString> strMap;
    foreach ( QString str, sList ) {
        strMap.insert( str.toLower(), str );
    }
    sList = strMap.values();
}

That’s it.

Written by Harsh

October 24th, 2009 at 10:54 pm

Color Hot-Tracking in Smooth Tasks Plasmoid

3 comments

Polishing your K Desktop never seems to stop. First its the Desktop appearances, the plethora of widgets available to choose and use from for the desktop and the taskbar, the hilighting schemes in Kate/KWrite, it keeps going on. Maybe a bad thing – you never settle.

I was trying out the kde-extragear-plasmoids AUR package yesterday on my ArchLinux’s plain KDE installation and I came across this wonderful plasmoid known as Smooth Tasks. While nothing innovative in itself, its a simple plasmoid that apes the Windows 7 taskbar. Provides icon views of the applications running and allows peeking into them when hovered upon, and if grouped – lets you switch using the previews. I’ll leave the screenshots to do the rest of explanation.

What I liked most about Windows 7 is its ability to color the hover-glow on the icons in the taskbar based on the average computed color of the icon itself. This feature, as explained by Long Zheng, “delivers some sentimental value by making it easy to identify applications by color.” I completely agree with that point. However, Smooth Tasks missed this feature, and the built in light feature didn’t move entirely with the mouse pointer as well.

I cloned the code today to add, at least an initial working version, the color hot-tracking to Smooth Tasks and it was done by the afternoon. I’ve pushed the changes to the Smooth Tasks fork over at Bitbucket (which is a great site, by the way) and the image below describes how the initial work looks like. Notice the soft color glow. Here are some more pictures, with other icons.

Color Hot-tracking in Smooth Tasks on KDE

Color Hot-tracking in Smooth Tasks on KDE

Now all I’ve to figure out is a way to enhance the glow or another component of the effect to give it a more polished look. Windows 7 also colors the border of the taskbar item with the average color but that’s not possible with the way the KDE’s glow around items work, as far as I know. Please let me know if am wrong.

You need to a flashplayer enabled browser to view this YouTube video

Written by Harsh

October 10th, 2009 at 1:25 pm

The case of the non-exiting Mozilla Firefox

9 comments

Being a KDE user has its ups and downs. The ups are that its beautiful, has a very wide and usable range of applications, updates often for bugfixes, and is generally very customizable. The downs are a few – with the Firefox+GTK integration being one of them. It makes your browser look UGLY! Of course, there are Qt-friendly browsers like Opera and Konqueror, even Arora, but these hardly work well with many sites, especially those of Google (Wave, for example). I’m not gonna delve into that subject, since this post is about using Firefox on KDE 4 (version 4.3.x).

You might have heard of the GTK engine that themes for Qt, known as gtk-engine-qt on most distributions (or with -kde4 suffix, if thats how they’ve integrated). This helps all GTK applications look great on KDE by providing *near* native look and feel. So I install that and smile, happy that my entire K Desktop is as I want it – dark, without gloss and perfectly usable with certain plasma widgets. That is until I notice my Firefox simply does not close itself when asked to, and hangs instead.

At first one would think its due to a plugin, or an extension, probably something added on that is causing it to hang when its supposed to terminate. Even the KB article at Mozillazine supports that fact. Perhaps its a popular reason, but I tried and it didn’t solve the issue for me. I jumped a few steps out of frustration and went on to move my .mozilla directory to a different name, just to see if it was a profile-related issue, and it still refused to close, driving me mad having to `killall firefox` it each time since it always hung at exit. So I switched to Opera and used it with horrible colors – Pages appeared normally as they would be rendered but the forms and other things just didn’t go well with my dark color scheme (Eclipse), making it appear like the image below, unreadable and thus untypable upon.

Unreadable, Unseeable - The form elements as they appear in my Opera (While using a dark color scheme in the DE)

Unreadable, Unseeable - The form elements as they appear in my Opera (While using a dark color scheme in the DE)

The browser’s great otherwise, its fast and very customizable, but I couldn’t make any changes to these colors. I suppose one can achieve it by writing their own userstyle.css file but that is too much work. Used Opera until today, when I finally found this (pretty old) bug in the gtk-engine-qt project tracker. Uninstalled gtk-engine-qt and lo, all was normal again, closed fine and opened fine. Re-installed all plugins and extensions, and said bye-bye to Opera.

All I now miss is a native-looking dark theme with Oxygen icons, as my K Desktop contains. I’m making do with the Black Stratini theme as of now, it’s beautiful but I like the Oxygen icons better. 440 words for just the choice of browser on a dark theme, tch.

Written by Harsh

October 9th, 2009 at 10:02 am