Commit graph

3048 commits

Author SHA1 Message Date
Mm2PL
24c6003043
Add lua::peek for QByteArray 2023-02-04 01:20:41 +01:00
Mm2PL
3013e73e94
Move shit around, add g_load() 2023-02-03 22:14:18 +01:00
Mm2PL
ee1bb1956b
Make clang-tidy complain a little less 2023-02-02 21:32:15 +01:00
Mm2PL
9da3a33e1c
Make c2.register_command() return a boolean if it went ok 2023-02-02 14:41:54 +01:00
Mm2PL
52832b43e5
Remove libraryPermissions in favor of loading safe(ish) stdlib part 2023-02-02 14:41:25 +01:00
Mm2PL
16d2d02787
Add two missing #ifdef CHATTERINO_HAVE_PLUGINS 2023-02-02 14:02:38 +01:00
Mm2PL
c7f47df827
Add CHATTERINO_HAVE_PLUGINS define 2023-02-02 13:06:29 +01:00
Mm2PL
a61bc4d6d1
Move Plugin and PluginMeta into plugin.{c,h}pp 2023-02-01 22:42:17 +01:00
Mm2PL
3ee84ff444
Move chatterino global namespace shit into a namespace 2023-02-01 22:40:36 +01:00
Mm2PL
13d2ff870f
Move dangerous stdlib logic to PluginMeta 2023-02-01 17:30:32 +01:00
Mm2PL
cf9e5ed66c
Don't actually load disabled plugins lol 2023-02-01 17:30:09 +01:00
Mm2PL
8665d22f48
Clean up PluginsPage some more 2023-02-01 01:44:32 +01:00
Mm2PL
f534d43531
Clean up PluginsPage 2023-02-01 01:43:51 +01:00
Mm2PL
b7426fafc0
Add lua license 2023-02-01 01:41:13 +01:00
Mm2PL
2d76f3588f
Use placeholder values for PluginMeta 2023-02-01 01:19:15 +01:00
Mm2PL
d270192b97
Includes? 2023-02-01 00:04:00 +01:00
Mm2PL
31604beed3
Fix up completion for plugin commands 2023-02-01 00:03:32 +01:00
Mm2PL
03ad993ab4
Improve plugin settings 2023-02-01 00:03:09 +01:00
Mm2PL
1616db56b1
Make plugins directory a link 2023-01-31 17:22:00 +01:00
Mm2PL
50e71195b2
Add a listing of plugin commands 2023-01-31 15:55:53 +01:00
LosFarmosCTL
6516116244
fix: compilation on macOS without precompiled headers (#4348) 2023-01-31 15:48:56 +01:00
Mm2PL
dc5141dfc7
Rebuild plugin settings UI on plugin reload 2023-01-31 15:46:01 +01:00
Mm2PL
97b56f0226
"package" is also dangerous 2023-01-31 15:28:47 +01:00
Mm2PL
9bb17cf16a
please compiler overlords 2023-01-31 15:28:36 +01:00
Mm2PL
1cc849b9f7
Add a basic permission system based on lua stdlib loading 2023-01-31 15:00:46 +01:00
Mm2PL
5191f4c9eb
Add lua::humanErrorText 2023-01-31 15:00:21 +01:00
Mm2PL
d830d1c960
i hate you, msvc so fucking much 2023-01-31 13:33:07 +01:00
Mm2PL
4908efcf89
Try this way 2023-01-31 00:21:31 +01:00
Mm2PL
56c7e78f48
Add support for reloading plugins 2023-01-30 23:55:16 +01:00
Mm2PL
03de6869c4
Add a Plugins settings page 2023-01-30 23:22:14 +01:00
Mm2PL
cc0aa1aa82
Code cleanup 2023-01-30 22:31:59 +01:00
Mm2PL
ca0bfb1900
Add a StackIdx type alias 2023-01-30 22:31:42 +01:00
Mm2PL
082420b94a
Add more push/peek/pop functions to LuaUtilities 2023-01-30 22:21:09 +01:00
Mm2PL
602b9a738c
Clean up CMakeLists 2023-01-30 21:21:21 +01:00
Mm2PL
b4a20e15c0
Move pushing stuff to lua stack to LuaUtilities 2023-01-30 21:19:29 +01:00
Mm2PL
7312af1bec
Remove lualol command 2023-01-30 20:47:16 +01:00
Mm2PL
82593a585b
Add luaC2SendMsg 2023-01-30 20:40:40 +01:00
Mm2PL
714f961f59
Add error handling to command execution 2023-01-30 20:40:30 +01:00
Mm2PL
962d417613
Add support for custom commands 2023-01-30 19:49:21 +01:00
Mm2PL
74c6948a58
Forward decl 2023-01-30 18:04:07 +01:00
Mm2PL
5856933f9e
Use recommended way to include lua 2023-01-30 17:07:56 +01:00
Mm2PL
82da817835
Frankenstein some more 2023-01-30 17:00:30 +01:00
Mm2PL
a6a84c89be
Try to make it compile xd 2023-01-30 15:02:42 +01:00
Auro
d6ccab2cdf
Added option to highlight your own messages (#3833)
* 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>
2023-01-30 11:40:50 +01:00
Mm2PL
b329fca547
Make lualol test command use callEveryWithArgs 2023-01-29 23:00:49 +01:00
Mm2PL
f5f0a3301f
Add callEveryWithArgs 2023-01-29 22:58:31 +01:00
Mm2PL
c5688dd033
Add some callbacks back and forth 2023-01-29 22:08:59 +01:00
Mm2PL
d1c9dfc865
Add VERY basic lua scripting capabilities 2023-01-29 20:49:46 +01:00
Wissididom
2a071a7067
Remove Qt::Multimedia as a dependency from CMakeLists.txt (#4339)
* Remove Multimedia required in find_package

* Remove Multimedia from src/CMakeLists.txt
2023-01-29 15:28:01 +00:00
nerix
b80d41c327
Use CMakeDeps and CMakeToolchain as Generators on Conan (#4335)
* deps(conan): use `CMakeDeps` as generator

* chore: add changelog entry

* deps(conan): add `CMakeToolchain` generator

* fix: use generated toolchain file

* docs: mention toolchain as well

* fix: spelling

* fix: formatting

* revert: use nmake

* docs: fix documentation
2023-01-29 13:10:39 +00:00
nerix
633b77511d
Add CMake Install Support for Windows (#4300)
* fix: windows installation with cmake

* fix: support install for all win32 compilers

* chore: add changelog entry

* fix: support `X_VCPKG_APPLOCAL_DEPS_INSTALL`

* chore: document cmake min version

* fix: vcpkg

* fix: plugin path

* fix: remove flattening

* revert: `qt.conf` changes

---------

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-01-29 10:52:45 +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
nerix
904749cf62
feat: Add Live Emote Updates for BTTV (#4147)
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>
2023-01-21 14:06:55 +00:00
pajlada
56f7c91a64
Fix the split "Search" menu action not opening the correct search window (#4305)
* Fix split menu "Search" action

It now opens a split-specific search instead of a global one

* Add changelog entry
2023-01-21 10:51:29 +00:00
askepticaldreamer
6ba1cf6ca3
Fix slash to backslash conversions in url hashes for opening links in incognito (#4307)
* Pass link as argument instead of in command string when opening incognito links

* Update CHANGELOG.md

* Make changelog message more user facing

* Remove now unused argument for getCommand
2023-01-19 09:03:35 +01:00
Thomas Petersen
d5a0420f74
Attempt to fix certain ping sound issues on Arch Linux (#4285) 2023-01-16 14:34:05 -05:00
nerix
2233b46512
Format YAML and JSON Files With Prettier (#4304)
* ci: format yaml and json files with prettier

* chore: add changelog entry

* fix: format everything

* ci: run pretter on all files

* ci: rename prettier step
2023-01-15 17:27:41 +01:00
pajlada
f933d9cdf2
Change the highlight order to prioritize Message highlights over User highlights (#4303) 2023-01-15 13:21:42 +00:00
askepticaldreamer
4c782ce90c
Add feature to select channels to log (#4302)
* 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>
2023-01-15 11:47:22 +00:00
kornes
a567cc5ae7
Fix: dont run windeployqt with VCPKG (#4297) 2023-01-09 18:43:36 +00: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
pajlada
18cb4bd6e5
Massage includes some more (#4294)
* Add `<functional>` include to QStringHash.hpp

This ensures the base `std::hash` template is declared before this
specialization

* Add missing includes to `src/providers/twitch/TwitchAccountManager.hpp`

* Move explicit HelixChatters constructor to the source file

* Remove unused includes & add used includes to NicknamesModel.hpp

* NicknamesModel.hpp: Remove `virtual` when `override` is used

* Add missing QStringHash include to TwitchEmotes.cpp

* Add missing includes to various files

* Print Qt version in cmake step

Technically unrelated, but I'm sneaking it in

* Add changelog entry
2023-01-08 12:07:06 +00:00
pajlada
c0f0a7e555
Fix link to the "connecting to the Twitch IRC server" guide (#4293) 2023-01-08 12:45:24 +01:00
Daniel Sage
e19cd1911b
Fix scrollbar highlight colors when changing message history limit (#4288)
* Use correct messagesLimit for Scrollbar

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-01-07 11:41:52 +00:00
nerix
95b1f82620
Remove Deprecated QDesktopWidget (#4287)
* fix: remove deprecated `QDesktopWidget`

* chore: add changelog entry
2023-01-07 11:41:39 +01:00
pajlada
e48945e370
Flatten util/IncognitoBrowser.{h,c}pp (#4280) 2023-01-01 12:06:34 +00: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
pajlada
f04c4c7388
Fix crash that could occur when closing down the last of a channel when reloading emotes (#4278)
* Fix crash that could occur when a channel is closed

Ensure we copy the QString in case the channel goes out of scope and
we're referring to nothing

* Add changelog entry
2022-12-31 13:03:16 +00:00
pajlada
293aa370c5
Fix crash that could occur when closing down splits (#4277)
* Fix crash that could occur when closing down splits

Specifically, if a split was closed after the request for a thumbnail
had been made, but before the request had finished, we'd run into a
use-after-free issue

* Add changelog entry
2022-12-31 12:39:28 +00:00
pajlada
5fc170ba4b
Refactor SplitHeader class (#4276)
* Flatten static functions in anonymous namespace

* SplitHeader ctor: Rename param

* Header: Remove unnecessary `virtual`s

* auto ptr where possible

* Add curly braces

* Comment twitch room modes

* Treat roomModes->slowMode as an integer

* Remove unused `this` from lambdas

* Add `unsigned int` overload for localizeNumbers

* Move thumbnail max age to a constexpr static & set explicit types

* Explicitly use `QObject::connect`

* Use `empty()` instead of `size()`

* Name unused parameters

* Move moderation action refreshing logic from SplitHeader to Split
2022-12-31 12:56:47 +01:00
pajlada
90046f380f
Fix crash that would occur when performing certain actions after removing all tabs (#4271)
* Ensure we can deselect notebooks

* Add changelog entry

* Use dynamic_cast instead of raw cast
2022-12-29 19:15:32 +01:00
kornes
11fdd7ed74
ref: merge TooltipPreviewImage and TooltipWidget (#4268)
* merge TooltipPreviewImage and TooltipWidget

* changelog

* add empty line before return

* fix signalholder include

* add changelog for bugfix

* fix custom scaling issue

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-29 16:07:46 +01:00
nerix
448c8622e7
Remove unused operators in Image (#4267) 2022-12-28 19:24:14 +00:00
nerix
757c7c781e
fix: Remove Unused Include Directives (#4266)
* fix: remove unused includes

* fix: bad includes

* fix: top include

* fix: streamer mode includes

* fix: missing include

* fix: remove `#else`

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-27 20:26:32 +00:00
Douglas
b2a8327696
Fix text cursor in open channel dialog (#4263)
* Fix text cursor not blinking in open channel dialog

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-27 17:27:11 +00:00
pajlada
a9a985bde1
Only try to extract images if the image uploader is enabled (#4246)
* Only try to extract images if the image uploader is enabled

* Add changelog entry
2022-12-25 12:14:23 +00: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
83dfb08aed
Enable LTO support for Chatterino builds (#4258)
This is disabled by default, and can be enabled by passing `-DCHATTERINO_LTO=On` to your cmake invocation.
2022-12-24 18:42:59 +01:00
pajlada
621134ffcb
Remove another implicit this-capture for C++20 migration (#4257)
* Fix another usage of an implicit this capture

* Add changelog entry
2022-12-24 15:23:07 +01: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
99e038ce5e
Remove protocol from organization domain (#4256)
* remove protocol from organization domain

* Add changelog entry

* update changelog entry

Co-authored-by: Sam Heybey <sam@heybey.org>
2022-12-24 12:25:05 +01:00
pajlada
b9308d7325
Add Thread Guard for debugging simple threading issues (#4254)
* Add ThreadGuard class

* Use ThreadGuard when accessing a ChannelView's messageSnapshot
2022-12-24 11:32:08 +01:00
kornes
bc5a03af26
Fix tab direction change crash (#4248)
* Fix tab direction change crash

* changelog

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-19 18:19:09 +01: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
8830b0e01c
Clean up/refactor InputCompletionPopup (#4242)
Mainly flattening anon namespaces & respecting clang-tidy
2022-12-18 13:25:11 +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
Felanbird
0e72cd62e3
Add even more tooltips when hovering settings (#4230)
* Add unshortenLinks tooltip `NEEDS LINK EXAMPLE`

* Add `linksDoubleClickOnly` tooltip

* Add `highlightInlineWhispers` tooltip

* Add `removeSpacesBetweenEmotes` tooltip

* Add a TODO comment for 7TV unlisted emote tooltip

* Add shortened link example

* Add `usernameDisplayModes` tooltip

* Add `highlightMentions` tooltip

* Add `attachExtensionToAnyProcess` tooltip

* Fix true/false-ing

* Add `showTabCloseButton` tooltip

* Add `showReplyButton` tooltip

* Use a different unicode for `showTabCloseButton`

* Don't use a unicode because it upsets the formatter

* Add `showTabLive` tooltip

* minor fixes

* unicode freakout distracted me from testing this setting

* Add `alternateMessages` tooltip

* Add `showLastMessageIndicator` tooltip

* Add `seperateMessages` tooltip

* Add `hideModerated` tooltip

* Add `hideDeletionActions` tooltip

* Don't mention a default line color for `showLastMessageIndicator`

* Better explain and display localized in `usernameDisplayMode`

* Respect keybind for `showTabCloseButton`

* Remove extra brackets

* nitpick

* Invert `hideModerated` setting

* Rename and update `showTabLive`
2022-12-18 12:30:21 +01:00
pajlada
b074a8f7eb
Refactor the EmotePopup file (#4239)
Flatten the anonymous namespace
Make the `loadEmojis` functions static
Make the `filterEmoteMap` function static
Return an EmoteMap from `filterEmoteMap` instead of an EmoteMap*
Other misc cool changes :-)
2022-12-17 18:33:17 +01:00
Felanbird
bad32a7511
Fix accidental change of stripReplyMention setting (#4225) 2022-12-07 22:46:41 +00:00
nerix
ff54b4c8d2
feat: Add Setting to Hide Reply Context (#4224) 2022-12-07 21:02:54 +00:00
pajlada
4fdcac8ec5
Make LimitedQueueSnapshot usages in ChannelView const (#4223) 2022-12-07 19:40:15 +00:00
pajlada
9f008f86d2
Move thread parsing & building to its own private function (#4222) 2022-12-07 19:13:59 +00:00
kornes
a16d148dfd
Fix selection clearing not working in Reply window (#4218)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-12-07 18:21:04 +00:00
kornes
36c8fffee2
feat: Automatically select newly added table rows (#4216)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-12-06 22:52:58 +00:00
Felanbird
783b05c103
Add docs link for streamlink --args (#4217) 2022-12-06 23:27:27 +01:00
kornes
b7888749fe
feat: Allow negation of search predicates (#4207)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
closes https://github.com/Chatterino/chatterino2/issues/3998
2022-12-04 11:34:13 +00:00
kornes
4fa214a38a
Prepopulate search window input with current text selection (#4178)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
2022-12-03 18:14:15 +00:00
nerix
2aa8af47e7
Clear up Highlight sound settings (#4194)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
Closes https://github.com/Chatterino/chatterino2/issues/1540
2022-12-03 17:01:49 +01:00
nerix
8d4ee72478
fix: Copy Shortcut Not Working In Reply Thread Popup (#4209) 2022-12-03 13:02:39 +00:00