> On Oct. 26, 2015, 5:27 p.m., Alex Richardson wrote:
> > The protocoltojson program will have to read the plugin metadata.json file 
> > to insert the "KDE-KIO-Protocols" to that json file as it is not possible 
> > to embed more than one JSON file into a Qt plugin.
> > 
> > I am not sure whether we need a CMake macro, to me this is a conversion 
> > that should be done once and then we store the JSON file in the repository 
> > so that we don't increase the build time.
> 
> Christoph Cullmann wrote:
>     Actually ioslaves have atm no other json stored, this would be the only 
> meta data added to them, I think no ioslave is at all a qt plugin and to stay 
> compatible, I would only add a dummy class there with this json embedded to 
> have the meta data available. But perhaps I am mistaken.
>     For the one time conversion: I am not sure that the .protocol files will 
> be deprecated, I thought to do it like ATM for the .desktop files for the 
> plugins for which we kept the .desktop files, too.
> 
> David Faure wrote:
>     IIRC we kept .desktop files because there was no other way to translate 
> them, back then.
>     
>     But that's not an issue anymore, and not an issue for .protocol files 
> anyway.
>     
>     So when converting an ioslave to json, rather than just change its 
> cmakelists, we could also just convert the .protocol to json, either with a 
> one-time conversion tool (now that you wrote it...) or by hand, reading some 
> documentation on the format.
>     Seems simpler than more cmake magic.
>     
>     KIO will need to keep being able to parse .protocol files anyway, for 
> compat reasons, that's unrelated.
> 
> Christoph Cullmann wrote:
>     Ok ;) That makes its easier, no cmake foo needed, cool.
>     For the second issue: I am right, or? There is no other meta data we need 
> inside the io slave?
> 
> Christoph Cullmann wrote:
>     My idea would be to add some:
>     
>     /**
>      * Pseudo plugin class to embedd meta data
>      */
>     class KIOPluginForMetaData : public QObject
>     {
>         Q_OBJECT
>         Q_PLUGIN_METADATA(IID "org.kde.kio.slave.http" FILE "http.json")
>     };
>     
>     to each slave that then uses the meta data json as above.
>     
>     Moc will then embedd that like needed and no more stuff is needed to have 
> the protocols meta data in the .so files, at least that seems to work for me.
> 
> Alex Richardson wrote:
>     Ah I thought there was already some JSON embedded. This makes it much 
> simpler.
>     I don't think any of the default KPluginMetaData values are useful for 
> KIOSlaves (e.g. Icon can be different for each protocol) so only having these 
> JSON keys should be fine.
>     We can always add KPlugin { foo: "" } later if we need it.

I would keep the 

{
    "KDE-KIO-Protocols": {
        "http": {
....

}

namespace, later than like you said we could have some "KPlugin" in addition 
and I don't need to sort such stuff out then during the collection of the 
protocols.

Is that otherwise fine? If yes, I would like to commit this and then continue 
in a new review request the embedding of this in one example slave, http, and 
the extension of the protocolinfo/factory to read this in addition to the 
.protocol files.


- Christoph


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125797/#review87444
-----------------------------------------------------------


On Oct. 26, 2015, 5:03 p.m., Christoph Cullmann wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125797/
> -----------------------------------------------------------
> 
> (Updated Oct. 26, 2015, 5:03 p.m.)
> 
> 
> Review request for KDE Frameworks, Alex Richardson and David Faure.
> 
> 
> Repository: kio
> 
> 
> Description
> -------
> 
> Application to convert multiple .protocol files into on json map.
> If this is acceptable my next steps would be:
> 
> 1) use this, to generate json files and embedded them in io slaves
> 2) extend the protocol factory to search in the embedded files
> 
> That would make the protocol factory parts of: 
> https://git.reviewboard.kde.org/r/125778/ not needed.
> 
> 
> Diffs
> -----
> 
>   src/CMakeLists.txt f65ad8e 
>   src/protocoltojson/CMakeLists.txt PRE-CREATION 
>   src/protocoltojson/main.cpp PRE-CREATION 
> 
> Diff: https://git.reviewboard.kde.org/r/125797/diff/
> 
> 
> Testing
> -------
> 
> Feed in http slave files: 
> 
> ./protocoltojson -o http.json 
> /local/cullmann/kf5/src/frameworks/kio/src/ioslaves/http/*.protocol
> 
> We get mapping:
> 
> {
>     "http": {
>         "Class": ":internet",
>         "Icon": "text-html",
>         "X-DocPath": "kioslave5/http/index.html",
>         "defaultMimetype": "application/octet-stream",
>         "deleting": true,
>         "determineMimetypeFromExtension": false,
>         "exec": "kf5/kio/http",
>         "input": "none",
>         "maxInstances": 20,
>         "maxInstancesPerHost": 5,
>         "output": "filesystem",
>         "protocol": "http",
>         "reading": true,
>         "writing": true
>     },
>     "https": {
>         "Class": ":internet",
>         "Icon": "text-html",
>         "X-DocPath": "kioslave5/http/index.html",
>         "config": "http",
>         "defaultMimetype": "application/octet-stream",
>         "deleting": true,
>         "determineMimetypeFromExtension": false,
>         "exec": "kf5/kio/http",
>         "input": "none",
>         "maxInstances": 20,
>         "maxInstancesPerHost": 5,
>         "output": "filesystem",
>         "protocol": "https",
>         "reading": true,
>         "writing": true
>     },
>     "webdav": {
>         "Class": ":internet",
>         "Icon": "folder-remote",
>         "X-DocPath": "kioslave5/webdav/index.html",
>         "defaultMimetype": "application/octet-stream",
>         "deleteRecursive": true,
>         "deleting": true,
>         "determineMimetypeFromExtension": false,
>         "exec": "kf5/kio/http",
>         "input": "none",
>         "listing": [
>             "Name",
>             "Type",
>             "Size",
>             "Date",
>             "AccessDate",
>             "Access"
>         ],
>         "makedir": true,
>         "maxInstances": 20,
>         "maxInstancesPerHost": 5,
>         "moving": true,
>         "output": "filesystem",
>         "protocol": "webdav",
>         "reading": true,
>         "writing": true
>     },
>     "webdavs": {
>         "Class": ":internet",
>         "Icon": "folder-remote",
>         "X-DocPath": "kioslave5/webdav/index.html",
>         "config": "webdav",
>         "defaultMimetype": "application/octet-stream",
>         "deleteRecursive": true,
>         "deleting": true,
>         "determineMimetypeFromExtension": false,
>         "exec": "kf5/kio/http",
>         "input": "none",
>         "listing": [
>             "Name",
>             "Type",
>             "Size",
>             "Date",
>             "AccessDate",
>             "Access"
>         ],
>         "makedir": true,
>         "maxInstances": 20,
>         "maxInstancesPerHost": 5,
>         "moving": true,
>         "output": "filesystem",
>         "protocol": "webdavs",
>         "reading": true,
>         "writing": true
>     }
> }
> 
> 
> Thanks,
> 
> Christoph Cullmann
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to