Summary:
Currently code base of kwin can be viewed as two pieces. One is very
ancient, and the other one is more modern, which uses new C++ features.
The main problem with the ancient code is that it was written before
C++11 era. So, no override or final keywords, lambdas, etc.
Quite recently, KDE compiler settings were changed to show a warning if
a virtual method has missing override keyword. As you might have already
guessed, this fired back at us because of that ancient code. We had
about 500 new compiler warnings.
A "solution" was proposed to that problem - disable -Wno-suggest-override
and the other similar warning for clang. It's hard to call a solution
because those warnings are disabled not only for the old code, but also
for new. This is not what we want!
The main argument for not actually fixing the problem was that git
history will be screwed as well because of human factor. While good git
history is a very important thing, we should not go crazy about it and
block every change that somehow alters git history. git blame allows to
specify starting revision for a reason.
The other argument (human factor) can be easily solved by using tools
such as clang-tidy. clang-tidy is a clang-based linter for C++. It can
be used for various things, e.g. fixing coding style(e.g. add missing
braces to if statements, readability-braces-around-statements check),
or in our case add missing override keywords.
Test Plan: Compiles.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: davidedmundson, apol, romangg, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D22371
Summary:
A while ago desktop effects and compositing settings lived under the
same roof
{F6584639}
{F6584642}
but time has passed and now those two have their own kcms. This causes
some issues:
* for newcomers it's harder to find code of the Desktop Effects KCM;
* git history doesn't look good, e.g. "[kcmkwin/compositing] Add some
bugs to Desktop Effects KCM to fix later";
* in general, the mix of two doesn't look good in the code.
This change splits out the Desktop Effects KCM. Unfortunately, in order
to have more nicer code I had to refactor EffectModel a little bit.
Before:
{F6584669}
After:
{F6587570}
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: davidedmundson, ltoscano, mart, ngraham, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18703
Summary:
Currently, video previews do not work because we try to call showHide()
function that was removed in 787c39cd42.
Reviewers: #kwin, #plasma, davidedmundson
Reviewed By: #kwin, #plasma, davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18720
Summary:
The main motivation for moving it into a shared library is to share the
model between Desktop Effects and Virtual Desktops KCM.
The extracted model is quite the same as the one in Desktop Effects KCM,
except some minor changes, e.g. rename loadEffect and syncConfig to more
convenient names, add comments, some whitespace changes, fix coding
style in some parts, etc.
Test Plan: effectModelTest passes, Desktop Effects KCM works.
Reviewers: #kwin, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: hein, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D17765
Summary:
This patch ports the Effects KCM to QQC2, which yields the following benefits:
1. General performance enhancements of only using QQC2 rather than a mix of 1 and 2
2. Some code simplification is possible
3. Improves the appearance of the checkable menu items in the dropdown menu, fixing https://bugs.kde.org/show_bug.cgi?id=402701
4. Improves the appearance when using a fractional scale factor, fixing https://bugs.kde.org/show_bug.cgi?id=396725
5. Fixes the incorrect size when opened from `kcmshell5`
Along the way, two visual changes are introduced as a by-product of porting:
1. The scrollbar is inline, so it overlaps some of the buttons in the content. This is somewhat undesirable, but adopting a Kirigami scrollview would fix this.
2. The button that displays a dropdown menu no longer has a downward-pointing arrow to indicate as such. This is not my preference, but there's a benefit to being consistent, and eventually we could can change this in one place to impeove the appearance of buttons that display dropdown menus everywhere in one fell swoop.
BUG: 396725
BUG: 402701
BUG: 396076
FIXED-IN: 5.15.0
Test Plan:
All functionality still works
In System Settings, showing improved checkable menu item appearance:
{F6523385}
In `kcmshell` at 1x scale:
{F6523386}
In `kcmshell` at 1.5x scale:
{F6523387}
Reviewers: #kwin, #plasma, davidedmundson
Reviewed By: #kwin, #plasma, davidedmundson
Subscribers: davidedmundson, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D17928
Summary:
Fade, glide, and scale effect are mutually exclusive effects so they have
to be put into an exclusive group in the desktop effects kcm.
Test Plan: {F6418669}
Reviewers: #kwin, #plasma, #vdg, ngraham, graesslin
Reviewed By: #kwin, #plasma, #vdg, ngraham, graesslin
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D16858
Summary:
All other KCMs have their {nav Get New [things]...} buttons in the bottom-right corner. This patch adjusts KWin's KCMs to adopt the same convention there too.
With this patch, all KCMs will have their GHNS buttons in the same location.
Closes T9954
Test Plan:
{F6375278}
{F6375277}
{F6375276}
{F6375275}
Reviewers: #kwin, #vdg, zzag
Reviewed By: #kwin, zzag
Subscribers: Codezela, kwin, kde-doc-english
Tags: #kwin, #documentation
Maniphest Tasks: T9954
Differential Revision: https://phabricator.kde.org/D16537
Summary:
Currently, if one wants to install a scripted effect from the KDE Store,
the effect won't show up in the Desktop Effects KCM. The reason for that
is kpackagetool5 doesn't know where to install effects (they have to be
installed under ${DATA_DIR}/kwin/effects).
Another problem is that even if the scripted effect is installed in the
right directory (e.g. ~/.local/share/kwin/effects), it won't be listed in
the Desktop Effects KCM because it doesn't have a desktop file in
kservices5 dir. Please notice that the effect will be "visible" for KWin, i.e.
you can enable it by editing kwinrc.
This diff addresses those 2 problems by:
* Adding a PackageStructure plugin for effects (so they are installed
under kwin/effects/);
* Using KPackage::PackageLoader to get list of scripted effect in the
Desktop Effects KCM.
Test Plan:
* Installed an effect from the KDE Store, it appeared in the Desktop Effects
KCM;
* Removed it.
Reviewers: #kwin, mart, davidedmundson
Reviewed By: #kwin, davidedmundson
Subscribers: ngraham, davidedmundson, kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D15372