Commit Graph

14643 Commits

Author SHA1 Message Date
Marco Martin
6ffe068b80 generate the old key before updating enabledborders
Summary:
sometimes a frame changed enabled borders causing a dangling
pointer in s_sharedFrames, since oldkey was generated
with the new enabled borders, it generated a key not present
in the hash, tryed to remove it and left the one associated
with the old key in the hash.
if the need to reuse a frame with that key ever arised again,
we had a crash
BUG:378508

Test Plan:
couldn't reproduce the crash neither with or without patch,
with the patch, if i put debug in every place a framedata is removed,
searching if the key is in the hash before removing it, now
it's always true, before sometimes it was false

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D6162
2017-06-09 16:16:16 +02:00
Marco Martin
1aea7bbd5e show show password button also if empty text
like happened in KPasswordWidget, show the show password
button also when there is no text, otherwise is impossible
to know what will be typed, a dot or the actual letter
BUG: 378277
2017-06-09 13:15:46 +02:00
David Edmundson
e65d7b98be Make every applet its own focus scope
Summary:
Like Loaders an applet should be a focus scope. It allows an applet to
set an item to have focus which will then have activeFocus when that
applet gets focus.

Also makes it easy to test if any item within the plasmoid has
activeFocus.

Test Plan:
Keyboard nav in kicker/klipper still work
Added opacity: Plasmoid.activeFocus ? 1 : 0 in an applet and it worked
as expected

Reviewers: #plasma

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D6152
2017-06-08 11:27:52 +01:00
David Edmundson
8fdbfa6980 Emit usedPrefixChanged when prefix is empty
As found by Fabian Vogt
2017-06-07 19:46:19 +01:00
Marco Martin
bf1d1cc6b2 don't switch colors on new themes
new themes as breeze aren't supposed to just use the button graphics
on top, that also mean, don't switch palette on top if the new prefix
is there
2017-06-07 18:24:33 +02:00
Pino Toscano
0c8cac7849 tests: run i18ndcheck only when bash is found
it's a bash script, so it is pointless to attempt to start it when bash
is not installed
2017-06-06 16:09:25 +02:00
Aleix Pol
563011436d Port a bunch of classes away from Plasma::Package
Summary: Ported away some classes, removes many unneeded casts that happen when starting.

Test Plan: Tests still pass, plasma starts properly

Reviewers: #frameworks, #plasma, mart

Reviewed By: #plasma, mart

Subscribers: davidedmundson, mart, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D6041
2017-06-06 15:11:25 +02:00
Pino Toscano
8b92058d97 cmake: use ecm_add_test more
avoid manually adding tests when possible
2017-06-06 14:45:10 +02:00
Allen Winter
6c03c15c08 src/plasmaquick/dialog.cpp - fix build without kwayland 2017-06-05 10:02:44 -04:00
Friedrich W. H. Kossebau
0fb9732866 [FEATURE] Option to build & install QCH file with the public API dox
Using the new extra-cmake-modules module ECMAddQch (since 5.36.0)
this adds the option to automatically build and install a file
in QCH format with the docs about the public API, which then can be
used e.g. in Qt Assistant, Qt Creator or KDevelop.

Additionally the installed cmake config files will be extended
with a target KF5Plasma_QCH containing information about how to "link"
into the generated QCH file, which then can be used in the cmake build
system of other libraries building on this library, by
simply listing this target in "LINK_QCHS" of their ecm_add_qch() usage.
And a respective doxygen tag file with all the metadata about the
generated QCH file and used for the "linking" will be created and
installed.

