Fix MainWindow size when there is no saved size

The very first time a user runs Konsole, where is no konsolerc file in $HOME,
there is no saved size to restore, instead use the sizeHint(), which ideally
will be the size set in the default profile (based on lines/columns setting).

CCBUG: 437791
wilder
Ahmad Samir 5 years ago committed by Kurt Hindenburg
parent 090356661c
commit bb7dd804b2
  1. 21
      src/MainWindow.cpp
  2. 1
      src/MainWindow.h

@ -71,13 +71,22 @@ MainWindow::MainWindow() :
_menuBarInitialVisibility(true),
_menuBarInitialVisibilityApplied(false)
{
if (!KonsoleSettings::saveGeometryOnExit()) {
KSharedConfigPtr konsoleConfig = KSharedConfig::openConfig(QStringLiteral("konsolerc"));
KConfigGroup cg = konsoleConfig->group(QStringLiteral("MainWindow"));
const bool isGroup = cg.exists();
if (isGroup) {
const QString stateConfig = cg.readEntry(QStringLiteral("State"));
// If "stateConfig" is empty then this is the very first run,
// i.e. no konsolerc file in $HOME
_isSavedUiState = !stateConfig.isEmpty();
}
if (isGroup && !KonsoleSettings::saveGeometryOnExit()) {
// If we are not using the global Konsole save geometry on exit,
// remove all geometry data from [MainWindow] in Konsolerc, so KWin will
// manage it directly
KSharedConfigPtr konsoleConfig = KSharedConfig::openConfig(QStringLiteral("konsolerc"));
KConfigGroup group = konsoleConfig->group("MainWindow");
QMap<QString, QString> configEntries = group.entryMap();
QMap<QString, QString> configEntries = cg.entryMap();
QMapIterator<QString, QString> i(configEntries);
while (i.hasNext()) {
@ -94,7 +103,7 @@ MainWindow::MainWindow() :
|| i.key().contains(QLatin1String(" YPosition"))
#endif
) {
group.deleteEntry(i.key());
cg.deleteEntry(i.key());
}
}
}
@ -951,7 +960,7 @@ void MainWindow::showEvent(QShowEvent *event)
_menuBarInitialVisibilityApplied = true;
}
if (!KonsoleSettings::saveGeometryOnExit()) {
if (!_isSavedUiState || !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

@ -200,6 +200,7 @@ private:
bool _menuBarInitialVisibility;
bool _menuBarInitialVisibilityApplied;
bool _blurEnabled = false;
bool _isSavedUiState = false;
};
}

Loading…
Cancel
Save