View Issue Details

IDProjectCategoryView StatusLast Update
0009507ScribusUser Interfacepublic2015-07-03 18:30
Reporterchristoph_s Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product Version1.3.9.svn 
Target VersionFuture Release - Nice to have 
Summary0009507: Modal dialogs block access to the Help Browser
DescriptionIf the Help Browser is open, every modal dialog blocks access to it and forces the focus back to itself. This is especially annoying if one wants to use the documentation for modal dialogs, like the Doc Setup, alongside the dialog.
TagsNo tags attached.
PatchNo

Relationships

related to 0000950 confirmed non modal search dialog 
related to 0005389 closed make Image Effects non modal 
related to 0003494 assignedsubik colorwheel: making the dialog non modal for the color picker 
parent of 0013192 closed [Patch] Preferences > User Interface > Image Cache tooltips 
has duplicate 0010576 closedjghali Scribus manual-application window transiction problem 
related to 0009634 new image manager should be non modal 
related to 0001309 assignedsubik feature: font preview should be a normal, non-modal window 

Activities

cbradney

2010-11-21 08:58

administrator   ~0024859

We don't have any option for this other than to make a help application... modal is modal afterall

Kunda

2015-06-30 16:35

updater   ~0035578

Ok...this is a major issue for people just learning Scribus that don't have 2 screens. I was checking tooltips and wanting to toggle between help menu and preferences...not possible without closing preferences each time and bringing Help browser to the front.

Fixing this issue will allow direct help links from Scribus Preferences to the help file. Especially since currently (as of June 30, 2015 v1.5.1 r20224) there is not much help info in the Preferences themselves save for tooltips. But even tooltips are sparse in many areas of Preferences.

cbradney

2015-06-30 20:55

administrator   ~0035593

2010-11-21 09:58

We don't have any option for this other than to make a help application... modal is modal after all.


*Nothing* we can do with without having a Scribus Help application.

Kunda

2015-07-01 15:33

updater   ~0035603

What's a Scribus Help Application look like? Is runs independently of Scribus ?

ale

2015-07-01 20:00

manager   ~0035607

yep, a separate application that is run by scribus. (just like scribus is starting gimp to edit images)

currently, the help browser runs in a window inside of scribus.

simonaw

2015-07-02 17:31

reporter   ~0035626

