Monthly Archives: November 2012

On the way to Dolphin 2.2

KDE 4.10 Beta 1 has been released this week, so I thought it would be nice to summarize the changes that went into the master branch during the last few months. Here is a current screenshot that shows some of them:

New Features

  • Àlex Fiestas added support for MTP devices (like phones) to the Places Panel, making use of Philipp Schmidt’s MTP kioslave. Check if your distribution provides packages for kio-mtp if you want to try it. I’m quite happy that I can finally transfer files to and from my phone easily in KDE (if you wonder why it shows up twice in the panel: that’s because the phone’s internal memory and the SD card are separate devices). See Àlex’ blog post (which also provides information about building kio-mtp yourself) and the review request for more information.
  • Amandeep Singh, assisted by Frederik Gladhorn, implemented accessibility features in Dolphin. Now you can have the current item shown zoomed in KMag.
  • Some people missed an easy way to resize the icons in the Places Panel in KDE 4.9. For those who didn’t know: Dophin’s Places Panel had been rewritten, and the automatic resizing of the icons when the panel was resized (or in some other situations, like when a ‘Place’ with a long name was created or removed) was dropped. We now have an ‘Icon Size’ submenu in the panel’s context menu, just like in the tool bar. I think that this is the best solution: users who want bigger icons can just choose their favourite size.
  • Dolphin 1.x provided two different ways to rename files: ‘inline renaming’ and renaming using a dialog. This changed some time ago due to the view engine rewrite. In KDE 4.8, inline renaming was not ready yet. In KDE 4.9, it replaced the dialog completely (except for the case that multiple files are renamed at the same time), but some people actually got used to the dialog and missed it. In KDE 4.10, you will be able to choose again. Emmanuel Pescosta added a checkbox to the settings dialog.
  • Ivan Čukić made it possible to report the current directory to the activity manager, such that it can easily tell what your most favourite directories are. You can disable this in the System Settings, ‘Workspace Behavior’ if you don’t want the activity manager to keep a log of your directories and documents.

Performance Improvements

Emmanuel Pescosta worked hard to make Dolphin faster:

  • The part of Dolphin that keeps track of the previews that need to be generated did not handle its internal data structures in the most efficient way. Look at the review request for details and for the impressive Callgrind data.
  • Loading a folder with many files can be very slow. It turns out that much of this slowness is due to the “natural sorting” of the items, which makes sure that “image10.jpg” comes after “image9.jpg”, and not between “image1.jpg” and “image2.jpg”. There have been some ideas how the “natural comparison” of two file names can be made faster, but this requires a lot of work. In KDE 4.10, we still use the old comparison function, but make use of all CPU cores on your system to keep the delay when opening a large directory short. Look at the final version of the patch to see how little code you need to make Mergesort use multiple threads with QtConcurrent!
  • The icons which are shown for files and folders if previews are disabled are now cached to save CPU cycles and memory.

More little improvements

The improvements in Dolphin 2.2 were made possible by the following people who contributed patches, provided advice on patches while they were still work-in-progress, and tested features early to report problems and regressions: Alex Fiestas, Amandeep Singh, Christoph Feck, Emmanuel Pescosta, Frederik Gladhorn, Hrvoje Senjan, Ivan Čukić, Jekyll Wu, Kai-Uwe Broulik, Panos Kanavos, Vishesh Handa, and Weng Xuetian. Thanks for your help! If I forgot anyone, please let me know.

If you test Dolphin and find any regressions (or old bugs which haven’t been reported yet), please report them at https://bugs.kde.org/.

Dolphin Bug Triaging Update; Bug Fixes in KDE 4.9.3

The bug triaging event which I announced here recently has already yielded a number of very nice results:

  • About 50% of all Dolphin bugs have been triaged already.
  • Some of them were fixed just after they had been analysed.
  • A huge number of reports now has updated and more accurate information, which makes life a lot easier for me and other people who are working on improving Dolphin’s quality.
  • Many reports which were obsolete or which were about issues that are not Dolphin bugs could be closed or reassigned.

All in all, the number of open bug reports has dropped from 305 to 278 since my last blog post, which is even more remarkable if you consider that new reports get filed all the time (19 since my last blog post). Moreover, some more can probably be closed when the results listed on the wiki page that we use to coordinate the triaging are double-checked. Many thanks go to Adrián Chaves Fernández, Bryan Cuneo, Grigoris Grigoriadis, Jaime Torres, and Marco Zühlke, whose work was supported by some of our regular contributors, in particular Jekyll Wu. It’s amazing to see just how many reports some of them triaged – anyone who has ever done serious bug triaging work can imagine how much effort they put into this.

As you see, a lot has been achieved already, but there is still enough to do for anyone who is willing to help. If you have got some time to spare and want to help us to improve Dolphin, go to the wiki page and do one of the following:

  • Pick a batch of 5 bug reports and go through them, or
  • Double-check some of the results that are listed on the page and make modifications to the bug report if necessary. I’m checking some results on the page from time to time, but any help is appreciated. For that, you’ll need upgraded Bugzilla permissions which will probably be granted to you if you add a few links to bug reports that you did some useful work on to your sysadmin request. If the required modifications have been made, one can strike through the bug number using <s>…</s> to make it clear that the report has been worked on already.
  • Check out the bugs that need some particular hardware/software setup and see if you can help with either of them.

Since KDE 4.9.3 has been released recently, I would also like to point out which bugs have been fixed for this release:

  • Bug 306459: Fix crash when enabling “Split View” in the settings and then changing the URL of the new view. See git commit 4dc8ea34.
  • Bug 307603: Use not only Alt+Return, but also Alt+Enter as shortcut for “Properties”. See git commit 6497837b, review request 106753.
  • Bug 302264: Fix deadlock when trying to read information from version controlled directories. If anyone with solid multithreading knowledge can tell me why the deadlock actually caused a crash, please add a comment here, I’m curious! See git commit 4bdf134c.
  • Bug 307734: Use the correct color for the arrows when expanding folders. See git commit 8c5be538, review request 107031.
  • Bug 304986: Prevent that Dolphin can get into a state where it permanently uses 100% of one CPU. KDE 4.9.3 contains a workaround for this problem. The real fix is in the 4.10 branch of kdelibs. See git commit ea6a7c09.
  • Bug 279333: Prevent that panels can be moved if they have been locked. See git commit 0b16a06c, review request 107135.
  • Bug 309338: Make renaming folders in the Folders Panel possible without creating a stream of error dialogs. See git commit ab82045a, review request 107070.
  • Bug 308569: Only store the “Home URL” chosen in the settings in the configuration file if it is different from the default value. This fixes problems when copying the configuration file to another user’s home directory. See git commit f84c4267.
  • Bug 303742: Prevent that an incorrect name is shown after a failed “Rename” operation. See git commit 7cff47b0.

These bug fixes were made possible by the efforts of Amol Godbole, Christoph Feck, Emmanuel Pescosta, and Simeon Bird. Thanks!

One thing that is also worth mentioning here is how we found the cause of Bug 304986 (Dolphin goes to 100% CPU usage without any apparent reason). This was actually a very tricky issue, and I would never have been able to debug this without the fantastic support that the people involved in the bug report provided, namely, Alexey Shildyakov, Hrvoje Senjan, Kai Uwe Broulik, and Sandro Mani. Debugging this took a lot of time, but it was actually fun thanks to the awesome collaboration. And I’m quite happy that Dolphin wastes less CPU cycles now 🙂