Set parent for new windows dialog
[quassel.git] / src / qtui / mainwin.cpp
index 019216f..9678652 100644 (file)
@@ -923,12 +923,12 @@ void MainWin::showNotificationsDlg()
 
 void MainWin::onConfigureNetworksTriggered()
 {
-    SettingsPageDlg{new NetworksSettingsPage{}}.exec();
+    SettingsPageDlg{new NetworksSettingsPage{}, this}.exec();
 }
 
 void MainWin::onConfigureViewsTriggered()
 {
-    SettingsPageDlg{new BufferViewSettingsPage{}}.exec();
+    SettingsPageDlg{new BufferViewSettingsPage{}, this}.exec();
 }
 
 void MainWin::onLockLayoutToggled(bool lock)
@@ -1384,8 +1384,14 @@ void MainWin::handleNoSslInCore(bool* accepted)
 void MainWin::handleSslErrors(const QSslSocket* socket, bool* accepted, bool* permanently)
 {
     QString errorString = "<ul>";
-    foreach (const QSslError error, socket->sslErrors())
+
+#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
+    for (const auto& error : socket->sslErrors()) {
+#else
+    for (const auto& error : socket->sslHandshakeErrors()) {
+#endif
         errorString += QString("<li>%1</li>").arg(error.errorString());
+    }
     errorString += "</ul>";
 
     QMessageBox box(QMessageBox::Warning,
@@ -1513,7 +1519,7 @@ void MainWin::awayLogDestroyed()
 
 void MainWin::showSettingsDlg()
 {
-    auto dlg = new SettingsDlg();
+    auto dlg = new SettingsDlg(this);
 
     // Category: Interface
     dlg->registerSettingsPage(new AppearanceSettingsPage(dlg));
@@ -1527,8 +1533,15 @@ void MainWin::showSettingsDlg()
 #ifdef HAVE_SONNET
     dlg->registerSettingsPage(new SonnetSettingsPage(dlg));
 #endif
-    dlg->registerSettingsPage(new HighlightSettingsPage(dlg));
-    dlg->registerSettingsPage(new CoreHighlightSettingsPage(dlg));
+    auto coreHighlightsPage = new CoreHighlightSettingsPage(dlg);
+    auto localHighlightsPage = new HighlightSettingsPage(dlg);
+    // Let CoreHighlightSettingsPage reload HighlightSettingsPage after doing an import with
+    // cleaning up.  Otherwise, HighlightSettingsPage won't show that the local rules were deleted.
+    connect(coreHighlightsPage, &CoreHighlightSettingsPage::localHighlightsChanged,
+            localHighlightsPage, &HighlightSettingsPage::load);
+    // Put core-side highlights before local/legacy highlights
+    dlg->registerSettingsPage(coreHighlightsPage);
+    dlg->registerSettingsPage(localHighlightsPage);
     dlg->registerSettingsPage(new NotificationsSettingsPage(dlg));
     dlg->registerSettingsPage(new BacklogSettingsPage(dlg));
 
@@ -1551,7 +1564,7 @@ void MainWin::showSettingsDlg()
 
 void MainWin::showAboutDlg()
 {
-    AboutDlg{}.exec();
+    AboutDlg{this}.exec();
 }
 
 void MainWin::showShortcutsDlg()
@@ -1563,7 +1576,7 @@ void MainWin::showShortcutsDlg()
     }
     dlg.configure(true);
 #else
-    SettingsPageDlg{new ShortcutsSettingsPage{QtUi::actionCollections()}}.exec();
+    SettingsPageDlg{new ShortcutsSettingsPage{QtUi::actionCollections()}, this}.exec();
 #endif
 }