[Marble-devel] splitting marble and marblewidget
Torsten Rahn
rahn at kde.org
Fri Jan 29 21:19:16 CET 2010
Hi Kishore,
Ok, I only now figured that my suggestion below doesn't fully resolve the
problem. Some .ui files -- especially the plugin-settings dialog --- need some
additional .cpp and .h implementation magic in order to make the .ui files
contents fly ;-)
So even if we expose the .ui files to the outside then there's still a problem
there about how we share the backend-logic that is part of the accompagning .cpp
and .h files. Right now I don't know a good solution to solve this. So any
suggestions welcome :-)
Best Regards,
Torsten
On Freitag 29 Januar 2010 21:06:05 Torsten Rahn wrote:
> Hi Kishore,
>
> This is a tricky situation indeed.
>
> From what I recall the situation is like this:
>
> For the settings dialog there are two versions:
>
> * A Qt-Only version
> * A KDE version
>
> Both versions use the very same nice .ui files for the tabs.
> There's a significant difference indeed between both:
>
> * The Qt version gets linked together on the library level via
> src/lib/QtMarbleConfigDialog.cpp. This doesn't pose a problem.
>
> * The KDE version however is creating the dialog inside the Marble - KPart
> component (which is also meant to be shared by applications -- but so far
> no other application except for Marble itself really makes use of it).
> See:
>
> http://techbase.kde.org/Development/Architecture/KDE4/KParts
>
> The KDE version is reusing the very same .ui files that are accessible to
> the Qt version. See:
>
> http://techbase.kde.org/Development/Tutorials/Using_KConfig_XT
>
> Usually this technology would make it more easy to write settings dialogs.
> However we are making rather use of it in order to provide a higher level
> of KDE-integration.
>
>
> Now if we basically assume that the KPart would become part of the "Marble
> KDE integration layer" (which would for now get shipped together with the
> Marble KDE Application) then we'd still need to have some access to the
> .ui files from outside the libraries.
>
> Hence the .ui files would need to get installed in a similar way as the
> header files of the library are installed.
>
> I think this is what it boils down to: the .ui-files need to get installed
> in a similar fashion as the header files in order to let the Marble KPart
> reuse it.
>
> Do you think this is feasible? :-)
>
> Best Regards,
>
> Torsten
>
> On Freitag 29 Januar 2010 17:39:21 Kishore wrote:
> > While attempting to split marble and marblewidget so that the widget
> > could go into kdesupport I experienced a few issues.
> >
> > Most issues were related to marblewidget in its current CMakeLists.txt,
> > installing header files being used by marble application. This i work
> > around by installing them.
> >
> > Header files in marblewidget, used by marble in turn include the UIC
> > generated headers. This breaks the build. I have worked around this by
> > moving the inclusion into the respective cpp file and only forward
> > declaring in the header.
> >
> > Here is now where i am stuck. There are some UIC generated files of
> > marblewidget (code inside src/lib) that are being included directly by
> > code in marble. For example, marble_part.cpp includes
> > ui_MarbleViewSettingsWidget.h. Does anybody have a suggestion for working
> > around such requirements?
> >
> > It seems to me that marble application has intimate knowledge about
> > marblewidget and this bond would need to be broken for a proper split.
> > Necessary functionality would have to be added to the widget to make it
> > usable by marble.
> >
> > Any suggestions?
>
> _______________________________________________
> Marble-devel mailing list
> Marble-devel at kde.org
> https://mail.kde.org/mailman/listinfo/marble-devel
More information about the Marble-devel
mailing list