X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatmonitorview.cpp;h=d3ad1c82af38e05642aa94cfa65cfea4de7d5cf2;hp=2c73e35fc4668bc314734b162f8c31c5615bdd1f;hb=HEAD;hpb=04315f46a16fc3627218377071e008b6b9744992 diff --git a/src/qtui/chatmonitorview.cpp b/src/qtui/chatmonitorview.cpp index 2c73e35f..3b32efb8 100644 --- a/src/qtui/chatmonitorview.cpp +++ b/src/qtui/chatmonitorview.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2013 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 * @@ -21,67 +21,73 @@ #include "chatmonitorview.h" #include -#include #include +#include -#include "chatmonitorfilter.h" -#include "chatlinemodel.h" +#include "action.h" +#include "buffermodel.h" #include "chatitem.h" +#include "chatlinemodel.h" +#include "chatmonitorfilter.h" #include "chatscene.h" #include "client.h" -#include "iconloader.h" -#include "networkmodel.h" -#include "buffermodel.h" +#include "clientignorelistmanager.h" +#include "icon.h" #include "messagemodel.h" +#include "networkmodel.h" #include "qtuisettings.h" #include "settingspagedlg.h" + #include "settingspages/chatmonitorsettingspage.h" -#include "clientignorelistmanager.h" -ChatMonitorView::ChatMonitorView(ChatMonitorFilter *filter, QWidget *parent) - : ChatView(filter, parent), - _filter(filter) +ChatMonitorView::ChatMonitorView(ChatMonitorFilter* filter, QWidget* parent) + : ChatView(filter, parent) + , _filter(filter) { scene()->setSenderCutoffMode(ChatScene::CutoffLeft); - connect(Client::instance(), SIGNAL(coreConnectionStateChanged(bool)), this, SLOT(coreConnectionStateChanged(bool))); + // The normal message prefixes get replaced by the network and buffer name. Re-add brackets for + // all message types. + scene()->setAlwaysBracketSender(true); + connect(Client::instance(), &Client::coreConnectionStateChanged, this, &ChatMonitorView::coreConnectionStateChanged); } - -void ChatMonitorView::addActionsToMenu(QMenu *menu, const QPointF &pos) +void ChatMonitorView::addActionsToMenu(QMenu* menu, const QPointF& pos) { ChatView::addActionsToMenu(menu, pos); menu->addSeparator(); - QAction *showOwnNicksAction = menu->addAction(tr("Show Own Messages"), _filter, SLOT(setShowOwnMessages(bool))); + auto showOwnNicksAction = new Action(tr("Show Own Messages"), menu, _filter, &ChatMonitorFilter::setShowOwnMessages); showOwnNicksAction->setCheckable(true); showOwnNicksAction->setChecked(_filter->showOwnMessages()); + menu->addAction(showOwnNicksAction); if (scene()->columnByScenePos(pos) == ChatLineModel::SenderColumn) { menu->addSeparator(); - QAction *showNetworkAction = menu->addAction(tr("Show Network Name"), this, SLOT(showFieldsChanged(bool))); + auto showNetworkAction = new Action(tr("Show Network Name"), menu, this, &ChatMonitorView::showFieldsChanged); showNetworkAction->setCheckable(true); showNetworkAction->setChecked(_filter->showFields() & ChatMonitorFilter::NetworkField); showNetworkAction->setData(ChatMonitorFilter::NetworkField); + menu->addAction(showNetworkAction); - QAction *showBufferAction = menu->addAction(tr("Show Buffer Name"), this, SLOT(showFieldsChanged(bool))); + auto showBufferAction = new Action(tr("Show Buffer Name"), menu, this, &ChatMonitorView::showFieldsChanged); showBufferAction->setCheckable(true); showBufferAction->setChecked(_filter->showFields() & ChatMonitorFilter::BufferField); showBufferAction->setData(ChatMonitorFilter::BufferField); + menu->addAction(showBufferAction); } menu->addSeparator(); - menu->addAction(SmallIcon("configure"), tr("Configure..."), this, SLOT(showSettingsPage())); + menu->addAction(new Action(icon::get("configure"), tr("Configure..."), menu, this, &ChatMonitorView::showSettingsPage)); } - -void ChatMonitorView::mouseDoubleClickEvent(QMouseEvent *event) +void ChatMonitorView::mouseDoubleClickEvent(QMouseEvent* event) { if (scene()->columnByScenePos(event->pos()) != ChatLineModel::SenderColumn) { ChatView::mouseDoubleClickEvent(event); return; } - ChatItem *chatItem = scene()->chatItemAt(mapToScene(event->pos())); + ChatItem* chatItem = scene()->chatItemAt(mapToScene(event->pos())); if (!chatItem) { event->ignore(); return; @@ -95,10 +101,9 @@ void ChatMonitorView::mouseDoubleClickEvent(QMouseEvent *event) Client::bufferModel()->switchToBuffer(bufferId); } - void ChatMonitorView::showFieldsChanged(bool checked) { - QAction *showAction = qobject_cast(sender()); + auto* showAction = qobject_cast(sender()); if (!showAction) return; @@ -108,18 +113,16 @@ void ChatMonitorView::showFieldsChanged(bool checked) _filter->removeShowField(showAction->data().toInt()); } - void ChatMonitorView::showSettingsPage() { SettingsPageDlg dlg(new ChatMonitorSettingsPage(), this); dlg.exec(); } - // connect only after client is synced to core since ChatMonitorView is created before // the ignoreListManager void ChatMonitorView::coreConnectionStateChanged(bool connected) { if (connected) - connect(Client::ignoreListManager(), SIGNAL(ignoreListChanged()), _filter, SLOT(invalidateFilter())); + connect(Client::ignoreListManager(), &ClientIgnoreListManager::ignoreListChanged, _filter, &ChatMonitorFilter::invalidateFilter); }