Pass -DBUILD_QCH=ON to cmake to enable this.
2017-06-05 04:25:55 +02:00
l10n daemon script
2f42edd430 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-06-05 04:11:13 +02:00
Guo Yunhe
6ee8ffd79a Add VLC tray icon 2017-06-03 13:06:38 +03:00
l10n daemon script
7a7809562d GIT_SILENT Upgrade ECM and KF5 version requirements for 5.35.0 release. 2017-06-03 09:21:08 +00:00
l10n daemon script
edccfd44bc SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-06-02 04:26:47 +02:00
l10n daemon script
16f6c388e7 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-05-30 04:19:06 +02:00
Aleix Pol
3b303d7363 Small improvements in IconItem
Summary:
Don't construct a QUrl for every source strings. Check it's a file url
first (which is the only kind of url we support at the moment)
When extracting the path, use toLocalFile, so it works on platforms where
path!=toLocalPath (e.g. windows)
Don't split a string and get a chunk, but just extract the chunk we need
with section. Reduces allocations that are automatically discarded.
Narrow iconPath scope

Test Plan: Tests still pass, plasmashell still works

Reviewers: #frameworks, #plasma, mart

Reviewed By: #plasma, mart

Subscribers: plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D6014
2017-05-29 19:10:37 +02:00
Friedrich W. H. Kossebau
68ed01638c API dox: Use doxygen notation to have comments used 2017-05-26 19:55:25 +02:00
Friedrich W. H. Kossebau
fcee026657 API dox: note CamelCase includes by @class tag with more classes 2017-05-26 19:55:09 +02:00
Friedrich W. H. Kossebau
8749591922 API dox: fix doxygen notation with some post-position comments 2017-05-26 19:54:11 +02:00
Marco Martin
32e67a591e minimize dialog resizes/moves
Summary:
take into account size hints also when adjusting with synctomainitemsize
which sometimes has to be executed right before adjusting from the layout
hints, giving one wrong resize

introduce geometryUpdatesBlocked, which stops the dialog
from syncing which is useful when both visual parent and item
contents gets updated in one go (the tooltip) it is not
yet exported to qml and it shouldn't as is dangerous, but
kicker may make use of it between changing the submenu model and
the visualparent

alternative implementations may be:
* a method that takes both main item and visual parent
* delaying with a timer setGeometry (ouch)
this part can also be left behind for now and see if the rest is good enough

Test Plan:
no visual glitches visible anymore in wayland when moving the tooltip
in the taskbar, x11 ok too

Reviewers: #plasma, hein, davidedmundson

Reviewed By: #plasma, hein, davidedmundson

Subscribers: broulik, davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5912
2017-05-25 11:21:50 +02:00
l10n daemon script
6622a8c713 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-05-24 08:46:29 +02:00
Marco Martin
5ba1bed582 set transientparent for menus
Summary:
set transient parent for popup menus created by appletinterface/
containmentinterface, it makes them appear at the proper coordinates

Test Plan: containment menus appear where the mouse was pressed

Reviewers: #plasma, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5918
2017-05-22 10:51:16 +02:00
l10n daemon script
f28ba7cba6 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-05-22 04:11:37 +02:00
l10n daemon script
6d3e5841fb SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-05-21 04:35:16 +02:00
l10n daemon script
7a4ef77ac8 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-05-20 04:16:47 +02:00
Friedrich W. H. Kossebau
801724eb01 Plasmoid templates: use the image which is part of the package (again) 2017-05-19 14:37:20 +02:00
Friedrich W. H. Kossebau
4d5793c28a Add template for Plasma QML Applet with QML extension
Summary:
Should help people to kick-off plasmoids which also
use custom QML classes.

Test Plan: Created new plasmoid from template using kdevelop.

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5914
2017-05-19 14:23:13 +02:00
l10n daemon script
f38c9760d4 GIT_SILENT Upgrade KF5 version to 5.35.0. 2017-05-13 12:13:04 +00:00
Marco Martin
680a8a9e28 [WIP] workarounds for menu positioning
Summary:
this ensure two things:
* submenus have the main menu as transientParent
* the visualParent window() is used as transientParent, if exists

this partly fixes popup positioning in wayland, tough
the main taskbar menu is still mis positioned

Test Plan: submenus ok, taskbar contextmenus only partially fixed

