Commit graph

3458 commits

Author SHA1 Message Date
pajlada 2361d30e4b
fix: compare settings before updating them (#5240) 2024-03-09 15:03:26 +00:00
pajlada 2e77b47ea1
fix: settings "Cancel" button doesn't work first time (#5229) 2024-03-09 11:29:25 +00:00
KleberPF c50791972d
Add highlight color and show in mentions to automod messages (#5215) 2024-03-09 11:03:36 +00:00
nerix ecad4b052a
fix(windows): show split tooltip before move (#5230) 2024-03-09 11:27:42 +01:00
nerix 26bb4e236d
fix(tooltips): hide image label by default (#5232) 2024-03-09 11:25:20 +01:00
Mm2PL 8cea86cf17
Fix rerun flag not being unset after stream finishes (#5237) 2024-03-09 11:22:23 +01:00
nerix 9151446c0e
fix(streamer-mode): check setting on startup (#5236) 2024-03-06 18:01:42 +00:00
pajlada 77cfd1393c
fix: the font switcher now remembers your previous font (#5224)
Fixes #2112
2024-03-03 12:41:32 +00:00
nerix 449c5397b7
fix: store IPC file in application directory (#5226) 2024-03-03 12:15:50 +00:00
nerix 3c13e0c6d2
chore: remove dead message element code (#5225) 2024-03-02 22:09:54 +01:00
pajlada 3928cc9578
fix: correctly load twitch badges in highlights page (#5223) 2024-03-02 11:05:12 +00:00
nerix c1fa51242f
refactor: turn StreamerMode into a singleton(-like thing) (#5216) 2024-03-01 21:12:02 +01:00
nerix 5f6261c0cf
feat: use 4x images on 7TV instead of 3x (#5209) 2024-02-26 19:38:30 +01:00
nerix 4315c43eac
fix: show correct scale factor of images (#5201) 2024-02-26 18:13:21 +01:00
nerix f285ada36c
Estimate size of images to avoid layout shifts (#5192) 2024-02-25 18:19:20 +01:00
nerix 0cfd25ce8e
feat: Send messages using Helix API (#5200) 2024-02-25 14:45:55 +01:00
kornes 1e2c943ae9
perf: prevent unnecessary layouts at leaveEvent (#4879) 2024-02-25 12:19:50 +00:00
Mm2PL a737d4b755
Introduce c2.later() function to Lua API. (#5154) 2024-02-25 11:45:59 +00:00
pajlada 101dc82ea0
feat: Show FrankerFaceZ channel badges (#5119) 2024-02-25 11:18:57 +00:00
pajlada 2815c7b67d
feat: Add a fallback theme to custom themes (#5198) 2024-02-24 15:14:49 +01:00
KleberPF 86111d59b6
Add option always include broadcaster in user completions (#5193) 2024-02-24 13:21:29 +00:00
hemirt 66910507dc
Fix incomplete traversal of clipboard data when an image is present resulting in Not an Image error (#5156) 2024-02-24 12:52:35 +00:00
Mm2PL df2b5f94f4
Allow theming of tab live and rerun indicators (#5188) 2024-02-24 12:26:49 +00:00
nerix dd61482046
fix: tooltips showing out-of-bounds after loading images (#5186) 2024-02-24 11:52:16 +00:00
pajlada dcd6179434
fix: /openurl can now open urls with spaces, assuming the url allows it (#5197)
This allows for commands like `/openurl https://www.deepl.com/en/translator#auto/en/{1+}` that previously worked
2024-02-24 11:27:24 +00:00
Mm2PL a5ac06124d
Update plugin documentation document (#5185)
* Add blurb about LuaLS type definitions

* Add c2.Channel documentation replacing c2.send_msg and c2.system_msg

* Use snake_case for command names in examples

to align to Lua naming convention

* Unrelated: add missing ChannelType
2024-02-18 21:09:19 +00:00
Mm2PL 4a4f62dc4a
Make Lua CommandContext use a ChannelRef (#5184) 2024-02-18 19:55:00 +00:00
nerix cd0387b064
fix: double ellipsis in reply (#5174) 2024-02-18 19:25:46 +01:00
Mm2PL 5c51ec8382
Live streams that are marked as reruns now mark a tab as yellow instead of red (#5176) 2024-02-18 16:22:53 +00:00
nerix 641cb26a76
Update emoji-data to v15.1.1 (#5182) 2024-02-18 13:11:25 +00:00
nerix e130c48f76
refactor: Turn link-info into its own element and class (#5178) 2024-02-18 12:34:00 +00:00
KleberPF 42e4559910
fix: "reply to message" now takes usernames with @'s & commas into consideration (#5173)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2024-02-17 13:25:14 +00:00
pajlada 32d269dffc
feat: add the ability to unit test some aspects of SplitInput (#5179) 2024-02-17 12:26:54 +00:00
KleberPF 4b48774cbb
fix: searching redemptions that require user input (#5177)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2024-02-17 11:49:06 +00:00
KleberPF 3cdb7bf4f6
fix: resolve /live channel liveness using their channel ID (#5172) 2024-02-17 11:22:49 +00:00
nerix 4a5d4ef3fa
fix: minimize button remaining hovered on Windows (#5175) 2024-02-14 14:49:31 +01:00
pajlada fe1e498a5f
chore: Run Ubuntu tests in Docker (#5170)
Co-authored-by: Wissididom <30803034+Wissididom@users.noreply.github.com>
2024-02-11 19:11:30 +01:00
nerix 7a70d785a4
revert: uncomment NCCALCSIZE adjustment (#5166) 2024-02-10 13:29:52 +00:00
pajlada edcd0b8010
feat: build Ubuntu & AppImages in Docker + Qt static linking (#5151) 2024-02-10 12:47:15 +01:00
nerix 10aabd39e7
fix: avoid promoting child widgets to child windows (#5161) 2024-02-10 11:43:59 +00:00
nerix af8eba0323
feat: add option to change the top-most status of a window (#5135)
* feat: add option to pin a popup

* chore: add changelog entry

* chore: change changelog entry
2024-02-04 12:33:37 +00:00
Mm2PL 8e9aa87a08
Add a new Channel API for experimental plugins feature (#5141) 2024-02-03 19:12:00 +01:00
pajlada 7fdb3841db
feat: Add "Copy message as JSON" option when shift-right-clicking a message (#5150) 2024-02-03 12:03:31 +00:00
pajlada 0393146187
feat: Allow /openurl to force use private/non-private mode (#5149)
Examples:
 - /openurl https://twitch.tv/forsen
   with the setting "Open links in incognito/private mode" enabled
   Opens https://twitch.tv/forsen in private mode
 - /openurl https://twitch.tv/forsen
   with the setting "Open links in incognito/private mode" disabled
   Opens https://twitch.tv/forsen in normal mode
 - /openurl https://twitch.tv/forsen --private
   with the setting "Open links in incognito/private mode" disabled
   Opens https://twitch.tv/forsen in private mode
 - /openurl https://twitch.tv/forsen --no-private
   with the setting "Open links in incognito/private mode" enabled
   Opens https://twitch.tv/forsen in normal mode
2024-02-03 11:39:05 +00:00
nerix f2eabacda1
fix: use neutral or username color for reply messages (#5145) 2024-02-03 10:25:16 +01:00
pajlada ab7e6e0281
fix: Twitch global emotes not loading (#5144) 2024-02-02 14:28:27 +00:00
nerix 954e19817c
fix: more MSVC warnings (#5137) 2024-01-30 17:28:36 +01:00
nerix 36ef8fb99d
fix: support captures in ignores (#5126) 2024-01-27 15:46:11 +01:00
nerix c32ee8e5b5
feat: add system theme on Qt 6.5 and up (#5118)
* feat: add system theme on Qt 6.5

* chroe: add changelog entry

* refactor: add separate settings

* fix: qt 5

* Update changelog entry

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-27 10:53:19 +00:00
Mm2PL 7d7f1b3bea
Add support for input.text in commands run with hotkeys (#5130) 2024-01-26 22:25:11 +00:00
nerix 5cd4c51f07
chore: specialize Atomic<std::shared_ptr<T>> (#5133) 2024-01-26 21:55:30 +01:00
nerix 7604d7ea4a
perf: add signal to invalidate buffers without doing layout (#5123) 2024-01-24 18:13:31 +01:00
pajlada 5628605de4
refactor: Move Emotes to Application (#5120) 2024-01-21 13:20:21 +00:00
pajlada 65d3e73c5d
refactor: mini reorganization of FfzEmotes.cpp (#5117) 2024-01-21 11:28:20 +00:00
nerix 075a7c5af0
Chatters from recent-messages are now tab-completable (#5116) 2024-01-21 10:57:14 +00:00
pajlada 84a61fdad2
refactor: remove ColorProvider::setColor (#5112)
We now either:
1) Rely on the setting updating the color
2) Use ColorProvider::color to set the underlying color
2024-01-20 14:51:13 +00:00
nerix 7951af6104
feat: add command line argument to select/add tab with a channel (#5111) 2024-01-20 12:20:40 +00:00
pajlada acee654bd2
fix: badge highlights not immediately updating color (#5110) 2024-01-20 11:56:09 +00:00
pajlada 97702e0a1f
refactor: make Application::emotes private (#5109) 2024-01-20 10:49:32 +00:00
pajlada 4380ef8c5f
refactor: Remove most raw accesses into Application (#5104) 2024-01-19 17:59:55 +01:00
pajlada 326a402710
refactor: Make ChatterinoBadges less of a singleton (#5103) 2024-01-19 17:25:52 +01:00
nerix 5bf1a5a7dd
fix: ignore channel name when copying message (#5106)
Fixes #5101
2024-01-19 13:11:25 +01:00
nerix 4f2ca3b174
fix: assert for GUI thread in getters instead of get(I)App (#5102) 2024-01-18 19:50:57 +00:00
pajlada 11838c8e16
refactor: Move TwitchBadges to Application (#5096)
* refactor: Move TwitchBadges to Application

* refactor: Use named initializers

* refactor: Use `empty()` instead of `size() > 0`

* refactor: use emplace instead of push into the callback queue
2024-01-17 23:53:10 +01:00
pajlada 7d5967c248
Use the same input padding between light & dark themes (#5095) 2024-01-17 20:34:01 +00:00
pajlada 9eeea8f203
refactor: Fix a bunch of minor things (#5094) 2024-01-17 21:05:44 +01:00
pajlada 718696db53
refactor: Un-singletonize Paths & Updates (#5092) 2024-01-16 20:56:43 +00:00
pajlada 7f935665f9
refactor: Remove the NullablePtr class (#5091) 2024-01-15 21:30:34 +00:00
pajlada 93e2bc18fa
refactor: move Network files from src/common/ to src/common/network/ (#5089) 2024-01-15 21:28:44 +01:00
pajlada 5b6675abb4
refactor: fix clang-tidy auto*, const&, and curly braces (#5083) 2024-01-14 17:54:52 +01:00
nerix 292f9b9734
fix: ignore save requests after closing all windows (#5081) 2024-01-14 12:37:03 +00:00
pajlada 13ff11ea75
refactor: SplitOverlay (#5082) 2024-01-14 13:09:07 +01:00
nerix c4c62f2796
fix: restore focus of last split when restoring (#5080) 2024-01-14 12:06:52 +01:00
fraxx 06f950a55b
Improve Streamlink documentation (#5076)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-12 15:15:42 -05:00
nerix 5c9747e08f
fix: button hover state-change not visible in some cases (#5077) 2024-01-11 23:31:33 +01:00
nerix fa5648fd9a
refactor: NetworkPrivate (#5063)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-09 00:37:15 +01:00
nerix f42ae07408
dev: Add RecentMessages benchmark (#5071)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-07 12:15:36 +00:00
nerix 78a7ebb9f9
Improve color selection and display (#5057)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-06 20:52:29 +00:00
iProdigy 693d4f401d
feat: add badges, emotes, and filters for suspicious messages (#5060)
* feat: show chat badges on suspicious user messages

* feat: display emotes in suspicious user messages

* feat: add search filters for suspicious messages

* chore: update changelog

* refactor: resolve initial nits

* fix: finish adding new filter identifier

* Comment the new message flags

* Add a list of known issues to low trust update messages

* fix: Keep shared-pointerness of the channel

Without this change, we would have the possibility of using the
TwitchChannel after the Channel itself has gone out of scope, albeit not
realistically since we just post this to a thread and parse it - there's
no networking or big delays involved. but this shows the intent better

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-06 13:22:00 +00:00
pajlada 416806bb0a
refactor: Twitch PubSub client (#5059)
* Remove unused `setAccountData` function

* Move PubSub out of TwitchIrcServer and into Application

* Add changelog entry

* fix: assert feedback

* Add PubSub::unlistenPrefix as per review suggestion

* Fix tests

* quit pubsub on exit

might conflict with exit removal, so can be reverted but this shows it's possible

* Don't manually call stop on clients, it's called when the connection is closed

* nit: rename `mainThread` to `thread`

* Join in a thread!!!!!!!!
2024-01-06 13:18:37 +01:00
nerix e48d868e8c
fix: Avoid duplicate scale in settings dialog (#5069) 2024-01-06 11:28:06 +00:00
nerix 1192393039
fix: Avoid unnecessary NotebookTab updates (#5068)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-06 11:04:04 +00:00
pajlada 99b537ffd9
Add some tests for NotebookTab (#5070)
* EmptyApplication: Add asserts to rest of getters (except for getSeventvAPI)

* Theme: make getTheme call getIApp()->getThemes() instead

this allows it to be used in tests
realistically this should be deprecated & users of it should just call
getIApp()->getThemes() directly

* Use getIApp() instead of getApp() in a few places
2024-01-06 11:42:45 +01:00
fraxx 4a0ef08a00
Added missing periods at mod-related messages and some system messages (#5061)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-03 12:24:23 +01:00
pajlada 65b1ed312c
refactor: Logging (chat logger) (#5058)
It's no longer a singleton

It's now a unique_ptr that dies together with the Application

* Add getChatLogger to EmptyApplication

* unrelated change: Access Application::instance statically

* fix logging init order

* Add changelog entry
2023-12-31 12:51:40 +00:00
iProdigy 036a5f3f21
feat: show restricted chats and suspicious treatment updates (#5056)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-12-31 10:44:55 +00:00
Mm2PL 69a54d944d
Autogenerate docs/plugin-meta.lua (#5055) 2023-12-30 10:26:19 +00:00
nerix 9a2c27d258
Allow customization of whisper colors in settings (#5053) 2023-12-29 20:52:35 +00:00
pajlada d085ab578f
refactor: Make Args less of a singleton (#5041)
This means it's no longer a singleton, and its lifetime is bound to our application.
This felt like a good small experiment to see how its changes would look
if we did this.
As a shortcut, `getApp` that is already a mega singleton keeps a
reference to Args, this means places that are a bit more difficult to
inject into call `getApp()->getArgs()` just like other things are
accessed.
2023-12-29 15:40:31 +01:00
nerix c65ebd26bd
fix: non-native drag on Windows (#5051) 2023-12-29 15:10:56 +01:00
nerix d84779f127
fix: some buttons triggering when releasing mouse outside (#5052)
Examples of buttons fixed with this: Usercard profile picture & split header mod mode button
2023-12-29 14:20:07 +01:00
nerix d0d240136e
fix: Add check for tall messages (#5045) 2023-12-27 16:50:04 +01:00
nerix 9612eac966
perf: Only update regions with animated elements (#5043) 2023-12-27 01:12:14 +01:00
iProdigy eb12cfa50b
feat: add sound and flash alert for automod caught messages (#5026)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-25 23:17:44 +00:00
nerix 1006bf955a
perf: skip update from GIF timer if no animated elements are shown (#5042) 2023-12-25 19:04:46 +00:00
nerix 485fc5cdb4
fix: Tooltip parenting on Windows (#5040)
Fixes #5019
2023-12-25 17:17:25 +00:00
nerix 25add89b14
feat: Add crash recovery on Windows (#5012) 2023-12-24 15:38:58 +01:00
nerix d105a68dba
Allow ChannelViews without a Split (#4747) 2023-12-17 21:49:37 +01:00
pajlada 269e7a07b4
chore: Unify .clang-format file (#5037)
* chore: Unify all .clang-format files in the root dir

* Update `scripts/check-format.sh` to include all source dirs

* Add changelog entry
2023-12-17 13:50:42 +00:00
pajlada 0395b692e4
fix: ReplyThreadPopup now requires a split as its parent (#5036)
Co-authored-by: Nerixyz <nerixdev@outlook.de>
2023-12-17 13:16:40 +00:00
pajlada aa11a24163
fix: UserInfoPopup now requires a split as its parent (#5034)
Co-authored-by: Nerixyz <nerixdev@outlook.de>
2023-12-17 11:53:06 +00:00
Herman Stornes b78b57b454
Fixes to ctrl+backspace behavior (#5013) 2023-12-16 13:40:05 +00:00
iProdigy e75ce5db54
fix: request more historical messages on wake (#5018) 2023-12-16 12:38:35 +00:00
Mm2PL 5f8c4c6b66
BREAKING: Replace custom import() with normal Lua require(). (#5014)
* Use require() instead of a custom import()

* Also search relative to the current file

* Update documentation
2023-12-16 12:16:54 +00:00
iProdigy bbf75516ed
fix: show user message on watch streak notice (#5029) 2023-12-16 11:48:32 +00:00
nerix 66f4480371
fix: Fixed some compiler warnings (#5028)
* fix(C4101): unreferenced local variable

* fix(C4189): variable initialized but not referenced

* fix(C4305): narrowing from double to float

* fix(C4457): declaration hiding function parameter

* fix(C4456): shadowing declaration

* fix(C4996): remove deprecations

* chore: add changelog entry

* fix: Remove more unused variables

* fix: removed unused lambda captures

* Update changelog entry

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-16 11:24:28 +00:00
Mm2PL fd4cac2c2c
Add a new completion API for experimental plugins feature. (#5000)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-10 13:41:05 +00:00
pajlada e4258160cd
Fixed "Yes, don't ask again" image uploader prompt not working on macOS (#5011) 2023-12-10 13:28:31 +01:00
iProdigy 13dc306506
perf: query fewer historical messages on reconnects (#5001)
Co-authored-by: Ruben Anders <ruben.anders@robotty.de>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-12-09 19:46:30 +01:00
Mm2PL 401e097d62
Hide the Usercard button in the User Info Popup in special channels (#4972) 2023-12-09 12:21:00 +00:00
smc fec8f8c49f
Fix missing parent of tooltips for Wayland (#4998)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-09 11:28:33 +00:00
Mm2PL c3d3903b6f
feat: add --safe-mode command line option (#4985)
This ensures the settings button isn't hidden, and disables plugins from being loaded to make sure the user can always recover from messing things up
2023-12-05 17:37:42 +00:00
iProdigy 44abe6b487
feat: add channel for messages caught by AutoMod (#4986)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-03 22:07:30 +00:00
nerix 812186dc4c
Return correct hit-test values for title bar buttons on Windows (#4994)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-12-03 13:41:33 +00:00
pajlada 0fd4e8ffd6
fix: typo in debug log for hotkeys (#4997) 2023-12-02 12:35:55 +00:00
nerix c4c94473ae
Do bounds-checking on more windows (#4797)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-12-02 12:56:03 +01:00
pajlada e327ed4166
Update magic_enum from v0.9.3 to v0.9.5 (#4992)
* Fix include path for magic enum
* Update .clang-format to ensure magic enum is caught as a third party library
2023-12-01 15:03:04 +01:00
Mm2PL 6d02bb7304
Make emote completion a lot smarter (#4987) 2023-11-28 10:06:35 +00:00
pajlada a240797b68
Add support for sound backends & some miniaudio changes (#4978)
Miniaudio now runs everything in a separate audio thread - this uses boost::asio's io_context.
Our miniaudio implementation is now also much simplified - it does not use its own resource manager or device. This might end up being stupid if sounds don't work after changing output device or locking or w/e
I've made the sound controller into an interface, meaning we can support multiple sound backends in Chatterino. I've added a Null sound backend that disables all sound. A QMediaPlayer or QSoundEffect or Qt backend could be added.
Miniaudio might idle & disable the device now too, not sure

I've added some unrelated changes in the form of a new setting type, and a new setting page helper function for it, which will hopefully make adding new enum settings easier in the future.
This setting stores its value as a string instead of an int, and uses magic_enum to convert between that string value and its enum value.
2023-11-26 22:06:12 +01:00
pajlada 1f09035bfb
refactor: common/Credentials (#4979)
Use full path in includes
Sort includes
Move anon namespace out of chatterino namespace
Use auto * where possible
Disable convert-member-function-to-static check for all member functions
Don't use else after return
Removed empty constructor
Replace use of `boost::variant` with `std::variant`

Co-authored-by: nerix <nerixdev@outlook.de>
2023-11-26 18:38:31 +00:00
pajlada 5b741a8eb6
refactor: Remove Emoji's EmojiMap with a vector (#4980) 2023-11-26 18:17:58 +00:00
nerix e8673fc52a
fix: deadlock and use-after-free in tests (#4981)
* fix: use-after-free in settings

* refactor: put seventv api into a singleton

* chore: add changelog entry

* Add warning for when the 7TV load fails
2023-11-26 15:54:19 +00:00
nerix 854032fce9
fix: Only display spaces between words in reply context (#4977) 2023-11-26 11:15:35 +01:00
Mm2PL 1a685d7bd0
Finish renaming Viewer list to Chatter list (#4974) 2023-11-20 17:59:04 +00:00
Mm2PL fbc8aacabe
Refactored the Image Uploader feature. (#4971)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-11-19 11:05:30 +00:00
kornes 0bdcaae5d1
Fix: dont select mod buttons at triple click (#4961) 2023-11-18 11:39:10 +00:00
nerix 3d9db1d528
refactor: Ignores and Replacements (#4965)
Fixes a freeze from a bad regex in _Ignores_
Fixes some emotes not appearing when using _Ignores_
Fixes lookahead/-behind not working in _Ignores_
2023-11-17 17:39:45 +01:00
Mm2PL d9cdc88061
Remove unused parseMessage function (#4968) 2023-11-17 14:46:35 +01:00
nerix 6faf63c5c4
refactor: Remove Outcome from network requests (#4959) 2023-11-12 14:51:51 +01:00
pajlada 95620e6e10
fix: Split input sometimes not accepting focus (#4958) 2023-11-11 10:58:20 +00:00
pajlada 244efaa0a9
fix: /banid and /ban id: performing duplicate bans (#4957) 2023-11-10 18:46:28 +00:00
pajlada 423829be43
feat: /unban and /untimeout by id (#4956) 2023-11-10 19:18:20 +01:00
kornes c8e03b4ad7
Dont invalidate paint buffer when selecting (#4911) 2023-11-08 21:19:18 +00:00
pajlada fcc5f4b3df
feat: Allow id: prefix in /ban and /timeout (#4945)
ban example: `/ban id:70948394`, equivalent to `/banid 70948394`
timeout example: `/timeout id:70948394 10 xd`
2023-11-08 21:42:06 +01:00
pajlada f89642ec66
refactor: Move all commands to their own files (#4946) 2023-11-08 18:57:09 +01:00
iProdigy d40b0a6c1d
fix: avoid reward redemption crash via buffer refactor (#4949)
Co-authored-by: nerix <nero.9@hotmail.de>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-11-08 18:14:48 +01:00
Mm2PL f943f70634
Add support for opening usercards by ID (#4934)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-11-06 20:42:24 +01:00
iProdigy 5209e47df1
Improve reply popup after thread update (#4923)
Co-authored-by: nerix <nero.9@hotmail.de>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-11-05 16:25:26 +00:00
iProdigy 9dd83b040b
feat: /reply command now replies to the latest message of the user (#4919)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-11-05 16:30:15 +01:00
pajlada 1d6c9ed279
feat: forward logging from miniaudio (#4836)
These logs are posted to the `chatterino.sound` category
miniaudio debug -> debug
miniaudio info -> debug
miniaudio warning -> warning
miniaudio error -> warning
2023-11-05 10:51:57 +00:00
nerix 7d145e3577
Disable clickable sections in tables (#4913) 2023-11-04 18:42:13 +00:00
nerix 5325c7b826
Fix tooltips appearing too large and/or away from the cursor (#4920) 2023-11-04 18:13:34 +00:00
Alex Baines 879a63e6f3
Support using follower emotes outside of channel if subbed (#4922)
If we also have a subscriber emote set for a channel, then don't treat
a follower emote set as local to that channel.

Co-authored-by: iProdigy <8106344+iProdigy@users.noreply.github.com>
2023-11-04 17:45:18 +00:00
pajlada e4c46355be
refactor: move ban/banid/timeout to their own file (#4938) 2023-11-04 16:26:58 +00:00
pajlada f8b239899a
refactor: KeyboardSettingsPage (#4937) 2023-11-04 10:56:31 +00:00
kornes b3ed3285ee
feat: Add VERSIONINFO resource for windows (#4912) 2023-11-03 18:19:50 +01:00
pajlada 4e63a1b6ec
refactor: Message (#4915)
* Helix: Remove static from anon namespace

* Message: Remove empty anon namespace

* Message: Remove else after return

* Message: Avoid repeating type in return

* Message: Remove ScrollbarHighlight alias

* Message: Remove unused includes

* AttachedWindow: Remove unused include
2023-11-02 14:48:12 +00:00
Mm2PL 03b32bffc8
Bugfix: Fixed a crash when clicking More messages below button in a usercard and closing it quickly. (#4933) 2023-11-02 12:12:52 +00:00
pajlada 56346874e1
ci: Use clang-format 16 (#4929) 2023-10-31 17:24:47 +00:00
pajlada f4726ed7a8
refactor: IrcMessageHandler (#4927) 2023-10-31 17:47:56 +01:00
pajlada 7efe58cca9
refactor: ChannelView (#4926)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-10-31 14:54:14 +01:00
pajlada 25c776cfff
refactor: FilterParser (#4925)
* Make explainIllType anonymous/static
* Comment constructor
2023-10-29 20:14:49 +00:00
nerix c811e2d991
refactor: Change lifetime of context menus (#4924) 2023-10-29 19:24:38 +00:00
nerix 7ecbfa0cdb
refactor: debug count and popup (#4921)
* Moved implementation of the methods to the `cpp` file.
* Added `DebugCount::Flag(s)` and `DebugCount::configure(name, flags)`.
* Moved from `QMap` to `std::map` (order is important here).
* Used `QStringBuilder` for concatenations.
* Used `QLocale` for formatting (adds separators).
* Added `DebugCount::Flag::DataSize` for data sizes in bytes (and fixed language to English).
* Used `DataSize` for image sizes (maybe this should be moved somewhere else?).
* Added copy button to popup.
* Fixed Image usage reporting being eight times too large (could be another PR, but honestly it's four characters).
2023-10-28 21:17:32 +02:00
pajlada 5c0219c245
refactor: Use override instead of virtual where possible (#4917) 2023-10-25 18:13:48 +02:00
nerix fcb6eff8cc
Remove direct dependency on Qt 5 compatibility module (#4906) 2023-10-23 21:28:02 +02:00
kornes 12808d3154
refactor: simplify double click selection (#4898) 2023-10-17 13:38:38 +02:00
nerix b975900043
refactor: Toast (#4899)
* Fixes a bug where avatars weren't loaded on fresh installations of Chatterino.
* Avatars now update every two weeks.
* Removes misleading `DownlaodManager` (now part of `Toasts.cpp`).
* Refactors usage of WinToast to be easier to read.
* Added version to AUMI.
* Removes manual `QString` → `std::wstring` conversions.
* Removes uses of implicit ASCII casts in `Toasts.cpp`, meaning it can be compiled with `QT_NO_CAST_FROM_ASCII`.
2023-10-17 01:50:18 +00:00
pajlada ab3b2d8515
Add some more filter tests (#4897)
This changes the `make coverage` function to use `gcovr` instead of `lcov`, and to have it generate an html file directly at `coverage/index.html` under the build directory

The only thing this changes, other than adding tests, is making the `Expression` class pure virtual. Every derived class should implement each of the functions
2023-10-14 10:41:10 +02:00
kornes ccaedc3987
perf: reduce repaints amount caused by selection (#4889)
Co-authored-by: nerix <nero.9@hotmail.de>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-10-13 17:19:52 +00:00
dependabot[bot] cbc2d3d683
Bump lib/WinToast from 5e441fd to 821c481 (#4894)
This also changes the build method from a custom FindPackage solution to using their cmake file

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Co-authored-by: nerix <nero.9@hotmail.de>
2023-10-13 18:49:12 +02:00
pajlada 9f23c8562a
Test filters context map & message builder (#4886) 2023-10-13 15:41:23 +00:00
Daniel Sage b85d666b32
fix: Remove tab completion caching of source (#4893) 2023-10-13 09:43:16 +00:00
Daniel Sage 653a14c76b
fix: Don't use QCompleter prefix filter (#4855)
* Invalidate tab completion model when settings change

* Remove true culprit

* Update CHANGELOG.md

* Remove QCompleter setFilterMode call

---------

Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-10-13 11:22:48 +02:00
pajlada fec45889a8
Replace boost::optional with std::optional (#4877) 2023-10-08 16:50:48 +00:00
nerix fe4d6121a2
Display all parsed elements when parsing emojis in replies (#4875) 2023-10-08 10:09:42 +00:00
nerix 4db93bf1da
Adjust DontFocus window flags on Windows and macOS (#4876) 2023-10-08 00:03:14 +02:00
pajlada 774eaa14ce
Fix emoji unified/non-qualified version for sending & parsing (#4840)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-10-07 10:21:30 +00:00
kornes ab4a0c054a
Update vcpkg to Qt6 (#4872)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-10-07 09:09:58 +00:00
nerix 752825793a
Ignore invisible widgets when hit testing (#4873)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-10-06 21:26:25 +00:00
kornes 7c8cabaa42
Fix websocketpp depending on boost::random (#4869)
Co-authored-by: nerix <nero.9@hotmail.de>
2023-10-05 10:11:28 +00:00
Christian 5d5d265ae0
Add cmake flag to use system-provided miniaudio (#4867)
Example usage: `cmake -DUSE_SYSTEM_MINIAUDIO=ON ..`
2023-10-04 13:38:53 +00:00
pajlada 38a7ce6954
Fix qtkeychain include for Qt6 users (#4863) 2023-10-03 15:59:34 +00:00
Patrick Klein 5b17ae3f7e
Implement compile-time flag to disable automatic update checks. (#4854)
Usage: `cmake -DCHATTERINO_UPDATER=OFF ..`

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2023-10-02 11:43:20 +02:00
Daniel Sage 4bb196c644
fix: Fix username tab completion without @ (#4853) 2023-10-01 09:39:18 +00:00
pajlada 467e36767c
Update Nightly to 2.4.6 and get qt6-related-changes from 2.4.6 (#4856)
* Update Nightly to 2.4.6 and get qt6-related-changes from 2.4.6

* always enable precompiled headers on windows
2023-10-01 11:19:26 +02:00
nerix 2fc7fdd91a
Fix empty page added when showing OOB dialog (#4849) 2023-10-01 06:40:34 +00:00
GongBingWong ad8f960a8e
Fix to interpret logger channel names as lowercase (#4848)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-10-01 05:56:03 +00:00
nerix 916427a612
Fix flickering when running with Direct2D (#4851) 2023-10-01 07:13:37 +02:00
Daniel Sage 4d8b62364d
fix: Commands now completable when not starting with / (#4846)
* Add commands to completable inputs when no prefix
2023-09-30 11:06:16 +00:00
nerix 783c7530f3
Allow any window to be bounds-checked (#4802)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-24 13:32:43 +00:00
Daniel Sage 37009e8e6b
Consolidate input completion code in preparation for advanced completion strategies (#4639)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-24 12:17:17 +00:00
pajlada 06eb30a50a
fix: double margin (#4839)
order of the QMargins class differed from the old custom Margins class

Fixes #4838
2023-09-23 21:14:53 +00:00
nerix 6860c7007e
Fix selection rendering (#4830)
The rendering of selections was not aligned to the actual selection that took place for newlines at the end of messages, if they were the only part that was selected of that message.

In addition to that fix, we've already refactored the MessageLayoutContainer to try to make it a little bit more sane to work with in the future.

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-23 15:09:56 +00:00
Brian c71e91200a
streamlink: trim custom paths (#4834)
this makes sure no spaces are accidentally left in the custom path

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-23 08:20:05 +00:00
Felanbird 89b915bad1
Mention filters in the note for features that nicknames don't work with (#4826) 2023-09-18 08:52:08 +02:00
pajlada e6df652a4f
fix: QuickSwitcherPopup now pops up in the selected window (#4819) 2023-09-17 21:52:17 +00:00
nerix 3265df7661
Fixed too much text being copied when copying chat messages (#4812)
* fix: selection copying too much

* chore: add changelog entry

* Update changelog entry

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-17 12:37:02 +00:00
nerix dc62e8248b
Add (invisible) resize handle to frameless usercards and reply threads (#4795)
* feat: add resize handle to usercards&reply threads

* Add changelog entry

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-09-17 11:27:20 +00:00
nerix f13a3b9685
Cleanup Windows helpers (#4820)
* fix: clipboard exception

* chore: cleanup windows helpers
2023-09-17 10:20:26 +00:00
Mm2PL d752ce86fd
Add WindowManager::getLastSelectedWindow() to replace getMainWindow() (#4816)
1. No longer can return a nullptr if no window was ever focused
  2. When closing a window, it will no longer return an invalid pointer
2023-09-16 20:53:44 +00:00
qooq69 38c994be49
Fixed Usercard Popup not floating on tiling WMs on Linux (#3511) 2023-09-16 22:15:01 +02:00
pajlada 8fe3af3522
Fix signal connection nodiscard warnings (#4818) 2023-09-16 11:52:51 +00:00
nerix 2d5f078306
Style account switcher to match the current theme (#4817) 2023-09-15 18:44:36 +02:00
nerix 337b043bc3
Fix input in reply thread popup losing focus when dragging (#4815) 2023-09-13 20:38:32 +00:00
pajlada 9ca2578c1e
Refactor Image & Image's Frames (#4773) 2023-09-13 19:26:45 +00:00
nerix 283ede86ad
Only layout visible ChannelViews (#4811) 2023-09-10 17:08:13 +02:00
Daniel Sage 1b9ee939bb
Select correct notebook tab after closing while filtered (#4770) 2023-09-10 10:38:59 +00:00
pajlada 813d96867b
Migrate to the new Get Channel Followers Helix endpoint, fixing follower count not showing up in usercards (#4809) 2023-09-09 12:51:45 +00:00
nerix 515c40f857
Use QFontMetrics::elidedText over manual implementation (#4807) 2023-09-09 12:09:25 +00:00