diff --git a/src/Gui/CommandWindow.cpp b/src/Gui/CommandWindow.cpp index f35a2dce24..7411359993 100644 --- a/src/Gui/CommandWindow.cpp +++ b/src/Gui/CommandWindow.cpp @@ -358,7 +358,7 @@ Action * StdCmdToolBarMenu::createAction(void) // Std_ViewStatusBar //=========================================================================== -DEF_STD_CMD_C(StdCmdStatusBar); +DEF_STD_CMD_AC(StdCmdStatusBar); StdCmdStatusBar::StdCmdStatusBar() : Command("Std_ViewStatusBar") @@ -385,6 +385,19 @@ void StdCmdStatusBar::activated(int iMsg) getMainWindow()->statusBar()->setShown(iMsg != 0); } +bool StdCmdStatusBar::isActive() +{ + static bool checked = false; + if (!checked) { + Action* act = this->getAction(); + if (act) { + act->setChecked(getMainWindow()->statusBar()->isVisible()); + checked = true; + } + } + return true; +} + //=========================================================================== // Std_WindowsMenu //=========================================================================== diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index dcb916ce4c..09f13d19b3 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -1233,6 +1233,8 @@ void MainWindow::loadWindowSettings() bool max = config.value(QString::fromAscii("Maximized"), false).toBool(); max ? showMaximized() : show(); + + statusBar()->setVisible(config.value(QString::fromAscii("StatusBar"), true).toBool()); config.endGroup(); config.endGroup(); @@ -1256,6 +1258,7 @@ void MainWindow::saveWindowSettings() config.setValue(QString::fromAscii("Position"), this->pos()); config.setValue(QString::fromAscii("Maximized"), this->isMaximized()); config.setValue(QString::fromAscii("MainWindowState"), this->saveState()); + config.setValue(QString::fromAscii("StatusBar"), this->statusBar()->isVisible()); config.endGroup(); config.endGroup();