Welcome!

Gwenview is a fast and easy to use image viewer for KDE. For more information, have a look at the overview.

News

April May 2011 wrap-up
Aurélien - 2011.05.28

Woah... I have been neglecting my blogging duties lately... I spent the first two weeks of May away from home: Started with a Canonical sprint, followed by 2 days at Ubuntu Developer Summit (UDS), followed by 2 days at Solutions Linux. I didn't manage to write any April wrap-up post while I was away and it felt lame to write one in the middle of May so I am going to sum up both April and May in this post.

KMessageWidget

KMessageWidget got integrated into kdelibs in time for 4.7! I am quite happy with this. There are one or two bugs I need to address and a few features I would like to add later, but it is already useful.

It feels good to read about other projects starting to use it. I am looking forward to being surprised by a KMessageWidget poping up in applications I use.

Gwenview

Besides KMessageWidget, I worked a bit on Gwenview, mostly fixing bugs:

  • Fixed build with libjpeg-turbo

  • Improved the image info sidebar:

    • Fixed display of megapixel count

    • Show tooltips for cropped texts

    • Made it possible to select text

  • Some work on keyboard handling:

    • Prevent Nepomuk description field from stealing focus

    • Made it possible to switch between two images with Tab and Shift+Tab

    • Added a shortcut to the "Synchronize document views" action (Ctrl+Y)

    • At startup, focus the current document view, instead of the zoom slider

  • When browsing the trash, it is now possible to restore files

  • Fixed the nasty "Images are renamed on double-click" bug: If you ran KDE in double-click mode, double-clicking an image would show it but it would also trigger the inline rename, if you then pressed "space" to go to the next image it would stay there and replace the image name with " "...

  • Do not block the UI while loading KIPI plugins. That one has been bothering me for a while: before this fix, Gwenview would block while loading plugins when you first clicked the "Plugins" menu. Now it loads them in the background and show a disabled "Loading..." entry in the menu.

  • Replaced some custom widgets with KMessageWidget

  • Got rid of the error dialog which appeared sometimes when an image failed to load

UDS and Solutions Linux

These two days at UDS was quite productive. It felt good to hang out again with Kubuntu regulars and to get to meet others like Michał Zając and Alex Fiestas (another KDE developer getting involved in Kubuntu, yeah!) for the first time.

Alex gave me some interesting feedback on KMessageWidget, which he started to use in Bluedevil control module.

I am also particularly pleased I was able to work with Jonathan Thomas on some UI polish for Muon. You may have read about it on Jonathan blog. And Muon is now using KMessageWidget too, how awesome is that?

I would have preferred to stay the full week at UDS but I also wanted to attend Solutions Linux, a French Linux exhibition where I have been helping manning the KDE booth for a few years now. So I flew back from Budapest to Paris in the early morning of Wednesday.

Solutions Linux was great as usual. Contrary to previous years, we didn't have any Kubuntu CD. This year we gave away some nice OpenSuSE DVD. I had a bunch of Kubuntu goodies however: there were some leftover stickers and pens from last year which I brought back this year. And I still have some left for Solutions Linux 2012! (Yes I got a lot of goodies last year)

As usual we were located next to our GNOME friends. It seems every year they aim for a more minimalist booth: last year the booth was sometimes unmanned... but on the last day this year they managed to reach a whole new level: a computer-less booth! And to say people do not believe us when we tell them GNOME is all about removing options :). Since we are competitors, but gentlemen nevertheless, we lend them a laptop on which they ran the GNOME 3 live DVD.

I played a bit with GNOME 3: it's quite nice actually, there are a few ideas I really like. I am probably going to install it on my machine to play with it a bit more.

Diary

In other news, I started writing a daily diary. Sometimes at the end of the day I feel like I haven't been doing anything, writing down tasks I did like this avoid that feeling and helps improving my mood :). It should also be quite helpful to write future wrap ups.

