diff --git a/src/ui/MainWindow.cpp b/src/ui/MainWindow.cpp index 00f3ec3..b7181bd 100644 --- a/src/ui/MainWindow.cpp +++ b/src/ui/MainWindow.cpp @@ -3053,6 +3053,12 @@ QList MainWindow::panelEintraege() return eintraege; } +void MainWindow::sichereProfilNachVersteckt(const QString& id) +{ + Q_UNUSED(id); + if (m_layoutProfileManager) { m_layoutProfileManager->saveActiveProfileState(); } +} + void MainWindow::setzePanelSichtbar(const QString& id, bool sichtbar) { if (!m_panelLayoutManager) { return; } @@ -3090,9 +3096,12 @@ void MainWindow::setzePanelSchwebend(const QString& id, bool schwebend) if (!panel->isVisible()) { panel->setVisible(true); } // Das ✕ am schwebenden Panel sichert das Profil -- einmal // verdrahtet, so oft es will. - connect(panel, &PanelContainerWidget::versteckt, this, [this](const QString&) { - if (m_layoutProfileManager) { m_layoutProfileManager->saveActiveProfileState(); } - }, Qt::UniqueConnection); + // Qt::UniqueConnection geht nur mit einem Member-Zeiger -- mit + // einem Lambda lehnt Qt die Verbindung ab (Warnung "unique + // connections require a pointer to member function"), und das + // ✕ sicherte seit #74 nie. Gesehen am 2026-11-05 im Longpath-Log. + connect(panel, &PanelContainerWidget::versteckt, + this, &MainWindow::sichereProfilNachVersteckt, Qt::UniqueConnection); m_panelLayoutManager->setPanelFloating(id, true); // Ein nie gezeigtes Hauptfenster hat keine ausgelegte Flaeche: // das Panel kaeme mit der Groesse 0x0 daher. Dann die Groesse diff --git a/src/ui/MainWindow.h b/src/ui/MainWindow.h index 721e776..a6334cb 100644 --- a/src/ui/MainWindow.h +++ b/src/ui/MainWindow.h @@ -149,6 +149,8 @@ class MainWindow : public QMainWindow { void restartRequested(); private slots: + // Das ✕ am schwebenden Panel sichert das Profil (siehe setzePanelSchwebend). + void sichereProfilNachVersteckt(const QString& id); void handleLogRequested(); void recheckDupeIndicator(); void openSettingsDialog(); diff --git a/tests/test_einbettung.cpp b/tests/test_einbettung.cpp index c005b82..e80e6ca 100644 --- a/tests/test_einbettung.cpp +++ b/tests/test_einbettung.cpp @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -241,6 +242,10 @@ void TestEinbettung::rahmenlosSchwebendIstEckigMitRueckweg() // wieder sichtbar hervor. void TestEinbettung::geschwisterDesOberstenFenstersUndDasKreuz() { + // 2026-11-05: die Verbindung fuer das ✕ war mit Qt::UniqueConnection + // und Lambda -- Qt lehnt das ab, das ✕ sicherte nie. Jede solche + // Warnung ist hier ein Fehler. + QTest::failOnWarning(QRegularExpression(QStringLiteral("unique connections"))); QTemporaryDir ordner; QVERIFY(ordner.isValid()); AppController controller;