KLibFactory preview of planned changes

Holger Freyther freyther at kde.org
Sun Oct 29 21:56:42 GMT 2006


Hi again,

I have started converting the code that actually used the QStringList  
and now I need some comments. Changing KDEPrint was straight forward,  
I have added two Q_PROPERTY and then called setProperty on the newly  
loaded QObject. But KHTML specially the KJavaAppletViewer gives me a  
headache.

So far KJavaAppletViewer is the only real user of the QStringList  
argument, it implements splitting of options and such. I have started  
converting it to Q_PROPERTY but there are two issues where I need  
some comments.

1.) KJavaAppletViewer needs to use QDynamicPropertyChangeEvent for a  
very easy reason:
       Currently there is name_lower in KJavaAppletViewer and we will  
need to use the Event to look at the property name in lowercase. To  
work with all different comibations of capitalisation.

2.) We need to make sure the event gets delivered before openURL on  
the Part gets called. And this is where it gets tricky. We need to  
make sure that all options are passed to the Part, we need to  
indicate that all options have been passed as well.


Maybe we should add something like setOptions to ReadOnlyPart, or  
Part directly? As options one could use a QMap or QHash storing  
QString->QVariant pairs.


I still want to kill the QStringList and I see the following options:
	1.) we don't kill the QStringList
	2.) we don't kill the QStringList for KParts
	3.) we use toLower on all keys from the HTML and can use Q_PROPERTY  
solely in the KParts
	4.) we make option passing of KParts a first class citizen and a  
dedicated method.
	5.) something you have in mind

any comments?


regards
	holger

PS: The patch attached changes KHTML to use a QMap<QString,QString>  
instead of encoding the QStringList with key="value"

-------------- next part --------------
A non-text attachment was scrubbed...
Name: khtml-qproperty-r0.patch.gz
Type: application/x-gzip
Size: 3833 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20061029/fc45754b/attachment.bin>


More information about the kde-core-devel mailing list