Bug 164513 - notification dialog: autosize columns better
Summary: notification dialog: autosize columns better
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_notify (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Olivier Goffart
URL:
Keywords:
: 157484 163458 181265 (view as bug list)
Depends on:
Blocks:
 
Reported: 2008-06-20 13:02 UTC by Maciej Pilichowski
Modified: 2009-02-24 17:51 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
space (51.59 KB, image/png)
2008-06-20 13:03 UTC, Maciej Pilichowski
Details
New patch proposed (3.87 KB, patch)
2009-02-22 23:51 UTC, Dario Andres
Details
Screenshot of KNotifyKCM with the patch applied (97.28 KB, image/jpeg)
2009-02-23 20:17 UTC, Dario Andres
Details
Screenshot of KNotifyConfigDialog inside Kopete with the patch applied (41.33 KB, image/jpeg)
2009-02-23 20:19 UTC, Dario Andres
Details
Screenshot A of proposal of comment 11 (61.70 KB, image/jpeg)
2009-02-23 23:30 UTC, Dario Andres
Details
Screenshot B of proposal of comment 11 (44.63 KB, image/jpeg)
2009-02-23 23:31 UTC, Dario Andres
Details
Screenshot C of proposal of comment 11 (34.66 KB, image/jpeg)
2009-02-23 23:35 UTC, Dario Andres
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Maciej Pilichowski 2008-06-20 13:02:47 UTC
Version:            (using Devel)

notification dialog: autosize columns better


the state has a lot of free space, yet two other columns are too narrow. ss follows.
Comment 1 Maciej Pilichowski 2008-06-20 13:03:47 UTC
Created attachment 25473 [details]
space
Comment 2 Andy Goossens 2008-12-28 01:16:10 UTC
*** Bug 157484 has been marked as a duplicate of this bug. ***
Comment 3 Andy Goossens 2008-12-28 01:22:42 UTC
*** Bug 163458 has been marked as a duplicate of this bug. ***
Comment 4 Dario Andres 2009-01-19 12:14:44 UTC
*** Bug 181265 has been marked as a duplicate of this bug. ***
Comment 5 Dario Andres 2009-01-20 15:50:25 UTC
I had looked to this issue some time ago. The module can't resize the columns better because Qt lacks of some options to do that. (and the functions already there doesn't work the way expected).
I proposed some alternatives to this like reorder the columns to:

Status Icon | Event Name | Event Description

The "Status Icon" and the "Event Name" columns will have fixed width (to show full the name of the event and its status); and the event description will have a non-fixed width.

The "Status Icon" should be the first column because otherwise, the status icons will move when changing the KNotify application in the KCMNotify module in SystemSettings (as the Event Names and Description widths changes when the KNotify application changes)

Also, I proposed a tooltip for the Event Name to show the Event Description (to see what is that event for, without having to scroll the view in small dialogs like the screenshot posted above)

I sent that patch to Olivier, but he didn't like the idea of a fixed "Status Icon" column as the Icon size may change due another configurations (I didn't really liked too much, but I couldn't find a better solution) 

@Maciej: any thought about this? Thanks a lot
Comment 6 Maciej Pilichowski 2009-01-20 17:52:10 UTC
I like your idea a lot, but with small correction -- icons are not fixed size. So the icon column should be resized automatically with icon size.

Comment 7 Dario Andres 2009-02-22 23:51:48 UTC
Created attachment 31555 [details]
New patch proposed

I modified the patch to not use *fixed* sizes, now it extracts the
font height of the QTreeWidget items (using the fontMetrics of the
QStyleOption), in order to use it as icon width and height. So it will
change with font size to use all the space.

It's not the optimal solution but it's better than fixed sizes.

I've already sent the mail to Olivier. So I'm wait for approval.
Comment 8 Dario Andres 2009-02-23 20:17:49 UTC
Created attachment 31576 [details]
Screenshot of KNotifyKCM with the patch applied
Comment 9 Dario Andres 2009-02-23 20:19:38 UTC
Created attachment 31577 [details]
Screenshot of KNotifyConfigDialog inside Kopete with the patch applied
Comment 10 Maciej Pilichowski 2009-02-23 20:26:44 UTC
Dario, great! Thank you a lot.
Comment 11 Dario Andres 2009-02-23 22:13:09 UTC
I came up with a better solution to this:

The column layout will be the same as the original one:

[[ Name | Description | State Icons ]]
(this is better to first read the Event name, as pointed by aseigo)

The columns flow will be

[[ Fixed | Resizable | Fixed ]]

Event Name column is fixed based on the name lenght.
State Icons column is fixed based on icon quantity * icons width.
Description columns is fully resizable, however it's initialy expanded to use all the widget left space.