Reviewers: #plasma, #plasma_on_wayland, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #frameworks, #plasma_on_wayland

Differential Revision: https://phabricator.kde.org/D5773
2017-05-12 20:53:06 +02:00
Marco Martin
fd2e850156 recreate plasmashellsurf on exposed, destoy on hidden
Summary:
every time the window gets shown the wayland surfaces
get created, when hidden, they get destroyed

showevent is too early for it as they aren't there yet,
use :Exposed instead, but only the first time when the surface
isn't there yet

Test Plan:
popup applets always have correct blur in a wayland
session

Reviewers: #plasma, #plasma_on_wayland, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, plasma-devel, #frameworks

Tags: #frameworks, #plasma_on_wayland

Differential Revision: https://phabricator.kde.org/D5745
2017-05-12 16:58:21 +02:00
Pino Toscano
028d7fec2a tests: fix i18ndcheck.sh for paths with special chars
- quote the argument, so it is interpreted as single parameter (as it
  should be)
- print the found paths with null terminator, telling xargs to read
  them that way
2017-05-06 15:01:27 +02:00
l10n daemon script
288dc5b0bb GIT_SILENT Upgrade ECM and KF5 version requirements for 5.34.0 release. 2017-05-06 08:55:47 +00:00
l10n daemon script
31b2ccdc06 GIT_SILENT Upgrade KF5 version to 5.34.0. 2017-05-05 21:58:25 +00:00
Marco Martin
85699c8d2f reload icon when usesPlasmaTheme changes
Summary:
when usesPlasmaTheme gets changed, make sure to
invalidate the svg icon if there, to reload the
icon from the proper source, being either from
the plasma theme or the system icon theme.

Test Plan:
cuttlefish now reloads dynamically the proper icons
when the monochrome checkbox is ticked

Reviewers: #plasma, sebas

Reviewed By: #plasma, sebas

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5721
2017-05-05 22:40:27 +02:00
Jonathan Riddell
5ff92e33ff fix include even if load path isn't set 2017-04-28 11:44:40 +01:00
Christophe Giboudeaux
500d84d2bc Fix build with CMake 3.8 2017-04-27 19:09:18 +02:00
Marco Martin
57c35df0bb hide scrollbar when useless
not only the root scrollbar should be hidden when
control.size == 1.0 but also background and
contentItem as they get reparented
2017-04-27 16:11:25 +02:00
David Edmundson
d3ed006a1f Install Plasma Components 3 so they can be used
Summary:
We were missing installing the qmldir file which is quite important

Test Plan: Actually used them in a Plasmoid

Reviewers: #plasma, mart

Reviewed By: mart

Subscribers: mart, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5603
2017-04-27 14:59:03 +01:00
Eike Hein
4f48901b05 Introduce units.iconSizeHints.* to provide user-configurable icon size hints
Summary:
In effect this is meant to resurrect the "Panel" icon size setting from
the Icons -> Advanced KCM in System Settings, for use as a ceiling on
panel icons to avoid them taking up too much space, especially in wide
vertical panels.

Previously, the actually-unused "Desktop" size hint was added to the
iconSizes map. I believe this was in error, as the size hints are
semantically different from the size classes. This patch marks the
"desktop" iconSizes map entry as deprecated and makes it available
under iconSizeHints instead.

The soon-to-be-updated D5592 will demonstrate this API in use.

CCBUG:378443

Reviewers: #plasma, mart

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5593
2017-04-26 20:41:06 +09:00
David Edmundson
884f89b9b0 [TextFieldStyle] Fix textField is not defined error
Summary:
The reference textField is undefined in this context
It works if the style happens to be used from PlasmaComponents
Use control instead to access the TextField.

Reviewers: #plasma, broulik

Reviewed By: #plasma, broulik