@cbradney There is setWindowModality you can set to Qt::WindowModal: "The window is modal to a single window hierarchy and blocks input to its parent window, all grandparent windows, and all siblings of its parent and grandparent windows." (http://doc.qt.io/qt-4.8/qt.html#WindowModality-enum)

simonaw

2015-07-02 17:58

reporter  

preferences-window-modal.patch (456 bytes)   
diff --git a/scribus/scribus.cpp b/scribus/scribus.cpp
index 966362a..a6a66b6 100644
--- a/scribus/scribus.cpp
+++ b/scribus/scribus.cpp
@@ -6539,6 +6539,7 @@ void ScribusMainWindow::slotPrefsOrg()
 	slotSelect();
 	struct ApplicationPrefs oldPrefs(prefsManager->appPrefs);
 	PreferencesDialog prefsDialog(this, oldPrefs);
+  prefsDialog.setWindowModality( Qt::WindowModal );
 	int prefsResult=prefsDialog.exec();
 	if (prefsResult==QDialog::Accepted)
 	{

simonaw

2015-07-02 18:00

reporter   ~0035629

The attached patch is a proof of concept. It makes the preferences dialog Qt::WindowModal so that access to the scribus main window is blocked but if you opened the help browser /before/ it is still controllable by the user.

Kunda

2015-07-02 20:06

updater   ~0035634

Patch works on OSX. Thanks SimonAW!

cbradney

2015-07-02 20:54

administrator   ~0035638

Similar application to QMessageBoxes in the code does not allow access to the Help system.

Kunda

2015-07-02 21:04

updater   ~0035639

Screencast: https://www.dropbox.com/s/vgmb6oljh232m1a/modal.m4v?dl=0

cbradney

2015-07-02 21:27

administrator   ~0035641

Add screencasts as much as you like, it doesn't fix the issue.

simonaw

2015-07-03 10:38

reporter   ~0035653

QMessageBox inherits QDialog. It works in the same way:

QMessageBox msg( QMessageBox::Critical, tr("Critical Failure"), tr("Error Message"), QMessageBox::Ok, this );
msg.setWindowModality( Qt::WindowModal );
msg.exec()

cbradney

2015-07-03 11:35

administrator   ~0035656

Well aware of that.. I tried it on the QMessageBox in ScribusMainWindow::GroupObj.

I could access the Properties Palette (bad)
I could not access the Help Browser (bad)

Maybe you can dig into this however that test fails.

Also, while this option might free up the possibility to unlock dialogs, it doesn't mean it is safe to do so. Eg freeing up the colour wheel (another bug is in for that), would also require locking be in place for the lists of colours.

simonaw

2015-07-03 18:29

reporter  

scribus-msgbox-modal.patch (826 bytes)   
diff --git a/scribus/scribus.cpp b/scribus/scribus.cpp
index 966362a..b30cba9 100644
--- a/scribus/scribus.cpp
+++ b/scribus/scribus.cpp
@@ -7679,12 +7679,13 @@ void ScribusMainWindow::GroupObj(bool showLockDia)
 		}
 		if (lockedCount!=0 && lockedCount!=selectedItemCount)
 		{
-			ScMessageBox msgBox;
+			ScMessageBox msgBox(this);
 			QPushButton *abortButton = msgBox.addButton(QMessageBox::Cancel);
 			QPushButton *lockButton = msgBox.addButton(tr("&Lock All"), QMessageBox::AcceptRole);
 			msgBox.addButton(tr("&Unlock All"), QMessageBox::AcceptRole);
 			msgBox.setIcon(QMessageBox::Warning);
 			msgBox.setWindowTitle(CommonStrings::trWarning);
+      msgBox.setWindowModality( Qt::WindowModal );
 			msgBox.setText( tr("Some objects are locked."));
 			msgBox.setDefaultBatchButton(lockButton);
 			msgBox.exec();
scribus-msgbox-modal.patch (826 bytes)   

simonaw

2015-07-03 18:30

reporter   ~0035659

Works like a charm.
While the message box is open
 I cannot access the Properties Palette
 I can access the help browser

Issue History

Date Modified Username Field Change
2010-11-21 02:56 christoph_s New Issue
2010-11-21 02:56 christoph_s Status new => assigned
2010-11-21 02:56 christoph_s Assigned To => cbradney
2010-11-21 08:58 cbradney Note Added: 0024859
2010-11-21 10:48 cbradney Assigned To cbradney =>
2010-11-21 10:48 cbradney Status assigned => new
2012-02-19 16:58 jghali Relationship added has duplicate 0010576
2015-05-25 03:35 Kunda Patch => No
2015-05-25 03:35 Kunda Target Version => Future Release - Nice to have
2015-06-30 16:35 Kunda Note Added: 0035578
2015-06-30 20:06 Kunda Relationship added parent of 0013192
2015-06-30 20:06 Kunda Relationship added parent of 0013191
2015-06-30 20:55 cbradney Note Added: 0035593
2015-07-01 15:33 Kunda Note Added: 0035603
2015-07-01 20:00 ale Note Added: 0035607
2015-07-02 17:31 simonaw Note Added: 0035626
2015-07-02 17:58 simonaw File Added: preferences-window-modal.patch
2015-07-02 18:00 simonaw Note Added: 0035629
2015-07-02 20:06 Kunda Note Added: 0035634
2015-07-02 20:12 Kunda Relationship added related to 0009634
2015-07-02 20:19 Kunda Relationship added related to 0000950
2015-07-02 20:21 Kunda Relationship added related to 0005389
2015-07-02 20:25 Kunda Relationship added related to 0001309
2015-07-02 20:37 Kunda Relationship added related to 0003494
2015-07-02 20:54 cbradney Note Added: 0035638
2015-07-02 21:04 Kunda Note Added: 0035639
2015-07-02 21:27 cbradney Note Added: 0035641
2015-07-03 10:38 simonaw Note Added: 0035653
2015-07-03 11:35 cbradney Note Added: 0035656
2015-07-03 18:29 simonaw File Added: scribus-msgbox-modal.patch
2015-07-03 18:30 simonaw Note Added: 0035659
2015-11-30 21:16 Kunda Relationship deleted parent of 0013191