From 87fc3b6e631fef71452da71f9f78168e382b15fc Mon Sep 17 00:00:00 2001 From: Roman Bovsunivskiy Date: Tue, 3 Aug 2010 19:26:02 +0000 Subject: [PATCH] Help dialogs are now not modal (fixed #1655) --- src/gui/FWWindow.cpp | 13 +++++++++++++ src/gui/Help.cpp | 16 +++++++++++++++- src/gui/TutorialDialog.cpp | 1 + src/gui/helpview_q.ui | 2 +- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/gui/FWWindow.cpp b/src/gui/FWWindow.cpp index e3d6d0206..f00cc94a1 100644 --- a/src/gui/FWWindow.cpp +++ b/src/gui/FWWindow.cpp @@ -1402,13 +1402,26 @@ void FWWindow::showTutorial(QString tutorial) if (fwbdebug) qDebug() << "FWWindow::showTutorial:" << tutorial; + Help *help = Help::getHelpWindow(this); + if (help->isVisible()) + { + help->raise(); + help->showNormal(); + help->activateWindow(); + + } TutorialDialog *dialog; if (tutorial.isEmpty()) dialog= new TutorialDialog( sender()->objectName().remove(0,7).toLower(), this); else dialog = new TutorialDialog(tutorial, this); + dialog->move(help->pos()); + dialog->resize(help->size()); dialog->show(); + help->hide(); + help->reject(); + dialog->activateWindow(); } void FWWindow::showReleaseNotes() diff --git a/src/gui/Help.cpp b/src/gui/Help.cpp index 0b7392bf9..4b9082553 100644 --- a/src/gui/Help.cpp +++ b/src/gui/Help.cpp @@ -29,6 +29,7 @@ #include "Help.h" #include "FWWindow.h" +#include "TutorialDialog.h" #include #include @@ -66,7 +67,7 @@ Help::Help(QWidget *parent, const QString &title, bool _load_links_in_browser) : resize(600, 700); //raise(); - flags = windowFlags() | Qt::Dialog; + flags = windowFlags() | Qt::WindowStaysOnTopHint | Qt::WindowMinMaxButtonsHint;//| Qt::Dialog; }; Help::~Help() @@ -76,10 +77,23 @@ Help::~Help() Help* Help::getHelpWindow(QWidget* w) { + TutorialDialog *tutorial = mw->findChild(); if (help_window == NULL) + { help_window = new Help(w, "Firewall Builder"); + help_window->setWindowFlags(help_window->windowFlags() | Qt::WindowMinimizeButtonHint); + } //if (parent != mw) help_window->setParent(parent, help_window->flags); + if (tutorial) + { + help_window->resize(tutorial->size()); + help_window->move(tutorial->pos()); + tutorial->reject(); + } + help_window->raise(); + help_window->showNormal(); + help_window->activateWindow(); return help_window; } diff --git a/src/gui/TutorialDialog.cpp b/src/gui/TutorialDialog.cpp index ee362bd1b..d330ea9a5 100644 --- a/src/gui/TutorialDialog.cpp +++ b/src/gui/TutorialDialog.cpp @@ -58,6 +58,7 @@ TutorialDialog::TutorialDialog(QString tutorial, QWidget *parent) : showPage(currentPage); wfl->registerTutorialViewing(tutorial); + this->setWindowFlags(this->windowFlags() | Qt::WindowMinimizeButtonHint); } void TutorialDialog::resizeEvent(QResizeEvent *) diff --git a/src/gui/helpview_q.ui b/src/gui/helpview_q.ui index e7229791c..ae1e0f566 100644 --- a/src/gui/helpview_q.ui +++ b/src/gui/helpview_q.ui @@ -3,7 +3,7 @@ HelpView_q - Qt::ApplicationModal + Qt::NonModal