I keep this diary in a plain-old paper-based notebook as I came to really enjoy the feeling of writing lines with a pen on plain paper and taking a break from the keyboard, but I am a bit torn: I would love to have a way to grep my diary! Unfortunately I don't think anyone has created grep-able notebooks yet, too bad.

Flattr this

Comments

March 2011 wrap-up
Aurélien - 2011.04.04

4th of April, time for March wrap-up…

What happened in March?

Gwenview compare mode

In last month wrap-up, I presented my work on Gwenview compare mode, but was not satisfied with the user interface for the compare mode: I thought it was too busy. I simplified it by getting rid of the concept of best-candidate, instead you just select more than one (and up to 6) documents and Gwenview will show them side by side. The only user interface specific to compare-mode is a small HUD at the bottom of the document views, allowing you to either deselect the document or trash it.

After a few improvements like adding a synchronize feature, +/- select buttons for items in the thumbnail bar and highlighting of the current item in the thumbnail bar, I decided it was good enough to be merged to master. There are still a few adjustments I want to do, but nothing too intrusive.

Compare two images

Or go crazy and compare 6 of them… (I hope you have a big screen!)

Compare mode works in fullscreen too

Communication

Spent some time preparing my slides for the two presentations I gave at the KDE 4.6 Release Party organized by the Toulibre association in Toulouse. The event was really great, a warm thank-you to Toulibre. I think both presentations went rather well, except for some hiccup while demonstrating Gwenview Importer. Presentations have been recorded, videos as well as slides should be online soon.

I also wrote a new post for my series on common UI errors in KDE applications: Being GNOME friendly. It received a mixed reception, but given the subject, that was to be expected.

Other contributions

Since I took KDE Partition Manager as an example of margins being wrong in my UI errors article, I tried to make up for pointing fingers by patching the problem. Patch has been accepted. Here is a montage showing the space savings:

Note that you should also get a bit more usable space when using Oxygen theme, even if it reduces the effects of double-margins.

I also resumed my use of RSIBreak, “thanks” to the return of my left wrist pain. This led me to port it from QSystemTrayIcon to KStatusNotifierItem. Patch is in, you can now enjoy nicer tooltips and mouse-over effects (and even get a fully functional RSIBreak if, like me, you find yourself running Unity 2D in a nested session from within a KDE session, but I guess it’s not a common situation…)

What’s planned for April?

For April I’d like to make the latest adjustments to Gwenview compare mode and maybe start working on some metadata-related bugs… I am not too sure yet, we’ll see. I am also attending KDE UX Sprint in Berlin, which I am looking forward to. Who knows what will come out of it?

So, not much planned, but that does not mean I plan to slack! Don’t worry, your contributions will be put into good use :)


Flattr this

Comments

February 2011 wrap-up
Aurélien - 2011.02.26

February did not went as expected: there was quite a lot of work to do on Unity 2D before Ubuntu Natty feature freeze, so I was asked to work on two Fridays. Not exactly what I planned…

So, what did I manage to get done in February nevertheless?

Gwenview and the SVG KPart moved to git. The repositories are here: Gwenview and SVG KPart. Thanks a lot to the KDE git people and to Marcel Wiesweg of digiKam fame, for his detailed instructions regarding the move of kdegraphics modules.

I initially planned to work on simplifying Gwenview importer but decided to give up for now as it was becoming too complex and not as important as another feature I have been wanting to implement for years now: a compare “mode”.

I am not fully happy with the behavior yet. I like that it is not a separate mode: to compare pictures from browse mode you only have to select two pictures and switch to view or fullscreen. From view mode, control-click on a second picture in the thumbnail bar to compare it with the current one. As you can see on the screenshot I went for an asymmetric layout: the “best” picture is on the left and the “candidate” on the right. I am afraid it might be too complex, I need to try it with some real-world set of pictures (and real-world users). It is also missing a “synchronize” checkbox to be able to zoom and scroll the two pictures at once.

You can find the code in the compare-mode branch of Gwenview repository.

What to expect from march?

