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
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 14 additions and 10 deletions

View file

@ -9,6 +9,7 @@
- Bugfix: Fixed split tooltip getting stuck in some cases. (#5309) - Bugfix: Fixed split tooltip getting stuck in some cases. (#5309)
- Bugfix: Fixed the version string not showing up as expected in Finder on macOS. (#5311) - Bugfix: Fixed the version string not showing up as expected in Finder on macOS. (#5311)
- Bugfix: Fixed links having `http://` added to the beginning in certain cases. (#5323) - Bugfix: Fixed links having `http://` added to the beginning in certain cases. (#5323)
- Bugfix: Fixed a gap appearing when using filters on `/watching`. (#5329)
## 2.5.0-beta.1 ## 2.5.0-beta.1

View file

@ -24,14 +24,6 @@ public:
private: private:
/// Property Accessors /// 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 * @brief Return the amount of space left in the buffer
* *
@ -43,6 +35,14 @@ private:
} }
public: public:
/**
* @brief Return the limit of the queue
*/
[[nodiscard]] size_t limit() const
{
return this->limit_;
}
/** /**
* @brief Return true if the buffer is empty * @brief Return true if the buffer is empty
*/ */

View file

@ -982,8 +982,7 @@ void ChannelView::setChannel(const ChannelPtr &underlyingChannel)
// and the ui. // and the ui.
auto snapshot = underlyingChannel->getMessageSnapshot(); auto snapshot = underlyingChannel->getMessageSnapshot();
this->scrollBar_->setMaximum(qreal(snapshot.size())); size_t nMessagesAdded = 0;
for (const auto &msg : snapshot) for (const auto &msg : snapshot)
{ {
if (!this->shouldIncludeMessage(msg)) if (!this->shouldIncludeMessage(msg))
@ -1007,12 +1006,16 @@ void ChannelView::setChannel(const ChannelPtr &underlyingChannel)
this->messages_.pushBack(messageLayout); this->messages_.pushBack(messageLayout);
this->channel_->addMessage(msg); this->channel_->addMessage(msg);
nMessagesAdded++;
if (this->showScrollbarHighlights()) if (this->showScrollbarHighlights())
{ {
this->scrollBar_->addHighlight(msg->getScrollBarHighlight()); this->scrollBar_->addHighlight(msg->getScrollBarHighlight());
} }
} }
this->scrollBar_->setMaximum(
static_cast<qreal>(std::min(nMessagesAdded, this->messages_.limit())));
// //
// Standard channel connections // Standard channel connections
// //