Commit Graph

21 Commits

Author SHA1 Message Date
nerix 30019b71aa refactor: remove LimitedQueueSnapshot (#6606)
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com>
2025-11-27 18:49:40 +00:00
nerix c4dd5f43ce feat: add ability to limit message snapshot size (#6602)
Reviewed-by: pajlada <rasmus.karlsson@pajlada.com>
2025-11-26 23:35:34 +01:00
nerix 5f76f5b755 fix: take indices to messages as a hint (#5683) 2024-11-02 12:11:59 +00:00
nerix bbcd8c5eb2 fix: get rid of some more warnings (#5672) 2024-10-27 12:42:23 +00:00
nerix b391f18177 fix: set maximum of scrollbar after filtering (#5329) 2024-04-17 17:08:47 +00:00
pajlada fec45889a8 Replace boost::optional with std::optional (#4877) 2023-10-08 16:50:48 +00:00
Daniel Sage 46f43f3ce8 Automatically load recent messages on reconnect (#3878)
* Add working reconnect recent messages

* Rename method to messagesUpdated

* Use audo declarations

* Add docs to new LimitedQueue methods

* Add more documentation, try atomic loading flag

* Update CHANGELOG.md

* Remove unused include

* Rename 'reconnected' signal to 'connected'

* Reserve before filtering on arbitrary update

* Extract recent messages fetching to own class

* Use std::atomic_flag instead of std::atomic_bool

* Add PostToThread include

* Add chatterino.recentmessages logging

* Remove unneeded parameters, lambda move capture

* Remove TwitchChannel::buildRecentMessages

* Add documentation, use more clear method name

* Reword changelog entry

I think it sounds better like this :)

* Rework how filling in missing messages is handled

This should hopefully prevent issues with filtered channels with old messages
that no longer exist in the underlying channel

* Check existing messages when looking for reply

* Clean up string distribution in file

* Try to improve documentation

* Use std::function for RecentMessagesApi

* Only trigger filledInMessages if we inserted

* Remove old unused lines

* Use make_shared<MessageLayout> instead of new MessageLayout

* Alphabetize QLogging categories

* Reorder CHANGELOG.md
2022-08-06 18:18:34 +02:00
Daniel Sage 81caf1aae0 Rewrite & optimize LimitedQueue (#3798)
* Use circular buffer for LimitedQueue

* Reduce copying of snapshot

* Small optimizations

* Remove unneeded lock statements

* Add LimitedQueue tests

* Fix includes for limited queue benchmark

* Update CHANGELOG.md

* Use correct boost version iterators

* Use a shared_mutex to clarify reads and writes

* Update `find`/`rfind` to return the result as a boost::optional

* Use `[[nodiscard]]` where applicable

* Update comments

* Add a couple more doc comments

* Replace size with get

get is a safe (locked & checked) version of at

* Use std::vector in LimitedQueueSnapshot

* Update LimitedQueue benchmarks

* Add mutex guard to buffer accessors

We do not know whether T is an atomic type or not
so we can't safely say that we can copy the value
at a certain address of the buffer.

See https://stackoverflow.com/a/2252478

* Update doc comments, add first/last getters

* Make limit_ const

* Omit `else` if the if-case always returns

* Title case category comments

* Remove `at`

* Fix `get` comment

* Privatize/comment/lock property accessors

 - `limit` is now private
 - `space` is now private
 - `full` has been removed
 - `empty` now locks

* Remove `front` function

* Remove `back` method

* Add comment to `first`

* Add comment to `last`

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-06-18 10:44:48 +00:00
0xRainy 0e564065ba Added recent messages to UserInfoPopup (#1729)
There's a Refresh button added to the popup to refresh the users messages in the popup. Not automatic now while we figure out how fast/slow it would be.

Co-authored-by: dnsge <sagedanielr@gmail.com>
2020-06-21 14:15:14 +02:00
Leon Richardt 17aa3f71cd Remove Debug Output In Many Different Places (#1607)
* Application.cpp: Remove whisper debug output

* TwitchAccount.cpp: Remove AutoMod debug output

* BaseWindow.cpp: Remove mouse tracking debug output

* RunGui.cpp: Remove debug output for cleared cache items

* Notebook.cpp: Remove debug output for selected widgets

* LimitedQueue.hpp: Remove commented debug output

* IrcMessageHandler.cpp: Remove debug output when receiving whispers

* UserInfoPopup.cpp: Remove user name debug output

* ChannelView.cpp: Remove debug output when clicking a message

* Image.cpp: Remove commented debug output

* AttachedWindow.cpp: Remove commented debug output

* SplitOverlay.cpp: Remove commented debug output

* TwitchMessageBuilder.cpp: Remove debug output for highlights

* TwitchMessageBuilder.cpp: Remove debug output for blocked messages

* PubsubClient.cpp: Remove debug output on PubSub::listen

* PubsubClient.cpp: Remove debug output on PubSub::tryListen

* IncognitoBrowser.cpp: Remove debug output of browser command

* NativeMessaging.cpp: Remove debug output of message
2020-03-19 18:06:21 +01:00
Rasmus Karlsson 64dc7f5d73 Fix a bug with messages jumping if you were scrolled up
The bug appeared every 100 messages (so whenever a chunk was deleted)

To fix this, we only perform the first chunk offset increment if the
item we deleted was not the last item in a chunk
2019-06-22 13:04:31 +02:00
Rasmus Karlsson c631434cee Make use of our "Chunk" and "ChunkVector" aliases better 2019-06-22 13:03:57 +02:00
fourtf e259b9e39f added brace wrapping after if and for 2018-10-21 13:43:02 +02:00
tetyys 45d0bd6299 Changed LimitedQueue::space() to signed value, eliminating underflows 2018-09-26 22:21:38 +03:00
fourtf f71ff08e68 changed to 80 max column 2018-08-06 21:17:03 +02:00
fourtf 280bb4cf8e Renamed private members 2018-07-06 19:24:35 +02:00
fourtf 5604ae6a67 removed functions from SettingsManager that shouldn't be there 2018-06-28 19:38:57 +02:00
fourtf 54eb07e116 removed namespaces 2018-06-26 17:06:17 +02:00
fourtf 2df0566492 removed namespaces 2018-06-26 16:37:59 +02:00
fourtf a9bf9cf722 rename #3 2018-06-26 14:09:39 +02:00
fourtf c9722b9780 rename #2 2018-06-26 13:24:55 +02:00