Bug 252289 - UI: reorganize the plot dialog
Summary: UI: reorganize the plot dialog
Status: RESOLVED FIXED
Alias: None
Product: kst
Classification: Applications
Component: ui (show other bugs)
Version: 2.0.1
Platform: Compiled Sources Linux
: NOR wishlist
Target Milestone: 2.0.1
Assignee: kst
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-24 22:50 UTC by Nicolas Brisset
Modified: 2010-11-12 10:37 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
What I get when hitting "E" (42.97 KB, image/png)
2010-10-28 21:09 UTC, Nicolas Brisset
Details
What I want when hitting "E" (37.29 KB, image/png)
2010-10-28 21:09 UTC, Nicolas Brisset
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Brisset 2010-09-24 22:50:09 UTC
Version:           2.0.1
OS:                Linux

In its current incarnation, the plot dialog is not very satisfying. I have the following gripes against it:

1) the most used parts are not the easiest to reach. I think it should open on the "Contents" part by default, and the others should be sorted from most often used to least often used modulo logical grouping. I'd suggest the following order: Contents, Labels, Range/Zoom, X-Axis, Y-Axis, X-Axis markers, Y-Axis markers, Appearance, Dimensions

2) the listview on the left contains both categories pertaining to plot properties and a list of displayed objects, which gives access to their properties by embedding for instance the curve dialog into the plot dialog. I find it very very confusing. We need at least a clear visual separation, or even better: a radical change. Here is my idea: we don't list the objects in the left column, since they are already in the contents tab. Instead, we add buttons below the contents list(s): "Select all", "Deselect all" and "Edit selected". And here is the best part: when the user clicks "Edit selected" we pop up the corresponding dialog(s), if needed in "edit multiple" mode and with the items from the contents list preselected. I find that idea pretty cool and it should be reasonably easy to implement.

3) it gives acces to almost all Qt properties of the QGraphicsItems, which is probably good for power-users, but it can quickly get overwhelming. For now, I'd leave it at putting them further down the list but maybe we should use newbie-friendly labels (who can understand all those Stroke options anyway?) 

Reproducible: Didn't try
Comment 1 Netterfield 2010-09-24 23:28:22 UTC
I like these ideas.

Comment on (1): should the page it opens to be dependent on how it was opened?  eg, double-clicking on a label opens it to the label page, double-clicking on the X or Y axis opens to the X or Y axis page.  Double clicking in the plot opens to the contents page.

2) does the curve dialog get embedded, or is it a separate dialog?
Comment 2 Nicolas Brisset 2010-09-25 00:18:30 UTC
- Page it opens on depending on how it is called: great idea! So we have a single dialog but we can get directly to the part of interest
- Curve dialog: please don't embed it, it can grow pretty large (with long vector names and the vector selectors) and is only confusing. We have non-modal dialogs, having more than one open doesn't hurt so much.
Comment 3 Nicolas Brisset 2010-10-01 00:42:27 UTC
SVN commit 1181406 by brisset:

Show the "Contents" by default when opening the dialog. I'm not sure
that's the best place to do it, though... Has te be checked when
implementing the changes for the new plot dialog.

CCBUG: 252289


 M  +5 -4      plotitemdialog.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1181406
Comment 4 Nicolas Brisset 2010-10-22 11:34:23 UTC
Copying here the log message of a commit where I really should have CC'd this bug...

------------------------------------------------------------------------
r1179247 | brisset | 2010-09-25 00:19:35 +0200 (Sa, 25. Sep 2010) | 6 lines

- Really cleanup images.qrc
- Start implementing the improvements to the plot dialog described in bug #252289, but I still have some difficulties:
   => Appearance and Dimensions always appear first, I tried insertItem instead of addPage and it didn't work... ?    
   => The _listWidget is always cropped and it's really a pain to have to use the scrollbars for that widget. There is code that should make it grow to accomodate its content but it somehow does not work
   => Implementing the logic desribed in bugzilla to edit the displayed items takes more code than I'm able to produce, so I just added buttons which do nothing. I hope someone steps in to fill the gap, otherwise we will remove or deactivate the buttons until everything works. I wanted to illustrate the idea and it's not too bad as there are already many ways to edit the objects.
