42 Commits

Author SHA1 Message Date
Martin Klapetek
76186339f6 [libplasma] Add categorized debug output 2015-12-15 16:56:40 -05:00
Nick Shaforostoff
c7c2980f14 qstring optimizations
REVIEW: 126148
2015-11-27 20:03:48 +00:00
David Edmundson
7061235418 Handle an invalid metadata in PluginLoader
REVIEW: 124823
2015-08-20 16:10:03 +01:00
Bhushan Shah
084d527638 Print useful warning when we can not get valid KPluginInfo
We can not generate proper PluginInfo most likely because metadata was
not valid, printing metadata itself will not be useful and will result
in printing message like,

Could not load plugin info for plugin : "" skipping plugin

Which is 0% useful.
2015-07-16 19:13:44 +05:30
David Edmundson
99da4651c3 Verify KService has valid plugin info before using it
Change-Id: I361bb9f49e9fab108e524e5d321d114fd1fc4aae
REVIEW: 124062
2015-06-14 10:16:54 -07:00
Marco Martin
a7d4e52aed get rid of "Could not load applet" message
is misleading and not correct anymore

Change-Id: I6429d522d92d94661d14d618f20e1c604140a6a9
2015-05-11 17:48:01 +02:00
Aleix Pol
ec6afe2a8a Don't use the DataEngineStructure for Applets
Use Plasmoid instead.

REVIEW: 123690
2015-05-08 19:24:38 +02:00
Marco Martin
ea924b1469 port libplasma away from sycoca as much as possible
this ports most of libplasma away from sycoca, using instead
a combination of KPluginLoader and KPackage::PackageLoader instead
(so eventually using their own little caches instead of the
global sycoca cache)
a kservicetypetrader call is left in the loading of
containmentactions since is the only way to make an older
workspace still work, but is only a fallback, so containmentactions
in plasma-workspace can be ported eventually as well

Change-Id: Ie9579c3e01284f6d97043e22d01bbe63d3c3f45a
REVIEW:123626
2015-05-07 16:26:37 +02:00
Sebastian Kügler
2b1a487428 Use KPluginLoader to load dataengines
KPluginLoader has all the needed machinery to identify a plugin by its
pluginId. No need to use the query parser here, replace it with a
lambda.

Look for C++ dataengines first. These are much more common, especially
in essential cases. By looking up the plugins through KPluginLoader
first, we can save querying ksycoca.

REVIEW:123297
CHANGELOG:Use KPluginLoader instead of ksycoca for loading C++ dataengines
2015-04-09 01:10:52 +02:00
Marco Martin
e2e7cb1cab remove PlasmaKPackageLoader
use a package of type KPackage/GenericQML for the toolbox instead

Change-Id: I5e559535338f093b3cd3734ef9c3906bb20cf001
2015-02-20 18:08:48 +01:00
Marco Martin
2bbb9dda7f if an inexisting library was specified, fallback
fallback to empty Applet/containment if an inexisting library
was specified in the metadata file.
this fixes old applets with incorrect metadata
BUG:344281

Change-Id: I0efc9dc32dee0e6fe4f3757065004a19f6e01844
2015-02-20 13:37:09 +01:00
Marco Martin
bda055367f use an internal package loader
internal kpackage loader used to load Plasma/generic plasma/plasmoid etc
directly from kpackage

Change-Id: Ibd91b0d18b233291978ac667f7bf768a8bdc3c9b
2015-02-20 09:58:57 +01:00
Marco Martin
462ad8a6ca support for C++ applets
make possible for an applet to be implemented in c++ but still
have the qml package with the usual api, this was supposed to
be supported from the beginning.

if a c++ applet has been loaded, make available the property
plasmoid.nativeInterface to the qml part, exposing the subclasses
Applet instance with all eventual extra propertiels/slots.

if no c++ plugin is present, appletInterface will be dummy/not available

this (besides limiting a bit the qml import rabbit procreation)
makes available some things not available to normal private imports:
* access to applet config() to save more complex things compared to what kconfigxt allows
  or save/load stuff from the c++ part
* access to containment()/corona(), may be useful for containment implementations
* easier port for old very big applets such as comics/weather

Change-Id: I65117660043de3a60ad58c77b086f686683d4d8c
2015-02-17 13:43:33 +01:00
Marco Martin
a629fe4d8f migrate to KPackage
Plasma::Package internally uses KPackage, being a pure wrapper.
old client code and old packagestructures still work using the wrapper.
old workspace code that is not directly using kpackage continues to work correctly

Change-Id: I05f95e8d05e3b67759973c4009e3753c61b1dcce
2014-12-29 13:56:52 +01:00
Marco Martin
919694a1de get rid of internal ShellPackage
ShellPackage is a plugin in plasma-workspace now, don't duplicate

