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.
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.
* 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
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
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
* 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
* 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
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
* 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
* 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
* 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
Aaron: your turn now to discover the 'Mimetypes' key problem.
CCMAIL: aseigo@kde.org
svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=694676