]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Do not allow that panels are dragged out of the main window
authorFrank Reininghaus <frank78ac@googlemail.com>
Mon, 29 Jul 2013 21:22:02 +0000 (23:22 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Mon, 29 Jul 2013 21:22:02 +0000 (23:22 +0200)
This feature might have been useful in some cases, but it's most likely
not useful enough to justify that we accept the bugs that it causes.
Even though some of these bugs are not Dolphin's fault at all, they
cause serious problems for users in some cases.

I'm pushing this commit to master only because I prefer to not push such
behavior changes to 4.11 at this point of the release cycle.

BUG: 288629
CCBUG: 322299
CCBUG: 322812
FIXED-IN: 4.12.0
REVIEW: 111692

src/dolphindockwidget.cpp

index 0d8aea7bdf24ad7c398554042898106188a109d7..6495c8da963bef6431061bb34e0ab9e2f4bec3fe 100644 (file)
 
 #include <QStyle>
 
+namespace {
+    // Disable the 'Floatable' feature, i.e., the possibility to drag the
+    // dock widget out of the main window. This works around problems like
+    // https://bugs.kde.org/show_bug.cgi?id=288629
+    // https://bugs.kde.org/show_bug.cgi?id=322299
+    const QDockWidget::DockWidgetFeatures DefaultDockWidgetFeatures = QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable;
+}
+
  // Empty titlebar for the dock widgets when "Lock Layout" has been activated.
 class DolphinDockTitleBar : public QWidget
 {
@@ -45,6 +53,7 @@ DolphinDockWidget::DolphinDockWidget(const QString& title, QWidget* parent, Qt::
     m_locked(false),
     m_dockTitleBar(0)
 {
+    setFeatures(DefaultDockWidgetFeatures);
 }
 
 DolphinDockWidget::DolphinDockWidget(QWidget* parent, Qt::WindowFlags flags) :
@@ -52,6 +61,7 @@ DolphinDockWidget::DolphinDockWidget(QWidget* parent, Qt::WindowFlags flags) :
     m_locked(false),
     m_dockTitleBar(0)
 {
+    setFeatures(DefaultDockWidgetFeatures);
 }
 
 DolphinDockWidget::~DolphinDockWidget()
@@ -71,9 +81,7 @@ void DolphinDockWidget::setLocked(bool lock)
             setFeatures(QDockWidget::NoDockWidgetFeatures);
         } else {
             setTitleBarWidget(0);
-            setFeatures(QDockWidget::DockWidgetMovable |
-                        QDockWidget::DockWidgetFloatable |
-                        QDockWidget::DockWidgetClosable);
+            setFeatures(DefaultDockWidgetFeatures);
         }
     }
 }