diff libgui/src/octave-dock-widget.cc @ 17090:1d544ac39369

show correct undock-button of widgets when window layout is resetted * octave_dock_widget.cc(make_widget): optional parameter indicating if widget has to be docked to the main window or just reparented (default true) * octave_dock_widget.h: optional parameter for make_widget, default true * main_window.cc(set_window_layout): call make_widget (only for reparenting) when widget is should not be floating but has no parent
author Torsten <ttl@justmail.de>
date Fri, 26 Jul 2013 06:53:17 +0200
parents eb6fb224bda5
children 65544374c1cf
line wrap: on
line diff
--- a/libgui/src/octave-dock-widget.cc	Fri Jul 26 00:38:56 2013 -0400
+++ b/libgui/src/octave-dock-widget.cc	Fri Jul 26 06:53:17 2013 +0200
@@ -154,7 +154,7 @@
 
 // dock the widget
 void
-octave_dock_widget::make_widget ()
+octave_dock_widget::make_widget (bool dock)
 {
   QSettings *settings = resource_manager::get_settings ();
 
@@ -163,14 +163,18 @@
                       saveGeometry ());
   settings->sync ();
 
-  // add widget to last saved docking area
-  int area = settings->value ("DockWidgets/" + objectName () + "_dock_area",
-                               Qt::TopDockWidgetArea).toInt ();
-  _parent->addDockWidget (static_cast<Qt::DockWidgetArea> (area), this);
+  if (dock)
+    { // add widget to last saved docking area (dock=true is default)
+      int area = settings->value ("DockWidgets/" + objectName () + "_dock_area",
+                                   Qt::TopDockWidgetArea).toInt ();
+      _parent->addDockWidget (static_cast<Qt::DockWidgetArea> (area), this);
 
-  // FIXME: restoreGeometry is ignored for docked widgets and its child widget
-  // restoreGeometry (settings->value
-  //        ("DockWidgets/" + objectName ()).toByteArray ());
+      // FIXME: restoreGeometry is ignored for docked widgets and its child widget
+      // restoreGeometry (settings->value
+      //        ("DockWidgets/" + objectName ()).toByteArray ());
+    }
+  else  // only reparent, no docking
+    setParent (_parent);
 
   // adjust the (un)dock icon
   _dock_action->setIcon (QIcon (":/actions/icons/widget-undock.png"));