X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=acfe79fa4aa82752ed858673652956d003a2c320;hp=aad7c97867f2ff61a4af00ae59b697b887d21bed;hb=183d6375f0baf6b5dac1a470f59a748f48dde711;hpb=c1cf157116de7fc3da96203aa6f03c38c7ebb650 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index aad7c978..acfe79fa 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 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 * @@ -91,6 +91,7 @@ #include "resourcetreedlg.h" #include "settingsdlg.h" #include "settingspagedlg.h" +#include "sslinfodlg.h" #include "statusnotifieritem.h" #include "toolbaractionprovider.h" #include "topicwidget.h" @@ -112,10 +113,6 @@ # include "snorenotificationbackend.h" #endif -#ifdef HAVE_SSL -# include "sslinfodlg.h" -#endif - #ifdef HAVE_NOTIFICATION_CENTER # include "osxnotificationbackend.h" #endif @@ -124,8 +121,6 @@ # include "dockmanagernotificationbackend.h" #endif -#include - #include "settingspages/aliasessettingspage.h" #include "settingspages/appearancesettingspage.h" #include "settingspages/backlogsettingspage.h" @@ -136,6 +131,7 @@ #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" @@ -202,9 +198,7 @@ void MainWin::init() 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); @@ -413,7 +407,7 @@ void MainWin::setupActions() // Help coll->addAction("AboutQuassel", new Action(icon::get("quassel"), tr("&About Quassel"), coll, this, &MainWin::showAboutDlg)) ->setMenuRole(QAction::AboutRole); - coll->addAction("AboutQt", new Action(QIcon(":/pics/qt-logo.png"), tr("About &Qt"), coll, qApp, &QApplication::aboutQt)) + coll->addAction("AboutQt", new Action(QIcon(":/pics/qt-logo-32.png"), tr("About &Qt"), coll, qApp, &QApplication::aboutQt)) ->setMenuRole(QAction::AboutQtRole); coll->addActions( {{"DebugNetworkModel", @@ -472,7 +466,14 @@ void MainWin::setupActions() 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")); @@ -1195,7 +1196,8 @@ void MainWin::saveMainToolBarStatus(bool enabled) void MainWin::doAutoConnect() { - if (!Client::coreConnection()->connectToCore()) { + int accountId = Quassel::optionValue("account").toInt(); + if (!Client::coreConnection()->connectToCore(accountId)) { // No autoconnect selected (or no accounts) showCoreConnectionDlg(); } @@ -1274,13 +1276,13 @@ void MainWin::loadLayout() QtUiSettings s; int accountId = Client::currentCoreAccount().accountId().toInt(); QByteArray state = s.value(QString("MainWinState-%1").arg(accountId)).toByteArray(); + _nickListWidget->setVisible(true); if (state.isEmpty()) { foreach (BufferViewDock* view, _bufferViews) view->show(); _layoutLoaded = true; return; } - _nickListWidget->setVisible(true); restoreState(state, accountId); int bufferViewId = s.value(QString("ActiveBufferView-%1").arg(accountId), -1).toInt(); if (bufferViewId >= 0) @@ -1379,13 +1381,17 @@ void MainWin::handleNoSslInCore(bool* accepted) *accepted = (box.exec() == QMessageBox::Ignore); } -#ifdef HAVE_SSL - void MainWin::handleSslErrors(const QSslSocket* socket, bool* accepted, bool* permanently) { QString errorString = ""; QMessageBox box(QMessageBox::Warning, @@ -1419,8 +1425,6 @@ void MainWin::handleSslErrors(const QSslSocket* socket, bool* accepted, bool* pe } } -#endif /* HAVE_SSL */ - void MainWin::handleCoreConnectionError(const QString& error) { QMessageBox::critical(this, tr("Core Connection Error"), error, QMessageBox::Ok); @@ -1529,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)); @@ -1724,7 +1735,7 @@ void MainWin::clientNetworkCreated(NetworkId id) 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(id)); + act->setData(QVariant::fromValue(id)); connect(net, &SyncableObject::updatedRemotely, this, &MainWin::clientNetworkUpdated); connect(act, &QAction::triggered, this, &MainWin::connectOrDisconnectFromNet); @@ -1843,6 +1854,15 @@ void MainWin::onFormatUnderlineTriggered() _inputWidget->toggleFormatUnderline(); } +void MainWin::onFormatStrikethroughTriggered() +{ + if (!_inputWidget) + return; + + _inputWidget->toggleFormatStrikethrough(); +} + + void MainWin::onJumpHotBufferTriggered() { if (!_bufferHotList->rowCount())