Showing External Changes to Files
[BUG: 154676]. I'll start with this one, as there's quite a lot of "sentimental" value here, as it was the KDE3 version of this bug that made me decide to contribute to KDE. Granted, it took about 3 years for the decision to flow from my brain to my fingertips, but that's besides the point :)
So: Dolphin and Konqueror can respond to deletions and additions of files to a displayed directory perfectly well, but changes to the file itself or its attributes - as the result of chmod'ing it, for example, or because the file is still being downloaded/ otherwise having its contents changed - are ignored, often resulting in presenting stale/out of date information to the user. Interestingly, earlier versions of KDE3 - about 3.2 or so - actually responded correctly to file changes using FAM, but the functionality broke sometime before 3.4.
The solution here was simply to get KDirWatch to make fuller use of inotify, which is able to detect changes to any of the files in a directory that it's instructed to watch. If i've gotten all my code right here, KDirWatch should now work at least as well as it did before, while consuming at most as many of the limited inotify instances. No changes to Dolphin and Konqueror were required: all of the other kdelibs infrastructure "just worked". A follow-up patch that ensures that thumbnails are sensibly re-generated upon file changes (while not sucking up 100% of the CPU re-previewing constantly changing files, like a video file being downloaded, for example) is still pending, but i'm sure it will be available before 4.3.
This should appear in Dolphin/Konqueror in 4.3.
DirFilter Plugin
[BUG: 168254]. The rather handy MIME/substring filter that lives in your toolbar got horribly broken in the port to Qt4, but it's now much less broken :) The Konqueror Toolbar stuff is still something of a black art to me, though, so it took a bit of magic to get it to show. It's quite possible that a .rc file needs changing for the dirfilterplugin, but this will have to be done by a bigger brain than mine :)
This is present in Konqueror in 4.2.
Previews in Tooltips
[BUG: 161848]. One of my most beloved features from KDE3 (and so, my most missed from KDE4) were the large, useful file previews that could be summoned by hovering over the file, so I set to work on this as soon as I could. Interestingly, 8 months or so after the release of 4.0 without anyone looking at this feature, two people started looking at this independently within a few days of each other: Laurens Vanhove offered a patch that he'd been working on shortly after my original, rather shoddy initial attempt, and followed up with a series of patches that knocked it all into shape. So, a nice collaborative effort on this one :)
There's also been a lot of work with the tooltip positioning, so it should be much better behaved in general and also more KDE3-ish: the tooltip now appears close to your mouse pointer so you have more influence over where it appears (in KDE4.1 Detailed View, the tooltip would appear, somewhat disconcertingly, at the end of the filename column).
This is present in Dolphin and Konqueror 4.2.
Detailed View: Ignore Blank Part of Filename
[BUG: 165999]. I don't have a screenshot handy, but in Dolphin/ Konqueror prior to 4.2, depressing the mouse anywhere in the file column - including the empty area after the filename - would select that file and prepare to drag it, making selecting multiple files with the selection rectangle rather trickier than it needed to be. Many people, myself included, found this behaviour somewhat unpleasant, so I thought i'd have a stab at fixing it and making it work as it did in KDE3, where the blank part of the file column after the file name was treated as empty space. [Side-note: This behaviour change from KDE3, contrary to popular belief, was in fact not by design on behalf of the Dolphin devs - it's simply the way that the QTreeView works in Qt4, so it takes some work to change it so that it matches the Qt3 behaviour].
Thankfully, this proved quite a lot easier than I had expected (I tend to be pessimistic in general :)), and Peter and I managed to get a working proof of concept together in fairly short order. The only real problems now are performance related (Qt4 prefers selection changes to be reported in terms of nice, contiguous ranges of files, which is obviously rarer if a selection box can "skip" files whose names are shorter than the others) and there is also one maddening bug where the selection box stops working properly which I can never manage to reproduce when I want to. Hopefully, though, both of these issues will be sorted in due course.
This is present in Dolphin and Konqueror 4.2.
Also pictured:
Status Bar
[BUG: 155636]. Just a minor detail, but the status bar text is now visible in Konqueror. I'll look into appending the capacity bar and icon zoom slider at some point in the future.
This is present in Konqueror in 4.2.
And, last but not least:
Expand/ Enter Folders on Drag
[BUG: ??? - can any Digest readers find a report for me?]. I really liked the old KDE3 feature where, if you were dragging a file and held it over a folder in a treeview, the folder would open for you so you could "drill down" to your required drop directory without releasing the mousebutton. It turns out that Qt supports this natively for tree views so my initial patch for this was just a couple of lines, but Peter pointed out that in KDE3, this feature could even be used with e.g. the Icon View, in which case the hovered folder would actually be entered, rather than expanded - a neat feature that I wasn't aware of :)
So I revised my plan and FolderExpander was born - a fairly neat little class that can be attached to any QAbstractItemView to get the desired effect (<3 Qt :)). As is always the case, though, there are a few gremlins lurking around, and there have been a few regressions: the feature currently doesn't work with Column view, and there are some bugs when trying to initiate a hover in one pane starting with a drag in the other. I'll hopefully fix and backport these in due course. This feature is in Dolphin and Konqueror (with the bugs I just noted) in KDE4.2. Dolphin and Konqueror tabs also have a switch-on-hover effect which I like, but which I unfortunately can't take any credit for :)
Oh, and a bonus (though one that's unrelated, code-wise): Konqueror's tree view can now have stuff dragged over it again, with expand-on-hover, etc (the breakage turned out to be due to a small error in porting to Qt4). If someone could find the bug report for this, that would be appreciated :)
It was promised on several occasions that feature-regressions in Konqueror resulting from the use of Dolphin as the file management component in KDE4 would be treated as bugs and, true to their word, David and Peter have been immensely helpful (and patient!) with me as I hammered out a lot of my personal file management pain points. There's still a lot remaining, though, so look out for a future blog summarising the current state of Konqueror file management in KDE4 along with a list of some of the items in Peter's and my TODO list. I will of course be feeding occasional progress updates to Danny along the way :)