Commit graph

1966 commits

Author SHA1 Message Date
nerix 7a70d785a4
revert: uncomment NCCALCSIZE adjustment (#5166) 2024-02-10 13:29:52 +00: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
pajlada 7fdb3841db
feat: Add "Copy message as JSON" option when shift-right-clicking a message (#5150) 2024-02-03 12:03:31 +00:00
nerix 954e19817c
fix: more MSVC warnings (#5137) 2024-01-30 17:28:36 +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 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 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 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
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 78a7ebb9f9
Improve color selection and display (#5057)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2024-01-06 20:52:29 +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
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 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
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
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
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 5b741a8eb6
refactor: Remove Emoji's EmojiMap with a vector (#4980) 2023-11-26 18:17:58 +00: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
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
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
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
pajlada f8b239899a
refactor: KeyboardSettingsPage (#4937) 2023-11-04 10:56:31 +00: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 7efe58cca9
refactor: ChannelView (#4926)
Co-authored-by: nerix <nerixdev@outlook.de>
2023-10-31 14:54:14 +01: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
kornes 12808d3154
refactor: simplify double click selection (#4898) 2023-10-17 13:38:38 +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
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 4db93bf1da
Adjust DontFocus window flags on Windows and macOS (#4876) 2023-10-08 00:03:14 +02: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
nerix 2fc7fdd91a
Fix empty page added when showing OOB dialog (#4849) 2023-10-01 06:40:34 +00:00
nerix 916427a612
Fix flickering when running with Direct2D (#4851) 2023-10-01 07:13:37 +02: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
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
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
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
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
pajlada d4558b5fe5
Fix all warnings from the cppcoreguidelines-pro-type-member-init clang-tidy check (#4426) 2023-09-09 11:11:19 +00:00
nerix af4233850d
Remove offset logic from BaseWindow::moveTo (#4798)
It's now up to each window to offset its coordinates themselves (which is good 👍 )
2023-08-28 16:38:41 +00:00
pajlada 7cb04bf58b
Remove BaseSettings & merge ConcurrentSettings (#4775) 2023-08-28 17:51:28 +02:00
Mm2PL 1e35391075
Hide AutoMod term management messages in Streamer Mode. (#4758)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-08-12 12:16:30 -04:00
Mm2PL ec0d77643f
Remove USEWEBENGINE (#4757)
This code has been sitting behind a define since 2018 (de3a490). I'm not opposed to this code coming back however in this state, it feels better to remove it.
2023-08-07 18:24:17 +00:00
Mm2PL 59160c5d04
Minor: Add missing hotkey Action for Open Player in Browser. (#4756) 2023-08-07 13:41:32 +00:00
Mm2PL 168f346c81
Remove restriction on Go To Message on system messages from search (#4614)
* Remove restriction on go to message on system messages

Fixes #4608

* changelog

* Change the changelog entry from a bugfix to minor

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-08-05 16:36:49 +00:00