fix: start page always closes on document open (#192)
Some checks failed
Build and Test / build (pull_request) Has been cancelled

Remove the closeStart preference check so the start page MDI tab
always closes when a document is opened or created. Re-enable
QListView updates before closing to prevent Qt hang during widget
destruction.

Add hideEvent override as a safety net to re-enable disabled
QListView updates whenever the start page is hidden.
This commit is contained in:
forbes
2026-02-14 12:42:17 -06:00
parent 531526e70d
commit 444aaac1ee
2 changed files with 13 additions and 6 deletions

View File

@@ -35,6 +35,7 @@
#include <QTimer>
#include <QWidget>
#include <QStackedWidget>
#include <QHideEvent>
#include <QShowEvent>
#include "StartView.h"
@@ -383,12 +384,11 @@ void StartView::postStart(PostStartBehavior behavior)
Gui::Application::Instance->activateWorkbench(wb.c_str());
}
}
if (auto closeStart = hGrp->GetBool("closeStart", false)) {
for (QWidget* w = this; w != nullptr; w = w->parentWidget()) {
if (auto mdiSub = qobject_cast<QMdiSubWindow*>(w)) {
mdiSub->close();
return;
}
setListViewUpdatesEnabled(true);
for (QWidget* w = this; w != nullptr; w = w->parentWidget()) {
if (auto mdiSub = qobject_cast<QMdiSubWindow*>(w)) {
mdiSub->close();
return;
}
}
}
@@ -478,6 +478,12 @@ void StartView::showEvent(QShowEvent* event)
Gui::MDIView::showEvent(event);
}
void StartView::hideEvent(QHideEvent* event)
{
setListViewUpdatesEnabled(true);
Gui::MDIView::hideEvent(event);
}
void StartView::onMdiSubWindowActivated(QMdiSubWindow* subWindow)
{
// check if start view is activated subwindow if yes, then enable updates

View File

@@ -84,6 +84,7 @@ public:
protected:
void changeEvent(QEvent* e) override;
void showEvent(QShowEvent* event) override;
void hideEvent(QHideEvent* event) override;
void configureNewFileButtons(QLayout* layout) const;
static void configureFileCardWidget(QListView* fileCardWidget);