X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=84246b82db7922670f71f82b00b34268877955fb;hp=019216fd9281e63b3e478f87c4ed084f4ee28bdb;hb=HEAD;hpb=de6ee9a2a3389ebf62f181b12632e58d2ffb8879 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 019216fd..84a3a849 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2020 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -809,7 +809,7 @@ void MainWin::changeActiveBufferView(int bufferViewId) void MainWin::showPasswordChangeDlg() { if (Client::isCoreFeatureEnabled(Quassel::Feature::PasswordChange)) { - PasswordChangeDlg{}.exec(); + PasswordChangeDlg{this}.exec(); } else { QMessageBox box(QMessageBox::Warning, @@ -918,17 +918,17 @@ void MainWin::hideCurrentBuffer() void MainWin::showNotificationsDlg() { - SettingsPageDlg{new NotificationsSettingsPage{}}.exec(); + SettingsPageDlg{new NotificationsSettingsPage{}, this}.exec(); } 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) @@ -1355,7 +1355,7 @@ void MainWin::setDisconnectedState() void MainWin::userAuthenticationRequired(CoreAccount* account, bool* valid, const QString& errorMessage) { Q_UNUSED(errorMessage) - CoreConnectAuthDlg dlg(account); + CoreConnectAuthDlg dlg(account, this); *valid = (dlg.exec() == QDialog::Accepted); } @@ -1384,8 +1384,14 @@ void MainWin::handleNoSslInCore(bool* accepted) void MainWin::handleSslErrors(const QSslSocket* socket, bool* accepted, bool* permanently) { QString errorString = ""; QMessageBox box(QMessageBox::Warning, @@ -1401,7 +1407,7 @@ void MainWin::handleSslErrors(const QSslSocket* socket, bool* accepted, bool* pe box.exec(); role = box.buttonRole(box.clickedButton()); if (role == QMessageBox::HelpRole) { - SslInfoDlg dlg(socket); + SslInfoDlg dlg(socket, this); dlg.exec(); } } while (role == QMessageBox::HelpRole); @@ -1426,7 +1432,7 @@ void MainWin::handleCoreConnectionError(const QString& error) void MainWin::showCoreConnectionDlg() { - CoreConnectDlg dlg; + CoreConnectDlg dlg{this}; if (dlg.exec() == QDialog::Accepted) { AccountId accId = dlg.selectedAccount(); if (accId.isValid()) @@ -1474,7 +1480,7 @@ void MainWin::showChannelList(NetworkId netId, const QString& channelFilters, bo void MainWin::showNetworkConfig(NetworkId netId) { - SettingsPageDlg dlg{new NetworksSettingsPage{}}; + SettingsPageDlg dlg{new NetworksSettingsPage{}, this}; if (netId.isValid()) qobject_cast(dlg.currentPage())->bufferList_Open(netId); dlg.exec(); @@ -1482,7 +1488,7 @@ void MainWin::showNetworkConfig(NetworkId netId) void MainWin::showIgnoreList(QString newRule) { - SettingsPageDlg dlg{new IgnoreListSettingsPage{}}; + SettingsPageDlg dlg{new IgnoreListSettingsPage{}, this}; // prepare config dialog for new rule if (!newRule.isEmpty()) qobject_cast(dlg.currentPage())->editIgnoreRule(newRule); @@ -1491,7 +1497,7 @@ void MainWin::showIgnoreList(QString newRule) void MainWin::showCoreInfoDlg() { - CoreInfoDlg{}.exec(); + CoreInfoDlg{this}.exec(); } void MainWin::showAwayLog() @@ -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 } @@ -1682,7 +1695,7 @@ void MainWin::messagesInserted(const QModelIndex& parent, int start, int end) if (hasFocus && bufId == Client::bufferModel()->currentBuffer()) continue; - // only show notifications for higlights or queries + // only show notifications for highlights or queries if (bufType != BufferInfo::QueryBuffer && !(flags & Message::Highlight)) continue;