/***************************************************************************
- * 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"));
*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);
#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));
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())