changeset 20539:b6ae0ef9327e

Display bottom Qt statusbar on figure based on "toolbar" property (bug #46025). * Figure.cc (Figure): Adjust bottom of window height (boffset) if m_statusBar is visible. Use m_statusBar->hide() to hide bottom status bar when "toolbar" property is "none". * Figure.cc (showFigureToolbar): Also show or hide m_statusBar widget based on "toolbar" property.
author Rik <rik@octave.org>
date Tue, 22 Sep 2015 09:41:13 -0700
parents afdb856e44f1
children dd327c0909b0
files libgui/graphics/Figure.cc
diffstat 1 files changed, 15 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/graphics/Figure.cc	Tue Sep 22 05:45:05 2015 -0700
+++ b/libgui/graphics/Figure.cc	Tue Sep 22 09:41:13 2015 -0700
@@ -139,9 +139,7 @@
   
   // Status bar
   m_statusBar = win->statusBar ();
-  m_statusBar->setVisible (true);
-  int boffset = m_statusBar->sizeHint ().height ();
-  
+  int boffset = 0;
 
   // Toolbar and menubar
   createFigureToolBarAndMenuBar ();
@@ -150,9 +148,16 @@
   if (fp.toolbar_is ("figure") ||
       (fp.toolbar_is ("auto") && fp.menubar_is ("figure") &&
        ! hasUiControlChildren (fp)))
-    toffset += m_figureToolBar->sizeHint ().height ();
+    {
+      toffset += m_figureToolBar->sizeHint ().height ();
+      boffset += m_statusBar->sizeHint ().height ();
+    } 
   else
-    m_figureToolBar->hide ();
+    {
+      m_figureToolBar->hide ();
+      m_statusBar->hide ();
+    }
+
   if (fp.menubar_is ("figure") || hasUiMenuChildren (fp))
     toffset += m_menuBar->sizeHint ().height () + 1;
   else
@@ -502,17 +507,19 @@
 {
   if ((! m_figureToolBar->isHidden ()) != visible)
     {
-      int dy = m_figureToolBar->sizeHint ().height ();
+      int dy1 = m_figureToolBar->sizeHint ().height ();
+      int dy2 = m_statusBar->sizeHint ().height ();
       QRect r = qWidget<QWidget> ()->geometry ();
 
       if (! visible)
-        r.adjust (0, dy, 0, 0);
+        r.adjust (0, dy1, 0, -dy2);
       else
-        r.adjust (0, -dy, 0, 0);
+        r.adjust (0, -dy1, 0, dy2);
 
       m_blockUpdates = true;
       qWidget<QWidget> ()->setGeometry (r);
       m_figureToolBar->setVisible (visible);
+      m_statusBar->setVisible (visible);
       m_blockUpdates = false;
 
       updateBoundingBox (false);