Projects/KNS2/Handler: Difference between revisions

    From KDE TechBase
    < Projects‎ | KNS2
     
    (5 intermediate revisions by the same user not shown)
    Line 11: Line 11:
    === Proposed API ===
    === Proposed API ===


    * '''Bundler(QString/QFile filename)''' Creates a bundler that operates on the given package. Note that the package needs to be unpacked somewhere first, so operating on a dir is much faster
    * '''Handler(QString filename)''' Creates a bundler that operates on the given package. Note that the package needs to be unpacked somewhere first, so operating on a dir is much faster
    * '''Bundler(KUrl dir)''' Creates a bundler that operates on the given directory.
    * '''Handler(KUrl dir)''' Creates a bundler that operates on the given directory.
    * '''extractTo(KUrl baseDir)''' Extracts (installs) the package into the given baseDir. It's not the directory where the package itself will be extracted, but the one called 'newstuff/' [[../Layout|here]].
    * '''Handler(QString packageName, QString packageVersion)''' Creates a bundler that operates on the package already installed in the standard way.
    * '''KPluginInfo metadata()''' Returns a pluginInfo object. You can retrive most of the metadata from it.
    * '''install()''' Extracts (installs) the package, and puts the .desktop file in $KDEHOME/services/. See [[../Layout|here]] for more informations.
    * '''QFile mapFile(QString filename)'''
     
    * '''bool initLayout(QString dir = "newstuff")''' Initializes the layout. It should be called only once, when app configuration files are created. It will use KStandardDirs::saveLocation() to create dirs. See [[../Layout|the layout section]] for more informations.
     
    * '''initLayout()''' Initializes the layout app-wise. It should be called only once. It will use KStandardDirs::saveLocation() to create needed dirs. See [[../Layout|the layout section]] for more informations.
    * '''installDesktopFile()''' ''Obsoleted by install()?''
    * '''bool isInstalled()''' True if the package is already installed, false otherwise
    * '''QFile packageFile()''' Returns a QFile pointing to the zipped package.
    * '''QDir packageDir()''' Returns an (absolute) QDir pointing to the folder of the installed package.
    * ...
    * ...

    Latest revision as of 18:05, 24 March 2007

    Warning
    Names are just temporary. Infos can be as well. Please don't trust this page as probably most of the things are going to heavily change during this 1 month developement marathone.


    The Handler

    This class is meant to provide a non-GUI and class to manage KNS packages. It's meant to be used from application themselves.

    It will be able to:

    • Unpack packages
    • Map package files to standard QFiles
    • more...

    Proposed API

    • Handler(QString filename) Creates a bundler that operates on the given package. Note that the package needs to be unpacked somewhere first, so operating on a dir is much faster
    • Handler(KUrl dir) Creates a bundler that operates on the given directory.
    • Handler(QString packageName, QString packageVersion) Creates a bundler that operates on the package already installed in the standard way.
    • install() Extracts (installs) the package, and puts the .desktop file in $KDEHOME/services/. See here for more informations.


    • initLayout() Initializes the layout app-wise. It should be called only once. It will use KStandardDirs::saveLocation() to create needed dirs. See the layout section for more informations.
    • installDesktopFile() Obsoleted by install()?
    • bool isInstalled() True if the package is already installed, false otherwise
    • QFile packageFile() Returns a QFile pointing to the zipped package.
    • QDir packageDir() Returns an (absolute) QDir pointing to the folder of the installed package.
    • ...