diff libgui/src/history-dockwidget.cc @ 15552:bbbb89cc338f

make a floating widget behave like a normal window (bug #37190) * main-window.cc: save and recover the floating- and visible-state of each dock-widget in write_settings() and read_settings(); change window-flag to window if widget is floating at start-up * documentation-dockwidget.cc/.h, files-dockwidget.cc/.h, history-dockwodget.cc/.h, file-editor.cc/.h, terminal-dockwidget.cc/.h, workspace-view.cc/.h: implement slot for signal topLevelChanged where window-flag is changed from widget into window when widget is floating; change icon of all widgets to octave logo
author Torsten <ttl@justmail.de>
date Sat, 20 Oct 2012 17:43:35 +0200
parents 352349219529
children b0ad083e1958
line wrap: on
line diff
--- a/libgui/src/history-dockwidget.cc	Fri Oct 19 17:11:55 2012 -0400
+++ b/libgui/src/history-dockwidget.cc	Sat Oct 20 17:43:35 2012 +0200
@@ -61,6 +61,7 @@
   _filter_line_edit->setStatusTip (tr ("Enter text to filter the command history."));
   QVBoxLayout *vbox_layout = new QVBoxLayout ();
 
+  setWindowIcon (QIcon(":/actions/icons/logo.png"));
   setWindowTitle (tr ("Command History"));
   setWidget (new QWidget ());
 
@@ -85,6 +86,9 @@
            this,
            SLOT (handle_visibility_changed (bool)));
 
+  // topLevelChanged is emitted when floating property changes (floating = true)
+  connect (this, SIGNAL (topLevelChanged(bool)), this, SLOT(top_level_changed(bool)));
+
   _update_history_model_timer.setInterval (200);
   _update_history_model_timer.setSingleShot (true);
 
@@ -163,6 +167,17 @@
   QDockWidget::closeEvent (e);
 }
 
+// slot for signal that is emitted when floating property changes
+void
+history_dock_widget::top_level_changed (bool floating)
+{
+  if(floating)
+    {
+      setWindowFlags(Qt::Window);  // make a window from the widget when floating
+      show();                      // make it visible again since setWindowFlags hides it
+    }
+}
+
 void
 history_dock_widget::update_history_callback (void)
 {