diff --git a/src/plugins/welcome/welcome.pro b/src/plugins/welcome/welcome.pro index 2305e92300055fbd0be3a26b2f0895073f8ddcdf..c99ae8d0114015abdf372585557b7ba29921754e 100644 --- a/src/plugins/welcome/welcome.pro +++ b/src/plugins/welcome/welcome.pro @@ -1,5 +1,11 @@ + QT += quick +!isEmpty(USE_QUICK_WIDGET) { + QT += quickwidgets + DEFINES += USE_QUICK_WIDGET +} + include(../../qtcreatorplugin.pri) HEADERS += welcomeplugin.h diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp index 283ab02b763866062dd9f570048370e6f5e56cbb..11d3e2a411bf3a891772efd8fc0b6ceb8a97a7c9 100644 --- a/src/plugins/welcome/welcomeplugin.cpp +++ b/src/plugins/welcome/welcomeplugin.cpp @@ -47,7 +47,13 @@ #include <QDir> -#include <QtQuick/QQuickView> +#ifdef USE_QUICK_WIDGET + #include <QtQuickWidgets/QQuickWidget> + typedef QQuickWidget QuickContainer; +#else + #include <QtQuick/QQuickView> + typedef QQuickView QuickContainer; +#endif #include <QtQml/QQmlContext> #include <QtQml/QQmlEngine> @@ -104,7 +110,7 @@ private: void facilitateQml(QQmlEngine *engine); QWidget *m_modeWidget; - QQuickView *m_welcomePage; + QuickContainer *m_welcomePage; QList<QObject*> m_pluginList; int m_activePlugin; }; @@ -124,46 +130,40 @@ WelcomeMode::WelcomeMode() : setContextHelpId(QLatin1String("Qt Creator Manual")); setContext(Core::Context(Core::Constants::C_WELCOME_MODE)); - m_welcomePage = new QQuickView; -#if QT_VERSION >= 0x050300 - connect(m_welcomePage, SIGNAL(sceneGraphError(QQuickWindow::SceneGraphError,QString)), - this, SLOT(sceneGraphError(QQuickWindow::SceneGraphError,QString))); -#endif // Qt 5.3 - m_welcomePage->setObjectName(QLatin1String("WelcomePage")); - m_welcomePage->setResizeMode(QQuickView::SizeRootObjectToView); - -// filter to forward dragEnter events -// m_welcomePage->installEventFilter(this); -// m_welcomePage->viewport()->installEventFilter(this); - m_modeWidget = new QWidget; m_modeWidget->setObjectName(QLatin1String("WelcomePageModeWidget")); - QVBoxLayout *layout = new QVBoxLayout; + QVBoxLayout *layout = new QVBoxLayout(m_modeWidget); layout->setMargin(0); layout->setSpacing(0); + m_welcomePage = new QuickContainer(); + m_welcomePage->setResizeMode(QuickContainer::SizeRootObjectToView); + + m_welcomePage->setObjectName(QLatin1String("WelcomePage")); + +#if QT_VERSION >= 0x050300 + connect(m_welcomePage, SIGNAL(sceneGraphError(QQuickWindow::SceneGraphError,QString)), + this, SLOT(sceneGraphError(QQuickWindow::SceneGraphError,QString))); +#endif // Qt 5.3 + Utils::StyledBar* styledBar = new Utils::StyledBar(m_modeWidget); styledBar->setObjectName(QLatin1String("WelcomePageStyledBar")); layout->addWidget(styledBar); +#ifdef USE_QUICK_WIDGET + m_welcomePage->setParent(m_modeWidget); + layout->addWidget(m_welcomePage); +#else QWidget *container = QWidget::createWindowContainer(m_welcomePage, m_modeWidget); m_modeWidget->setLayout(layout); layout->addWidget(container); +#endif // USE_QUICK_WIDGET connect(PluginManager::instance(), SIGNAL(objectAdded(QObject*)), SLOT(welcomePluginAdded(QObject*))); setWidget(m_modeWidget); } -//bool WelcomeMode::eventFilter(QObject *, QEvent *e) -//{ -// if (e->type() == QEvent::DragEnter) { -// e->ignore(); -// return true; -// } -// return false; -//} - WelcomeMode::~WelcomeMode() { QSettings *settings = Core::ICore::settings();