View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000356 | Scribus | User Interface | public | 2004-03-23 17:25 | 2004-06-14 23:20 |
Reporter | adaran | Assigned To | ale | ||
Priority | normal | Severity | tweak | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | x86 | OS | Linux | OS Version | 2.6.4 |
Product Version | 1.1.5 | ||||
Summary | 0000356: Margin Dialog not intuituve enough | ||||
Description | When trying to figure out why my Margin Guides don't snap (see other bug), I noticed a few things that bothered me a little in the Page -> Manage Guides dialog: a.) When clicking the "New" button, a new guide at 0.00 is created, and the "0.00" is selected. However, there is no selection of the newly created guide in the upper list of guides - none of them is. This can be a bit confusing, because the user isn't sure at first if he is really editing the guide he has just created. b.) A guide beeing edited does not show it's new position value in the list while typing. This should be the case since there is no "change" button to apply guide changes, the only way to apply a change is to click on another margin or close the dialog. c.) The impression the user gets from b, which is that guides are not edited "in place" leads to confusion with the New button: The user might assume that he has to enter the position of the guide he wants to create first and then click the New - button, which is not the case. d.) When changing a guide, and then clicking "New" the change is lost. e.) When deleting a guide, the guide with the highest position value is selected after the deletion, not the guide that was below the deleted one and filled its place. This behavior deviates from standards in other applications (to the best of my knowledge and experiences). f.) Pressing return should not close the dialog, but only update the guides position value in the list. Because there is no feedback that the guide has actually been changed (see b), the user will expect to have to do something else to make a change to a guide (at least I did) and often presses return - which closes the dialog. | ||||
Tags | No tags attached. | ||||
Patch | |||||
|
if you want it i can take care of this bugreport... as soon as i have some spare time :-) (for the guides part!) edited on: 03-24-04 10:22 |
|
also see bug 0000356 |
|
see also comments please from 0000512 |
2004-06-08 07:10
|
guidemanager.diff (4,230 bytes)
--- guidemanager.cpp~ 2004-06-03 10:54:22.000000000 +0200 +++ guidemanager.cpp 2004-06-05 12:31:44.837359624 +0200 @@ -18,21 +18,12 @@ /*************************************************************************** * guides manager for scribus - * .inspired by tabmanager.cpp and guidemanager.cpp by franz shmid - * .porting structure and functionality of the tabmanager to the guides - * .the dialog layout hasn't been modified - * .first steps in unifying the variable naming schema... - * .a couple of bugs have been corrected (delete was enabled even when - * there were no more guides/tabs) - * .a couple of enhancements: guides can be "moved"; to delete all the guides, - * just keep on clicking on delete; guides can be entered - * without using the mouse (click on add, write the measure, press - * tab, press space, enter the next guide) - * .open questions: should i use GetUnit or directly access the array? - * why do the VerXXX variables refer to the horizontal guides? Should - * i change this? Should the precision depend on the unit used? Why are - * all the methods and properties public? Only LocHor and LocVer should - * be public! + * - bug 356: + * a: ok + * d: ok + * e: ok + * f: press tab to make it update! (no focus in/out signal for qspinbox) + * - added the esc key ***************************************************************************/ #include "guidemanager.h" @@ -185,6 +176,7 @@ Cancel = new QPushButton(this, "Cancel"); Cancel->setText( tr("Cancel")); + Cancel->setAccel(QKeySequence("Esc")); Layout5->addWidget(Cancel); QSpacerItem* spacer_3 = new QSpacerItem( 0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum ); @@ -207,6 +199,8 @@ connect(VerDel, SIGNAL(clicked()), this, SLOT(DelVerVal())); connect(VerSpin, SIGNAL(valueChanged(int)), this, SLOT(ChangeVerVal())); connect(Lock, SIGNAL(clicked()), this, SLOT(HandleLock())); + + // connect(VerSpin, SIGNAL(focusIn()), this, SLOT(FocusInEvent())); UpdateHorList(); UpdateVerList(); @@ -238,7 +232,10 @@ QValueList<double>::Iterator it; it = LocHor.at(selHor); it = LocHor.remove(it); - selHor = LocHor.isEmpty() ? -1 : static_cast<int>(LocHor.count() - 1); + if (LocHor.isEmpty()) + selHor = -1; + else if (selHor > static_cast<int>(LocHor.count()-1)) + selHor--; if (selHor == -1) HorDel->setEnabled(false); UpdateHorList(); @@ -249,7 +246,10 @@ QValueList<double>::Iterator it; it = LocVer.at(selVer); it = LocVer.remove(it); - selVer = LocVer.isEmpty() ? -1 : static_cast<int>(LocVer.count() - 1); + if (LocVer.isEmpty()) + selVer = -1; + else if (selVer > static_cast<int>(LocVer.count()-1)) + selVer--; if (selVer == -1) VerDel->setEnabled(false); UpdateVerList(); @@ -257,6 +257,11 @@ void GuideManager::AddHorVal() { + if (HorSpin->hasFocus()) + HorSpin->clearFocus(); + if (VerSpin->hasFocus()) + VerSpin->clearFocus(); + LocHor.prepend(0); selHor = 0; @@ -266,12 +271,19 @@ HorDel->setEnabled(true); UpdateHorList(); + HorList->setCurrentItem(0); + HorList->setSelected(0,true); HorSpin->setFocus(); HorSpin->selectAll(); } void GuideManager::AddVerVal() { + if (HorSpin->hasFocus()) + HorSpin->clearFocus(); + if (VerSpin->hasFocus()) + VerSpin->clearFocus(); + LocVer.prepend(0); selVer = 0; @@ -281,6 +293,8 @@ VerDel->setEnabled(true); UpdateVerList(); + VerList->setCurrentItem(0); + VerList->setSelected(0,true); VerSpin->setFocus(); VerSpin->selectAll(); } @@ -402,6 +416,7 @@ if (selHor != -1) HorList->setCurrentItem(selHor); + HorSpin->setEnabled(selHor != -1 ? true : false); HorSpin->setValue(selHor != -1 ? (LocHor[selHor] * UmReFaktor * 10000.0) / 10000.0 : 0); @@ -414,10 +429,10 @@ disconnect(VerList, SIGNAL(highlighted(QListBoxItem*)), this, SLOT(selVerIte(QListBoxItem*))); disconnect(VerSpin, SIGNAL(valueChanged(int)), this, SLOT(ChangeVerVal())); - QString tmp; - VerList->clear(); + QString tmp; + for (uint i = 0; i < LocVer.count(); ++ i) VerList->insertItem(tmp.setNum(qRound(LocVer[i] * UmReFaktor * 10000.0) / 10000.0, 'f', 4) + GetUnit()); |
|
+ * - bug 356: + * a: ok + * d: ok + * e: ok + * f: press tab to make it update! (no focus in/out signal for qspinbox) + * - added the esc key i hope that the patch resolves most of the usability problems related with the guide manager. the biggest regret i have, is not having being able to selective handle the return button. i wanted to normally let the user close the dialog with the return key but, if she was in the spin box, just update the value in the list and go out of the field... sadly, there was no way to know if the spinbox in focus... so, you will have to keep the good habit of hitting the tab key to get out of the field! (btw, you can "add" the guideline, edit it, tab, space, and you're ready to edit the next guideline... it's quite effective once you're used to it!) simply comment here if you have good ideas :-) |
|
some comments about the other bug report (which is already closed) # 1) To add guide, I type value and then click to Add button # (whole Guide dialog is still open) as said, just tab out of the field (or click somewhere else)... # 2) To change guide, there should be button "Edit". # After clicking on it, should be displayed next dialog with more options. # One for value and another for example "Multiples of this value" for # guides in typed value multiples. scribus doesn't normally use those edit button... do you have other suggestion for the buttons? # 3) There should be option to lock every guide separate. # Locked guide should be displayed for example with other color in work space. i see the interest of it... but i wonder if it wouldn't be better to separate the guides in the template from those in the document... and the first ones would then be locked while editing the doc. # 4) When I select guide in dialog, this guide should be highlighted # in work space with other color or by blinking. if 3) then 4) would be interesting... |
|
Tested. Fixed. |
Date Modified | Username | Field | Change |
---|---|---|---|
2004-03-23 17:25 | adaran | New Issue | |
2004-03-24 09:22 | ale | Note Added: 0000778 | |
2004-03-24 09:22 | ale | Note Edited: 0000778 | |
2004-03-25 15:56 | cbradney | Status | new => assigned |
2004-03-25 15:56 | cbradney | Assigned To | => ale |
2004-04-07 15:03 | cbradney | Category | General => User Interface |
2004-05-27 11:16 | adaran | Note Added: 0001586 | |
2004-06-04 01:41 |
|
Relationship added | has duplicate 0000512 |
2004-06-04 01:42 |
|
Note Added: 0001653 | |
2004-06-08 07:10 | ale | File Added: guidemanager.diff | |
2004-06-08 07:24 | ale | Note Added: 0001671 | |
2004-06-08 07:34 | ale | Note Added: 0001672 | |
2004-06-08 21:49 | fschmid | Status | assigned => resolved |
2004-06-08 21:49 | fschmid | Resolution | open => fixed |
2004-06-14 23:20 | cbradney | Status | resolved => closed |
2004-06-14 23:20 | cbradney | Note Added: 0001733 | |
2006-05-15 18:25 | christoph_s | Relationship added | child of 0003821 |
2006-05-18 19:46 | christoph_s | Relationship added | related to 0003837 |