diff --git a/src/networkstreammodel.cpp b/src/networkstreammodel.cpp index c4ab792..19aa2b6 100644 --- a/src/networkstreammodel.cpp +++ b/src/networkstreammodel.cpp @@ -1,4 +1,6 @@ #include "networkstreammodel.h" +#include +#include NetworkStreamModel::NetworkStreamModel(Data *data, QObject *parent) : QAbstractItemModel(parent), m_data(data) { @@ -142,6 +144,15 @@ QVariant NetworkStreamModel::data(const QModelIndex &index, int role) const // Right-align the unseen count return static_cast(Qt::AlignRight | Qt::AlignVCenter); } + else if (role == Qt::ForegroundRole) + { + // Make streams with no unseen items grey (fully caught up) + if (stream.unseenCount == 0) + { + return QBrush(QColor(128, 128, 128)); + } + // Streams with unseen items use default color + } } } } diff --git a/src/particlelistmodel.cpp b/src/particlelistmodel.cpp index f277e0f..20e7a66 100644 --- a/src/particlelistmodel.cpp +++ b/src/particlelistmodel.cpp @@ -1,5 +1,8 @@ #include "particlelistmodel.h" #include +#include +#include +#include #include ParticleListModel::ParticleListModel(Data *data, QObject *parent) @@ -53,6 +56,15 @@ QVariant ParticleListModel::data(const QModelIndex &index, int role) const } return display; } + else if (role == Qt::ForegroundRole) + { + // Make seen particles subtle grey, unseen stay default color + if (particle.seen) + { + return QBrush(QColor(128, 128, 128)); // Medium grey for seen items + } + // Unseen items use default foreground color + } // else if (role == Qt::DecorationRole) // { // // Return icon based on type