[Geany-devel] Empty project properties dialog

Matthew Brush mbrush at xxxxx
Thu Jan 12 15:51:14 UTC 2012


On 01/12/2012 01:44 AM, Lex Trotman wrote:
> [...]
>
>> There was no change in documented functions, signals or behaviour AFAIK.
>>
>
> Ok, if the functionality used is not *documented* to be in the API
> then it is not protected, but, as the change in behaviour is going to
> require a change in the plugin interface an API bump will happen by
> default.
>

No, it won't(didn't) require any changes to the API I don't think. It 
was never documented that you should rely on the Project dialog being 
destroyed and cleaning up your notebook page for you.

>> Would you, for example, increment the API and ABI if GeanyPluginX depended
>> on the fact that the main GtkVBox widget in the Glade file was named `vbox1`
>> and we changed it to `vbox_main`?
>
> If it was in the interface documentation, yes, else no.
>
>>
>> In this case GProject was (understandably) relying on undefined internal
>> behaviour of Geany rather than using the signal provided in the API to allow
>> a plugin to remove the notebook page from the projects dialog (not that the
>> docs would lead you to believe this, in fact the opposite).
>
> Not sure why it needs to depend on internal behaviour, but I havn't
> studied the details of what it does.
>
> This may a side effect of the ad-hoc inclusion of features in the
> plugin interface, they are only added when asked for.
>
> Since the project dialog may now be created (and only once) before the
> plugin is conected to the signal, the plugin interface will need to be
> changed to still allow current operation to continue since AFAICT the
> only documented way the plugin can get the notebook is the project
> create signal.  I guess you and Jiri should work out the details of
> what is needed.
>

Nope, plugins can add their notebook page during the 
`project_dialog_create` signal and remove it during the 
`project_dialog_confirmed` signal, nothing changed here I don't think.

>>
>> Since we're loading plugins into the Geany process with basically complete
>> access to everything, then we should bump the API version on every commit,
>> since we could potentially be changing undocumented internal behaviour that
>> the plugins can have access to if they really want.
>
> Because C is a crappy language we can't get the compiler to hide stuff
> it knows about from plugins.  That is why the insistence is on only
> using *documented* API which we will protect by changing API/ABI.  If
> something is visible due to the limitations of C, but not documented,
> no API/ABI bump is needed.
>
>>
>> In any case, the docs, especially for `project_dialog_confirmed` should be
>> improved/fixed.
>
> Probably, but what?
>

Namely removing this from the `project_dialog_confirmed` docs:

"Warning:
     The dialog will still be running afterwards if the user chose 
'Apply'. "

AFAIK there's no Apply button for project dialog and in fact it seems 
like the ideal place for plugins to remove their notebook page from (I'd 
need to test to be 100% sure).

Cheers,
Matthew Brush



More information about the Devel mailing list