Subscribers: ltoscano, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5297
2017-04-25 15:10:49 +01:00
David Edmundson
29f1ee3858 Update the ungrabMouse hack for Qt 5.8
Summary:
There was an unidentified bug where when opening a context menu in
response to a mousePress event led to the next click events not being
registered. The mouse got grabbed by the item in the mousePressEvent,
but when we open a menu it didn't get released. The next click goes to
the currently grabbed item.

A workaround was added back in 2015 (and copied into various other parts
of Plasma) to ungrab the mouse after launching the context menu inside
our rightClickEvent. This doesn't work because qquickwindow code is
shuffled. It now sends the event and then grabs the mouse.

qquickwindow.cpp:653 on Qt5.8.0

Which means we're now trying to do the ungrab, before QWindow has set
our item as the grabber. That obviously doesn't work.

This real bug needs fixing in Qt, (I now know the root cause!)
but we have a workaround here already, we may as well make it work.

FWIW, the root cause of all of these bugs is:
The way it should work is:
    QQuickItem is pressed
    QtQuick internally says "this item has the mouse"
    you release the mouse, that gets reset
    you change window focus, that gets reset

In our case, we don't get either of the last two because:

We spawn a QMenu on mousePress; this takes focus and more importantly
does a mouse grab (a different type. At an X level, not in QtQuick) so
our QQuickWindow never gets a mouseReleaseEvent

Test Plan:
Had 1 reproducible case
Added this. No longer could reproduce

Reviewers: #plasma

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5515
2017-04-24 16:06:51 +01:00
l10n daemon script
95601054e5 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-04-14 03:57:03 +02:00
David Edmundson
1387b5efe3 Guard against Applet not loading AppletInterface
Summary:
This can happen if an applet has invalid metadata, it doesn't have a
script engine set (X-Plasma-API) so it won't load the DeclarativeAppletScripts
Having invalid metadata could come from the applet, or from the fallback applet
created in Containment::Private::createApplet.

We guard against it in appletAdded but not in appletRemoved, which is
inconsistent. We also apparently must have guards elsewhere otherwise
we'd see the crash more.

BUG: 377050

Test Plan: Had corrupt applet, used to crash, now doesn't

Reviewers: #plasma

Subscribers: plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5423
2017-04-13 10:49:10 +01:00
David Rosca
a01e4fb69e Calendar: Use correct language for month and day names
Apply fix for bug 353715 also on QML side.

Differential Revision: https://phabricator.kde.org/D5345
2017-04-11 09:36:20 +02:00
Aleix Pol
328cd681a7 Update qmltypes 2017-04-10 16:02:23 +02:00
Aleix Pol
2df613f938 Generate plugins.qmltypes files for the plugins we install
Reviewers: #plasma, #frameworks, davidedmundson

Reviewed By: #plasma, davidedmundson

Subscribers: davidedmundson, hein, plasma-devel

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5088
2017-04-10 15:09:57 +02:00
l10n daemon script
bef0612029 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-04-09 04:01:12 +02:00
Marco Martin
e1aa250e70 remove some debug
now with fallback is common to have prefixes that are not present and fail.
this generates a lot of debug that is not really useful, as is an OK
thing.
2017-04-05 13:40:46 +02:00
l10n daemon script
918a8d2bf6 SVN_SILENT made messages (.desktop file) - always resolve ours
In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
2017-04-05 03:59:10 +02:00
Marco Martin
fb8ed07651 if the user did set an implicit size, keep it
Summary:
if the user code did something like
IconItem {
   implicitWidth: 32
   implicitHeight: 32
}

then never automatically update implicitWidth or height.
this favors compatibility and fixes the desktop
toolbox appearance

Test Plan:
textbox works, other icon items in plasmashell seems properly sized.
applet alternatives fix is still needed

Reviewers: #plasma, hein

Reviewed By: #plasma, hein

Subscribers: hein, davidedmundson, plasma-devel, #frameworks

Tags: #plasma, #frameworks

Differential Revision: https://phabricator.kde.org/D5243
2017-04-03 16:07:18 +02:00