Commit graph

38 commits

Author SHA1 Message Date
pajlada 032f290767
Sort and force grouping of includes (#4172)
This change enforces strict include grouping using IncludeCategories

In addition to adding this to the .clang-format file and applying it in the tests/src and src directories, I also did the following small changes:

    In ChatterSet.hpp, I changed lrucache to a <>include
    In Irc2.hpp, I change common/SignalVector.hpp to a "project-include"
    In AttachedWindow.cpp, NativeMessaging.cpp, WindowsHelper.hpp, BaseWindow.cpp, and StreamerMode.cpp, I disabled clang-format for the windows-includes
    In WindowDescriptors.hpp, I added the missing vector include. It was previously not needed because the include was handled by another file that was previously included first.
    clang-format minimum version has been bumped, so Ubuntu version used in the check-formatting job has been bumped to 22.04 (which is the latest LTS)
2022-11-27 19:32:53 +01:00
nerix be72d73c3d
feat: add Go to message action in various places (#3953)
* feat: add `Go to message` action in search popup

* chore: add changelog entry

* fix: only scroll if the scrollbar is shown

* fix: go to message when view isn't focused

* feat: animate highlighted message

* fix: missing includes

* fix: order of initialization

* fix: add `ChannelView::mayContainMessage` to filter messages

* feat: add `Go to message` action in `/mentions`

* fix: ignore any mentions channel when searching for split

* feat: add `Go to message` action in reply-threads

* fix: remove redundant `source` parameter

* feat: add `Go to message` action in user-cards

* feat: add link to deleted message

* fix: set current time to 0 when starting animation

* chore: update changelog

* fix: add default case (unreachable)

* chore: removed unused variable

* fix: search in mentions

* fix: always attempt to focus split

* fix: rename `Link::MessageId` to `Link::JumpToMessage`

* fix: rename `selectAndScrollToMessage` to `scrollToMessage`

* fix: rename internal `scrollToMessage` to `scrollToMessageLayout`

* fix: deleted message link in search popup

* chore: reword explanation

* fix: use for-loop instead of `std::find_if`

* refactor: define highlight colors in `BaseTheme`

* core: replace `iff` with `if`

* fix: only return if the message found

* Reword/phrase/dot changelog entries

Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-09-11 16:37:13 +02:00
Leon Richardt e1b512a373
ref: unify Split popup logic (#3848)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2022-07-07 17:28:38 +00:00
Leon Richardt 881986d86f
fix: make popup windows have a parent per default (#3836)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2022-06-25 12:45:56 +00:00
pajlada 51ece94f58
Update Settings and Signals version (#3398)
Co-authored-by: zneix <zneix@zneix.eu>
2021-12-19 14:57:56 +00:00
Tal Neoran ad4a0c28d1
Add opening tab in popup (#3082)
Co-authored-by: zneix <zneix@zneix.eu>
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2021-08-21 12:16:00 +00:00
fourtf 2db140d5af
Added x-attach-split-to-window command line arg (#2411)
Co-authored-by: pajlada <rasmus.karlsson@pajlada.com>
2021-04-17 14:15:23 +00:00
Leon Richardt 1b75dc1e2c
fix: properly handle CLI arguments (#2368)
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.
2021-01-23 16:26:42 +01:00
pajlada 1ee1e8837f
Use Qt's dialog where applicable (#1843) 2020-10-31 16:42:48 +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
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)