* Added placeholder to tab rename dialog's input
* Always set placeholder to default tab name.
* Renamed context menu entries, updated popup
* Removed TextInputDialog class, slight popup fix
* Forgot to rename variable (no fun allowed 😥)
* forsenT
* Made use of QDialogButtonBox
* Added changelog entry
This adds the StartupWMClass property to the desktop file, which window managers can use to determine when chatterino has opened and which window belongs to it.
GNOME uses this property, so this will fix#1863. You can test this by applying this patch to the desktop file of an existing install.
Relevant FreeDesktop docs: specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html#key-startupwmclass
Fixes#1863
Fix CLI arguments not being respected. This happened due to the addition of category-based logging (--help, --version) and changes to the window loading ( --channels), respectively.
When handling --channels, I took the liberty to refactor the previous version of window description (which relied on generating JSON) to directly building the WindowLayout.
You can create clips with `/clip` command, `Alt+X` keybind or `Create a clip` option in split header's context menu. This requires a new authentication scope so re-authentication will be required to use it.
Co-authored-by: Leon Richardt <leon.richardt@gmail.com>
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
You can disable this by unchecking "Color @usernames" under `Settings -> General -> Advanced (misc.)`
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
* 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.
* 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>
* 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>
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".
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"
* 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>
* 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>
* 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>
* 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>
* 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
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
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.
* (#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
* 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
* 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