Commit Graph

54 Commits

Author SHA1 Message Date
Sebastian Kügler
8b6a248033 Package install and uninstall are now non-static async
Installation and uninstallation of packages is now done in an instance
of the package. The methods return a KJob* which can be used to track
progress and result. The real work is done in a thread in order to make
it possible to not block the UI.
2012-12-09 14:12:55 +01:00
Aaron Seigo
e174c6d998 update apidox to reflect it can be a relative root 2012-11-08 11:21:07 +01:00
Aaron Seigo
fbde93c64f give package a cache for found items; make the dptr implicitly shared
this drops a 100k loop of copies from ~2700ms to ~37ms and a 100k loop
of copy-n-find from ~3900ms to ~40ms.

the cache addition is predicated on the idea that lookups of the same files will be frequent enough to warrant the small amount of extra memory usage for the cache. if that does not hold in practice (though it appears to) then this will not be a gain and in fact be a small net loss for memory footprint

the dptr change is predicated on the assumption that copies of Package will be frequent, and so must be low cost. this is known to be true. even if it wasn't, there is no down-side to this change. the upside are significant time and memory savings.
2011-07-22 17:24:40 +02:00
Aaron Seigo
35898d57f1 get rid of all Class:load(..) methods, use PluginLoader directrly. --apiBloat; 2011-07-19 22:04:22 +02:00
Aaron Seigo
fb3a64ba6c make Package use PackageStructure, remove all virtuals
also kills the read/write methods as precisely zero things were using it
2011-07-19 21:37:39 +02:00
Aaron Seigo
d91fede662 merge packagestructure with package, make the commensurate change in the build 2011-07-15 12:57:46 +02:00
Aaron Seigo
f71463faa1 remove from the header as well 2011-07-14 10:33:39 +02:00
Aaron Seigo
9d48b83dc9 funny merge blurg 2011-07-13 18:10:38 +02:00
Aaron Seigo
97682614dd these list methods, while theoretically useful, were not actually used. out they go.
if we ever need something like this, it should be provided by the plugin itself so
as to be plugin neutral.
2011-07-13 18:04:29 +02:00
Aaron Seigo
05834d8144 Merge remote-tracking branch 'origin/master' into libplasma2
Conflicts:
	plasma/CMakeLists.txt
	plasma/abstractrunner.h
	plasma/animator.h
	plasma/glapplet.h
	plasma/package.h
	plasma/packagemetadata.h
	plasma/packagestructure.h
	plasma/tooltipcontent.cpp
	plasma/tooltipcontent.h
	plasma/wallpaper.h
2011-07-11 21:56:41 +02:00
Aaron Seigo
b4dbbbb7d0 get rid of the convenience method; not used 2011-07-08 20:08:06 +02:00
Aaron Seigo
755a1f2ba6 more accurate (c) 2011-07-08 19:36:29 +02:00
Frederik Schwarzer
5c0d0e8e8e Replace doxygen tag @arg by @param.
The @param doxygen tag is formatted way nicer and should be used
throughout our apidox.

REVIEW: 101596
2011-06-13 14:47:29 +02:00
Aaron Seigo
273b09d3db use KPluginInfo instead of PackageMetadata 2011-05-31 01:02:45 +02:00
Aaron Seigo
89c7e9b726 remove createPackage as well; it's a bit impl-specific and isn't used anywhere 2011-05-20 10:48:29 +02:00
Aaron Seigo
0c847e15f0 remove registerPackage; the impl is broken (assume a plasmoid) and isn't used 2011-05-20 10:45:22 +02:00
Aaron Seigo
bd2cb96e55 move install/uninstallPackage implementaton into PackageStructure 2011-05-20 10:43:40 +02:00
Aaron J. Seigo
c769e104bd declare the metatype
svn path=/trunk/KDE/kdelibs/; revision=1171714
2010-09-04 22:37:29 +00:00
Aaron J. Seigo
4d81dce65e make package copyable and assignable
svn path=/trunk/KDE/kdelibs/; revision=1171413
2010-09-03 19:44:28 +00:00
Aaron J. Seigo
2a04ddc6fe missing @since
svn path=/trunk/KDE/kdelibs/; revision=1026534
2009-09-22 00:55:30 +00:00
Aaron J. Seigo
d73831e8f0 * hash() -> contentsHash()
* add the metadata file to the hash as well
* update test

svn path=/trunk/KDE/kdelibs/; revision=1026497
2009-09-21 21:48:19 +00:00
Aaron J. Seigo
19f55f804b packages can now generate a hash of their contents; inc unit test
svn path=/trunk/KDE/kdelibs/; revision=1026489
2009-09-21 21:37:44 +00:00
Rob Scheepmaker
9cb9cfe65e Push in remote widgets
svn path=/trunk/KDE/kdelibs/; revision=1018655
2009-09-02 02:27:16 +00:00
Aaron J. Seigo
0cdd7388b4 * make it possibl to install packages without registering them as a service
* support tar and compressed tar as well as zip
* support archives that contain the actual package in a top level subdir

themes and wallpapers now install nicely.

svn path=/trunk/KDE/kdelibs/; revision=1002165
2009-07-25 09:34:19 +00:00
Aaron J. Seigo
1a892f1c41 allow setting the path
svn path=/trunk/KDE/kdelibs/; revision=967227
2009-05-12 23:05:40 +00:00
Aaron J. Seigo
ca2b1249dc SVN_SILENT: remove the TODO
svn path=/trunk/KDE/kdelibs/; revision=950407
2009-04-07 05:41:03 +00:00
Alex Merry
9c1570f13e apidocs fixes.
Remember to document ALL parameters to methods.  They may seem obvious to you, but I had to look at the code for at least two of the methods in order to document their parameters correctly.

