fix: set maximum of scrollbar after filtering (#5329)

This commit is contained in:
nerix
2024-04-17 19:08:47 +02:00
committed by GitHub
parent c391ff9740
commit b391f18177
3 changed files with 14 additions and 10 deletions
+8 -8
View File
@@ -24,14 +24,6 @@ public:
private:
/// Property Accessors
/**
* @brief Return the limit of the internal buffer
*/
[[nodiscard]] size_t limit() const
{
return this->limit_;
}
/**
* @brief Return the amount of space left in the buffer
*
@@ -43,6 +35,14 @@ private:
}
public:
/**
* @brief Return the limit of the queue
*/
[[nodiscard]] size_t limit() const
{
return this->limit_;
}
/**
* @brief Return true if the buffer is empty
*/
+5 -2
View File
@@ -982,8 +982,7 @@ void ChannelView::setChannel(const ChannelPtr &underlyingChannel)
// and the ui.
auto snapshot = underlyingChannel->getMessageSnapshot();
this->scrollBar_->setMaximum(qreal(snapshot.size()));
size_t nMessagesAdded = 0;
for (const auto &msg : snapshot)
{
if (!this->shouldIncludeMessage(msg))
@@ -1007,12 +1006,16 @@ void ChannelView::setChannel(const ChannelPtr &underlyingChannel)
this->messages_.pushBack(messageLayout);
this->channel_->addMessage(msg);
nMessagesAdded++;
if (this->showScrollbarHighlights())
{
this->scrollBar_->addHighlight(msg->getScrollBarHighlight());
}
}
this->scrollBar_->setMaximum(
static_cast<qreal>(std::min(nMessagesAdded, this->messages_.limit())));
//
// Standard channel connections
//