Commit graph

3068 commits

Author SHA1 Message Date
Mm2PL
09fed407d2
Remove useless new line in src/CMakeLists.txt 2023-02-07 21:54:27 +01:00
Mm2PL
123dc87681
Add missing new line in CommandController.cpp 2023-02-07 21:52:00 +01:00
Mm2PL
ffa6729ede
Remove unused include in CommandController.cpp 2023-02-07 21:51:39 +01:00
Mm2PL
456c7f80a8
Rename constant C2LIB -> c2lib 2023-02-07 21:50:30 +01:00
Mm2PL
55d8a31b49
Get rid of REPLACEMENT_CHARACTER constant 2023-02-07 21:49:47 +01:00
Mm2PL
8e67327abc
Clean up NOLINT comments 2023-02-07 21:49:37 +01:00
Mm2PL
d4bdcc7da2
Add all the missing .path() calls 2023-02-07 21:42:03 +01:00
Mm2PL
ef70112386
Fix double plugin initialization problem 2023-02-07 21:41:00 +01:00
Mm2PL
9b231dc3e9
Improve chatterino.lua logs + remove . and .. from plugin search 2023-02-07 21:39:37 +01:00
Mm2PL
e9aa136bbe
Validate info.json harder and show what's wrong 2023-02-07 00:34:03 +01:00
Mm2PL
df9c269d6d
Use target_compile_definitions for -DCHATTERINO_HAVE_PLUGINS 2023-02-06 22:46:32 +01:00
nerix
0c74ab17ed
Refactor 7TV EventAPI (#4342)
* refactor: remove file prefix

* refactor: put eventapi into a namespace

* refactor: support multiple conditions

* fix: handle ack

* docs: add changelog entry

* fix: unsubscribe in destructor

* fix: naming of parameter

* fix: namespaces

* chore: casing

* fix: missing namespace

---------

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2023-02-04 13:42:52 +01:00
Mm2PL
1040fbc5e4
Add an icon for the plugins tab
I used this one: https://github.com/microsoft/fluentui-system-icons/tree/main/assets/Plug%20Disconnected/SVG
and modified it to be dark theme compatible
2023-02-04 13:21:29 +01:00
Mm2PL
44e7505483
ApiChatterino -> LuaApi 2023-02-04 12:46:43 +01:00
Mm2PL
bb412340db
Use lua convention for main file in package: init.lua 2023-02-04 02:23:36 +01:00
Mm2PL
4030439766
Rename ApiChatterino -> LuaApi 2023-02-04 02:23:16 +01:00
Mm2PL
98e2e61296
Begone stupid include 2023-02-04 01:57:52 +01:00
Mm2PL
d9440650a6
Clean up diff 2023-02-04 01:55:13 +01:00
Mm2PL
760ec89e07
Check for invalid utf8 better 2023-02-04 01:25:58 +01:00
Mm2PL
e331e49310
Replace Lua loadfile/dofile with execfile() 2023-02-04 01:25:45 +01:00
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