*waves stick of EBN-ness*


svn path=/trunk/KDE/kdelibs/; revision=908604
2009-01-10 00:08:31 +00:00
Aaron J. Seigo
8dd6e79e56 * make it possible to get a list of installed packages by path rather than package name
* allow the basePath to be a symlink

svn path=/trunk/KDE/kdelibs/; revision=906191
2009-01-05 18:49:54 +00:00
Aaron J. Seigo
1b523b9054 ok, this time JUST the plasma dir ;)
svn path=/trunk/KDE/kdelibs/; revision=879759
2008-11-03 23:08:39 +00:00
Aaron J. Seigo
fa5a2d87d9 bum-de-dum! plasma to kdelibs.
svn path=/trunk/KDE/kdelibs/; revision=879757
2008-11-03 23:03:26 +00:00
Aaron J. Seigo
1aa252d612 package metadat by reference, not pointer, for API clarity and health
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=878840
2008-11-01 22:01:31 +00:00
Allen Winter
e88e2faa63 first batch of small coding style fixes.
these were found while testing the Krazy style checker, which I'm adapting
for the kdelibs style.

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=870051
2008-10-11 16:19:04 +00:00
Petri Damstén
fdfdb97adb Add support for defaultPackageRoot and servicePrefix to package handling.
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=865083
2008-09-26 15:43:32 +00:00
Alex Merry
e293d7d785 Specify includes in apidocs, so we get
#include <Plasma/Foo>
at the top of the apidocs pages.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=852289
2008-08-25 17:47:48 +00:00
Richard J. Moore
c8f517206a Add support for removing packages
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=846532
2008-08-13 16:40:31 +00:00
Marijn Kruisselbrink
21b148b963 change all ClassName::Private classes to ClassNamePrivate, and adjust friends accordingly; this makes plasma compilable with gcc < 4.2
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=826893
2008-07-01 18:56:43 +00:00
Anne-Marie Mahfouf
26a01ffb64 API review Plasma::Package::knownPackages() -> Plasma::Package::listInstalled()
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=801796
2008-04-27 19:22:29 +00:00
Aaron J. Seigo
4da6dba89b add a stub for PackageStructure::uninstallPackage
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=791610
2008-03-30 00:56:09 +00:00
Aaron J. Seigo
a3ed531670 * use PackageMetadata when installing a package
* provide a Package::registerPackage convenience method
* make the contentsPrefix optional / changeable; required for packages we don't control the structure of
* PackageMetadata -> file fixes
* provide a way to set the implementation languae in PackageMetadata (e.g. "dashboard" or "webkit")

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=780464
2008-02-29 08:14:32 +00:00
Adriaan de Groot
b3eae6af7b The @p structure parameter isn't treated as const by the implementation, which calls setPath() on it; don't pretend that it is in the headers.
CCMAIL: aseigo@kde.org

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=780230
2008-02-28 13:07:59 +00:00
Aaron J. Seigo
1a84d94eeb package structure appropriateness for dynamic packages
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=780124
2008-02-28 03:53:26 +00:00
Aaron J. Seigo
577ea0bbe6 * let PackageStructures define their own install routine
* split install in Package into both installing the Package and registering it, allowing PackageStructures to implement their own installation routine without having to reimplement registration

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=779805
2008-02-27 00:51:04 +00:00
Aaron J. Seigo
9c94c63dfe make PackageStructure a loadable plugin, so that there are now three methods to get a PackageStructure:
0. builtin
1. c++ plugin
2. config file

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=779415
2008-02-26 04:07:07 +00:00
Riccardo Iaconelli
f6252b9573 Get rid of the old wallpapers, get in a new test one, and uncomment some code in the dialog to make packages work.
Forgive us if you're without wallpapers for one hour, we're fixing this to get the new wallpapers in!


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=756852
2008-01-03 20:55:42 +00:00
Paolo Capriotti
7dbc6b9ef1 Package refactoring as discussed on panel-devel.
* Icon, preview, screenshot and release notes are gone.
* Everything in a package (except metadata) is in the contents/ directory.
* Package::createPackage and Package::installPackage cleanup.
* Added Package::metadata method to retrieve a metadata object.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=743935
2007-12-02 12:04:57 +00:00
Paolo Capriotti
b88aea051e Cleanup of Package classes as discussed on panel-devel.
* Add convenience constructor to the Package class.
* Make some methods const in PackageStructures.
* Use QByteArray to store keys in PackageStructures, so that they are compared
  by value, and not by address.
* Add a test checking that the path to the metadata file is retrieved correctly.


svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=741935
2007-11-26 19:16:40 +00:00
Aaron J. Seigo
db4a7ebe61 copyright cleanups:
* Copyright (C) -> Copyright
* add "or later" clause to files that i have the sole copyright on
* add current year (2007) to my copyrights where it was missing

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=696946
2007-08-06 11:20:02 +00:00
Riccardo Iaconelli
5aaccf0489 The applets now can associate with (one or more) certain mimetypes, and be called when that mime is dragged onto the desktop. Very rudimental for the moment, we should pass the name of the file to the applet. Added some copyrights I missed in the past.
Aaron: your turn now to discover the 'Mimetypes' key problem.
CCMAIL: aseigo@kde.org

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694676
2007-07-31 10:52:05 +00:00
Aaron J. Seigo
6b9842aa5e const correctness
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=691240
2007-07-23 07:26:28 +00:00
Aaron J. Seigo
98e4e20fe2 * add createPackage to Package
* remove Packager since it has no point in life anymore

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=690116
2007-07-20 04:23:27 +00:00