Commit Graph

14347 Commits

Author SHA1 Message Date
Aleix Pol
fbfcc4e914 Introduce .arcconfig file for better integration with phabricator.kde.org 2016-08-02 18:22:51 +02:00
Eike Hein
433b6794fe Add Qt::Dialog to default flags to make QXcbWindow::isTransient() happy.
Panel popup dialogs along with other applications of Plasma::Dialog
(e.g. Kicker's submenus) currently don't correctly set WM_TRANSIENT_FOR
to the id of their parent window on X11. This causes them to interact
badly with auto-hide panels which do not set struts, e.g. Kicker's
submenus open behind the panel.

Internally, Dialog makes calls to QWindow::setFlags when its window
type is "Normal" (the default) and otherwise uses KWindowSystem's
setType. (Kicker's subclass, SubMenu, does an additional
KWindowSystem::setType call for NET::Menu). Neither CompactApplet
nor Kicker change their Dialog's 'type' property to anything else,
so their dialogs are "Normal", thus going the setFlags route with
no setType calls.

Dialog also sets its transient parent to the window the visualParent
item is inside of.

Now here is where things break down: QXcbWindow will update
WM_TRANSIENT_PARENT for in show(), but only when an inline function
called isTransient returns true. isTransient decides this based on
window type, which is determined from the flags set with
QWindow::setFlags. Calls to KWindowSystem::setType would have no
bearing on this; there seems to be no mapping back from external
state. This is why setting Dialog.type to e.g. "DialogWindow" does
nothing.

This patch takes the route of adding Qt::Dialog to the starting
flags - after all Dialog is a dialog. That means isTransient()
will consider the window to be a transient and those
setTransientParent calls Dialog does will not be ignored. In the
case of CompactApplet, no further calls to KWS::setType are done;
Kicker continues to call it with NET::Menu to get desired window
manager behavior.

In light testing everything still seems too work, with the added
benefit of fixing:
BUG:366278

That said, the weird mess of setFlags and setType and state in the
windowing system vs. Qt is horrible and sad.

REVIEW:128571
2016-08-02 19:20:33 +09:00
Kai Uwe Broulik
009f49c08e [Breeze Plasma Theme] Add network-flightmode-on/off icons
Since nobody bothered to fulfill my request for this icon (cf. Review 128332)
I just did it myself, with no warranty.

Plasma IconItem finds icons from Plasma theme only in the SVG file of the first
section of the name (ie. all icons in network must start with network- prefix
which the flightmode icons did not).

The old icon is kept as is for compatibility.
2016-08-01 17:43:11 +02:00
Eike Hein
98c721e031 Fix build. 2016-08-01 03:57:22 +09:00
Eike Hein
8665999ee7 Emit contextualActionsAboutToShow before showing the applet's contextualActions menu.
This is done by ContainmentInterface::mousePressEvent, but not in this
code path, which is hit for applet panel popups.

Folder View relies on this to update actions ahead of the menu being
opened.

BUG:366294
2016-07-31 21:12:52 +09:00
Kai Uwe Broulik
42193ae631 [TextField] Bind to TextField length instead of text
Copying strings in QML is expensive.

REVIEW: 128550
2016-07-29 15:41:40 +02:00
Kai Uwe Broulik
16f8257068 [Button Styles] Horizontally center in icon-only mode
QtQuick.Layouts by default left aligns content and because the Layout is
anchors.fill'd the icon would show off-center in a button when no text has been set.
This fixes this.

REVIEW: 128493
BUG: 365947
2016-07-26 14:09:03 +02:00
Kai Uwe Broulik
d91127ca58 [Containment] Treat HiddenStatus as low status
The containment's status is the max of all applets.

Unfortunately, HiddenStatus, while semantically lower, has the highest value,
so as soon as there's a hidden applet (eg. pager with just one virtual desktop),
the panel will always auto-hide even when popups are open as its status will be HiddenStatus.

REVIEW: 128301
2016-07-22 08:32:52 +02:00
David Edmundson
3f53070185 Q_INVOKABLE needs to be outside the /// @cond INTERNAL_DOCS 2016-07-20 12:05:12 -03:00
Aleix Pol
a7068cb991 Add missing dependency in the config file
Qt5Gui is a public interface in plasma-framework

Reviewed by Harald Sitter
2016-07-20 14:34:27 +02:00
andreas kainz
83f1eb80f3 add kalarm icon for plasma system tray
BUG 362631
2016-07-19 23:17:27 +02:00
Marco Martin
301193cb96 don't assume last is is numScreens()-1
screen ids are going to not be continuous anymore
as screen id is going to correspond 1:1 to connectors,
it will be possible to have "holes", therefore valid ids
that are bigger than screenNum()

REVIEWED-BY:sebas@kde.org
Change-Id: I1c0b1fb827dba4d95f228d32209403150c089c77
2016-07-18 14:47:53 +02:00
andreas kainz
14dc19e1bd update kruler icon 2016-07-16 22:39:53 +02:00
andreas kainz
f0fabfac26 add kruler system tray icon from Yuri Fabirovsky 2016-07-16 22:35:25 +02:00
andreas kainz
bb9c50d25f update wifi networks available icon 2016-07-15 22:11:52 +02:00
Eike Hein
2c6dacea38 Fix the infamous 'dialogs show up on the Task Manager' bug once more.
- Initially set state (and type, and flags) in response to PlatformSurfaceCreated.
  We know reliably this will run before the window is mapped.

- Drop the comment about removing setState() form showEvent handler, as
  we need it to avoid state loss in this scenario:
  <mgraesslin> the window gets mapped first time: everything is fine
  <mgraesslin> window gets unmapped: kwin removes the state as per spec
  <mgraesslin> qt gets change event and removes the states it doesn't care about
  <mgraesslin> qt maps window again and sets states
  <mgraesslin> we lost the state
  <mgraesslin> which means we need to set the state again from our side before(!) Qt sets it
  <mgraesslin> and before Qt maps the window
2016-07-15 19:40:37 +09:00
andreas kainz
b6b26850fd fix network wireless available icon with an ? emblem
BUG: 355490
2016-07-12 19:36:47 +02:00
David Rosca
9070f461bb IconItem: Use better approach to disable animation when going from invisible to visible
Clearing the pixmap is actually wrong, because in some cases the
IconItem::updatePolish() is not called when changing visibility.

REVIEW: 128409
2016-07-12 10:02:47 +02:00
David Rosca
80dcba46b5 IconItemTest: Set plasma theme to default rather than skipping tests if not default
Default plasma theme is installed with plasma-framework, so there
shouldn't be reason to skip tests.

REVIEW: 128408
2016-07-12 10:01:29 +02:00
l10n daemon script
66bb67a017 Upgrade KF5 version to 5.25.0. 2016-07-09 10:03:44 +00:00
Martin Gräßlin
7f3aa5344a Set Tooltip window type on ToolTipDialog through KWindowSystem API
In order to have support for tooltip window type in Wayland, the
window type NET::Tooltip is also set through KWindowSystem API once
the platform surface is created.

REVIEW: 128300
2016-07-05 08:08:06 +02:00
David Edmundson
fb3e8d5fc5 Make use of QQuickItem::setSize
Even though QQuickItem only has a width and height accessor there is a
usable public setSize method.

This gets rid of a lot of potential re-evaluation as internal geometry
is updated before widthChanged is emitted.

REVIEW: 128316
2016-07-04 11:06:44 +01:00
l10n daemon script
990662800d Upgrade ECM and KF5 version requirements for 5.24.0 release. 2016-07-02 08:58:21 +00:00
Kai Uwe Broulik
f24fd0caff [Calendar] Flip arrow buttons on right-to-left languages
This ensures the arrows always point outward, away from the centre button.

REVIEW: 128327
2016-06-30 12:28:09 +02:00
l10n daemon script
19e8f37753 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"
2016-06-29 09:34:42 +00:00
andreas kainz
05b346bd69 Merge branch 'master' of git://anongit.kde.org/plasma-framework 2016-06-27 15:13:09 +02:00
andreas kainz
99ce3bab88 add kdeconnect air icon 2016-06-27 15:12:45 +02:00
R. Harish Navnit
eef8c29b7a Plasma::Service::operationDescription() should return a QVariantMap
REVIEW: 127812
2016-06-27 12:11:25 +05:30
David Edmundson
3c1eb48018 Don't include embedded contrainers in containmentAt(pos)
Do to so means the System Tray applet ends up being placed inside the
system tray container, which ends up in a parent loop, causing a stack
overflow every time parent() is called recursively

This happens whenever one drags a sys tray on the desktop or simply adds
a new system tray whilst running.

BUG: 361777

We also need to do a hack for Plasma/5.7 in plasma-desktop somehow in
all cases where this is used.
2016-06-20 21:07:19 +01:00
andreas kainz
c6b35c6b10 fix the color theming for the restart system icon (login screen)
BUG: 364454
2016-06-19 00:11:05 +02:00
Allen Winter
a07c88cf77 plasma/scripting/scriptengine.cpp - -Wunused-parameter 2016-06-15 13:08:39 -04:00
Allen Winter
a04f0c3f8f plasma/private/timetracker.cpp - -Wpedantic 2016-06-15 13:08:39 -04:00
Andreas Cord-Landwehr
d452f29f92 Individually specify supported platforms 2016-06-15 17:59:46 +02:00
Marco Martin
82222a3ecf fix build
return bool
2016-06-15 16:22:45 +02:00
Marco Martin
9fba7c43c5 disable taskbar thumbnails with llvmpipe
the llvmpipe driver doesn't have a good quality enough for the
taskbar thumbnails components, it will have many crashes in the driver.
disabale thumbnails with that driver, as kwin disables many effects as well.

BUG:363371
2016-06-15 16:01:50 +02:00
Marco Martin
746f57713c guard against invalid applets
an applet can be present but being one that failed to load
therefore with an invalid kplugininfo, which can cause asserts around

BUG:364281
2016-06-15 12:44:04 +02:00
Marco Martin
6f5816fc57 ensure the scriptengine is here
ensure the scriptengine gets created also for c++ applets
that have a valid scriptengine, move the script init
out of applet::init that can be reimplemented.
remove the second appletscript constructor that is
not necessary anymore

REVIEWED-BY: Kai Uwe Broulik
2016-06-15 11:04:21 +02:00
David Faure
967e81611f PluginLoader::loadApplet: restore compatibility for misinstalled applets.
Summary:
The notifications applet installs the .so into the toplevel plugins dir,
and my earlier code removal broke the loading of that applet.

Reviewers: lbeltrame, mart

Reviewed By: mart

Differential Revision: https://phabricator.kde.org/D1851
2016-06-13 22:47:01 +02:00
Marco Martin
15bd197fac correct folder for PLASMA_PLASMOIDS_PLUGINDIR
plugins are installed in ${KDE_INSTALL_PLUGINDIR}/plasma/applets

Change-Id: Ib9be609b43d28c1c3d93821ec5e7994073e3b71b
2016-06-13 16:28:22 +02:00
Burkhard Lück
eaef2f166a Rename docs/plasmapkg directory to docs/plasmapkg2
rename directory + adapt CMakeLists.txt file

this change is necessary to fetch translated manpage docs
without hacks either in frameworks release script or in autogen.sh
into the frameworks tarball.

See also https://git.reviewboard.kde.org/r/127904/ for a detailed explanation
REVIEW:127940
2016-06-13 15:55:56 +02:00
David Edmundson
4f7ead27d6 Fix null object QObject::connect warning
REVIEW: 128171
2016-06-13 10:58:20 +01:00
l10n daemon script
122407d5e6 Upgrade KF5 version to 5.24.0. 2016-06-13 09:42:17 +00:00
Eike Hein
1706b75272 Less debug noise. 2016-06-13 18:38:50 +09:00
David Faure
107c28d361 PluginLoader: improve error message about plugin version compatibility
Summary:
The name of the actual plugin was missing, making the warning rather useless.
Since this is only used within PluginLoader, I added a private function
isPluginVersionCompatible(KPluginLoader), taking code from
Plasma::isPluginVersionCompatible(uint). That one could probably be deprecated,
although no public replacement would be available, just "use PluginLoader".

Test Plan: plasmoidviewer -a org.kde.plasma.digitalclock

Reviewers: mart

Reviewed By: mart

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D1825
2016-06-12 18:13:12 +02:00
David Faure
181869e636 Remove erroneous plugin-loading compat code.
Summary:
This code was passing PREFIX/share/plasma/plasmoids/org.kde.desktopcontainment/metadata.desktop
to KPluginLoader (which expects a .so!), which led to warning noise
"Plasma::isPluginVersionCompatible: unversioned plugin detected, may result in instability"
(since that code tries to find a version symbol in the .so).

The reason why KPluginInfo::libraryPath() returns the .desktop file seems
to be a KPluginMetaData misuse, but this is compat code marked as "to be removed"
so I didn't fully debug the KPluginMetaData misuse.

Test Plan: plasmoidviewer -a org.kde.plasma.digitalclock

Reviewers: mart

Reviewed By: mart

Differential Revision: https://phabricator.kde.org/D1827
2016-06-12 18:12:02 +02:00
David Faure
2a8891ec95 Set the pointer before connecting to it.
This fixes the warning "QObject::connect: invalid null parameter"
2016-06-12 15:54:47 +02:00
David Faure
7a9855ec77 plugintest: remove dead code 2016-06-12 15:54:47 +02:00
David Faure
fc673146a6 Fix plugintest crash on startup: qApp needed. 2016-06-12 15:14:35 +02:00
David Edmundson
f5ad210742 Fix check to keep QMenu on screen for multiscreen layouts
If x > screenWidth should be if x > screenLeft + screenWidth

otherwise all right hand screens get offset

REVIEW: 128148
2016-06-10 11:57:32 +01:00
Marco Martin
84c29fa3d0 new containment type for the systray
add a new containment type for use in the systray:
this way it will be able to have a screen number without
actually creating a panel from its own

REVIEW:128118
2016-06-07 20:18:06 +02:00