Chat client for https://twitch.tv
Go to file
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
.CI Switch to ncipollo/release-action for generating our Nightly releases (#4125) 2022-11-08 22:07:44 +00:00
.github Enable LTO support for Chatterino builds (#4258) 2022-12-24 18:42:59 +01:00
benchmarks Rewrite & optimize LimitedQueue (#3798) 2022-06-18 10:44:48 +00:00
cmake Fix Linux CMake build for old installs (#4167) 2022-11-20 12:26:28 +01:00
docs Release v2.4.0 (#4200) 2022-11-28 21:12:06 +01:00
lib Migrate to C++ 20 & switch to websocketpp develop branch (#4252) 2022-12-24 11:56:11 +00:00
resources Release v2.4.0 (#4200) 2022-11-28 21:12:06 +01:00
src SplitContainer refactor (#4261) 2022-12-25 11:09:25 +00:00
tests Enable LTO support for Chatterino builds (#4258) 2022-12-24 18:42:59 +01:00
tools Sort and force grouping of includes (#4172) 2022-11-27 19:32:53 +01:00
.cirrus.yml Update qtkeychain to e5b070831cf1ea3cb98c95f97fcb7439f8d79bd6 (#4250) 2022-12-20 23:09:07 +01:00
.clang-tidy SplitContainer refactor (#4261) 2022-12-25 11:09:25 +00:00
.gitattributes Add .gitattributes file to normalize line endings 2019-09-08 22:01:12 +02:00
.gitignore 🔨 Automatically generate resources files with cmake (#4159) 2022-11-19 12:29:12 +01:00
.gitmodules Build GoogleTest & GoogleMock as submodules (#3760) 2022-05-22 15:43:41 +02:00
.prettierignore Add custom hotkeys. (#2340) 2021-11-21 17:46:21 +00:00
.prettierrc.toml Add lint github action (#2473) 2021-02-21 14:45:42 +01:00
BUILDING_ON_FREEBSD.md Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
BUILDING_ON_LINUX.md Copied and adjusted BUILDING_ON_LINUX.md from SevenTV (#4085) 2022-10-28 10:17:51 +00:00
BUILDING_ON_MAC.md Remove official support for QMake (#3839) 2022-07-23 14:04:29 +02:00
BUILDING_ON_WINDOWS.md docs: add documentation for AddressSanitizer on MSVC (#4161) 2022-11-18 17:32:50 +00:00
BUILDING_ON_WINDOWS_WITH_VCPKG.md Add guide for building chatterino2 on Windows with vcpkg (#3634) 2022-05-15 15:57:31 +00:00
CHANGELOG.md Disable LTO by default (#4260) 2022-12-24 19:06:52 +00:00
CMakeLists.txt Disable LTO by default (#4260) 2022-12-24 19:06:52 +00:00
conanfile.txt deps[conan]: update openssl and boost on Windows (#4100) 2022-11-03 08:21:32 +00:00
CONTRIBUTING.md Update Conventions examples in Contributing.md (#3538) 2022-01-22 19:36:53 +00:00
LICENSE Add LICENSE file (#130) 2017-10-13 21:57:43 +02:00
README.md Bump suggested clang-format version to 15.0.5 (#4210) 2022-12-02 21:12:11 +01:00
vcpkg.json chore: update vcpkg baseline (#4126) 2022-11-09 11:35:48 +01:00

alt text Chatterino 2 GitHub Actions Build (Windows, Ubuntu, MacOS) Cirrus CI Build (FreeBSD only) Chocolatey Package Flatpak Package

Chatterino 2 is a chat client for Twitch.tv. The Chatterino 2 wiki can be found here. Contribution guidelines can be found here.

Download

Current releases are available at https://chatterino.com. Windows users can also install Chatterino from Chocolatey.

Nightly build

You can download the latest Chatterino 2 build over here

You might also need to install the VC++ Redistributables from Microsoft if you do not have it installed already.
If you still receive an error about MSVCR120.dll missing, then you should install the VC++ 2013 Restributable.

Building

To get source code with required submodules run:

git clone --recurse-submodules https://github.com/Chatterino/chatterino2.git

or

git clone https://github.com/Chatterino/chatterino2.git
cd chatterino2
git submodule update --init --recursive

Building on Windows

Building on Windows with vcpkg

Building on Linux

Building on Mac

Building on FreeBSD

Code style

The code is formatted using clang format in Qt Creator. .clang-format contains the style file for clang format.

Get it automated with QT Creator + Beautifier + Clang Format

  1. Download LLVM: https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.5/LLVM-15.0.5-win64.exe
  2. During the installation, make sure to add it to your path
  3. In QT Creator, select Help > About Plugins > C++ > Beautifier to enable the plugin
  4. Restart QT Creator
  5. Select Tools > Options > Beautifier
  6. Under General select Tool: ClangFormat and enable Automatic Formatting on File Save
  7. Under Clang Format select Use predefined style: File and Fallback style: None

Qt creator should now format the documents when saving it.

Doxygen

Doxygen is used to generate project information daily and is available here.