/***************************************************************************
- * Copyright (C) 2005-2019 by the Quassel Project *
+ * Copyright (C) 2005-2020 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
#include "resourcetreedlg.h"
#include "settingsdlg.h"
#include "settingspagedlg.h"
+#include "sslinfodlg.h"
#include "statusnotifieritem.h"
#include "toolbaractionprovider.h"
#include "topicwidget.h"
# include "snorenotificationbackend.h"
#endif
-#ifdef HAVE_SSL
-# include "sslinfodlg.h"
-#endif
-
#ifdef HAVE_NOTIFICATION_CENTER
# include "osxnotificationbackend.h"
#endif
# include "dockmanagernotificationbackend.h"
#endif
-#include <settingspages/corehighlightsettingspage.h>
-
#include "settingspages/aliasessettingspage.h"
#include "settingspages/appearancesettingspage.h"
#include "settingspages/backlogsettingspage.h"
#include "settingspages/connectionsettingspage.h"
#include "settingspages/coreaccountsettingspage.h"
#include "settingspages/coreconnectionsettingspage.h"
+#include "settingspages/corehighlightsettingspage.h"
#include "settingspages/dccsettingspage.h"
#include "settingspages/highlightsettingspage.h"
#include "settingspages/identitiessettingspage.h"
connect(Client::coreConnection(), &CoreConnection::userAuthenticationRequired, this, &MainWin::userAuthenticationRequired);
connect(Client::coreConnection(), &CoreConnection::handleNoSslInClient, this, &MainWin::handleNoSslInClient);
connect(Client::coreConnection(), &CoreConnection::handleNoSslInCore, this, &MainWin::handleNoSslInCore);
-#ifdef HAVE_SSL
connect(Client::coreConnection(), &CoreConnection::handleSslErrors, this, &MainWin::handleSslErrors);
-#endif
// Setup Dock Areas
setDockNestingEnabled(true);
coll,
this,
&MainWin::onFormatUnderlineTriggered,
- QKeySequence::Underline)}});
+ QKeySequence::Underline)},
+ {"FormatStrikethrough",
+ new Action(icon::get("format-text-strikethrough"),
+ tr("Toggle strikethrough"),
+ coll,
+ this,
+ &MainWin::onFormatStrikethroughTriggered,
+ QKeySequence(Qt::CTRL + Qt::SHIFT + Qt::Key_S))}});
// Navigation
coll = QtUi::actionCollection("Navigation", tr("Navigation"));
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)
*accepted = (box.exec() == QMessageBox::Ignore);
}
-#ifdef HAVE_SSL
-
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,
}
}
-#endif /* HAVE_SSL */
-
void MainWin::handleCoreConnectionError(const QString& error)
{
QMessageBox::critical(this, tr("Core Connection Error"), error, QMessageBox::Ok);
void MainWin::showSettingsDlg()
{
- auto dlg = new SettingsDlg();
+ auto dlg = new SettingsDlg(this);
// Category: Interface
dlg->registerSettingsPage(new AppearanceSettingsPage(dlg));
#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));
void MainWin::showAboutDlg()
{
- AboutDlg{}.exec();
+ AboutDlg{this}.exec();
}
void MainWin::showShortcutsDlg()
}
dlg.configure(true);
#else
- SettingsPageDlg{new ShortcutsSettingsPage{QtUi::actionCollections()}}.exec();
+ SettingsPageDlg{new ShortcutsSettingsPage{QtUi::actionCollections()}, this}.exec();
#endif
}
const Network* net = Client::network(id);
auto* act = new QAction(net->networkName(), this);
act->setObjectName(QString("NetworkAction-%1").arg(id.toInt()));
- act->setData(QVariant::fromValue<NetworkId>(id));
+ act->setData(QVariant::fromValue(id));
connect(net, &SyncableObject::updatedRemotely, this, &MainWin::clientNetworkUpdated);
connect(act, &QAction::triggered, this, &MainWin::connectOrDisconnectFromNet);
_inputWidget->toggleFormatUnderline();
}
+void MainWin::onFormatStrikethroughTriggered()
+{
+ if (!_inputWidget)
+ return;
+
+ _inputWidget->toggleFormatStrikethrough();
+}
+
+
void MainWin::onJumpHotBufferTriggered()
{
if (!_bufferHotList->rowCount())