Mercurial > octave
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"));