Comment 5 Peter Kümmel 2010-10-28 00:25:32 UTC
SVN commit 1190513 by kuemmel:

fix size problem of plot dialog
CCBUG: 252289


 M  +4 -1      dialog.cpp  
 M  +4 -2      dialog.h  
 M  +23 -5     dialog.ui  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1190513
Comment 6 Nicolas Brisset 2010-10-28 21:09:17 UTC
Created attachment 52951 [details]
What I get when hitting "E"
Comment 7 Nicolas Brisset 2010-10-28 21:09:57 UTC
Created attachment 52952 [details]
What I want when hitting "E"
Comment 8 Nicolas Brisset 2010-10-28 21:14:25 UTC
Regarding the size of the elements, it's not quite there yet. I am not even sure that the QScrollArea is necessary, but in any case we still have to improve things a bit. 
See attachments:
- what I get: too much room on the left, and scroll bars for the right area which I really don't need
- what I want: the categories on the left completely readable, but no wasted space and on the right the contents tab without scrollbars

I have been fiddling around with sizePolicy and size settings on _srollArea and _listWidget for a while but I can't seem to get it right. Peter, if you know how to achieve that, go ahead!

P.S.: it compiles fine here, maybe my report to the list earlier is a bug in Qt 4.7, or a local config problem.
Comment 9 Peter Kümmel 2010-10-28 22:44:51 UTC
Qt's layout mismanagement is really annoying!

And you are right, to make it scrollable is no good idea.

I fear we have to check change all .ui files to remove the min-width restrictions which forces the _stackWidget to be too wide.
Comment 10 Nicolas Brisset 2010-10-29 00:11:04 UTC
I'd suggest adding the following line at the end of the plotitemdialog constructor:

  setMinimumSize(800, 550);

It seems to work very well and is totally easy. Maybe we can improve it in the future, but for the short term it sounds like a nice and easy compromise.
I'll let someone else commit it if you test it and like it.
Comment 11 Netterfield 2010-11-02 17:10:29 UTC
SVN commit 1192341 by netterfield:

CCBUG: 252289
Set a minimum size for the list widget.  This is a semi-hack, since it sets the width in
characters, not pixels, so it will survive font size changes.  Ideally we would know the 
size of the longest entry, and set it to that.  But, at this point of construction, we 
don't, so... use 15 which is 2 longer than the longest entry I could find.



 M  +2 -1      dialog.ui  
 M  +9 -0      viewitemdialog.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1192341
Comment 12 Netterfield 2010-11-08 17:46:36 UTC
SVN commit 1194311 by netterfield:

BUG: 252289

Activate edit in the content page.  If multiple items are selected, then the curve dialog will be opened
in edit multiple mode with the appropriate curves selected.



 M  +42 -2     libkstapp/contenttab.cpp  
 M  +3 -1      libkstapp/contenttab.h  
 M  +15 -1     libkstapp/datadialog.cpp  
 M  +5 -1      libkstapp/datadialog.h  
 M  +23 -0     libkstapp/dialoglaunchergui.cpp  
 M  +4 -0      libkstapp/dialoglaunchergui.h  
 M  +12 -1     libkstapp/editmultiplewidget.cpp  
 M  +2 -1      libkstapp/editmultiplewidget.h  
 M  +1 -1      libkstapp/plotitemdialog.cpp  
 M  +11 -0     libkstmath/dialoglauncher.cpp  
 M  +5 -0      libkstmath/dialoglauncher.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1194311
Comment 13 Peter Kümmel 2010-11-12 10:37:12 UTC
There is no version list for "Version Fixed in".
Use Target Milestone as indicator when the bug was fixed.