Change-Id: I77edf63acf6c99314f6062d7ef2f55a129727013
2014-09-15 18:20:34 +02:00
Aaron Seigo
cd87344d80 make PackageStructure plugins use the json method as with DataEngines 2014-08-29 17:24:43 +02:00
Aaron Seigo
aa99a4f15c tidy up the data engine plugin loading code 2014-08-29 17:24:43 +02:00
Aaron Seigo
928d5e63a5 bool Package::hasValidStructure() const
needed to differentiate between packages with structures and without
before path is set
2014-08-08 14:12:22 +02:00
Marco Martin
d266a9594b valid package internalload even if just structure
consider a loaded package valid even if !isvalid() but does have some file
that indicates it has a valid packagestructure.
for how packages are loaded now, a package is never valid at first if has a required file:
because the path gets set only after the package is loaded
this fixes wallpaper loading
2014-08-08 11:29:23 +02:00
Hrvoje Senjan
a4e2b38d51 unbreak dataengine loading after PLUGIN_INSTALL_DIR change in e-c-m 2014-04-28 02:42:02 +02:00
Aleix Pol
9cd8f9fbeb Port plasma code to PLASMA_RELATIVE_DATA_INSTALL_DIR 2014-04-27 23:06:32 +02:00
Kevin Ottens
72ba7b4146 Apply the astyle-kdelibs script 2014-04-26 01:48:37 +02:00
Marco Martin
a2b436aef8 remove all references to runners 2014-04-16 18:56:22 +02:00
Aleix Pol
18473c9e9e Remove KRunner from Plasma-Framework
Have it as a separate KRunner framework instead
2014-02-11 18:03:06 +01:00
Aleix Pol
6c82a1ee86 Reduce compiler warnings
Remove unused and deprecated headers
Port some K_GLOBAL_STATIC to Q_GLOBAL_STATIC
2013-12-09 16:50:18 +01:00
Sebastian Kügler
5b33844a0b Look up dataengines in kf5/plasma/dataengines
This changes the path where to find dataengines to the
subdirectory-per-servicetype setup.

Note: You'll need to update and reinstall kde-workspace/plasma, to
install the dataengines into the new path.

CCMAIL:plasma-devel@kde.org
2013-09-26 01:34:27 +02:00
Sebastian Kügler
8c93578acf Adjust to new API 2013-09-25 17:57:12 +02:00
Aaron Seigo
5903d97966 regexps are expensive to create, we ask for packages a lot, cache the re 2013-09-13 16:29:29 +02:00
Sebastian Kügler
cd5be142ed Use KPluginTrader to load dataengine 2013-09-12 02:29:09 +02:00
Sebastian Kügler
e81b635406 Use KPluginTrader to locate the dataengine. 2013-09-12 02:03:52 +02:00
Sebastian Kügler
58a2a8d6bb Tests for Plasma::PluginLoader 2013-09-12 01:31:37 +02:00
Marco Martin
03b812ea06 move ShellPackage in libplasma
the shell plugin loader only has the look and feel package now
2013-09-02 19:25:03 +02:00
Marco Martin
834f73a101 fix loading of containmentactions plugins 2013-08-14 14:09:01 +02:00
Sebastian Kügler
d9aa851e17 Fix fallout from qDebug -> kDebug porting
* Multi-line debug statements were essentially broken
* There's still a bunch of #include "QDebug" in there, which seems wrong

* It's not necessary to comment most occurrences in src/plasma, since
  they're wrapped wiht #ifdef NDEBUG already.

CCMAIL:ervin@kde.org
2013-08-01 12:15:38 +02:00
Kevin Ottens
0e590217f8 Port away from kdebug 2013-07-30 08:05:09 +02:00
Sebastian Kügler
d56bf246de Port PluginLoader from KStandardDirs to QStandardPaths 2013-07-10 03:27:19 +02:00
Marco Martin
4875658944 only one constructor remains
explicit DataEngine(const KPluginInfo &plugin, QObject *parent = 0);
2013-04-04 18:05:03 +02:00
Marco Martin
5af5da2687 move all loading function to PluginLoader 2013-04-04 17:34:27 +02:00
Marco Martin
0830c5047b X-Plasma-ContainmentType is Desktop by default
so when searching for desktops also search those who don't have
2013-03-07 19:55:45 +01:00
Marco Martin
dc9075f157 ContainmentCategories -> X-Plasma-ContainmentType
containments can have one and only one type
2013-03-07 19:28:06 +01:00
Marco Martin
444d49709b move in PluginLoader metadata-related methods
listContainments
listContainmentsOfType
listContainmentTypes
listContainmentsForMimeType
2013-02-19 13:09:33 +01:00
Sebastian Kügler
7dfe957e66 The Big Move
All cpp code moves into the src/ subdirectory, as the Frameworks policy
suggests.

Directory structure should now be in line with other, future frameworks.
2013-02-14 17:17:12 +01:00