X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Fbufferview.cpp;h=8fbbdd349e66f8e72acbd6d2181f36c093725fcd;hb=b795a7b7b42ab546b1a6db2cba6091f5c3aa91fc;hp=0b3386979e51a9304ed967b0b2e8db79ec8393b7;hpb=b3ec58929bead822048a25f87f6a0d699c490b7a;p=quassel.git diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index 0b338697..8fbbdd34 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -35,11 +35,12 @@ #include "buffersettings.h" #include "buffersyncer.h" #include "client.h" +#include "contextmenuactionprovider.h" +#include "graphicalui.h" #include "iconloader.h" #include "network.h" #include "networkmodel.h" -#include "networkmodelactionprovider.h" -#include "quasselui.h" +#include "contextmenuactionprovider.h" #include "uisettings.h" /***************************************** @@ -56,8 +57,8 @@ BufferView::BufferView(QWidget *parent) setSelectionMode(QAbstractItemView::ExtendedSelection); QAbstractItemDelegate *oldDelegate = itemDelegate(); - BufferViewDelegate *newDelegate = new BufferViewDelegate(this); - setItemDelegate(newDelegate); + BufferViewDelegate *tristateDelegate = new BufferViewDelegate(this); + setItemDelegate(tristateDelegate); delete oldDelegate; } @@ -386,7 +387,7 @@ void BufferView::addActionsToMenu(QMenu *contextMenu, const QModelIndex &index) indexList.removeAll(index); indexList.prepend(index); - Client::mainUi()->actionProvider()->addActions(contextMenu, indexList, this, "menuActionTriggered", (bool)config()); + GraphicalUi::contextMenuActionProvider()->addActions(contextMenu, indexList, this, "menuActionTriggered", (bool)config()); } void BufferView::addFilterActions(QMenu *contextMenu, const QModelIndex &index) { @@ -403,12 +404,12 @@ void BufferView::addFilterActions(QMenu *contextMenu, const QModelIndex &index) } void BufferView::menuActionTriggered(QAction *result) { - NetworkModelActionProvider::ActionType type = (NetworkModelActionProvider::ActionType)result->data().toInt(); + ContextMenuActionProvider::ActionType type = (ContextMenuActionProvider::ActionType)result->data().toInt(); switch(type) { - case NetworkModelActionProvider::HideBufferTemporarily: + case ContextMenuActionProvider::HideBufferTemporarily: removeSelectedBuffers(); break; - case NetworkModelActionProvider::HideBufferPermanently: + case ContextMenuActionProvider::HideBufferPermanently: removeSelectedBuffers(true); break; default: @@ -468,6 +469,8 @@ BufferViewDelegate::BufferViewDelegate(QObject *parent) : QStyledItemDelegate(parent) { UiSettings s("QtUiStyle/Colors"); + _FgColorInactiveActivity = s.value("inactiveActivityFG", QVariant(QColor(Qt::gray))).value(); + _FgColorNoActivity = s.value("noActivityFG", QVariant(QColor(Qt::black))).value(); _FgColorHighlightActivity = s.value("highlightActivityFG", QVariant(QColor(Qt::magenta))).value(); _FgColorNewMessageActivity = s.value("newMessageActivityFG", QVariant(QColor(Qt::green))).value(); _FgColorOtherActivity = s.value("otherActivityFG", QVariant(QColor(Qt::darkGreen))).value(); @@ -507,24 +510,23 @@ bool BufferViewDelegate::editorEvent(QEvent *event, QAbstractItemModel *model, c void BufferViewDelegate::initStyleOption(QStyleOptionViewItem *option, const QModelIndex &index) const { QStyledItemDelegate::initStyleOption(option, index); + if(!index.isValid()) + return; + BufferInfo::ActivityLevel activity = (BufferInfo::ActivityLevel)index.data(NetworkModel::BufferActivityRole).toInt(); + QColor fgColor = _FgColorNoActivity; if(activity & BufferInfo::Highlight) { - option->palette.setColor(QPalette::Text, _FgColorHighlightActivity); - return; - } - if(activity & BufferInfo::NewMessage) { - option->palette.setColor(QPalette::Text, _FgColorNewMessageActivity); - return; - } - if(activity & BufferInfo::OtherActivity) { - option->palette.setColor(QPalette::Text, _FgColorOtherActivity); - return; + fgColor = _FgColorHighlightActivity; + } else if(activity & BufferInfo::NewMessage) { + fgColor = _FgColorNewMessageActivity; + } else if(activity & BufferInfo::OtherActivity) { + fgColor = _FgColorOtherActivity; + } else if(!index.data(NetworkModel::ItemActiveRole).toBool() || index.data(NetworkModel::UserAwayRole).toBool()) { + fgColor = _FgColorInactiveActivity; } - if(!index.data(NetworkModel::ItemActiveRole).toBool() || index.data(NetworkModel::UserAwayRole).toBool()) { - option->palette.setColor(QPalette::Text, QPalette().color(QPalette::Dark)); - } + option->palette.setColor(QPalette::Text, fgColor); }