summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2015-01-05 11:12:39 +0100
committerEike Ziller <eike.ziller@theqtcompany.com>2015-01-05 16:04:52 +0100
commit225e599c94333484ba42f6365e28201546ff164a (patch)
tree31c7eb39b2326b2a3f3fd4d4e8bab792298bedce
parent98dbe9adcadd0aff01b7f8eb08f1cef97b01f001 (diff)
downloadqt-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.cpp2
-rw-r--r--src/plugins/coreplugin/dialogs/newdialog.cpp2
-rw-r--r--src/plugins/coreplugin/mainwindow.cpp2
-rw-r--r--src/plugins/coreplugin/windowsupport.cpp14
-rw-r--r--src/plugins/coreplugin/windowsupport.h1
-rw-r--r--src/plugins/projectexplorer/jsonwizard/jsonwizardfactory.cpp8
-rw-r--r--src/plugins/vcsbase/basecheckoutwizardfactory.cpp3
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();
}