Compare commits

..

1 commit

Author SHA1 Message Date
hemirt 42b8f69e7d
Merge 05ab3b27e7 into 90211cca55 2024-10-27 14:12:35 +01:00
5 changed files with 27 additions and 18 deletions

View file

@ -1194,11 +1194,13 @@ void ChannelView::messageAppended(MessagePtr &message,
(this->channel_->getType() == Channel::Type::TwitchAutomod && (this->channel_->getType() == Channel::Type::TwitchAutomod &&
getSettings()->enableAutomodHighlight)) getSettings()->enableAutomodHighlight))
{ {
this->tabHighlightRequested.invoke(HighlightState::Highlighted); this->tabHighlightRequested.invoke(HighlightState::Highlighted,
message);
} }
else else
{ {
this->tabHighlightRequested.invoke(HighlightState::NewMessage); this->tabHighlightRequested.invoke(HighlightState::NewMessage,
message);
} }
} }

View file

@ -225,7 +225,8 @@ public:
pajlada::Signals::Signal<QMouseEvent *> mouseDown; pajlada::Signals::Signal<QMouseEvent *> mouseDown;
pajlada::Signals::NoArgSignal selectionChanged; pajlada::Signals::NoArgSignal selectionChanged;
pajlada::Signals::Signal<HighlightState> tabHighlightRequested; pajlada::Signals::Signal<HighlightState, const MessagePtr &>
tabHighlightRequested;
pajlada::Signals::NoArgSignal liveStatusChanged; pajlada::Signals::NoArgSignal liveStatusChanged;
pajlada::Signals::Signal<const Link &> linkClicked; pajlada::Signals::Signal<const Link &> linkClicked;
pajlada::Signals::Signal<QString, FromTwitchLinkOpenChannelIn> pajlada::Signals::Signal<QString, FromTwitchLinkOpenChannelIn>

View file

@ -518,7 +518,8 @@ void NotebookTab::setHighlightState(HighlightState newHighlightStyle)
} }
void NotebookTab::updateHighlightState(HighlightState newHighlightStyle, void NotebookTab::updateHighlightState(HighlightState newHighlightStyle,
const ChannelView &channelViewSource) const ChannelView &channelViewSource,
const MessagePtr &message)
{ {
if (this->isSelected()) if (this->isSelected())
{ {
@ -527,7 +528,7 @@ void NotebookTab::updateHighlightState(HighlightState newHighlightStyle,
return; return;
} }
if (!this->shouldMessageHighlight(channelViewSource)) if (!this->shouldMessageHighlight(channelViewSource, message))
{ {
return; return;
} }
@ -571,8 +572,8 @@ void NotebookTab::updateHighlightState(HighlightState newHighlightStyle,
this->update(); this->update();
} }
bool NotebookTab::shouldMessageHighlight( bool NotebookTab::shouldMessageHighlight(const ChannelView &channelViewSource,
const ChannelView &channelViewSource) const const MessagePtr &message) const
{ {
auto *visibleSplitContainer = auto *visibleSplitContainer =
dynamic_cast<SplitContainer *>(this->notebook_->getSelectedPage()); dynamic_cast<SplitContainer *>(this->notebook_->getSelectedPage());
@ -582,7 +583,9 @@ bool NotebookTab::shouldMessageHighlight(
for (const auto &visibleSplit : visibleSplits) for (const auto &visibleSplit : visibleSplits)
{ {
if (channelViewSource.getID() == if (channelViewSource.getID() ==
visibleSplit->getChannelView().getID()) visibleSplit->getChannelView().getID() &&
visibleSplit->getChannelView().shouldIncludeMessage(message) &&
channelViewSource.shouldIncludeMessage(message))
{ {
return false; return false;
} }

View file

@ -72,7 +72,8 @@ public:
* Obeys the HighlightsEnabled setting and the highlight state hierarchy and tracks the highlight state update sources * Obeys the HighlightsEnabled setting and the highlight state hierarchy and tracks the highlight state update sources
*/ */
void updateHighlightState(HighlightState style, void updateHighlightState(HighlightState style,
const ChannelView &channelViewSource); const ChannelView &channelViewSource,
const MessagePtr &message);
void copyHighlightStateAndSourcesFrom(const NotebookTab *sourceTab); void copyHighlightStateAndSourcesFrom(const NotebookTab *sourceTab);
void setHighlightsEnabled(const bool &newVal); void setHighlightsEnabled(const bool &newVal);
void newHighlightSourceAdded(const ChannelView &channelViewSource); void newHighlightSourceAdded(const ChannelView &channelViewSource);
@ -121,7 +122,8 @@ private:
int normalTabWidthForHeight(int height) const; int normalTabWidthForHeight(int height) const;
bool shouldMessageHighlight(const ChannelView &channelViewSource) const; bool shouldMessageHighlight(const ChannelView &channelViewSource,
const MessagePtr &message) const;
using HighlightSources = using HighlightSources =
std::unordered_map<ChannelView::ChannelViewID, HighlightState>; std::unordered_map<ChannelView::ChannelViewID, HighlightState>;

View file

@ -213,14 +213,15 @@ void SplitContainer::addSplit(Split *split)
auto &&conns = this->connectionsPerSplit_[split]; auto &&conns = this->connectionsPerSplit_[split];
conns.managedConnect(split->getChannelView().tabHighlightRequested, conns.managedConnect(
[this, split](HighlightState state) { split->getChannelView().tabHighlightRequested,
if (this->tab_ != nullptr) [this, split](HighlightState state, const MessagePtr &message) {
{ if (this->tab_ != nullptr)
this->tab_->updateHighlightState( {
state, split->getChannelView()); this->tab_->updateHighlightState(state, split->getChannelView(),
} message);
}); }
});
conns.managedConnect(split->channelChanged, [this, split] { conns.managedConnect(split->channelChanged, [this, split] {
if (this->tab_ != nullptr) if (this->tab_ != nullptr)