Commit graph

28 commits

Author SHA1 Message Date
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 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
mmb L ebfcb49e8c
Make emote popup remember last position (#1580)
* Use existing moveTo to ensure window stay within desktop geometry
2020-04-13 13:15:51 +02: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
fourtf ea28269951 attempt to fix the tabs that sometimes get added 2019-08-26 11:26:58 +02:00
fourtf 68a96e3be8 added prompt to move windows into bounds 2019-08-25 21:24:43 +02:00
TranRed 34f820be18 implemented fallback logic for corrupted window layout (#1039)
* fallback logic for corrupted window layout

1. before saving the window-layout a backup will created to avoid corruption due to crashes while saving

2. when starting chatterino and the window-layout file returns and empty window layout (due to corruptio) the backup will be read and the layout will be build from this data

* Update WindowManager.hpp

* used QSaveFile instead of crude custom implementation

* implemented suggested feedback from review

* proper method call

was tired and slightly drunk Kapp
2019-05-01 09:58:13 +02:00
fourtf 52dcc2130e moved more stuff into appbase 2018-11-25 21:14:42 +01:00
fourtf cf26f10b80 initial appbase integration 2018-11-21 21:37:41 +01:00
fourtf d8fcc1a3ed small refactor 2018-11-14 17:27:08 +01:00
fourtf 1872163ec4 Open settings when clicking moderation button and no moderation actions are found 2018-10-21 15:32:28 +02:00
Rasmus Karlsson a947bf74c8 Occasionally save window/split/tab layout
The window layout is only saved if something has been changed.
When something relevant to the window layout is changed, a save is
queued to run after 10 seconds.
If within those 10 seconds, another thing is changed, that timer is
reset and will run after 10 seconds again.

Events that cause the save to be queued up:
 - Tab created
 - Tab removed
 - Tab moved
 - Tab name changed
 - Split created
 - Split removed
 - Split moved
 - Split channel changed
 - Split resized
 - Window moved
 - Window resized

What currently does not trigger the save to be queued up:
 - Active tab changed
2018-10-07 16:27:40 +00:00
Rasmus Karlsson 7879fef3a0 add some comments
reformat
2018-10-07 14:30:26 +00:00
apa420 bb6c2b6135 Cleaner flashing code (#774) 2018-10-07 10:55:44 +00:00
fourtf 44f5a15da3 turning a lot of includes into forward declares 2018-08-11 22:23:06 +02:00
fourtf 381177dd24 refactored EnumFlags 2018-08-07 07:55:31 +02:00
fourtf c2e2dfb577 this commit is too big 2018-08-02 14:23:27 +02:00
Rasmus Karlsson f1af162dab clean up some includes 2018-07-15 12:03:41 +00:00
fourtf c609a9fd37 started to refactor Application 2018-07-07 11:41:13 +02:00
fourtf 280bb4cf8e Renamed private members 2018-07-06 19:24:35 +02:00
fourtf 741c1f7820 refactored Window 2018-07-06 17:03:57 +02:00
fourtf 5604ae6a67 removed functions from SettingsManager that shouldn't be there 2018-06-28 19:38:57 +02:00
fourtf 08e552f5f6 ran clang-format on all files 2018-06-26 17:20:03 +02:00
fourtf 54eb07e116 removed namespaces 2018-06-26 17:06:17 +02:00
fourtf 2df0566492 removed namespaces 2018-06-26 16:37:59 +02:00
fourtf 22f528cd21 put all split widgets inside the same directory 2018-06-26 14:39:22 +02:00
fourtf a9bf9cf722 rename #3 2018-06-26 14:09:39 +02:00
fourtf c9722b9780 rename #2 2018-06-26 13:24:55 +02:00
Renamed from src/singletons/_WindowManager.hpp (Browse further)