Detect QMainWindow-separator as passive interactor in Qt Designer.
authorFriedemann Kleint <Friedemann.Kleint@digia.com>
Fri, 23 Nov 2012 09:04:00 +0000 (10:04 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 23 Nov 2012 12:56:27 +0000 (13:56 +0100)
Ensure that dock widgets in Qt Creator can be resized.

Task-number: QTCREATORBUG-8284
Change-Id: If6aa55b2dde8fce53e1527db678f518b3912907b
Reviewed-by: Jarek Kobus <jaroslaw.kobus@digia.com>
src/designer/src/lib/shared/widgetfactory.cpp

index d8bf16a..dd03e2a 100644 (file)
@@ -802,6 +802,7 @@ static bool isTabBarInteractor(const QTabBar *tabBar)
 bool WidgetFactory::isPassiveInteractor(QWidget *widget)
 {
     static const QString qtPassive = QStringLiteral("__qt__passive_");
+    static const QString qtMainWindowSplitter = QStringLiteral("qt_qmainwindow_extended_splitter");
     if (m_lastPassiveInteractor != 0 && (QWidget*)(*m_lastPassiveInteractor) == widget)
         return m_lastWasAPassiveInteractor;
 
@@ -842,8 +843,11 @@ bool WidgetFactory::isPassiveInteractor(QWidget *widget)
         return (m_lastWasAPassiveInteractor = true);
     else if (qstrcmp(widget->metaObject()->className(), "QWorkspaceTitleBar") == 0)
         return (m_lastWasAPassiveInteractor = true);
-    else if (widget->objectName().startsWith(qtPassive))
-        return (m_lastWasAPassiveInteractor = true);
+    const QString name = widget->objectName();
+    if (name.startsWith(qtPassive) || name == qtMainWindowSplitter) {
+        m_lastWasAPassiveInteractor = true;
+        return m_lastWasAPassiveInteractor;
+    }
     return m_lastWasAPassiveInteractor;
 }