X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fbufferviewoverlay.cpp;h=455f27350660b496747f3961b2bc4cd436266205;hp=20d33f852b8dcd02f74e5b3fd86c3709c4a6c47c;hb=52209badc8e769e50aa3019b63689dda0e79e9d0;hpb=158443f71d48215eea8b47b836b61afd77654b78 diff --git a/src/client/bufferviewoverlay.cpp b/src/client/bufferviewoverlay.cpp index 20d33f85..455f2735 100644 --- a/src/client/bufferviewoverlay.cpp +++ b/src/client/bufferviewoverlay.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 by the Quassel Project * + * Copyright (C) 2005-2019 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -27,14 +27,13 @@ #include "clientbacklogmanager.h" #include "clientbufferviewmanager.h" #include "networkmodel.h" +#include "util.h" const int BufferViewOverlay::_updateEventId = QEvent::registerEventType(); -BufferViewOverlay::BufferViewOverlay(QObject *parent) +BufferViewOverlay::BufferViewOverlay(QObject* parent) : QObject(parent) -{ -} - +{} void BufferViewOverlay::reset() { @@ -52,13 +51,11 @@ void BufferViewOverlay::reset() _tempRemovedBuffers.clear(); } - void BufferViewOverlay::save() { CoreAccountSettings().setBufferViewOverlay(_bufferViewIds); } - void BufferViewOverlay::restore() { QSet currentIds = _bufferViewIds; @@ -71,13 +68,12 @@ void BufferViewOverlay::restore() } } - void BufferViewOverlay::addView(int viewId) { if (_bufferViewIds.contains(viewId)) return; - BufferViewConfig *config = Client::bufferViewManager()->bufferViewConfig(viewId); + BufferViewConfig* config = Client::bufferViewManager()->bufferViewConfig(viewId); if (!config) { qDebug() << "BufferViewOverlay::addView(): no such buffer view:" << viewId; return; @@ -93,38 +89,36 @@ void BufferViewOverlay::addView(int viewId) if (wasInitialized) { BufferIdList buffers; if (config->networkId().isValid()) { - foreach(BufferId bufferId, config->bufferList()) { + foreach (BufferId bufferId, config->bufferList()) { if (Client::networkModel()->networkId(bufferId) == config->networkId()) buffers << bufferId; } - foreach(BufferId bufferId, config->temporarilyRemovedBuffers().toList()) { + for (BufferId bufferId : config->temporarilyRemovedBuffers()) { if (Client::networkModel()->networkId(bufferId) == config->networkId()) buffers << bufferId; } } else { - buffers = BufferIdList::fromSet(config->bufferList().toSet() + config->temporarilyRemovedBuffers()); + buffers = (toQSet(config->bufferList()) + config->temporarilyRemovedBuffers()).values(); } Client::backlogManager()->checkForBacklog(buffers); } } else { - disconnect(config, SIGNAL(initDone()), this, SLOT(viewInitialized())); // we use a queued connection here since manipulating the connection list of a sending object // doesn't seem to be such a good idea while executing a connected slots. - connect(config, SIGNAL(initDone()), this, SLOT(viewInitialized()), Qt::QueuedConnection); + connect(config, &BufferViewConfig::initDone, this, selectOverload<>(&BufferViewOverlay::viewInitialized), Qt::QueuedConnection); } save(); } - void BufferViewOverlay::removeView(int viewId) { if (!_bufferViewIds.contains(viewId)) return; _bufferViewIds.remove(viewId); - BufferViewConfig *config = Client::bufferViewManager()->bufferViewConfig(viewId); + BufferViewConfig* config = Client::bufferViewManager()->bufferViewConfig(viewId); if (config) disconnect(config, nullptr, this, nullptr); @@ -150,16 +144,13 @@ void BufferViewOverlay::removeView(int viewId) save(); } - -void BufferViewOverlay::viewInitialized(BufferViewConfig *config) +void BufferViewOverlay::viewInitialized(BufferViewConfig* config) { if (!config) { qWarning() << "BufferViewOverlay::viewInitialized() received invalid view!"; return; } - disconnect(config, SIGNAL(initDone()), this, SLOT(viewInitialized())); - - connect(config, SIGNAL(configChanged()), this, SLOT(update())); + connect(config, &BufferViewConfig::configChanged, this, &BufferViewOverlay::update); // check if the view was removed in the meantime... if (_bufferViewIds.contains(config->bufferViewId())) @@ -170,16 +161,14 @@ void BufferViewOverlay::viewInitialized(BufferViewConfig *config) emit initDone(); } - void BufferViewOverlay::viewInitialized() { - BufferViewConfig *config = qobject_cast(sender()); + auto* config = qobject_cast(sender()); Q_ASSERT(config); viewInitialized(config); } - void BufferViewOverlay::update() { if (_aboutToUpdate) { @@ -189,7 +178,6 @@ void BufferViewOverlay::update() QCoreApplication::postEvent(this, new QEvent((QEvent::Type)_updateEventId)); } - void BufferViewOverlay::updateHelper() { if (!_aboutToUpdate) @@ -205,7 +193,7 @@ void BufferViewOverlay::updateHelper() QSet tempRemovedBuffers; if (Client::bufferViewManager()) { - BufferViewConfig *config = nullptr; + BufferViewConfig* config = nullptr; QSet::const_iterator viewIter; for (viewIter = _bufferViewIds.constBegin(); viewIter != _bufferViewIds.constEnd(); ++viewIter) { config = Client::bufferViewManager()->bufferViewConfig(*viewIter); @@ -220,12 +208,12 @@ void BufferViewOverlay::updateHelper() // we have to apply several filters before we can add a buffer to a category (visible, removed, ...) buffers += filterBuffersByConfig(config->bufferList(), config); - tempRemovedBuffers += filterBuffersByConfig(config->temporarilyRemovedBuffers().toList(), config); + tempRemovedBuffers += filterBuffersByConfig(config->temporarilyRemovedBuffers().values(), config); removedBuffers += config->removedBuffers(); } // prune the sets from overlap - QSet availableBuffers = Client::networkModel()->allBufferIds().toSet(); + QSet availableBuffers = toQSet(Client::networkModel()->allBufferIds()); buffers.intersect(availableBuffers); @@ -257,14 +245,13 @@ void BufferViewOverlay::updateHelper() emit hasChanged(); } - -QSet BufferViewOverlay::filterBuffersByConfig(const QList &buffers, const BufferViewConfig *config) +QSet BufferViewOverlay::filterBuffersByConfig(const QList& buffers, const BufferViewConfig* config) { Q_ASSERT(config); QSet bufferIds; BufferInfo bufferInfo; - foreach(BufferId bufferId, buffers) { + foreach (BufferId bufferId, buffers) { bufferInfo = Client::networkModel()->bufferInfo(bufferId); if (!(bufferInfo.type() & config->allowedBufferTypes())) continue; @@ -276,57 +263,49 @@ QSet BufferViewOverlay::filterBuffersByConfig(const QList &b return bufferIds; } - -void BufferViewOverlay::customEvent(QEvent *event) +void BufferViewOverlay::customEvent(QEvent* event) { if (event->type() == _updateEventId) { updateHelper(); } } - bool BufferViewOverlay::allNetworks() { updateHelper(); return _networkIds.contains(NetworkId()); } - -const QSet &BufferViewOverlay::networkIds() +const QSet& BufferViewOverlay::networkIds() { updateHelper(); return _networkIds; } - -const QSet &BufferViewOverlay::bufferIds() +const QSet& BufferViewOverlay::bufferIds() { updateHelper(); return _buffers; } - -const QSet &BufferViewOverlay::removedBufferIds() +const QSet& BufferViewOverlay::removedBufferIds() { updateHelper(); return _removedBuffers; } - -const QSet &BufferViewOverlay::tempRemovedBufferIds() +const QSet& BufferViewOverlay::tempRemovedBufferIds() { updateHelper(); return _tempRemovedBuffers; } - int BufferViewOverlay::allowedBufferTypes() { updateHelper(); return _allowedBufferTypes; } - int BufferViewOverlay::minimumActivity() { updateHelper();