Commit fb7f838f authored by Ahmad Samir's avatar Ahmad Samir
Browse files

Fix KXmlGUI toolbars; and Konsole MainWindow size

Call setupGUI(), which will call createGUI (since we set the
KXmlGuiWindow::Create flag), omit the StatusBar flag since we don't have a
statusbar and don't want the "Show StatusBar" menu action.

TabbedViewContainer::sizeHint() calculates an optimum size for itself,
including the sizes of its child widgets; added in efb621d0 by
Mariusz Glebocki; following the code:
MainWindow creates a ViewManager
ViewManager creates a TabbedViewContainer and then a TerminalDisplay

which means that the first time TabbedViewContainer::sizeHint() is called
the TerminalDisplay widget size is 0, then TabbedViewContainer::sizeHint()
would return 0.

Which is why calling resize() in MainWindow was delayed to the showEvent(),
(and even delayed more by a QTimer::singleShot() call in Application),
at which point all the child widgets have been created and
MainWindow::sizeHint() (which logically takes into account the sizeHint()
of its child widgets) would return a sensible size.

CCBUG: 430036
CCBUG: 439339
BUG: 436471


(cherry picked from commit 09035666)
parent f24dd6ac
......@@ -131,8 +131,10 @@ MainWindow::MainWindow() :
// in terminal applications
KAcceleratorManager::setNoAccel(menuBar());
// create menus
createGUI();
constexpr KXmlGuiWindow::StandardWindowOptions guiOpts = ToolBar | Keys | Save | Create;
const QString xmlFile = componentName() + QLatin1String("ui.rc"); // Typically "konsoleui.rc"
// The "Create" flag will make it call createGUI()
setupGUI(guiOpts, xmlFile);
// remember the original menu accelerators for later use
rememberMenuAccelerators();
......@@ -945,9 +947,14 @@ void MainWindow::showEvent(QShowEvent *event)
menuBar()->setVisible(_menuBarInitialVisibility);
_toggleMenuBarAction->setChecked(_menuBarInitialVisibility);
_menuBarInitialVisibilityApplied = true;
if (!KonsoleSettings::saveGeometryOnExit()) {
resize(sizeHint());
}
}
if (!KonsoleSettings::saveGeometryOnExit()) {
// Delay resizing to here, so that the other parts of the UI
// (ViewManager, TabbedViewContainer, TerminalDisplay ... etc)
// have been created and TabbedViewContainer::sizeHint() returns
// a usuable size.
resize(sizeHint());
}
// Call parent method
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment