This commit is contained in:
pajlada 2024-10-27 14:12:47 +01:00 committed by GitHub
commit 7281bfc0b8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 44 additions and 10 deletions

View file

@ -9,6 +9,8 @@ namespace {
} // namespace
// change made but removed in merge conflict
// QColor HighlightPhrase::FALLBACK_HIGHLIGHT_COLOR = QColor(238, 97, 102, 65);
QColor HighlightPhrase::FALLBACK_HIGHLIGHT_COLOR = QColor(127, 63, 73, 127);
QColor HighlightPhrase::FALLBACK_SELF_MESSAGE_HIGHLIGHT_COLOR =
QColor(0, 118, 221, 115);

View file

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

View file

@ -11,6 +11,7 @@
#include "widgets/TooltipWidget.hpp"
#include <pajlada/signals/signal.hpp>
#include <QColor>
#include <QGestureEvent>
#include <QMenu>
#include <QPaintEvent>
@ -21,6 +22,7 @@
#include <QWheelEvent>
#include <QWidget>
#include <memory>
#include <unordered_map>
#include <unordered_set>
@ -214,7 +216,8 @@ public:
pajlada::Signals::Signal<QMouseEvent *> mouseDown;
pajlada::Signals::NoArgSignal selectionChanged;
pajlada::Signals::Signal<HighlightState> tabHighlightRequested;
pajlada::Signals::Signal<HighlightState, std::shared_ptr<QColor>>
tabHighlightRequested;
pajlada::Signals::NoArgSignal liveStatusChanged;
pajlada::Signals::Signal<const Link &> linkClicked;
pajlada::Signals::Signal<QString, FromTwitchLinkOpenChannelIn>

View file

@ -307,6 +307,7 @@ void NotebookTab::setSelected(bool value)
this->selected_ = value;
this->highlightState_ = HighlightState::None;
this->highlightColor_ = nullptr;
this->update();
}
@ -397,6 +398,15 @@ bool NotebookTab::hasHighlightsEnabled() const
return this->highlightEnabled_;
}
void NotebookTab::setHighlightColor(std::shared_ptr<QColor> color)
{
if (this->highlightColor_ != color)
{
this->highlightColor_ = color;
this->update();
}
}
QRect NotebookTab::getDesiredRect() const
{
return QRect(this->positionAnimationDesiredPoint_, size());
@ -499,6 +509,14 @@ void NotebookTab::paintEvent(QPaintEvent *)
: (windowFocused ? colors.line.regular
: colors.line.unfocused);
if (this->highlightState_ == HighlightState::Highlighted &&
this->highlightColor_ != nullptr)
{
QColor col = *this->highlightColor_;
col.setAlpha(255);
lineColor = col;
}
QRect lineRect;
switch (this->tabLocation_)
{

View file

@ -6,6 +6,7 @@
#include <pajlada/settings/setting.hpp>
#include <pajlada/signals/signalholder.hpp>
#include <QColor>
#include <QMenu>
#include <QPropertyAnimation>
@ -64,6 +65,7 @@ public:
void setHighlightsEnabled(const bool &newVal);
bool hasHighlightsEnabled() const;
void setHighlightColor(std::shared_ptr<QColor> color);
void moveAnimated(QPoint targetPos, bool animated = true);
@ -127,6 +129,7 @@ private:
HighlightState highlightState_ = HighlightState::None;
bool highlightEnabled_ = true;
QAction *highlightNewMessagesAction_;
std::shared_ptr<QColor> highlightColor_;
bool isLive_{};
bool isRerun_{};

View file

@ -213,13 +213,19 @@ void SplitContainer::addSplit(Split *split)
auto &&conns = this->connectionsPerSplit_[split];
conns.managedConnect(split->getChannelView().tabHighlightRequested,
[this](HighlightState state) {
if (this->tab_ != nullptr)
{
this->tab_->setHighlightState(state);
}
});
conns.managedConnect(
split->getChannelView().tabHighlightRequested,
[this](HighlightState state, std::shared_ptr<QColor> color) {
if (this->tab_ != nullptr)
{
this->tab_->setHighlightState(state);
if (color != nullptr)
{
this->tab_->setHighlightColor(color);
}
}
});
conns.managedConnect(split->getChannelView().liveStatusChanged, [this]() {
this->refreshTabLiveStatus();