Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add developer_name appdata field #3

Closed
wants to merge 431 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
431 commits
Select commit Hold shift + click to select a range
703847c
Add subtitle to Hype Chats (#4715)
Nerixyz Jul 30, 2023
89323ff
Fixed tab completion rarely completing the wrong word. (#4735)
Mm2PL Jul 31, 2023
557e8d0
Bump ZedThree/clang-tidy-review from 0.13.1 to 0.13.2 (#4744)
dependabot[bot] Aug 3, 2023
6b7d12e
Show channel point redemptions without messages in usercard. (#4557)
2547techno Aug 4, 2023
222b3da
Add .git-blame-ignore-revs (#4743)
Mm2PL Aug 5, 2023
b98be3b
Fixed right-clicking mentions no longer working. (#4751)
Mm2PL Aug 5, 2023
9e2eb0d
Fix tooltip & popup positioning (#4740)
pajlada Aug 5, 2023
1438529
Sync channels with browser (#4741)
Nerixyz Aug 5, 2023
accf91a
Build Windows Installer in CI (#4408)
Nerixyz Aug 5, 2023
5727db2
Fixed subscriptions and announcements not being blockable (#4748)
Mm2PL Aug 5, 2023
e13df1f
Split log line generation from message search text (#4742)
Mm2PL Aug 5, 2023
1aedd4d
Highlights loaded from message history will now correctly appear in t…
pajlada Aug 5, 2023
168f346
Remove restriction on Go To Message on system messages from search (#…
Mm2PL Aug 5, 2023
69c983e
Add support for opening links in incognito mode on Linux & BSD (#4745)
sheybey Aug 6, 2023
8330119
Bump jurplel/install-qt-action from 3.2.1 to 3.3.0 (#4753)
dependabot[bot] Aug 7, 2023
e0417bc
Bump lib/miniaudio from `9a76634` to `3898fff` (#4754)
dependabot[bot] Aug 7, 2023
59160c5
Minor: Add missing hotkey Action for Open Player in Browser. (#4756)
Mm2PL Aug 7, 2023
ec0d776
Remove USEWEBENGINE (#4757)
Mm2PL Aug 7, 2023
5ee9697
Bump ZedThree/clang-tidy-review from 0.13.2 to 0.13.3 (#4759)
dependabot[bot] Aug 9, 2023
3e1e400
Refactor recent messages API (#4763)
pajlada Aug 12, 2023
1e35391
Hide AutoMod term management messages in Streamer Mode. (#4758)
Mm2PL Aug 12, 2023
e7281b0
Show historic timeouts and bans in usercard (#4760)
Nerixyz Aug 13, 2023
2d30ff6
Prepare changelog for v2.4.5 release (#4765)
Felanbird Aug 14, 2023
381d5c4
Change `Elevated Messages` to `Hype Chats` (#4766)
Felanbird Aug 14, 2023
ea30c3a
Fix XDG tests on Windows (#4779)
Nerixyz Aug 21, 2023
b776537
Remove comment for incorrect Twitch response (#4781)
Felanbird Aug 21, 2023
05a72d3
Release v2.4.5 (#4787)
pajlada Aug 26, 2023
15bd72e
Encode `modes` file in UTF8 (#4791)
Nerixyz Aug 27, 2023
72f0f49
Set `QT_ENABLE_HIGHDPI_SCALING` to `0` on Qt 6 on Windows (#4767)
Nerixyz Aug 27, 2023
ac6708b
Fix input completion tests on Qt6 & run tests on 22.04 (#4774)
pajlada Aug 27, 2023
3f76710
Fix memory leaks & data races in tests (#4772)
pajlada Aug 27, 2023
3347da4
Bump lib/signals from `6561aa5` to `ca452a8` (#4789)
dependabot[bot] Aug 27, 2023
2812625
Bump lib/settings from `f168c09` to `f92bc7b` (#4788)
dependabot[bot] Aug 27, 2023
1473101
Bump ncipollo/release-action from 1.12.0 to 1.13.0 (#4786)
dependabot[bot] Aug 27, 2023
4c942a2
Fix data race in PubSub (#4771)
pajlada Aug 27, 2023
7cb04bf
Remove BaseSettings & merge ConcurrentSettings (#4775)
pajlada Aug 28, 2023
af42338
Remove offset logic from `BaseWindow::moveTo` (#4798)
Nerixyz Aug 28, 2023
ba440e0
Fixed `/shoutout` command not working with usernames starting with @'…
pajlada Aug 28, 2023
877a4e0
Remove boost::noncopyable use & boost::random dependency (#4776)
pajlada Sep 9, 2023
d4558b5
Fix all warnings from the cppcoreguidelines-pro-type-member-init clan…
pajlada Sep 9, 2023
515c40f
Use `QFontMetrics::elidedText` over manual implementation (#4807)
Nerixyz Sep 9, 2023
813d968
Migrate to the new Get Channel Followers Helix endpoint, fixing follo…
pajlada Sep 9, 2023
a0ae165
Bump actions/checkout from 3 to 4 (#4806)
dependabot[bot] Sep 9, 2023
e00b737
Bump lib/lua/src from `ea39042` to `9b4f39a` (#4782)
dependabot[bot] Sep 10, 2023
1b9ee93
Select correct notebook tab after closing while filtered (#4770)
dnsge Sep 10, 2023
283ede8
Only layout visible `ChannelView`s (#4811)
Nerixyz Sep 10, 2023
a442a86
Bump ZedThree/clang-tidy-review from 0.13.3 to 0.13.4 (#4814)
dependabot[bot] Sep 13, 2023
be7140e
Bump lib/lua/src from `9b4f39a` to `6baee9e` (#4813)
dependabot[bot] Sep 13, 2023
9ca2578
Refactor `Image` & Image's `Frames` (#4773)
pajlada Sep 13, 2023
337b043
Fix input in reply thread popup losing focus when dragging (#4815)
Nerixyz Sep 13, 2023
2d5f078
Style account switcher to match the current theme (#4817)
Nerixyz Sep 15, 2023
8fe3af3
Fix signal connection nodiscard warnings (#4818)
pajlada Sep 16, 2023
83328e7
Add the Changelog Category Check workflow (#4821)
pajlada Sep 16, 2023
38c994b
Fixed Usercard Popup not floating on tiling WMs on Linux (#3511)
qooq69 Sep 16, 2023
d752ce8
Add `WindowManager::getLastSelectedWindow()` to replace `getMainWindo…
Mm2PL Sep 16, 2023
f13a3b9
Cleanup Windows helpers (#4820)
Nerixyz Sep 17, 2023
dc62e82
Add (invisible) resize handle to frameless usercards and reply thread…
Nerixyz Sep 17, 2023
3265df7
Fixed too much text being copied when copying chat messages (#4812)
Nerixyz Sep 17, 2023
e6df652
fix: QuickSwitcherPopup now pops up in the selected window (#4819)
pajlada Sep 17, 2023
89b915b
Mention filters in the note for features that nicknames don't work wi…
Felanbird Sep 18, 2023
7ea742c
fix fedora build dependencies (#4828)
pajlada Sep 18, 2023
c71e912
streamlink: trim custom paths (#4834)
brian6932 Sep 23, 2023
6860c70
Fix selection rendering (#4830)
Nerixyz Sep 23, 2023
06eb30a
fix: double margin (#4839)
pajlada Sep 23, 2023
37009e8
Consolidate input completion code in preparation for advanced complet…
dnsge Sep 24, 2023
783c753
Allow any window to be bounds-checked (#4802)
Nerixyz Sep 24, 2023
bdd7d95
Check VCRT and show installed/shipped version (#4847)
Nerixyz Sep 30, 2023
4d8b623
fix: Commands now completable when not starting with / (#4846)
dnsge Sep 30, 2023
916427a
Fix flickering when running with Direct2D (#4851)
Nerixyz Oct 1, 2023
ad8f960
Fix to interpret logger channel names as lowercase (#4848)
GongBingWong Oct 1, 2023
2fc7fdd
Fix empty page added when showing OOB dialog (#4849)
Nerixyz Oct 1, 2023
467e367
Update Nightly to 2.4.6 and get qt6-related-changes from 2.4.6 (#4856)
pajlada Oct 1, 2023
4bb196c
fix: Fix username tab completion without @ (#4853)
dnsge Oct 1, 2023
bc218b4
Don't download non-existant qt 5.15 debug symbols for Windows (#4857)
pajlada Oct 1, 2023
5b17ae3
Implement compile-time flag to disable automatic update checks. (#4854)
libklein Oct 2, 2023
131812b
Update changelog entry for 4854 (#4860)
Felanbird Oct 2, 2023
38a7ce6
Fix qtkeychain include for Qt6 users (#4863)
pajlada Oct 3, 2023
d568d12
Fix Chatterino logo in readme (#4865)
Felanbird Oct 4, 2023
86c2a07
Bump pajlads/changelog-checker from 1.0.0 to 1.0.1 (#4866)
dependabot[bot] Oct 4, 2023
5d5d265
Add cmake flag to use system-provided miniaudio (#4867)
h3o66 Oct 4, 2023
7c8caba
Fix websocketpp depending on boost::random (#4869)
kornes Oct 5, 2023
7528257
Ignore invisible widgets when hit testing (#4873)
Nerixyz Oct 6, 2023
ab4a0c0
Update vcpkg to Qt6 (#4872)
kornes Oct 7, 2023
774eaa1
Fix emoji unified/non-qualified version for sending & parsing (#4840)
pajlada Oct 7, 2023
4db93bf
Adjust `DontFocus` window flags on Windows and macOS (#4876)
Nerixyz Oct 7, 2023
fe4d612
Display all parsed elements when parsing emojis in replies (#4875)
Nerixyz Oct 8, 2023
fec4588
Replace boost::optional with std::optional (#4877)
pajlada Oct 8, 2023
d03151d
Update Windows build instructions & contributing docs (#4858)
GongBingWong Oct 9, 2023
63b5365
Fix LTO support (#4884)
pajlada Oct 10, 2023
653a14c
fix: Don't use QCompleter prefix filter (#4855)
dnsge Oct 13, 2023
b85d666
fix: Remove tab completion caching of source (#4893)
dnsge Oct 13, 2023
9f23c85
Test filters context map & message builder (#4886)
pajlada Oct 13, 2023
21427e0
Bump ZedThree/clang-tidy-review from 0.13.4 to 0.14.0 (#4890)
dependabot[bot] Oct 13, 2023
cbc2d3d
Bump lib/WinToast from `5e441fd` to `821c481` (#4894)
dependabot[bot] Oct 13, 2023
ccaedc3
perf: reduce repaints amount caused by selection (#4889)
kornes Oct 13, 2023
ab3b2d8
Add some more filter tests (#4897)
pajlada Oct 14, 2023
bddc08a
Bump lib/crashpad from `432ff49` to `3182e3b` (#4902)
dependabot[bot] Oct 17, 2023
b975900
refactor: Toast (#4899)
Nerixyz Oct 17, 2023
12808d3
refactor: simplify double click selection (#4898)
kornes Oct 17, 2023
fcb6eff
Remove direct dependency on Qt 5 compatibility module (#4906)
Nerixyz Oct 23, 2023
da31e47
Add selection unit tests (#4904)
kornes Oct 23, 2023
5c0219c
refactor: Use override instead of virtual where possible (#4917)
pajlada Oct 25, 2023
7ecbfa0
refactor: debug count and popup (#4921)
Nerixyz Oct 28, 2023
c811e2d
refactor: Change lifetime of context menus (#4924)
Nerixyz Oct 29, 2023
25c776c
refactor: FilterParser (#4925)
pajlada Oct 29, 2023
7efe58c
refactor: ChannelView (#4926)
pajlada Oct 31, 2023
f4726ed
refactor: IrcMessageHandler (#4927)
pajlada Oct 31, 2023
5634687
ci: Use clang-format 16 (#4929)
pajlada Oct 31, 2023
03b32bf
Bugfix: Fixed a crash when clicking `More messages below` button in a…
Mm2PL Nov 2, 2023
4e63a1b
refactor: Message (#4915)
pajlada Nov 2, 2023
8f99af5
Bump cmake/sanitizers-cmake from `c3dc841` to `3f0542e` (#4936)
dependabot[bot] Nov 3, 2023
b3ed328
feat: Add VERSIONINFO resource for windows (#4912)
kornes Nov 3, 2023
f8b2398
refactor: KeyboardSettingsPage (#4937)
pajlada Nov 4, 2023
9eea2f8
chore: Add a 10m timeout to the clang-tidy CI job (#4939)
pajlada Nov 4, 2023
e4c4635
refactor: move ban/banid/timeout to their own file (#4938)
pajlada Nov 4, 2023
879a63e
Support using follower emotes outside of channel if subbed (#4922)
baines Nov 4, 2023
5325c7b
Fix tooltips appearing too large and/or away from the cursor (#4920)
Nerixyz Nov 4, 2023
7d145e3
Disable clickable sections in tables (#4913)
Nerixyz Nov 4, 2023
1d6c9ed
feat: forward logging from miniaudio (#4836)
pajlada Nov 5, 2023
9dd83b0
feat: `/reply` command now replies to the latest message of the user …
iProdigy Nov 5, 2023
5209e47
Improve reply popup after thread update (#4923)
iProdigy Nov 5, 2023
f943f70
Add support for opening usercards by ID (#4934)
Mm2PL Nov 6, 2023
d40b0a6
fix: avoid reward redemption crash via buffer refactor (#4949)
iProdigy Nov 8, 2023
f89642e
refactor: Move all commands to their own files (#4946)
pajlada Nov 8, 2023
68817fa
chore(deps): bump lib/miniaudio from `3898fff` to `b19cc09` (#4948)
dependabot[bot] Nov 8, 2023
fcc5f4b
feat: Allow id: prefix in /ban and /timeout (#4945)
pajlada Nov 8, 2023
c8e03b4
Dont invalidate paint buffer when selecting (#4911)
kornes Nov 8, 2023
8ca11ed
chore(deps): bump lib/miniaudio from `b19cc09` to `3b50a85` (#4955)
dependabot[bot] Nov 10, 2023
423829b
feat: `/unban` and `/untimeout` by id (#4956)
pajlada Nov 10, 2023
244efaa
fix: /banid and /ban id: performing duplicate bans (#4957)
pajlada Nov 10, 2023
95620e6
fix: Split input sometimes not accepting focus (#4958)
pajlada Nov 11, 2023
6faf63c
refactor: Remove `Outcome` from network requests (#4959)
Nerixyz Nov 12, 2023
49ae5a8
chore(deps): bump actions/github-script from 6 to 7 (#4964)
dependabot[bot] Nov 14, 2023
5693927
chore(deps): bump lib/miniaudio from `3b50a85` to `4a5b74b` (#4967)
dependabot[bot] Nov 16, 2023
d9cdc88
Remove unused parseMessage function (#4968)
Mm2PL Nov 17, 2023
3d9db1d
refactor: Ignores and Replacements (#4965)
Nerixyz Nov 17, 2023
0bdcaae
Fix: dont select mod buttons at triple click (#4961)
kornes Nov 18, 2023
7898b97
feat: Run tests on Windows & macOS in CI (#4970)
Wissididom Nov 18, 2023
fbc8aac
Refactored the Image Uploader feature. (#4971)
Mm2PL Nov 19, 2023
1a685d7
Finish renaming Viewer list to Chatter list (#4974)
Mm2PL Nov 20, 2023
854032f
fix: Only display spaces between words in reply context (#4977)
Nerixyz Nov 26, 2023
e8673fc
fix: deadlock and use-after-free in tests (#4981)
Nerixyz Nov 26, 2023
9f97398
ci: Build benchmarks on Ubuntu 22.04 runner (#4982)
pajlada Nov 26, 2023
5b741a8
refactor: Remove Emoji's EmojiMap with a vector (#4980)
pajlada Nov 26, 2023
1f09035
refactor: common/Credentials (#4979)
pajlada Nov 26, 2023
a240797
Add support for sound backends & some miniaudio changes (#4978)
pajlada Nov 26, 2023
6d02bb7
Make emote completion a lot smarter (#4987)
Mm2PL Nov 28, 2023
e327ed4
Update magic_enum from v0.9.3 to v0.9.5 (#4992)
pajlada Dec 1, 2023
c4c9447
Do bounds-checking on more windows (#4797)
Nerixyz Dec 2, 2023
0fd4e8f
fix: typo in debug log for hotkeys (#4997)
pajlada Dec 2, 2023
584a7c8
Move clang-tidy to its own CI job (#4996)
pajlada Dec 2, 2023
812186d
Return correct hit-test values for title bar buttons on Windows (#4994)
Nerixyz Dec 3, 2023
44abe6b
feat: add channel for messages caught by AutoMod (#4986)
iProdigy Dec 3, 2023
c3d3903
feat: add `--safe-mode` command line option (#4985)
Mm2PL Dec 5, 2023
036c4f3
conan: Update Boost to 1.83 & OpenSSL to 3.2.0 (#5007)
pajlada Dec 8, 2023
3ad2e4b
Update flatpak nightly build link (#5008)
ilya-zlobintsev Dec 9, 2023
fec8f8c
Fix missing parent of tooltips for Wayland (#4998)
crazysmc Dec 9, 2023
507f27e
chore(deps): bump lib/crashpad from `3182e3b` to `89991e9` (#5005)
dependabot[bot] Dec 9, 2023
401e097
Hide the Usercard button in the User Info Popup in special channels (…
Mm2PL Dec 9, 2023
13dc306
perf: query fewer historical messages on reconnects (#5001)
iProdigy Dec 9, 2023
e425816
Fixed "Yes, don't ask again" image uploader prompt not working on mac…
pajlada Dec 10, 2023
fd4cac2
Add a new completion API for experimental plugins feature. (#5000)
Mm2PL Dec 10, 2023
070c0a0
Add crazysmc to the contributors list (#5020)
crazysmc Dec 13, 2023
6bf2031
chore(deps): bump actions/upload-artifact from 3 to 4 (#5025)
dependabot[bot] Dec 16, 2023
4344877
chore(deps): bump actions/download-artifact from 3 to 4 (#5024)
dependabot[bot] Dec 16, 2023
66f4480
fix: Fixed some compiler warnings (#5028)
Nerixyz Dec 16, 2023
bbf7551
fix: show user message on watch streak notice (#5029)
iProdigy Dec 16, 2023
5f8c4c6
BREAKING: Replace custom `import()` with normal Lua `require()`. (#5014)
Mm2PL Dec 16, 2023
e75ce5d
fix: request more historical messages on wake (#5018)
iProdigy Dec 16, 2023
918b8ca
chore(deps): bump dawidd6/action-download-artifact from 2 to 3 (#5021)
dependabot[bot] Dec 16, 2023
b78b57b
Fixes to ctrl+backspace behavior (#5013)
gremble0 Dec 16, 2023
d016a16
Migrate tests on macOS to the same way tests are run on windows (#5032)
Wissididom Dec 17, 2023
aa11a24
fix: UserInfoPopup now requires a split as its parent (#5034)
pajlada Dec 17, 2023
5dd8c1c
dev: Rename `tools` directory to `scripts` (#5035)
pajlada Dec 17, 2023
0395b69
fix: ReplyThreadPopup now requires a split as its parent (#5036)
pajlada Dec 17, 2023
269e7a0
chore: Unify `.clang-format` file (#5037)
pajlada Dec 17, 2023
d105a68
Allow `ChannelView`s without a `Split` (#4747)
Nerixyz Dec 17, 2023
2cb965d
docs: cleanup/polish Markdown files (#5038)
Nerixyz Dec 23, 2023
25add89
feat: Add crash recovery on Windows (#5012)
Nerixyz Dec 24, 2023
485fc5c
fix: Tooltip parenting on Windows (#5040)
Nerixyz Dec 25, 2023
1006bf9
perf: skip update from GIF timer if no animated elements are shown (#…
Nerixyz Dec 25, 2023
eb12cfa
feat: add sound and flash alert for automod caught messages (#5026)
iProdigy Dec 25, 2023
9612eac
perf: Only update regions with animated elements (#5043)
Nerixyz Dec 27, 2023
d0d2401
fix: Add check for tall messages (#5045)
Nerixyz Dec 27, 2023
04a46f6
chore: add SputNikPlop to the contributors list (#5046)
SputNikPlop Dec 28, 2023
d84779f
fix: some buttons triggering when releasing mouse outside (#5052)
Nerixyz Dec 29, 2023
c65ebd2
fix: non-native drag on Windows (#5051)
Nerixyz Dec 29, 2023
d085ab5
refactor: Make `Args` less of a singleton (#5041)
pajlada Dec 29, 2023
60d79ef
Improve docs/supplemental files for plugins (#5047)
Nerixyz Dec 29, 2023
9a2c27d
Allow customization of whisper colors in settings (#5053)
Nerixyz Dec 29, 2023
69a54d9
Autogenerate docs/plugin-meta.lua (#5055)
Mm2PL Dec 30, 2023
036a5f3
feat: show restricted chats and suspicious treatment updates (#5056)
iProdigy Dec 31, 2023
65b1ed3
refactor: Logging (chat logger) (#5058)
pajlada Dec 31, 2023
a32b962
chore(deps): bump ilammy/msvc-dev-cmd from 1.12.1 to 1.13.0 (#5062)
dependabot[bot] Jan 2, 2024
4a0ef08
Added missing periods at mod-related messages and some system message…
fraxxio Jan 3, 2024
77eb9cc
Add Fraxx list of contributors (#5064)
fraxxio Jan 3, 2024
99b537f
Add some tests for NotebookTab (#5070)
pajlada Jan 6, 2024
1192393
fix: Avoid unnecessary `NotebookTab` updates (#5068)
Nerixyz Jan 6, 2024
e48d868
fix: Avoid duplicate scale in settings dialog (#5069)
Nerixyz Jan 6, 2024
416806b
refactor: Twitch PubSub client (#5059)
pajlada Jan 6, 2024
693d4f4
feat: add badges, emotes, and filters for suspicious messages (#5060)
iProdigy Jan 6, 2024
78a7ebb
Improve color selection and display (#5057)
Nerixyz Jan 6, 2024
f42ae07
dev: Add RecentMessages benchmark (#5071)
Nerixyz Jan 7, 2024
fa5648f
refactor: NetworkPrivate (#5063)
Nerixyz Jan 8, 2024
5c9747e
fix: button hover state-change not visible in some cases (#5077)
Nerixyz Jan 11, 2024
06f950a
Improve Streamlink documentation (#5076)
fraxxio Jan 12, 2024
1554d7b
chore(deps): bump ZedThree/clang-tidy-review from 0.14.0 to 0.15.0 (#…
dependabot[bot] Jan 12, 2024
c4c62f2
fix: restore focus of last split when restoring (#5080)
Nerixyz Jan 14, 2024
13ff11e
refactor: SplitOverlay (#5082)
pajlada Jan 14, 2024
292f9b9
fix: ignore save requests after closing all windows (#5081)
Nerixyz Jan 14, 2024
5b6675a
refactor: fix clang-tidy auto*, const&, and curly braces (#5083)
pajlada Jan 14, 2024
451e5f0
chore(deps): bump lib/settings from `f92bc7b` to `7a0e373` (#5085)
dependabot[bot] Jan 15, 2024
4681fb1
chore(deps): bump ZedThree/clang-tidy-review from 0.15.0 to 0.15.1 (#…
dependabot[bot] Jan 15, 2024
547ff37
chore(deps): bump lib/serialize from `bbf0a34` to `17946d6` (#5086)
dependabot[bot] Jan 15, 2024
ad69755
chore(deps): bump lib/signals from `ca452a8` to `d067706` (#5084)
dependabot[bot] Jan 15, 2024
93e2bc1
refactor: move Network files from src/common/ to src/common/network/ …
pajlada Jan 15, 2024
47a14c9
clang-tidy: Make protected & private suffix underscore optional (#5090)
pajlada Jan 15, 2024
7f93566
refactor: Remove the `NullablePtr` class (#5091)
pajlada Jan 15, 2024
718696d
refactor: Un-singletonize Paths & Updates (#5092)
pajlada Jan 16, 2024
9eeea8f
refactor: Fix a bunch of minor things (#5094)
pajlada Jan 17, 2024
7d5967c
Use the same input padding between light & dark themes (#5095)
pajlada Jan 17, 2024
11838c8
refactor: Move TwitchBadges to Application (#5096)
pajlada Jan 17, 2024
2582e34
chore(deps): bump ZedThree/clang-tidy-review from 0.15.1 to 0.16.0 (#…
dependabot[bot] Jan 18, 2024
70b2b9a
chore(deps): bump actions/cache from 3 to 4 (#5098)
dependabot[bot] Jan 18, 2024
f508a2c
chore(deps): bump lib/lua/src from `6baee9e` to `7923dbb` (#4983)
dependabot[bot] Jan 18, 2024
6fed9dc
chore(deps): bump lib/settings from `87ed4d9` to `7e99623` (#5099)
dependabot[bot] Jan 18, 2024
4f2ca3b
fix: assert for GUI thread in getters instead of `get(I)App` (#5102)
Nerixyz Jan 18, 2024
5bf1a5a
fix: ignore channel name when copying message (#5106)
Nerixyz Jan 19, 2024
326a402
refactor: Make ChatterinoBadges less of a singleton (#5103)
pajlada Jan 19, 2024
4380ef8
refactor: Remove most raw accesses into Application (#5104)
pajlada Jan 19, 2024
ef0c86b
chore(deps): bump ZedThree/clang-tidy-review from 0.16.0 to 0.17.0 (#…
dependabot[bot] Jan 19, 2024
ba94e38
deps(conan): use `boost` in header-only mode (#5107)
Nerixyz Jan 19, 2024
36931fa
Remove reference to lua import() (#5108)
Mm2PL Jan 19, 2024
97702e0
refactor: make Application::emotes private (#5109)
pajlada Jan 20, 2024
acee654
fix: badge highlights not immediately updating color (#5110)
pajlada Jan 20, 2024
7951af6
feat: add command line argument to select/add tab with a channel (#5111)
Nerixyz Jan 20, 2024
84a61fd
refactor: remove ColorProvider::setColor (#5112)
pajlada Jan 20, 2024
075a7c5
Chatters from recent-messages are now tab-completable (#5116)
Nerixyz Jan 21, 2024
65d3e73
refactor: mini reorganization of FfzEmotes.cpp (#5117)
pajlada Jan 21, 2024
5628605
refactor: Move Emotes to Application (#5120)
pajlada Jan 21, 2024
7604d7e
perf: add signal to invalidate buffers without doing layout (#5123)
Nerixyz Jan 24, 2024
5f2e01b
chore(deps): bump lib/settings from `7e99623` to `ad12188` (#5124)
dependabot[bot] Jan 24, 2024
5cd4c51
chore: specialize `Atomic<std::shared_ptr<T>>` (#5133)
Nerixyz Jan 26, 2024
7d7f1b3
Add support for `input.text` in commands run with hotkeys (#5130)
Mm2PL Jan 26, 2024
c32ee8e
feat: add system theme on Qt 6.5 and up (#5118)
Nerixyz Jan 27, 2024
36ef8fb
fix: support captures in ignores (#5126)
Nerixyz Jan 27, 2024
a5e8535
chore(deps): bump ZedThree/clang-tidy-review from 0.17.0 to 0.17.1 (#…
dependabot[bot] Jan 29, 2024
954e198
fix: more MSVC warnings (#5137)
Nerixyz Jan 30, 2024
f8a0fb0
chore(deps): bump lib/lua/src from `7923dbb` to `e288c5a` (#5129)
dependabot[bot] Jan 30, 2024
022a10f
Add developer_name appdata field
ilya-zlobintsev Jan 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
49 changes: 39 additions & 10 deletions .CI/CreateAppImage.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,28 @@

set -e

# Print all commands as they are run
set -x

if [ ! -f ./bin/chatterino ] || [ ! -x ./bin/chatterino ]; then
echo "ERROR: No chatterino binary file found. This script must be run in the build folder, and chatterino must be built first."
exit 1
fi

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/opt/qt512/lib/"
export PATH="/opt/qt512/bin:$PATH"
if [ -n "$Qt5_DIR" ]; then
echo "Using Qt DIR from Qt5_DIR: $Qt5_DIR"
_QT_DIR="$Qt5_DIR"
elif [ -n "$Qt6_DIR" ]; then
echo "Using Qt DIR from Qt6_DIR: $Qt6_DIR"
_QT_DIR="$Qt6_DIR"
fi

if [ -n "$_QT_DIR" ]; then
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${_QT_DIR}/lib"
export PATH="${_QT_DIR}/bin:$PATH"
else
echo "No Qt environment variable set, assuming system-installed Qt"
fi

script_path=$(readlink -f "$0")
script_dir=$(dirname "$script_path")
Expand All @@ -25,20 +40,32 @@ echo ""

cp "$chatterino_dir"/resources/icon.png ./appdir/chatterino.png

linuxdeployqt_path="linuxdeployqt-6-x86_64.AppImage"
linuxdeployqt_url="https://github.com/probonopd/linuxdeployqt/releases/download/6/linuxdeployqt-6-x86_64.AppImage"
linuxdeployqt_path="linuxdeployqt-x86_64.AppImage"
linuxdeployqt_url="https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"

if [ ! -f "$linuxdeployqt_path" ]; then
wget -nv "$linuxdeployqt_url"
echo "Downloading LinuxDeployQT from $linuxdeployqt_url to $linuxdeployqt_path"
curl --location --fail --silent "$linuxdeployqt_url" -o "$linuxdeployqt_path"
chmod a+x "$linuxdeployqt_path"
fi
if [ ! -f appimagetool-x86_64.AppImage ]; then
wget -nv "https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"
chmod a+x appimagetool-x86_64.AppImage

appimagetool_path="appimagetool-x86_64.AppImage"
appimagetool_url="https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage"

if [ ! -f "$appimagetool_path" ]; then
echo "Downloading AppImageTool from $appimagetool_url to $appimagetool_path"
curl --location --fail --silent "$appimagetool_url" -o "$appimagetool_path"
chmod a+x "$appimagetool_path"
fi

# For some reason, the copyright file for libc was not found. We need to manually copy it from the host system
mkdir -p appdir/usr/share/doc/libc6/
cp /usr/share/doc/libc6/copyright appdir/usr/share/doc/libc6/

echo "Run LinuxDeployQT"
./"$linuxdeployqt_path" \
appdir/usr/share/applications/*.desktop \
--appimage-extract-and-run \
appdir/usr/share/applications/com.chatterino.chatterino.desktop \
-no-translations \
-bundle-non-qt-libs \
-unsupported-allow-new-glibc
Expand All @@ -56,7 +83,9 @@ cd "$here/usr"
exec "$here/usr/bin/chatterino" "$@"' > appdir/AppRun
chmod a+x appdir/AppRun

./appimagetool-x86_64.AppImage appdir
./"$appimagetool_path" \
--appimage-extract-and-run \
appdir

# TODO: Create appimage in a unique directory instead maybe idk?
rm -rf appdir
46 changes: 33 additions & 13 deletions .CI/CreateDMG.sh
Original file line number Diff line number Diff line change
@@ -1,18 +1,38 @@
#!/bin/sh
#!/usr/bin/env bash

if [ -d bin/chatterino.app ] && [ ! -d chatterino.app ]; then
>&2 echo "Moving bin/chatterino.app down one directory"
mv bin/chatterino.app chatterino.app
set -eo pipefail

if [ ! -d chatterino.app ]; then
echo "ERROR: No 'chatterino.app' dir found in the build directory. Make sure you've run ./CI/MacDeploy.sh"
exit 1
fi

if [ -z "$OUTPUT_DMG_PATH" ]; then
echo "ERROR: Must specify the path for where to save the final .dmg. Make sure you've set the OUTPUT_DMG_PATH environment variable."
exit 1
fi

if [ -z "$SKIP_VENV" ]; then
echo "Creating python3 virtual environment"
python3 -m venv venv
echo "Entering python3 virtual environment"
. venv/bin/activate
echo "Installing dmgbuild"
python3 -m pip install dmgbuild
fi

if [ -n "$MACOS_CODESIGN_CERTIFICATE" ]; then
echo "Codesigning force deep inside the app"
codesign -s "$MACOS_CODESIGN_CERTIFICATE" --deep --force chatterino.app
echo "Done!"
fi

echo "Running MACDEPLOYQT"
$Qt5_DIR/bin/macdeployqt chatterino.app
echo "Creating python3 virtual environment"
python3 -m venv venv
echo "Entering python3 virtual environment"
. venv/bin/activate
echo "Installing dmgbuild"
python3 -m pip install dmgbuild
echo "Running dmgbuild.."
dmgbuild --settings ./../.CI/dmg-settings.py -D app=./chatterino.app Chatterino2 chatterino-osx.dmg
dmgbuild --settings ./../.CI/dmg-settings.py -D app=./chatterino.app Chatterino2 "$OUTPUT_DMG_PATH"
echo "Done!"

if [ -n "$MACOS_CODESIGN_CERTIFICATE" ]; then
echo "Codesigning the dmg"
codesign -s "$MACOS_CODESIGN_CERTIFICATE" --deep --force "$OUTPUT_DMG_PATH"
echo "Done!"
fi
7 changes: 6 additions & 1 deletion .CI/CreateUbuntuDeb.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,12 @@ case "$ubuntu_release" in
dependencies="libc6, libstdc++6, libqt5core5a, libqt5concurrent5, libqt5dbus5, libqt5gui5, libqt5network5, libqt5svg5, libqt5widgets5, qt5-image-formats-plugins, libboost-filesystem1.71.0"
;;
22.04)
dependencies="libc6, libstdc++6, libqt5core5a, libqt5concurrent5, libqt5dbus5, libqt5gui5, libqt5network5, libqt5svg5, libqt5widgets5, qt5-image-formats-plugins, libboost-filesystem1.74.0"
if [ -n "$Qt6_DIR" ]; then
echo "Qt6_DIR set, assuming Qt6"
dependencies="libc6, libstdc++6, libqt6core6, libqt6widgets6, libqt6network6, libqt6core5compat6, libqt6svg6, qt6-qpa-plugins, qt6-image-formats-plugins"
else
dependencies="libc6, libstdc++6, libqt5core5a, libqt5concurrent5, libqt5dbus5, libqt5gui5, libqt5network5, libqt5svg5, libqt5widgets5, qt5-image-formats-plugins, libboost-filesystem1.74.0"
fi
;;
*)
echo "Unsupported Ubuntu release $ubuntu_release"
Expand Down
39 changes: 39 additions & 0 deletions .CI/MacDeploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env bash

# Bundle relevant qt & system dependencies into the ./chatterino.app folder

set -eo pipefail

if [ -d bin/chatterino.app ] && [ ! -d chatterino.app ]; then
>&2 echo "Moving bin/chatterino.app down one directory"
mv bin/chatterino.app chatterino.app
fi

if [ -n "$Qt5_DIR" ]; then
echo "Using Qt DIR from Qt5_DIR: $Qt5_DIR"
_QT_DIR="$Qt5_DIR"
elif [ -n "$Qt6_DIR" ]; then
echo "Using Qt DIR from Qt6_DIR: $Qt6_DIR"
_QT_DIR="$Qt6_DIR"
fi

if [ -n "$_QT_DIR" ]; then
export PATH="${_QT_DIR}/bin:$PATH"
else
echo "No Qt environment variable set, assuming system-installed Qt"
fi

echo "Running MACDEPLOYQT"

_macdeployqt_args=()

if [ -n "$MACOS_CODESIGN_CERTIFICATE" ]; then
_macdeployqt_args+=("-codesign=$MACOS_CODESIGN_CERTIFICATE")
fi

macdeployqt chatterino.app "${_macdeployqt_args[@]}"

if [ -n "$MACOS_CODESIGN_CERTIFICATE" ]; then
# Validate that chatterino.app was codesigned correctly
codesign -v chatterino.app
fi
51 changes: 51 additions & 0 deletions .CI/build-installer.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
if (-not (Test-Path -PathType Container Chatterino2)) {
Write-Error "Couldn't find a folder called 'Chatterino2' in the current directory.";
exit 1
}

# Check if we're on a tag
$OldErrorActionPref = $ErrorActionPreference;
$ErrorActionPreference = 'Continue';
git describe --exact-match --match 'v*' *> $null;
$isTagged = $?;
$ErrorActionPreference = $OldErrorActionPref;

$defines = $null;
if ($isTagged) {
# This is a release.
# Make sure, any existing `modes` file is overwritten for the user,
# for example when updating from nightly to stable.
Write-Output "" | Out-File Chatterino2/modes -Encoding ASCII;
$installerBaseName = "Chatterino.Installer";
}
else {
Write-Output nightly | Out-File Chatterino2/modes -Encoding ASCII;
$defines = "/DIS_NIGHTLY=1";
$installerBaseName = "Chatterino.Nightly.Installer";
}

if ($Env:GITHUB_OUTPUT) {
# This is used in CI when creating the artifact
"C2_INSTALLER_BASE_NAME=$installerBaseName" >> "$Env:GITHUB_OUTPUT"
}

# Copy vc_redist.x64.exe
if ($null -eq $Env:VCToolsRedistDir) {
Write-Error "VCToolsRedistDir is not set. Forgot to set Visual Studio environment variables?";
exit 1
}
Copy-Item "$Env:VCToolsRedistDir\vc_redist.x64.exe" .;

$VCRTVersion = (Get-Item "$Env:VCToolsRedistDir\vc_redist.x64.exe").VersionInfo;

# Build the installer
ISCC `
/DWORKING_DIR="$($pwd.Path)\" `
/DINSTALLER_BASE_NAME="$installerBaseName" `
/DSHIPPED_VCRT_BUILD="$($VCRTVersion.FileBuildPart)" `
/DSHIPPED_VCRT_VERSION="$($VCRTVersion.FileDescription)" `
$defines `
/O. `
"$PSScriptRoot\chatterino-installer.iss";

Move-Item "$installerBaseName.exe" "$installerBaseName$($Env:VARIANT_SUFFIX).exe"
134 changes: 134 additions & 0 deletions .CI/chatterino-installer.iss
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

#define MyAppName "Chatterino"
#define MyAppVersion "2.4.6"
#define MyAppPublisher "Chatterino Team"
#define MyAppURL "https://www.chatterino.com"
#define MyAppExeName "chatterino.exe"

; used in build-installer.ps1
; if set, must end in a backslash
#ifndef WORKING_DIR
#define WORKING_DIR ""
#endif

; Set to the build part of the VCRT version
#ifndef SHIPPED_VCRT_BUILD
#define SHIPPED_VCRT_BUILD 0
#endif
; Set to the string representation of the VCRT version
#ifndef SHIPPED_VCRT_VERSION
#define SHIPPED_VCRT_VERSION ?
#endif

[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{F5FE6614-04D4-4D32-8600-0ABA0AC113A4}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
VersionInfoVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
ArchitecturesInstallIn64BitMode=x64
;Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
PrivilegesRequiredOverridesAllowed=dialog
OutputDir=out
; This is defined by the build-installer.ps1 script,
; but kept optional for regular use.
#ifdef INSTALLER_BASE_NAME
OutputBaseFilename={#INSTALLER_BASE_NAME}
#else
OutputBaseFilename=Chatterino.Installer
#endif
Compression=lzma
SolidCompression=yes
WizardStyle=modern
UsePreviousTasks=no
UninstallDisplayIcon={app}\{#MyAppExeName}
RestartIfNeededByRun=no

[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"

#ifdef IS_NIGHTLY
[Messages]
SetupAppTitle=Setup (Nightly)
SetupWindowTitle=Setup - %1 (Nightly)
#endif

[Tasks]
; Only show this option if the VCRT can be updated.
Name: "vcredist"; Description: "Install the required {#SHIPPED_VCRT_VERSION} ({code:VCRTDescription})"; Check: NeedsNewVCRT();
; GroupDescription: "{cm:AdditionalIcons}";
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; Flags: unchecked
Name: "freshinstall"; Description: "Fresh install (delete old settings/logs)"; Flags: unchecked

[Files]
Source: "{#WORKING_DIR}Chatterino2\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "{#WORKING_DIR}vc_redist.x64.exe"; DestDir: "{tmp}"; Tasks: vcredist;
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon

[Run]
; VC++ redistributable
Filename: {tmp}\vc_redist.x64.exe; Parameters: "/install /passive /norestart"; StatusMsg: "Installing 64-bit Windows Universal Runtime..."; Flags: waituntilterminated; Tasks: vcredist
; Run chatterino
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

[InstallDelete]
; Delete cache on install
Type: filesandordirs; Name: "{userappdata}\Chatterino2\Cache"
; Delete %appdata%\Chatterino2 on freshinstall
Type: filesandordirs; Name: "{userappdata}\Chatterino2"; Tasks: freshinstall

[UninstallDelete]
; Delete cache on uninstall
Type: filesandordirs; Name: "{userappdata}\Chatterino2\Cache"

[Code]
// Get the VCRT version as a string. Null if the version could not be found.
function GetVCRT(): Variant;
var
VCRTVersion: String;
begin
Result := Null;
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64', 'Version', VCRTVersion) then
Result := VCRTVersion;
end;

// Gets a description about the VCRT installed vs shipped.
// This doesn't compare the versions.
function VCRTDescription(Param: String): String;
var
VCRTVersion: Variant;
begin
VCRTVersion := GetVCRT;
if VarIsNull(VCRTVersion) then
Result := 'none is installed'
else
Result := VCRTVersion + ' is installed';
end;

// Checks if a new VCRT is needed by comparing the builds.
function NeedsNewVCRT(): Boolean;
var
VCRTBuild: Cardinal;
begin
Result := True;
if RegQueryDWordValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x64', 'Bld', VCRTBuild) then
begin
if VCRTBuild >= {#SHIPPED_VCRT_BUILD} then
Result := False;
end;
end;
9 changes: 9 additions & 0 deletions .CI/chatterino-nightly.flatpakref
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Flatpak Ref]
Name=com.chatterino.chatterino
Branch=beta
Title=com.chatterino.chatterino from flathub
IsRuntime=false
Url=https://dl.flathub.org/beta-repo/
SuggestRemoteName=flathub-beta
GPGKey=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
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo
Loading