Commit graph

89 commits

Author SHA1 Message Date
nerix
95b1f82620
Remove Deprecated QDesktopWidget (#4287)
* fix: remove deprecated `QDesktopWidget`

* chore: add changelog entry
2023-01-07 11:41:39 +01:00
pajlada
fdb0a1582c
SplitContainer refactor (#4261)
* 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`
2022-12-25 11:09:25 +00:00
pajlada
032f290767
Sort and force grouping of includes (#4172)
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)
2022-11-27 19:32:53 +01:00
Leon Richardt
9d1b8b0a93
fix: don't parent popup windows on Windows OS (#4181)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
fix https://github.com/Chatterino/chatterino2/issues/3863
fix https://github.com/Chatterino/chatterino2/issues/4180
2022-11-22 01:15:08 +00:00
nerix
3e41b84ed7
feat: Add 7TV Emotes and Badges (#4002)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-10-16 11:22:17 +00:00
nerix
be72d73c3d
feat: add Go to message action in various places (#3953)
* 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>
2022-09-11 16:37:13 +02:00
Daniel Sage
20c974fdab
Added support for Twitch's Chat Replies (#3722)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-07-31 10:45:25 +00:00
Leon Richardt
e1b512a373
ref: unify Split popup logic (#3848)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-07-07 17:28:38 +00:00
Leon Richardt
881986d86f
fix: make popup windows have a parent per default (#3836)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-06-25 12:45:56 +00:00
Felanbird
e41a2e8408
Add newline to dontSaveSettings error (#3635)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-03-31 11:35:52 +00:00
James Upjohn
67c10fafc7
chore: replace usages of obsolete twitch struct with backing field (#3614)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-03-19 11:02:29 +00:00
Ckat
ab1211cbef
Ignore out of bounds check on tiling WMs (#3270) 2021-10-03 11:43:23 +02:00
Tal Neoran
ad4a0c28d1
Add opening tab in popup (#3082)
Co-authored-by: zneix <zneix@zneix.eu>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-08-21 12:16:00 +00:00
apa420
dcd65b5978
/live split for channels going live (#1998)
Co-authored-by: 23rd <23rd@vivaldi.net>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-05-09 14:17:04 +00:00
Paweł
c3d61ad77b
Add ability to hide Twitch Prediction badges (#2668)
We now properly categorize the Twitch `predictions` badges since they take up their own slot in Twitch web chat
2021-04-25 14:37:19 +02:00
fourtf
2db140d5af
Added x-attach-split-to-window command line arg (#2411)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-04-17 14:15:23 +00:00
fourtf
58017a7546
fix size of splits not loading properly (#2554) 2021-04-17 13:16:14 +00:00
fourtf
5a3577317d show messagebox if settings cannot be edited 2021-03-13 11:36:09 +01:00
Leon Richardt
1b75dc1e2c
fix: properly handle CLI arguments (#2368)
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.
2021-01-23 16:26:42 +01:00
Steve Wills
df722a72c1
Switch to QT Category logging (#2206)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-11-21 16:20:10 +01:00
Leon Richardt
0eed45ae67
Chore: Proper Lambda Formatting (#2167)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-08 12:02:19 +01:00
pajlada
1ee1e8837f
Use Qt's dialog where applicable (#1843) 2020-10-31 16:42:48 +01:00
Mm2PL
3ee08b9ffd
Add support FrankerFaceZ badges. (#2101)
On startup, we poll https://api.frankerfacez.com/v1/badges/ids and store the mappings of user IDs to badges for the remainder of the applications lifetime.
2020-10-25 10:36:00 +01:00
dnsge
4199a01b96 Advanced channel filters (#1748)
Adds custom channel filters complete with their own mini-language. Filters can be created in settings, and applied by clicking the three dots to open the Split menu and selecting "Set filters".
2020-10-18 15:18:20 +02:00
Paweł
d314566ab6
Argument parsing rework (#1940)
* Experimental argument handling

* Restored browser extension launch functionality

Also moved check from BrowerExtension.cpp to Args.cpp as it is more relevant there and doesn't require passing arguments to a function in another file

* Fixed formatting

* Simplified Args.cpp code, added changelog entry

* Hid crash-recovery from help

* Dont save settings if launched with --channels

* Changed parsing method to t:channel

* Code cleanup

* Changed plaform delimeter to :, platform defaults to Twitch

Co-authored-by: fourtf <tf.four@gmail.com>
2020-09-26 16:03:51 +02:00
pajlada
913193f8b5
Split up Window Layout loading into a loading and application stage (#1964)
* Split up Window Layout loading into a loading and application stage

Previously, we were creating UI elements at while we were reading the window-layout.json file.
We now read the window-layout.json file fully first, which results in a
WindowLayout struct which is built up of a list of windows with a list
of tabs with a root node which contains containers and splits.
This WindowLayout can then be applied.

This will enable PRs like #1940 to start Chatterino with Window Layouts
that aren't defined in a json file.

This commit has deprecated loading of v1 window layouts (we're now on v2). If a v1 window layout is there, it will just be ignored and Chatterino will boot up as if it did not have a window layout at all, and on save that old window layout will be gone.

* Fix compile error for mac
2020-09-19 17:14:10 +02:00
Jonas Schmitt
11b8948290
Add support for non-highlight channel point rewards (#1809) 2020-08-08 15:37:22 +02:00
fourtf
120f73db13 added additional checkbox for highlighted bits messages, fixes #1637 2020-04-18 20:05:05 +02:00
mmb L
ebfcb49e8c
Make emote popup remember last position (#1580)
* Use existing moveTo to ensure window stay within desktop geometry
2020-04-13 13:15:51 +02:00
Rasmus Karlsson
7a08d73434 Fix preview on hover not working when Animated emotes options was disabled.
Fixes #1546

This change introduces a "window timer" that runs every 100ms that we
use to update the pixmap if necessary, since there is no signal for "let
me know when this image is done loading".
2020-02-15 17:16:10 +01:00
pajlada
3c8992cac1
Remove FMT dependency (#1472)
All occurrences of log() have been replaced with qDebug()

bonus meme: remove a bunch of std::string usages in the pubsub client

Fixes #1467
2020-01-03 20:51:37 +01:00
Rasmus Karlsson
0e1f1196d6 reformat 2019-11-02 12:36:42 +01:00
fourtf
6f710823ed renamed getInstance() -> instance() for singletons 2019-10-07 22:42:34 +02:00
fourtf
431d35e528 added setting to restart on SIGSEGV 2019-09-22 15:32:36 +02:00
fourtf
3ab7362304 Merge branch 'master' into irc-support 2019-09-18 13:03:16 +02:00
fourtf
22ca20ad2a renamed TwitchServer -> TwitchIrcServer 2019-09-15 13:02:02 +02:00
fourtf
d33a8b1b3a now loads passwords for irc 2019-09-14 18:38:09 +02:00
fourtf
2a8c5e654f saving irc splits now 2019-09-11 00:10:49 +02:00
fourtf
4f356f80cf BaseWindow smol refactor 2019-09-08 21:45:46 +02:00
fourtf
4ec10e720c adjusted size of user switch popup 2019-09-08 12:43:12 +02:00
fourtf
ae20acb7ea renamed AccountSwitchPopupWidget -> AccountSwitchPopup
This has been triggering me forever
2019-09-01 14:13:44 +02:00
fourtf
19960b5d8f Fixes #1261 size on startup 2019-09-01 14:06:30 +02:00
fourtf
810acbcfcc fixed window frame for minimized and maximized windows on startup 2019-08-26 22:32:17 +02:00
fourtf
e095db87bc changed screen out of bounds detection from contains() to intersects() 2019-08-26 13:18:40 +02:00
fourtf
ea28269951 attempt to fix the tabs that sometimes get added 2019-08-26 11:26:58 +02:00
fourtf
6cb82307e6 switched std::optional to boost::optional 2019-08-25 22:58:19 +02:00
fourtf
68a96e3be8 added prompt to move windows into bounds 2019-08-25 21:24:43 +02:00
Rasmus Karlsson
27114c5154 Restore option to disable emote images
Condensed into a single option, which will disable/enable all emote and emoji images

Also moved badges into their own element
2019-06-22 14:34:54 +02:00
23rd
efec76df5b Removed unused local vars. Slightly refactored code. 2019-05-10 22:18:05 +02:00
TranRed
34f820be18 implemented fallback logic for corrupted window layout (#1039)
* fallback logic for corrupted window layout

1. before saving the window-layout a backup will created to avoid corruption due to crashes while saving

2. when starting chatterino and the window-layout file returns and empty window layout (due to corruptio) the backup will be read and the layout will be build from this data

* Update WindowManager.hpp

* used QSaveFile instead of crude custom implementation

* implemented suggested feedback from review

* proper method call

was tired and slightly drunk Kapp
2019-05-01 09:58:13 +02:00