Commit graph

641 commits

Author SHA1 Message Date
pajlada 277ef4b2e3
Fix crash when moving splits across windows and closing parent tab (#2259) 2020-12-06 15:34:40 +01:00
fanway bf4c9cebb1
Use display/localized names in tab and split titles (#2189) 2020-12-06 14:07:33 +01:00
pajlada 4436109a2f
Add setting to limit number of historical messages to load on connect (#2252) 2020-12-06 13:04:49 +01:00
Felanbird a79081f441
Changelog typo fixes (#2239) 2020-11-29 13:18:33 +01:00
Leon Richardt 160717e3e5
doc/fix: version previously unversioned changelog entries (#2238) 2020-11-29 12:07:22 +01:00
Leon Richardt 0a0cfb8e48
fix: make LoginWidget child of AccountsPage (#2234) 2020-11-29 10:48:23 +01:00
pajlada 5258ddd84f
Add parent to ChannelFilterEditorDialog (#2232) 2020-11-28 18:04:33 +01:00
Paweł 49fa9bfd72
Made #channel link in /mentions jump to #channel split (#2220) 2020-11-28 17:45:20 +01:00
pajlada 1a4d4dca79
Fix freeze in Ignore & Replace if replacement followed by emote (#2231)
shiftIndicesAfter now also shifts the item end position along with the item start position
2020-11-28 15:03:36 +01:00
Paweł 05aab86845
Added links to twitchemotes.com to Twitch emotes' context menus (#2214) 2020-11-22 15:54:58 +01:00
mmb L 44262ee2ec
Add Ctrl+F5 as a shortcut for reconnect() (#2215) 2020-11-22 14:28:07 +01:00
Paweł b79d5fa6f0
Fixed "raw mentions" not being clickable with special characters appended to them (#2212) 2020-11-22 14:02:55 +01:00
Paweł 3ffb28427d
Updated minimum required Qt versions (#2210)
This updates both the build instructions and enforces qt version when running qmake
2020-11-21 11:24:32 +01:00
Leon Richardt 60d5c5d99f
[Fix] Use copy instead of reference for overriding message flags (#2200)
* fix: use copy instead of reference for overriding message flags

* doc: update changelog

Note: the initial attempt at fixing this issue (#2090) was also included
in order to make the development process more trackable.
2020-11-17 18:47:07 +01:00
Daniel b572c187a4
Fix FFZ emote assertion crash (#2192)
* Fix crash on null urls from FFZ API

* Update CHANGELOG.md

* Turns out there's an actual method for this
2020-11-17 10:27:14 +01:00
pajlada 53c96097c9
Use the main window as the parent to all user cards on macOS (#2185) 2020-11-15 14:40:34 +01:00
Leon Richardt 540870f9fe
[Fix] Make SearchPopup a BasePopup (#2182) 2020-11-15 11:07:20 +01:00
Paweł fbd5df53d8
Ensure Twitch username in UserCard uses display name from API (#2160) 2020-11-08 11:39:10 +01:00
pajlada 29d0ef6923
Apply nightly update logic to macOS and Linux too (#2164) 2020-11-08 10:32:55 +01:00
Paweł c3ff98da87
Improved textEdit placeholder (#2149)
* Made colors a bit lighter

And also removed the tooltip from non-twitch channels

* Updated the changelog entry

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-05 09:06:34 +01:00
fanway f36c0fee97
Fix runIgnoreReplaces fall into infinity loop (#2151)
* Fix `runIgnoreReplaces` fall into infinity loop

The regex pattern was not checked for emptiness, which led to an endless
loop

* Update CHANGELOG.md

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-04 23:11:17 +01:00
Daniel 2eb01af5e7
Prevent default tab completion from overriding colon menu (#2133)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-01 14:59:43 +01:00
fanway 892e16c533
Fix link preview doesn't update link info for previous messages after setting is enabled (#2108)
Co-authored-by: Felanbird <41973452+Felanbird@users.noreply.github.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-11-01 14:33:01 +01:00
Paweł a27757e440
Added placeholder for Split's textEdit (#2143) 2020-10-31 18:17:43 +01:00
pajlada 1ee1e8837f
Use Qt's dialog where applicable (#1843) 2020-10-31 16:42:48 +01:00
yodax 466d85c907
Retain channel context for user cards opened from search window (#2088) 2020-10-25 11:10:28 +01:00
Mm2PL 3ee08b9ffd
Add support FrankerFaceZ badges. (#2101)
On startup, we poll https://api.frankerfacez.com/v1/badges/ids and store the mappings of user IDs to badges for the remainder of the applications lifetime.
2020-10-25 10:36:00 +01:00
Leon Richardt ec94869480
Allow highlights to be excluded from /mentions (#2036) 2020-10-24 14:33:15 +02:00
Leon Richardt 0049a5ebb2
Fix tabbing in Quick Switcher (#2065)
It was broken in f7237dc due to the migration to the GenericListView approach
2020-10-24 10:50:14 +02:00
fourtf 11525e626a
edited general settings categories (#2117)
* edited general settings categories

* Update CHANGELOG.md
2020-10-23 14:26:04 +02:00
pajlada 72f44ccdc3
Fix "variables" documentation help in the Filter creation dialog (#2083) 2020-10-18 16:14:59 +02:00
dnsge 4199a01b96 Advanced channel filters (#1748)
Adds custom channel filters complete with their own mini-language. Filters can be created in settings, and applied by clicking the three dots to open the Split menu and selecting "Set filters".
2020-10-18 15:18:20 +02:00
pajlada 812cbdf4f9
Scroll in selected split with PageUp and PageDown (#2081) 2020-10-18 13:15:47 +02:00
pajlada 39a0e69a3b
Reset the timer & refresh thumbnail when changing split channel (#2080) 2020-10-18 12:19:30 +02:00
yodax 55b98f93db
Added emote completion with : to the whispers channel (#2076) 2020-10-17 15:59:15 +02:00
yodax 2352c31dd6
Viewer list usability improvements (#2059)
* Updated to use accent color and added spaces between categories

* Switched order of Moderators and VIPs
2020-10-17 15:00:10 +02:00
Paweł 2232c6d925
Changed Streamer Mode settings (#2001)
There's now a new (yet another, sigh) section in Settings -> General, which lets you set streamer mode to 'enable/disable/detect obs' and there are also separate settings for each of the things that streamer mode covers. I just have to add ping sounds and PR is ready to be merged :)

* Show "Streamer Mode" image as link thumbnails if applicable

* Moved hideViewerCountAndDuration to streamerMode settings

Set it to false by default (just how it used to be under /misc settings, also reworked live tooltip to be a bit prettier and say "<Streamer Mode>" in gray instead of "Live with <hidden> for <hidden> viewers"
2020-10-11 13:52:14 +02:00
Dave 56828f2d81
Made the current channels emotes appear at the top of the emote picker (#2057) 2020-10-11 12:31:00 +02:00
Dave 98762fdfa0
Add viewer list button to twitch channel header (#2042) 2020-10-10 17:24:53 +02:00
Dave 84613187e1
Fixed missing timestamps on point redemption messages (#2043)
* Added timestamps to point redemption messages

* updated change log

Co-authored-by: fourtf <tf.four@gmail.com>
2020-10-09 17:26:45 +02:00
fanway df97d609a2
Fix tooltip not showing in EmotePopup (#2046)
* Fix tooltip not showing in `EmotePopup`

* Update CHANGELOG.md
2020-10-09 17:21:04 +02:00
Paweł 776ce8bdbc
Added subage and followage to usercard (#2023)
* Added subage and followage information to usercard

We are using Leppunen's API here to determine user's subage to the current channel and since that API call also returns followage information I decided to utilize that and save ourselves an extra Helix API call.
I also added new files specifying new class and methods for Ivr API, which can be very easily expanded with new methods in the future if we ever have to do that.
When I was coding I also saw couple unnecessary nitpicks which I fixed :)

* Added changelog entry

* remove empty lambda

* Update UserInfoPopup.cpp

* xd

Co-authored-by: fourtf <tf.four@gmail.com>
2020-10-04 18:32:52 +02:00
apa420 35816c5d8a
Add settings for last message line style (#2019) 2020-10-04 18:26:46 +02:00
Leon Richardt aff59495df
Improve "Login expired!" message (#2029)
* feat: improve "Login expired!" message

Since this message occurs when the OAuth token becomes invalid, users
have to re-add their account in order to continue using the application.
The previous message did not make this clear enough, often leading to
confusion and questions by users.

This commit changes the system message to more clear about what the user
has to do, and adds a link that opens the "Accounts" page in the
preferences.

* Update changelog

* Update ChannelView.cpp

Co-authored-by: fourtf <tf.four@gmail.com>
2020-10-04 17:36:38 +02:00
gempir 80e84b1d8a
Commands are now saved upon pressing Ok in the settings window (#2016)
Commands are now saved upon pressing the Ok Button in the settings window, similar to the rest of the settings.
2020-10-04 13:02:29 +02:00
apa420 a2e12a56e3
Changed some default settings (#2024)
Colorized nicknames now enabled by default
Show channels live now enabled by default
Bold usernames enabled by default
2020-10-04 12:59:31 +02:00
Daniel 58a6983796
Fix timestamps on some messages loaded from the recent-messages service on startup (#2020) 2020-10-03 13:37:07 +02:00
apa420 3450b1cc9d
Added image to streamermode user popup (#1995)
* Added image to streamermode user popup

* Update CHANGELOG.md

* swapparoo

Co-authored-by: fourtf <tf.four@gmail.com>
2020-09-27 00:22:06 +02:00
apa420 b4ef4fe54d
Added vip and unvip buttons (#1996)
Co-authored-by: fourtf <tf.four@gmail.com>
2020-09-27 00:20:15 +02:00
Daniel f7f858a4fc
Auto-refresh UserInfoPopup recent messages (#1982)
* Auto-refresh UserInfoPopup recent messages

* Update CHANGELOG.md

* Clean up code

* changed something about the connection

Co-authored-by: fourtf <tf.four@gmail.com>
2020-09-26 16:59:40 +02:00
Paweł d314566ab6
Argument parsing rework (#1940)
* Experimental argument handling

* Restored browser extension launch functionality

Also moved check from BrowerExtension.cpp to Args.cpp as it is more relevant there and doesn't require passing arguments to a function in another file

* Fixed formatting

* Simplified Args.cpp code, added changelog entry

* Hid crash-recovery from help

* Dont save settings if launched with --channels

* Changed parsing method to t:channel

* Code cleanup

* Changed plaform delimeter to :, platform defaults to Twitch

Co-authored-by: fourtf <tf.four@gmail.com>
2020-09-26 16:03:51 +02:00
fourst4r 2f3accf3cb
fix a crash using middle click scroll on chat window (#1870)
* fix middle click scroll crash

* Update CHANGELOG.md

* get the float dpi, not int
2020-09-26 15:47:20 +02:00
fourtf affef2c5a2 Merge remote-tracking branch 'refs/remotes/origin/master' 2020-09-26 14:56:56 +02:00
fourtf db3402a18e Merge branch 'Ch2Usercard' 2020-09-26 14:54:44 +02:00
pajlada 20e4d6b3d2
Update emote parsing (#1714)
Fixes #1707
2020-09-26 14:21:46 +02:00
apa420 d9e6488be3
Update CHANGELOG.md (#1990) 2020-09-26 13:38:15 +02:00
Auro cc5eb7000f
Fixed the english of a system message (#1878)
* Update TwitchIrcServer.cpp

* made english better

changed "sending messages too fast" to "You are sending messages too fast"

* changed english

* Changed English

Changed the English in 2 system messages

* Update CHANGELOG.md

* Changed too fast to too quickly

Co-authored-by: fourtf <tf.four@gmail.com>
2020-09-26 13:06:37 +02:00
pajlada 913193f8b5
Split up Window Layout loading into a loading and application stage (#1964)
* Split up Window Layout loading into a loading and application stage

Previously, we were creating UI elements at while we were reading the window-layout.json file.
We now read the window-layout.json file fully first, which results in a
WindowLayout struct which is built up of a list of windows with a list
of tabs with a root node which contains containers and splits.
This WindowLayout can then be applied.

This will enable PRs like #1940 to start Chatterino with Window Layouts
that aren't defined in a json file.

This commit has deprecated loading of v1 window layouts (we're now on v2). If a v1 window layout is there, it will just be ignored and Chatterino will boot up as if it did not have a window layout at all, and on save that old window layout will be gone.

* Fix compile error for mac
2020-09-19 17:14:10 +02:00
pajlada c7a2f4cc92
Don't make follow requests based on the check follow response (#1906)
This is done by deliberately setting and reading the enabled state of
the widget whenever the stateChanged event happens.

If the stateChanged event happens while the widget is not enabled, we
know the event must have been triggered by our "check user follow state"
event, and then we don't act upon that event
2020-09-06 12:46:35 +02:00
Daniel b024b47afd
Changelog crash fix (macOS) (#1935)
On macOS, trying to display a dialog before showing the main window
(like when starting minimized) leads to a crash. The dialog will now
show before the main window is opened, preventing this issue.
2020-09-06 12:02:15 +02:00
pajlada 9ae79e650d
Update version of settings library (#1908)
This version handles symlinks properly

Relevant for commands saving and settings saving
2020-08-30 15:31:47 +02:00
Daniel 0814fca7d4
Usercard command fix (#1918)
* Add myself to contributors list
2020-08-30 11:57:46 +02:00
Nico Sonack 930351779c
(#1874) Disable updates on non-Windows, Linux or macOS platforms (#1914)
* (#1874) Disable update checking for unsupported platforms

As described #1874, only Windows, macOS and GNU/Linux are officially
supplied with builds. Thus checking for updates is unnecessary if we
are e.g. on FreeBSD, OpenBSD, illumos distros and possibly other
Operating Systems.

This fixes #1874 by ifdef-ing the 3 officially supported platforms
when checking for updates. Otherwise a debug warning will be emitted
and in the settings the checkbox for beta-updates is hidden and
replaced by a message, explaining the reason for why there are no beta
updates.

* Update CHANGELOG

In accordance with #1874

* (#1874) Move platform check into checkForUpdates

As discussed in #1914

* (#1874) Move check for supported OS to a seperate function.

As requested in #1914
2020-08-24 12:02:56 +02:00
Leon Richardt 505581ca65
[Bug Fix] Color of second user highlight cannot be set (#1898)
* Highlighting: Fix bug preventing user highlight from being set

Before this commit, only the row of a clicked cell was checked, but not
the tab it was clicked in.

Since the "Whispers" row is the second row in the "Messages" tab on the
highlighting page, the color picker was not opened for the second entry
in the "Users" tab either. This commit fixes the bug by also checking
tab the cell was clicked in.

* Update CHANGELOG.md
2020-08-22 23:10:10 +02:00
fourtf 359adbce15
Update CHANGELOG.md 2020-08-22 19:30:27 +02:00
fourtf 106923549d
Update CHANGELOG.md 2020-08-22 16:58:35 +02:00
pajlada 0cbddf7e9b
Fix/be respectful of special characters like exclamation marks in highlight phrases since they are also word boundaries (#1890)
* Add missing includes

We would normally have these included in another file already, or even
the precompiled headers, but having the files included here too makes
testing single parts easier.

* Modify the regex building of highlight phrases for non-regex phrases

For phrases like !test, the word boundary checking we did before was not
enough, so we now check for either a word boundary, a whitespace
character, or the line start/end.

* Add tests for ensuring I haven't fully broken the highlight system

* Add changelog entry
2020-08-22 15:37:03 +02:00
alazymeme 0b0f1c9c5c
Add microsoft edge support for incognito (#1875)
* Fix incognito button missing

* Update CHANGELOG.md
2020-08-21 15:33:56 +02:00
alazymeme fba049dbfb
Fix open in browser button for whisper split (#1860)
* Fix open in browser button for whisper split

* Update CHANGELOG.md
2020-08-15 10:15:57 +02:00
Matthew Marlow 8530ffb7e3
added brave browser to supported NM list (#1862)
* added brave browser to supported NM list

* updated CHANGELOG.md
2020-08-15 10:14:59 +02:00
Leon Richardt a9080ceb3c
Discord-like Quick Switcher (#1588)
* Proof of Concept for Quick Switcher

* Fix crash when suggestions are empty

* QuickSwitcher: Use tab name instead of a single channel

* Rebase later

* Add missing include for <functional>

* Move QuickSwitcher related classes into own subfolder

* Refactor switcher list items

Now, items are responsible for taking the right action when selected in
the switcher list. This should allow for more focused code and
responsibilities.

* Add note about memory management

* Add option to open channel in a new tab

* Add support for using the mouse

* Spawn switcher popup in the middle of the window

Works reliably on i3 at least. Might need some additional testing on
other WMs (and especially on Windows!).

* Add some icons for switcher items

Note that the final design of the list is not final but I do plan to
incorporate these in the future.

* Set Qt::Dialog window flag on switcher popup

Prevents tiling window managers like i3 from trying to tile the window.

* Rename "SwitcherItem" to "AbstractSwitcherItem"

* Add comments about what items are inserted

* Use custom model and view

Still missing: Currently selected item is not highlighted yet. You can
move between selected items with tab and arrow keys though.

* Add helper function to convert QVariant to AbstractSwitcherItem *

* Remove useless constant

* Highlight currently selected switcher item

* Use a different method for centering QuickSwitcherPopup window

* QuickSwitcherModel: Add documentation

* Add default parameter to QuickSwitcherModel::rowCount

* QuickSwitcherPopup: Add comments

* Remove outdated TODO

* QuickSwitcherModel: Init vector with default capacity

* Remove outdated comment

* Add comment about 0 ms timeout interval

* NewTabItem: Simplify interface

* Only fetch opened splits once

This is better than the prior approach since opened splits cannot change
anyways while the switcher is open.

* Use SplitContainer to pass information instead of custom type

* Allow searching for tab titles as well

Before this commit, only channel names could be searched.

* Refactor switcher item interface to be more flexible

Also show tab name and channel name in the switcher list.

* Add documentation for AbstractSwitcherItem

* Add documentation for NewTabItem

* Add comments about {begin,end}{Insert,Remove}Rows

* Remove unused method

* Replace magic size with named constant

* Add change log entry

Co-authored-by: fourtf <tf.four@gmail.com>
2020-08-13 19:25:51 +02:00
Daniel 0e6ca6b097
Vertical tabs (#1815)
* Vertical tabs

* Vertical tab wrapping

* Fix formatting

* Cleanup code

* Updated changelog

* Hide button row if no buttons exist

* Fix tab width expansion

Co-authored-by: fourtf <tf.four@gmail.com>
2020-08-13 15:43:08 +02:00
alazymeme 1bd3d10eef
Add an "Open in browser" option to whisper split (#1828) 2020-08-08 15:17:51 +02:00
pajlada 382dfbc2fa
[SearchPopup] CTRL+F now focuses the search input (#1812) 2020-07-18 17:52:12 +02:00
Daniel ba06b10135
Open usercard on mention click (#1674) 2020-07-18 16:03:51 +02:00
pajlada 276f3e1d98
[SettingDialog] CTRL+F now selects the Find input (#1811)
* Sneakily make SettingsDialog constructor private at the same time 🕵
2020-07-18 15:56:33 +02:00
pajlada 6ba9c5ec31
Reset the lastMessageHasAlternateBackground{Reverse} values when clearing all messages in a ChannelView. (#1810)
This makes it so that we consistently start with the same values after
having cleared a ChannelView.
Example place where this happens: UserInfoPopup when user messages are
loaded and refreshed
2020-07-18 14:44:10 +02:00
pajlada ffdf5a144c
Handle conversion of historical CLEARCHAT messages to NOTICE messages in Chatterino instead of relying on the Recent Messages API to handle it for us (#1804)
This has historically been done in the Recent Messages API, but this functionality is being moved to Chatterino instead

* Remove `clearchatToNotice=true` query parameter to the Recent Messages API
2020-07-18 14:12:11 +02:00
Paweł 682caf6b69
Add support for more image uploader services (#1741)
The list of links that have been uploaded is now also stored in the json format instead of csv
2020-07-05 14:32:10 +02:00
pajlada cdf85c5084
Message menu now holds a shared pointer to a layout (#1787)
This ensures that the layout will survive for the lifetime of the menu,
     so any of the menu actions can with confidence do things with the
     layout, not having to worry whether it's dead or not.

This means that the user, while having the message menu open, could have
one extra MessageLayout alive. I have ensured that when the menu dies
the reference to the shared pointer dies with it.
2020-07-05 13:52:24 +02:00
Daniel 680b500993
Fix update checker not working on macOS (#1642)
* Prevent update dialog from going off screen

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-05-10 13:13:47 +02:00
Daniel Pasch be6ef6dcd5
open twitch usercard on middle mouse (#1669)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2020-05-10 12:45:19 +02:00
Daniel Pasch 8532c6d3bc
Add thumbnails to link tooltips if available (#1664)
This feature is off by default and can be enabled in the settings with the "Show link thumbnail" setting. This feature also requires the "Show link info when hovering" setting to be enabled.

thumbnails support is only there for direct image links, twitch clips, and youtube links. can be expanded in the future in the /api repo

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2020-05-10 12:11:10 +02:00
pajlada 001dce5da1
Create uploader to i.nuuls.com (#1332)
This commit adds support for uploading images to i.nuuls.com from clipboard or by dragging an image into a split.

Documentation for how to self-host the image uploader is available in ENV.md

By default, you will be asked before an image upload takes place. There's an option in the dialog to not be asked again, if that option is chosen you can revert that choice in the settings dialog.
2020-05-09 07:34:27 -04:00
Rasmus Karlsson 4bfd20f943 Add changelog entry 2020-05-09 13:33:23 +02:00
pajlada b4eb56f362
Remove "Online Logs" functionality (#1649)
The /logs command will direct users to the /user command instead

Changelog has been updated to reflect this change
2020-05-02 12:18:35 +02:00
pajlada 0f2355459d
Make ModBadgeElement a descendant of BadgeElement instead of EmoteElement (#1602)
this causes it to behave as it should, and not be scaled when emotes are
scaled. :)
2020-03-14 13:06:24 +01:00
pajlada 2b5c6ffe33
Remove chatroom code (#1561)
People who had chatrooms still open should notice no difference at all, since it will just try to join a channel with the chatroom name.

Documentation for the closing/deprecation of twitch chat rooms:
    https://discuss.dev.twitch.tv/t/rooms-are-closing-how-it-affects-the-api-and-irc/22996
    https://dev.twitch.tv/docs/change-log (see 2020-01-10 entry)
2020-02-22 06:05:36 -05:00
fourtf a2d21510ac
Update CHANGELOG.md 2020-02-21 02:13:31 +01:00
Rasmus Karlsson 7a08d73434 Fix preview on hover not working when Animated emotes options was disabled.
Fixes #1546

This change introduces a "window timer" that runs every 100ms that we
use to update the pixmap if necessary, since there is no signal for "let
me know when this image is done loading".
2020-02-15 17:16:10 +01:00
Rasmus Karlsson 64c58e724a Use same sorting method in emote popup as in the completion model
Fixes #1549
2020-02-15 15:52:42 +01:00