* feat: crashpad on windows
* feat: inline it
* feat: more crashpad
* chore: remove qBreakpad
* fix: add mention to crashpad
* refactor: version string
* feat: add crashpad module
* refactor: build crashpad from source
* fix: minor adjustments
* chore: add changelog entry
* fix: formatting and include
* fix: format
* build: use flags similar to release profile
* ci: build with crashpad on windows
* ci: recurse submodules
* ci: always include crashpad
* fix: try 7z
for some reason zstd just doesn't run
* fix: wrong path for symbols
* fix: copy
pls don't build
* ci: use new cache key
* fix: missing pragma
* ci: add workflow without crashpad
* docs: elevate changelog entry
* fix: add link to cmake issue
* fix: windows include issue
Someone (crashpad) includes Windows.h before winsock2.h
* fix: working directory
* fix: another working directory
* Removed magic numbers when checking rowIndex
* Swap from static ints to enum
* Referred enum members by enum name
* Fixed formatting
* Added highlight option for self messages
* Update CHANGELOG.md
* Made disabled by default
* Moved setting from Messages tab to Users tab
* Moved checks to HighlightController
* Set row index to 0
sillE silly me
* Update CHANGELOG.md
* Moved check outside of loop
* Improved naming and documentation on variables
* Fixed formatting
* Fix compile errors
* Update ColorProvider self message highlight color when it's changed
Use the ColorProvider self message highlight color instead of rolling
our own non-updating color
* Update changelog entry
* Remove unused `customColor` from user highlights builder
* Use explicit lambda capture
* Update comment for the color provider color
* HighlightModelHpp: Future-proof custom row enum B)
* Document UserHighlightModel color changes
* Update colorprovider comment
* Update enabled, show in mentions & color setting paths
* Rename settings from `selfMessagesHighlight` to `selfMessageHighlight`
---------
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This feature is enabled by default and can be disabled in settings with the "Enable BTTV live emotes updates" setting.
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
* Add checkbox for custom logging and table with channels to log on Logs page
* Add checkbox to enable and disable logging per channel
* Return from addMessage before logging if custom logging enabled and channel does not have logging enabled
* Use clang-format to fix formatting
* Add CHANGELOG.md entry
* Resolve PR comments
* Remove toggle for channels so any channel listed will be logged
* Move Only log channels listed below checkbox to just above table
* Fix formatting
* Re-order changelog
* ChannelLog constructor: Copy & move instead of const ref & copy
* ChannelLog::createEmpty: Curly brace initialize instead of repeating
name
* ChannelLog toString & createEmpty: nodiscard
* Use COUNT paradigm in model column
* Remove ChanneLoggingModel source file comments
* Use Column::Channel in getRowFromItem
* Rename `getItemFromRow` parameter and mark it as unused
* Curly brace initialize ChannelLog
* private & friend class the model
* Filter out channels to log using a set instead of iterating over a vector every time a message comes in
* Rename `ChannelLog::channel` member to `ChannelLog::channelName`
Also made it private
* mini comment on ChannelLog
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* Remove unused include util/Helpers.hpp
* SplitContainer::setTag fix parameter naming
* autofy/constify where possible
* More const auto ptr magicifying
* Make SplitNode::Type an enum class
* Move QuickSwitcherPopup includes from header to source file
* Remove unused DropRegion code
* use empty() instead of size() == 0
* Add curly braces everywhere
* Remove useless reinterpret_cast
It was casting Node* to Node*
* Clarify that the connect is QObject::connect
* SplitContainer::setSelected fix parameter naming
* Rename function variables to remove unneccesary underscore
Also move addSpacing parameter out of the layout function
* emplace_back where possible
* Name parameters
* Remove ineffective const from return type
* Make node getters const
* Flatten Node::releaseSplit
* Rename in-function variable to match code style
* [ACTUAL CODE CHANGE/MOVE] Move clamp logic to its own function
* name params
* applyFromDescriptorRecursively: rename node param to baseNode
* [ACTUAL CODE CHANGE/MOVE] Remove the many overloads for append/insertSplit
This utilizes the C++20 designed initializers aggregate initialization feature
* Remove unused includes
* [ACTUAL CODE CHANGE] Clean up dragging logic
There's no need to keep a pointer around to which split is being
dragged, it's already stored in the QDropEvent source()
* UNRELATED .clang-tidy: Only suggest UPPER_CASE for constant global variables
* Remove unused SplitContainer::getSplitCount function
* Use std::max in Node's clamp function
* Remove test code
* DraggedSplit.hpp: remove unused include
* Split `setDraggingSplit` into two functions, `startDraggingSplit` and `stopDraggingSplit`
This change enforces strict include grouping using IncludeCategories
In addition to adding this to the .clang-format file and applying it in the tests/src and src directories, I also did the following small changes:
In ChatterSet.hpp, I changed lrucache to a <>include
In Irc2.hpp, I change common/SignalVector.hpp to a "project-include"
In AttachedWindow.cpp, NativeMessaging.cpp, WindowsHelper.hpp, BaseWindow.cpp, and StreamerMode.cpp, I disabled clang-format for the windows-includes
In WindowDescriptors.hpp, I added the missing vector include. It was previously not needed because the include was handled by another file that was previously included first.
clang-format minimum version has been bumped, so Ubuntu version used in the check-formatting job has been bumped to 22.04 (which is the latest LTS)
* feat(helix): create response model for VIP listing
* feat(helix): stub out channel/vips request + handler
* feat(helix): parse VIPs list from data and pass to callback
* feat(helix): handle errors when getting VIP list then pass to callback
* feat(command): add barebones handler for helix-based /vips
* feat(command): provide better /vips output when user is not broadcaster
* chore(format): bulk reformat with clang-format
* chore(changelog): add entry for /vips Helix migration
* fix(helix): use correct method when calling VIP list endpoint
* fix(helix): use correct VIP list endpoint
* chore(tidy): please clang-tidy by marking parameter as unused
* feat(command): display unsorted VIP list returned from Helix API
* feat(settings): clone raid timegate settings for /vips
* feat(command): check /vips timegate setting before execution
* feat(command): handle 0 VIPs from Helix response
* feat(command): sort users alphabetically from Helix VIPs response
* fix(command): highlight users in Helix /vips output to match IRC
* fix(command): replace dynamic /vips error message with hardcoded string
* chore(comment): remove TODO comment that was DONE
* chore(format): bulk reformat using clang-format
* fix(command): send 0 VIP message after creation
* chore: apply suggestions from Felanbird
* fix(helix): change mention of user ban to VIPs in VIP list error message
* feat(helix): distinguish non-broadcaster auth error when getting VIPs
* chore(command): move handling of non-broadcaster /vips usage to API response
* chore(format): re-indent multiline string to get away from 80 char limit
* reformat
* fix tests
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
* feat: add `Go to message` action in search popup
* chore: add changelog entry
* fix: only scroll if the scrollbar is shown
* fix: go to message when view isn't focused
* feat: animate highlighted message
* fix: missing includes
* fix: order of initialization
* fix: add `ChannelView::mayContainMessage` to filter messages
* feat: add `Go to message` action in `/mentions`
* fix: ignore any mentions channel when searching for split
* feat: add `Go to message` action in reply-threads
* fix: remove redundant `source` parameter
* feat: add `Go to message` action in user-cards
* feat: add link to deleted message
* fix: set current time to 0 when starting animation
* chore: update changelog
* fix: add default case (unreachable)
* chore: removed unused variable
* fix: search in mentions
* fix: always attempt to focus split
* fix: rename `Link::MessageId` to `Link::JumpToMessage`
* fix: rename `selectAndScrollToMessage` to `scrollToMessage`
* fix: rename internal `scrollToMessage` to `scrollToMessageLayout`
* fix: deleted message link in search popup
* chore: reword explanation
* fix: use for-loop instead of `std::find_if`
* refactor: define highlight colors in `BaseTheme`
* core: replace `iff` with `if`
* fix: only return if the message found
* Reword/phrase/dot changelog entries
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
Streamer mode now automatically detects if XSplit, PRISM Live Studio, Twitch Studio, or vMix are running
Co-authored-by: Kasia <zneix@zneix.eu>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
This can be done by right-clicking the tab area or pressing the keyboard shortcut (default: Ctrl+U).
Co-authored-by: Leon Richardt <leon.richardt@gmail.com>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Fix CLI arguments not being respected. This happened due to the addition of category-based logging (--help, --version) and changes to the window loading ( --channels), respectively.
When handling --channels, I took the liberty to refactor the previous version of window description (which relied on generating JSON) to directly building the WindowLayout.
You can disable this by unchecking "Color @usernames" under `Settings -> General -> Advanced (misc.)`
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>