I am invited to a KDE SC 4.6 Release Party in the beautiful city of Toulouse, organized by the Toulibre association. I won’t be just staying there chatting, eating and drinking though: a great Jedi, who shall remain anonymous (hi Kevin!) managed to mind-trick me into giving two presentations, so I am going to spend some time to prepare them.

I also plan to continue working on Gwenview compare mode. I hope to get it mostly ready by the end of this month.

Finally I want to resume the “Common UI Mistakes” series, since I did not have the time to write anything in February.

If you like what happened in February (not that there is that much to like this month!) or are interested in what is planned for March, consider supporting my work.


Flattr this

Comments

January 2011 wrap-up
Aurélien - 2011.02.07

This month was not as productive as I expected. I spent one week at the Platform Rally for Ubuntu Natty, and the next one taking care of ill daughter, son and wife… Looks like everyone waited for me to come back before getting sick :) I got through the illness week relatively unaffected, which is quite unusual.

Done in January

Blogs

  • Posted part 3 of my Common user interface mistakes in KDE applications series.
  • Published the first version of ColumnResizer, a Qt class to help keeping columns of widgets aligned across layouts in dialogs.
    I am quite happy to see some people have started using it. Please notify me if you use it, I want to polish the API before either proposing the class for kdelibs or trying to write a patch for Qt layouts to provide similar functionality.

Some minor UI touches

  • Use an Oxygen version of the “Open Share Icon” for the “Share” button
  • Fixed ugliness of Gwenview start page when running on GNOME
  • Hidden icon of the seek slider in Gwenview video player
  • Reworked one of the dialog of the Kubuntu Notification Helper (Here is a before/after)

What to expect for February

I didn’t find the time to work on Gwenview importer in January, so I am putting this task back for this month. I also plan another post for my Common user interface mistakes in KDE applications series.

February is going to be short, and we are already the 7th, so I am not going to plan anything else, time will tell if I get more done…

If you like what happened in January or are interested in what is planned for February, consider supporting my work.


Flattr this

Comments

Easily share images with Gwenview
Aurélien - 2010.11.19

A common complaint I hear about Gwenview is that sharing an image on Facebook, Flickr or other services is difficult because the feature is buried too deeply in the menu hierarchy. So, hot on the heels of KSnapshot, I made the export plugins easier to reach. There is now a “Share” button in the toolbar:

When you click it for the first time, you get a list of all KIPI export plugins:

Gwenview likes to pretend it is smart, so next time you click the Share button, it will remember the last plugin you used:

I find it quite useful even if it is not perfect yet: The button uses the “document-export” icon for now, for lack of a more adapted one. In these days of social computing, maybe we need a generic “document-share” icon? (Nuno, are you here? :) ) I also bumped into some limitations of the KIPI API while implementing this, such as the inability to know the category of a plugin without loading it. Actually the API makes it possible for one plugin to expose actions in multiple categories… This means Gwenview must load all plugins to populate the menu when you click the button. I had an idea in mind a few years ago to address that issue, maybe I’ll resurrect it.


Flattr this

Comments

Back from Akademy 2010
Aurélien - 2010.07.11

I came back from Akademy 2010 held in the nice town of Tampere, Finland. It was exhilarating and motivating, I really enjoyed it.

