[Kde-bindings] Qyoto: Patch v2: Translate obvious getters into properties or "Get" methods

Crowell, Brian BCrowell at barbnet.com
Thu Dec 13 20:47:06 UTC 2012


Version 2 then, with more properties, and fix for the Model issue.

I'd be uncomfortable blacklisting methods. If List<QWidget> QWidget.Children() remains a method, nobody gets hurt, but if bool QMovie.JumpToNextFrame() becomes a property, chaos happens. There is one pattern that could be exploited: methods starting with nouns or adjectives like "Widget," "Width," "Window," "File," "Root," "Physical," and "Temp" are almost certainly properties, but so far only the "File" prefix has more than two entries in my list.

--Brian


From: kde-bindings-bounces at kde.org [mailto:kde-bindings-bounces at kde.org] On Behalf Of Dimitar Dobrev
Sent: Thursday, December 13, 2012 1:15 PM
To: KDE bindings for other programming languages
Subject: Re: [Kde-bindings] Qyoto: Patch v1: Translate obvious getters into properties or "Get" methods


    Mr. Crowell,

    Thanks for the patch, it looks nice. I'll discuss it in a while. First, I'd like to point out that there is no need for us here in open source communities to be that formal. :) If you agree with me, you may call me "Dimitar" and in turn I would call you "Brian". However, if you do prefer an official form of address, that's fine by me.
    About your patch: it looks very good, and I like how you reused the method for generating a property instead of writing your own. :) However, I have two remarks, a regression and a suggestion:
    1. QComboBox.Model used to be a read-write property, now it's read only. Could you please change your code so that it remains read-write? Also, if possible, check for other such cases because this is simply one I found, it doesn't mean there aren't more;
    2. I'm wondering if it would be better to have something like a list of commonly used in API-s verbs, and then if the method starts with has or is or is a single word (this can be checked by casing) and this single word is not a verb, the method should be generated as a property. The thing is that your way you have to look for properties all over the huge Qt API, and that with each Qt version (for example, Qt 5 is coming very soon). Of course, the verb approach may actually turn out to be worse because there may be way too many verbs to enumerate. So this is simply a suggestion for you to think about if you like.

    Dimitar

________________________________
From: "Crowell, Brian" <BCrowell at barbnet.com<mailto:BCrowell at barbnet.com>>
To: KDE bindings for other programming languages <kde-bindings at kde.org<mailto:kde-bindings at kde.org>>
Sent: Thursday, December 13, 2012 8:23 PM
Subject: [Kde-bindings] Qyoto: Patch v1: Translate obvious getters into properties or "Get" methods

As discussed with Mr. Dobrev, this patch finds methods with certain names and signatures and translates them into properties. This covers "Is" and "Has" properties along with a specified list of noun phrases. Getter methods that take arguments are renamed "Get" (Sibling(int row, int column) becomes GetSibling(int row, int column)).

The list of property names is incomplete. I'll add more as I find them.

--Brian
_______________________________________________
Kde-bindings mailing list
Kde-bindings at kde.org<mailto:Kde-bindings at kde.org>
https://mail.kde.org/mailman/listinfo/kde-bindings

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20121213/0ac60eda/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Translate-obvious-getters-into-properties-or-get-methods-v2.patch
Type: application/octet-stream
Size: 11030 bytes
Desc: Translate-obvious-getters-into-properties-or-get-methods-v2.patch
URL: <http://mail.kde.org/pipermail/kde-bindings/attachments/20121213/0ac60eda/attachment-0001.obj>


More information about the Kde-bindings mailing list