diff options
author | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-01-05 11:12:39 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@theqtcompany.com> | 2015-01-05 16:04:52 +0100 |
commit | 225e599c94333484ba42f6365e28201546ff164a (patch) | |
tree | 31c7eb39b2326b2a3f3fd4d4e8bab792298bedce | |
parent | 98dbe9adcadd0aff01b7f8eb08f1cef97b01f001 (diff) | |
download | qt-creator-225e599c94333484ba42f6365e28201546ff164a.tar.gz |
Register wizard windows so they appear in window list and get shortcuts
Change-Id: I69b3a49ba2e2162585502a523be835918b7b9533
Task-number: QTCREATORBUG-13766
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
-rw-r--r-- | src/plugins/coreplugin/basefilewizardfactory.cpp | 2 | ||||
-rw-r--r-- | src/plugins/coreplugin/dialogs/newdialog.cpp | 2 | ||||
-rw-r--r-- | src/plugins/coreplugin/mainwindow.cpp | 2 | ||||
-rw-r--r-- | src/plugins/coreplugin/windowsupport.cpp | 14 | ||||
-rw-r--r-- | src/plugins/coreplugin/windowsupport.h | 1 | ||||
-rw-r--r-- | src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp | 8 | ||||
-rw-r--r-- | src/plugins/vcsbase/basecheckoutwizardfactory.cpp | 3 |
7 files changed, 29 insertions, 3 deletions
diff --git a/src/plugins/coreplugin/basefilewizardfactory.cpp b/src/plugins/coreplugin/basefilewizardfactory.cpp index 032a76bd29..3e850fab75 100644 --- a/src/plugins/coreplugin/basefilewizardfactory.cpp +++ b/src/plugins/coreplugin/basefilewizardfactory.cpp @@ -31,6 +31,7 @@ #include "basefilewizardfactory.h" #include "basefilewizard.h" +#include "icontext.h" #include "icore.h" #include "ifilewizardextension.h" #include "mimedatabase.h" @@ -220,6 +221,7 @@ void BaseFileWizardFactory::runWizard(const QString &path, QWidget *parent, cons dialogParameterFlags, extraValues))); QTC_ASSERT(!wizard.isNull(), return); + ICore::registerWindow(wizard.data(), Context("Core.NewWizard")); GeneratedFiles files; // Run the wizard: Call generate files on switching to the first extension diff --git a/src/plugins/coreplugin/dialogs/newdialog.cpp b/src/plugins/coreplugin/dialogs/newdialog.cpp index 9dbcfe64e0..a16bb9884f 100644 --- a/src/plugins/coreplugin/dialogs/newdialog.cpp +++ b/src/plugins/coreplugin/dialogs/newdialog.cpp @@ -33,6 +33,7 @@ #include <coreplugin/coreconstants.h> #include <coreplugin/documentmanager.h> +#include <coreplugin/icontext.h> #include <coreplugin/icore.h> #include <utils/qtcassert.h> @@ -198,6 +199,7 @@ NewDialog::NewDialog(QWidget *parent) : setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint); setWindowFlags(windowFlags()); setAttribute(Qt::WA_DeleteOnClose); + ICore::registerWindow(this, Context("Core.NewDialog")); m_ui->setupUi(this); QPalette p = m_ui->frame->palette(); p.setColor(QPalette::Window, p.color(QPalette::Base)); diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 64142837a8..3ea11517c4 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -743,7 +743,7 @@ void MainWindow::registerDefaultActions() void MainWindow::newFile() { - showNewItemDialog(tr("New", "Title of dialog"), IWizardFactory::allWizardFactories(), QString()); + showNewItemDialog(tr("New File or Project", "Title of dialog"), IWizardFactory::allWizardFactories(), QString()); } void MainWindow::openFile() diff --git a/src/plugins/coreplugin/windowsupport.cpp b/src/plugins/coreplugin/windowsupport.cpp index 87b2eb6d2e..4a41fecb30 100644 --- a/src/plugins/coreplugin/windowsupport.cpp +++ b/src/plugins/coreplugin/windowsupport.cpp @@ -116,6 +116,11 @@ bool WindowSupport::eventFilter(QObject *obj, QEvent *event) updateFullScreenAction(); } else if (event->type() == QEvent::WindowActivate) { WindowList::setActiveWindow(m_window); + } else if (event->type() == QEvent::Hide) { + // minimized windows are hidden, but we still want to show them + WindowList::setWindowVisible(m_window, m_window->isMinimized()); + } else if (event->type() == QEvent::Show) { + WindowList::setWindowVisible(m_window, true); } return false; } @@ -165,6 +170,7 @@ void WindowList::addWindow(QWidget *window) Context(Constants::C_GLOBAL)); cmd->setAttribute(Command::CA_UpdateText); ActionManager::actionContainer(Constants::M_WINDOW)->addAction(cmd, Constants::G_WINDOW_LIST); + action->setVisible(window->isVisible() || window->isMinimized()); // minimized windows are hidden but should be shown QObject::connect(window, &QWidget::windowTitleChanged, [window]() { WindowList::updateTitle(window); }); if (m_dockMenu) m_dockMenu->addAction(action); @@ -215,5 +221,13 @@ void WindowList::setActiveWindow(QWidget *window) m_windowActions.at(i)->setChecked(m_windows.at(i) == window); } +void WindowList::setWindowVisible(QWidget *window, bool visible) +{ + int index = m_windows.indexOf(window); + QTC_ASSERT(index >= 0, return); + QTC_ASSERT(index < m_windowActions.size(), return); + m_windowActions.at(index)->setVisible(visible); +} + } // Internal } // Core diff --git a/src/plugins/coreplugin/windowsupport.h b/src/plugins/coreplugin/windowsupport.h index 88e779dd28..6d842b73f9 100644 --- a/src/plugins/coreplugin/windowsupport.h +++ b/src/plugins/coreplugin/windowsupport.h @@ -50,6 +50,7 @@ public: static void addWindow(QWidget *window); static void removeWindow(QWidget *window); static void setActiveWindow(QWidget *window); + static void setWindowVisible(QWidget *window, bool visible); private: static void activateWindow(QAction *action); diff --git a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp index 419ec171cb..1a94066198 100644 --- a/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp +++ b/src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp @@ -37,6 +37,7 @@ #include "../projectexplorerconstants.h" #include <coreplugin/coreconstants.h> +#include <coreplugin/icontext.h> #include <coreplugin/icore.h> #include <coreplugin/messagemanager.h> @@ -366,6 +367,7 @@ void JsonWizardFactory::runWizard(const QString &path, QWidget *parent, const QS { JsonWizard wizard(parent); wizard.setWindowIcon(icon()); + wizard.setWindowTitle(displayName()); wizard.setValue(QStringLiteral("WizardDir"), m_wizardDir); Core::FeatureSet tmp = requiredFeatures(); @@ -434,10 +436,12 @@ void JsonWizardFactory::runWizard(const QString &path, QWidget *parent, const QS wizard.addGenerator(gen); } - if (!m_pages.isEmpty()) + if (!m_pages.isEmpty()) { + Core::ICore::registerWindow(&wizard, Core::Context("Core.NewJSONWizard")); wizard.exec(); - else + } else { wizard.accept(); + } } QList<QVariant> JsonWizardFactory::objectOrList(const QVariant &data, QString *errorMessage) diff --git a/src/plugins/vcsbase/basecheckoutwizardfactory.cpp b/src/plugins/vcsbase/basecheckoutwizardfactory.cpp index 88c46edc24..aa9d600d72 100644 --- a/src/plugins/vcsbase/basecheckoutwizardfactory.cpp +++ b/src/plugins/vcsbase/basecheckoutwizardfactory.cpp @@ -31,6 +31,8 @@ #include "basecheckoutwizardfactory.h" #include "basecheckoutwizard.h" +#include <coreplugin/icontext.h> +#include <coreplugin/icore.h> #include <coreplugin/featureprovider.h> #include <projectexplorer/projectexplorer.h> @@ -86,6 +88,7 @@ void BaseCheckoutWizardFactory::runWizard(const QString &path, QWidget *parent, { QScopedPointer<BaseCheckoutWizard> wizard(m_wizardCreator(Utils::FileName::fromString(path), parent)); wizard->setWindowTitle(displayName()); + Core::ICore::registerWindow(wizard.data(), Core::Context("New.CheckoutWizard")); checkoutPath = wizard->run(); } |