I am not going to try to narrate everything precisely, so here is a bullet-point summary, in somewhat chronological order:

  • Decided to leave my digital camera at home because I was paranoid about my cabin luggage becoming too heavy for Finnair strict limits (8kg!). Big mistake. I missed it quite a lot.
  • Attended lots of interesting talks, including “UI Design for Developers” by Davide Vignoni and Nuno Pinheiro. This talk motivated me to finally add inline renaming to Gwenview.
  • Received the “Best application Akademy award” for my work on Gwenview, color me proud! Congratulations to Anne Wilson for the “Non-technical contribution award” and to Burkhard Lück for the “Jury award”!
  • Attended my very first KDE e.V. meeting. It went quite well: I have been told finishing on schedule was a recent habit for this meeting.
  • Spend way too much time playing Raiden on the MAME cabinet at Demola. It brought back a lot of memories, thanks to whoever set it up! I am thinking about resuming my “install MAME on XBMC box in living room” project…
  • Successfully passed the Qt certification test.
  • Finally got my port of KAlarm to KStatusNotifierItem (KSNI) committed. This was the last KSNI patch waiting to get in, so I am quite happy to be done with it.
  • Promised mock-up to improve KAlarm alert windows, but failed to deliver. Will work on it later.
  • Started to use KDevelop after sharing a cab with one of its developers who told me about the powerful magic it came bundled with. I still miss some of my Street-Fighter-like Vim moves, but I like the way KDevelop gives me a more global view of the code. I also like the ultra-powerful code-completion.
  • Presented DBusMenu, how it is used in the system tray in KDE SC 4.5 and in the upcoming global menubar which will be part of the next Kubunutu (hopefully it will get into KDE SC for 4.6). Received interesting suggestions to optimize it.
  • Created a mock-up for a new “Add widget” user interface for Plasma, which unfortunately got rejected.
  • Tried sauna and loved it.
  • Played a strange Finnish outdoor game named Mölkky. I am going to build my own to play it again at home.
  • Ate way too much sausages, blood sausages and potatoes! Luckily my hotel was not too close from Demola so I could burn a bit of those during the daily 20-minute walk.
  • Fixed some layout issues in Plasma Battery applet: The battery in the extender is no longer drawn over the rest of the extender text, even with French translations installed.
  • Failed to check my mail. Whenever I am at a developer meeting, I somewhat switch to a “real-life only” mode and tend to completely forget online communication. Happens to me all the time. Unfortunately that habit caused me to miss the closing Indian dinner at TOAS on the last Akademy day.
  • Got a nice rubber duck from Nokia. I haven’t yet tested the integrated debugger, but I confirm the “keep your toddler busy” feature works quite well, as can be seen here:

All in all it was a blast, and I would like to thank everyone involved in the organization for there awesome work.

Comments

Gwenview in KDE SC 4.5
Aurélien - 2010.06.30

As usual, I have been busy with too many projects during KDE SC 4.5 development cycle, so I am afraid the new Gwenview does not feature any ground-breaking changes. Still I managed to fix some annoying bugs and integrated a few nice features. Here is a commented list of the most interesting changes:

  • Gwenview is now much more asynchronous.
    This is where I spent most of my Gwenview development time. In previous versions, operations like rotation or image saving would block the UI. This is no longer the case, all operations which used to block the UI now show a spinner on the affected image and let you continue browsing while Gwenview is busy working. It does not sound like much, but it required quite a bit of refactoring and it lays down the foundations for some interesting ideas I have in mind, hopefully for KDE SC 4.6.
  • EXIF information is no longer lost after a crop, a resize or a red eye reduction…
    I am a bit ashamed I did not fix that one earlier. Gwenview used to keep EXIF information for lossless operations like rotations, but would get rid of them as soon as you did some lossy work…
  • Wrap around when panning images, patch by Ismael Barros.
    I was a bit skeptical about this, but it turns out to be really great to be able to pan large images without having to release the mouse button.
  • Show image size and file size below thumbnails, patch by Aaron Seigo and me
    This one got started after a somewhat inflammatory review of KDE applications in Linux Journal, I am glad it’s here even if it’s still a bit buggy, need to fix it.
  • One of the most wanted option: “Disabling video support” has finally been added.
    This option can unfortunately come handy if you are unlucky to have videos which Phonon dislike to the point of causing crashes…

So, not much changes, but hopefully changes you will find useful.

In other news, I am happy to tell you that I will be in Finland next week because

Jonathan Riddell and I will be doing a “What’s cooking in Kubuntu for KDE” BoF. This could be a great way for you to learn what I have been working on instead of hacking on Gwenview!

Comments

About DBusMenu, holidays, and other hacks…
Aurélien - 2010.04.29

Due to some bad reading of KDE SC 4.5 release schedule (I thought dependency freeze was on April, 26th, when it has been postponed to May, 11th), I committed support for DBusMenu to kdelibs on Sunday (25th) evening, right before taking a week off for holidays…