+ I added the option to expand/collapse the Description column when the widget is resized. So, even if you resize the widget, the State icons will be showed always. And the description size will be resized to fit in that middle space (and you can expand it manually if you want), or better, use the tooltip.

@Maciej: what do you think ?

Regards.
Comment 12 Dario Andres 2009-02-23 22:17:23 UTC
Also, the columns are autoresized when you change the KDE component in the KNotify KCM module inside SystemSettings
Comment 13 Maciej Pilichowski 2009-02-23 23:14:31 UTC
> The columns flow will be
>
> [[ Fixed | Resizable | Fixed ]]
>
> Event Name column is fixed based on the name lenght.
> State Icons column is fixed based on icon quantity * icons width.
> Description columns is fully resizable, however it's initialy
> expanded to use all the widget left space.

IMHO it is much worse than you few minutes before screenshots. Here it is why -- event name is dynamically calculated, so it is meta-fixed. Only the status is really fixed, because no matter what dialog you see, the width is the same.
The other problem is issue of non-solvable situations -- you cannot really have to fixed width elements and in all cases fit into some size. 
The other issue is using such dialog -- when user would like to now a bit more about description she/he resizes the middle column and bye-bye to status icons.

I think the central point is status, after all it is where the focus of the user is. Second argument is it is really fixed width, so it is much easier to handle and understand how to use the dialog. It also takes least space, to the dialog should be organized in favor of status (because this column is most dialog-friendly).

So in short, the design you showed in screenshots are easy to understand, easy to handle, and imho are the best :-).
Comment 14 Dario Andres 2009-02-23 23:18:30 UTC
Adding Celeste from KDE Usability to properly discuss this.
Comment 15 Celeste Lyn Paul 2009-02-23 23:27:19 UTC
Can you provide a screenshot from what you mean in comment #11? I'm having a hard time visualizing the difference between that and the screenshots in 8 and 9.  Whatever you did in 8 and 9 looked good, it increased the visibility of the text, which is the end goal.
Comment 16 Dario Andres 2009-02-23 23:30:22 UTC
Created attachment 31585 [details]
Screenshot A of proposal of comment 11

Initial start size
Comment 17 Dario Andres 2009-02-23 23:31:17 UTC
Created attachment 31586 [details]
Screenshot B of proposal of comment 11

After widget( KCMShell4) resize. Note that I didn't manually resized the columns. It's automatic
Comment 18 Dario Andres 2009-02-23 23:34:45 UTC
In the Kopete dialog there is a problem as the original dialog is too small and there are some long event names, so the description name would be hidden completelly.. I implemented a min width for that column of 30px (at least to notice that it exists), however this moves the State Icons column to the right, as described by Maciej
Comment 19 Dario Andres 2009-02-23 23:35:44 UTC
Created attachment 31587 [details]
Screenshot C of proposal of comment 11

Inside Kopete's dialog
Comment 20 Celeste Lyn Paul 2009-02-24 01:01:46 UTC
I think that is fine. The title is enough for the user to scan and identify the item and if the title isn't enough of a description then they can read/expand the description if necessary.
Comment 21 Dario Andres 2009-02-24 01:38:53 UTC
@Celeste: what implementation do you prefer? the first one (comment 8/9 ) or the last one (comment 11). Sorry for bothering you but I didn't understood your position properly.
Thanks for looking into this report :)
Comment 22 Celeste Lyn Paul 2009-02-24 15:44:16 UTC
@Dario: Comment 11. I think it is important to guarantee visibility of the title. I assume the difference with 8/9 is that it tries to resize all of them which could lead to the title not being fully visible, correct?
Comment 23 Maciej Pilichowski 2009-02-24 16:39:59 UTC
@Celeste, quite contrary, the status should have guarantee of visibility, the title -- if possible. Why? Because once used, you know what and where to switch even if you see partial title, but when you see only partial status you _have to_ scroll the list.

So it is is between -- scroll once vs. scroll always. I think by any measure, "scroll once" is more sane option.
Comment 24 Dario Andres 2009-02-24 17:38:10 UTC
SVN commit 931026 by darioandres:

Attempt to reorganize the columns of the notification widget
The event name is always shown 100%, added tooltips with description
CCBUG: 164513



 M  +37 -37    knotifyeventlist.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=931026
Comment 25 Dario Andres 2009-02-24 17:51:28 UTC
SVN commit 931031 by darioandres:

Backport to 4.2branch of:
SVN commit 931026 by darioandres:

Attempt to reorganize the columns of the notification widget
The event name is always shown 100%, added tooltips with description

BUG: 164513



 M  +37 -37    knotifyeventlist.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=931031