Commit graph

346 commits

Author SHA1 Message Date
nerix
4b40b9a310
Define Git and date constants in executables only (#4681) 2023-06-17 19:43:39 +02:00
nerix
f0c4eb7caa
Fix undefined behaviour when loading non-existant credentials (#4674)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-10 10:11:05 +00:00
Arne
6681ed5bfb
Remove QObjectRef in favor of QPointer (#4666)
* replace usage of QObjectRef with QPointer

* delete QObjectRef class

* inlucde QPointer header

* Add changelog entry

* use isNull() instead of ! data()

---------

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-06-04 11:24:04 +00:00
Daniel Sage
51f2c4d1c0
Add input completion test suite (#4644)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-21 10:10:49 +00:00
nerix
ce47d27d41
Refactor/Cleanup NetworkRequest and Related Code (#4633)
Cleanup unused code (Twitch v5)
Add json methods that simplify sending JSON. This also sets the Accepts header, since here, when JSON is sent, only JSON is accepted as a response (this is only done in Helix).
Clarify helix request creations
Cleaned some clang-tidy suggestions in Network{Request,Private}
2023-05-16 17:28:20 +02:00
pajlada
29a146278c
Release v2.4.4 (#4631) 2023-05-13 10:12:26 -04:00
pajlada
caa0220ce6
Add a Send button that can be used to send messages (#4607)
This button is disabled by default, and can be enabled with the "Show send message button" setting.
2023-05-07 13:18:07 +00:00
nerix
280b6d934e
Parse Domains Starting With http (#4598)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-05-07 12:15:36 +00:00
nerix
bcd8028132
Improve error messages when updater fails a download (#4594)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-02 21:22:04 +00:00
pajlada
379cc5761c
Release v2.4.3 (#4584) 2023-05-01 14:48:24 +02:00
nerix
9c9fa86c45
Refactor LinkParser (#4576) 2023-04-23 14:56:39 +00:00
nerix
95e7426283
Remove Redundant Parsing of Links (#4507)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-22 22:58:37 +00:00
nerix
6d2605d4ca
Fix Qt6 crash when dragging rows in table views (#4567) 2023-04-21 18:25:33 +00:00
nerix
4e3433e966
Store Themes as JSON files (#4471)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-08 09:05:55 +00:00
Mm2PL
5ba809804e
Add basic lua scripting capabilities (#4341)
The scripting capabilities is locked behind a cmake flag, and is not enabled by default.

Co-authored-by: nerix <nerixdev@outlook.de>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-04-02 15:31:53 +02:00
kornes
b209c50b01
Fix channel search when custom scrollback limit is used (#4496) 2023-04-01 12:34:34 +00:00
nerix
a777a227d4
Allow each layered image to retain its own flags (#4460)
This fixes an issue where context-menu items for zero-width emotes displayed the wrong provider.
2023-03-19 11:26:30 +01:00
llyyr
3809fd1075
Only log debug messages when NDEBUG is not defined (#4442) 2023-03-15 14:01:45 +00:00
Felanbird
c8204ef7e4
Release v2.4.2 (#4433)
* Update `CMakeLists.txt`

* Update `resources/com.chatterino.chatterino.appdata.xml`

* Update `src/common/Version.hpp`

* Update `CHANGELOG.md`

This includes changelog re-ordering changes that would normally be in a seperate PR, but this release will be an exception to that rule
2023-03-06 09:13:25 +01:00
pajlada
c95a65c153
Fix Qt6 building (#4393) 2023-02-19 20:19:18 +01:00
pajlada
5ed4a21d6a
Release v2.4.1 (#4390) 2023-02-19 12:14:54 +01:00
nerix
e377c30192
Add Crashpad Support on Windows (#4351)
* 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
2023-02-12 20:36:58 +01:00
nerix
c9a9e44e1f
Add HTTP & SOCKS5 proxy support (#4321)
This can be configured using the `CHATTERINO2_PROXY_URL` environment variable.
The behaviour is similar to curl's CURLOPT_PROXY
2023-02-11 23:16:51 +00:00
pajlada
4958d08036
Change sound backend from Qt to miniaudio (#4334)
Thanks Greenlandicsmiley, Nerixyz, Yoitsu, and helmak for helping debug & test this

* Remove QMediaPlayer includes

* Prefer local path when generating the sound path

* Update changelog entry number

* Disable pitch & spatialization control
2023-01-29 10:36:25 +01:00
pajlada
bf5a5b839c
Fix version checking (#4329)
https://github.com/Neargye/semver

* Use semver library for version downgrade checking

* Add test validating our current version is valid semver
2023-01-26 19:22:48 +01:00
pajlada
5ad8ca791c
Fix various small warnings (#4296)
* Fix `inconsistent-missing-override` warnings

* Fix `final-dtor-non-final-class` warnings

* Fix `ambiguous-reversed-operator` warnings
2023-01-08 14:32:52 +01:00
nerix
1043f9f803
Remove Unnecessary Includes in Headers (#4275)
* refactor: remove unnecessary includes in headers

* fix: formatting

* chore: changelog

* fix: scrollbar

* fix: suggestions and old appbase remains

* fix: suggestion

* fix: missing Qt forward declarations

* fix: another qt include

* fix: includes for precompiled-headers=off

* Add missing `<memory>` includes

* Add missing `#pragma once`

* Fix tests

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-31 14:41:01 +00:00
nerix
86e71c8bd9
Migrate to C++ 20 & switch to websocketpp develop branch (#4252)
* feat: c++ 20

* fix: c++ 20 deprecations

* fix(msvc): warnings

* chore: add changelog entry

* fix: formatting

* Update websocketpp to the `develop` branch

* Specify other template type in FlagsEnum != operator

* Remove the user of simple template ids in our websocketpp template class

Also standardizes the file a bit by using nested namespaces, using
pragma once

* fix: turn `MAGIC_MESSAGE_SUFFIX` into a `QString`

* hacky unhacky hacky const char hack

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-24 11:56:11 +00:00
pajlada
a715b1ffff
Clean up TwitchAccount emote stuff (#4243)
* Remove unused TwitchAccount FollowResult enum

* Remove unused TwitchEmoteSetResolverResponse struct

* Remove unused and unimplemented `getEmoteSetBatches` function definition

* Remove unused `loadEmoteSetData` and `staticEmoteSets` from
TwitchAccount

* Remove forward declaration of TwitchAccount in TwitchAccountManager

* Clean up IgnorePhrase includes

* add missing newline in pubsubmanager.cpp
2022-12-18 14:36:39 +00:00
pajlada
77852f0e29
Clean up CompletionModel (#4240)
* Refactor CompletionModel

Do some clang-tidy cleanup

* Use a shared mutex for CompletionModel's items mutex
2022-12-18 13:51:36 +01:00
pajlada
a0f9310062
Release v2.4.0 (#4200)
* Update make-release.md documentation

* Update changelog

* Update `com.chatterino.chatterino.appdata.xml` version

* Update `Version.hpp`

* Lint make-release.md

* Lint again
2022-11-28 21:12:06 +01: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
fourtf
82797898c1 bump to 2.4.0-beta 2022-11-20 20:51:30 +01:00
nerix
39f7d8ac4c
feat: Live Emote Updates for 7TV (#4090)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-11-13 12:07:41 +01:00
pajlada
aac9ea53d0
Harden emote parsing (#3885) 2022-11-05 10:04:35 +00:00
nerix
ff684fc7ed
feat: Basic PubSub Manager for Live Emote Updates (#4087)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-29 14:01:01 +02: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
pajlada
03051bf0bd
Bump MessageFlag underlying type to be 64-bit (#4042) 2022-10-03 14:55:46 -04:00
Marko
f8f9903892
Migrate /raid to Helix. (#4029)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-10-02 15:27:55 +02:00
pajlada
5655a7d718
Include network response body in errors (#3987) 2022-09-11 12:32:08 +00:00
Daniel Sage
33db006635
Fix crash when adding recent messages to empty Channel (#3932)
* Fix crash when adding recent messages to empty Channel

* Update CHANGELOG.md
2022-08-20 11:01:16 +02:00
nerix
8ea5b49c52
fix: Mentions of "You" in timeouts will link to your own user now instead of the user "You" (#3922)
* fix: link to the current user in timeouts

* fix: `readability-suspicious-call-argument`

* docs: add changelog entry

* fix: link both users when replacing timeout

* Update changelog entry

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-08-14 15:34:32 +02:00
Mm2PL
756bd90b17
Fix weird IRC channels causing crashes due to bad cast (#3918) 2022-08-11 18:29:04 +02: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
Leon Richardt
2dd37ca210
chore: warn when parsing environment variable fails (#3904)
* chore: warn when parsing environment variable fails

* doc: update changelog
2022-08-06 13:38:10 +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
Mm2PL
bbadbc4b33
Add logging to experimental IRC (#2996)
Co-authored-by: xHeaveny <69117321+xHeaveny@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-07-02 09:42:28 +00:00
pajlada
6599009e79
Fix split focusing being broken in certain circumstances when the "Show input when it's empty" setting was disabled (#3838)
Co-authored-by: Kasia <zneix@zneix.eu>
2022-06-26 16:53:09 +00: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
pajlada
7ccf60111d
Overhaul highlight system (#3399)
Checks have been moved into a Controller allowing for easier tests.
2022-06-05 15:40:57 +00:00