Suffice it to say it was not a really good timing. While the code has been in reviewboard for some time, it missed at least a proper one-week announcement, a separate post to the build system mailing-list and a developer who is not on vacation to quickly sort out issues. Thanks to those who pointed out my mistakes. One learns everyday, I shall remember this when I need to add another dependency to kdelibs.

If you are curious about DBusMenu, you can read my previous post about it. Additionally, I will be giving a talk about it at Akademy 2010.

While on holidays, apart from babysitting my 7 month-old and fixing various stuff in the house, I found some time to work a bit on Gwenview, with the focus on getting rid of most, if not all, places where the UI could freeze because of a lengthy task. It’s not in svn yet, but should be soon. You probably won’t find a lot of changes in Gwenview 2.5, but you should at least get a more responsive interface.

Comments

Gwenview Importer
Aurélien - 2009.11.06

I have been quite quiet on Gwenview front lately, getting a job which does not involve two hours in a train everyday and becoming a father for the second time apparently does not help to find free time to hack (how surprising!)

Still I managed to get some work done on the start page and fixed a few bugs here and there. The main improvement though is the implementation of an importer for Gwenview, based on some previous experiment.

Its aim is to require as little manipulation as possible to get your pictures and video imported from your camera. It integrates with Solid so starting the import is just a matter of plugging in your camera/inserting your memory card, and selecting “Download Photos with Gwenview” from the popup which opens. You are then presented with a thumbnail view like the following, where you can select the documents to import as well as the import destination (destination is remembered across imports and defaults to ~/Pictures or whatever xdg defines):

Thumbnails

Clicking “Import Selected” or “Import All” imports the documents to your destination folder. When it is done, the import asks you what to do with the documents on the device.

Documents have been imported

Once you clicked either “Delete” or “Keep”, you get this final page:

What's next?

Whenever possible, the importer tries to be smart. For example it automatically goes inside folders as long as they are alone in the hierarchy, so if your pictures are all in /DCIM/FOOBAR/, it will go into this folder directly instead of showing you a single DCIM folder, then a FOOBAR folder. On the other hand, it won’t scan the whole device recursively, which could be quite painful if you just plugged a large external hard drive…

Another example is handling of already imported documents. Gwenview Importer will tell you if it skipped documents which have already been imported or if it renamed documents to avoid overwriting existing ones. For example if I select “Keep” in the “Delete or Keep” dialog and in a next import select the 3 imported documents as well as 2 new documents, I get this message (The wording can probably be improved, please send suggestions…):

Skipped some documents during import

Yet another point where the importer tries to be smart is on the name of the imported documents. Nothing is less useful than a series of pictures named PICT0001.JPG, PICT0002.JPG… so by default Gwenview Importer renames your pictures using the shooting date. This can be configured by clicking on the “Settings” button from the thumbnail page, which brings this configuration dialog:

Settings

I spent quite some time working on this formating thing. I tried to make it easy to customize the rename format by:

  • providing a preview of the output,
  • using words instead of single letter variables (ie {date} instead of %d),
  • making the list of available variables with their description always visible,
  • making the variable names clickable, so that you can easily insert them

It’s not as good as what Mac OS X can do, but I hope it is easy enough nevertheless. If I get the time to work a bit more on this (read: unlikely to happen :/), I think highlighting the variables in the line edit would be nice.

That’s all for now. Tell me what you think of this.

Comments

Red Eye Reduction
Aurélien - 2008.09.26


A feature I wanted to add for a long time to Gwenview has just landed in SVN:
red eye reduction.

It’s (hopefully) simple to use. I made a screencast to demonstrate it:

Download original video.

The UI is quite inspired from iPhoto, I reused the widget style you can find in
the fullscreen bar.

The current algorithm is a modified version of a Paint.net plugin. As you can see in the screencast, it does not try to be smart: you need to point the eyes yourself. Nevertheless, it does a good job at fixing the pupil color while keeping the iris untouched.

Comments