[Marble-devel] "Info Box", "Panel", AbstractFloatItems, FloatItemsLayer, RenderPlugin::PanelRenderType, ... ???

Friedrich W. H. Kossebau kossebau at kde.org
Sat Jul 23 16:43:00 UTC 2016


Hi,

I am confused by the concepts and names currently, and would like to raise 
awareness for those working in that area, to consider improving it:

In the UI there are the terms
* "Panel":    UI boxes outside the map widget
* "Info Box": UI boxes inside the map widget

Those "Panel"s are implemented as QDockWidgets.
Those "Info Box"es are implemented as "AbstractFloatItems", so subclasses of 
"RenderPlugin", with a renderType() of "PanelRenderType".

So what is a "Panel" in the UI, it is not related to the "Panel" type in the 
code.

More, the menu for toggling the "Info Box"es, is filled in different ways:
* marble-qt iterates over marbleWidget()->renderPlugins() and selecting 
plugins of type "PanelRenderType", taking their actions
* marble-kde (by older code) iterates over marbleWidget()->floatItems(), 
taking their actions
Both currently result in the same set of actions, given AbstractFloatItems are 
the only plugins which set the type to PanelRenderType.
But it is rather confusing to have these different ways being used to access 
those items/plugins, as it stays unclear if there could be non-
AbstractFloatItems of type PanelRenderType, as nothing prevents e.g. 3rd-party 
to do that.

Who has a master plan here? Bernhard, given your introduction of 
FloatItemsLayer, could you pick this up and consider this feedback in whatever 
you are working on there?

Cheers
Friedrich


More information about the Marble-devel mailing list