[bt-devel] namespace problems
David White
bt-devel@crosswire.org
Mon, 21 Oct 2002 07:46:21 +1000
Does Qt supply a standardized way to manage resources? I would think it
would be a common problem that all Qt-based programs would have to
address....
-David.
----- Original Message -----
From: "Nikolay Igotti" <Nikolay.Igotti@Sun.Com>
To: <bt-devel@crosswire.org>
Sent: Monday, October 21, 2002 4:34 AM
Subject: Re: [bt-devel] namespace problems
> Joachim, are you sure this namespace based approach is good way to do
> i18n and resources management? I feel it's not. Maybe resourse file
> +resouse manager would be better?
>
> Nikolay.
>
>
> On Sat, 19 Oct 2002, Joachim Ansorg wrote:
> > David White, I think this eMail is especially for you because you know
the
> > namespaces well.
> >
> > You pointed me into the direction to use namespaces for the treelike
structure
> > I wanted.
> >
> > Now I have something like
> >
> > namespace CResMgr {
> > inline const QString makeToolTip( const QString& text ) {
> > return text;
> > };
> > inline const QString makeWhatsThis( const QString& title, const
QString&
> > description ) {
> > return
> >
QString::fromLatin1("<center><B>%1</B></center><HR>%2").arg(title).arg(descr
iption);
> > };
> >
> > namespace mainMenu { //Main menu
> > namespace file { //Main menu->File
> > namespace clearQueue {
> > const QString tooltip = makeToolTip( i18n("Clear the
printing
> > queue") );
> > const QString whatsthis = makeWhatsThis( tooltip, i18n("Clear
the
> > print queue of BibleTime. All items will be removed from the list and
the
> > print button will be disabled.") );
> > const QString icon = QString::fromLatin1("queue");
> > const KShortcut accel = KShortcut();
> > const char* actionName = "fileClearQueue_action";
> > }
> > namespace print { //a standard action
> > const QString tooltip = makeToolTip( i18n("Open the
> > printerdialog") );
> > const QString whatsthis = makeWhatsThis( tooltip, i18n("Open
the
> > printer dialog of BibleTime. Here you can edit the print queue and
assign
> > styles to the items.") );
> > }
> > namespace quit { //a standard action
> > const QString tooltip = makeToolTip( i18n("Close
BibleTime") );
> > const QString whatsthis = makeWhatsThis( tooltip, i18n("Close
> > BibleTime and save the settings.") );
> > }
> > }
> > }
> > etc.
> >
> > But compiling BibleTime with this header included in two or more places
I get
> > the following compiler warnings about multiple symbol definitions:
> >
> > ./frontend/searchdialog/libsearchdialog.a(csearchdialog.o)(.data+0x0):
> > multiple definition of `CResMgr::mainMenu::file::clearQueue::actionName'
> > bibletime_init.o(.data+0x0): first defined here
> > ./frontend/searchdialog/libsearchdialog.a(csearchdialog.o)(.data+0x4):
> > multiple definition of
`CResMgr::mainMenu::view::showMainIndex::actionName'
> > bibletime_init.o(.data+0x4): first defined here
> > ./frontend/searchdialog/libsearchdialog.a(csearchdialog.o)(.data+0x8):
> > multiple definition of
`CResMgr::mainMenu::mainIndex::search::actionName'
> > bibletime_init.o(.data+0x8): first defined here
> > ./frontend/searchdialog/libsearchdialog.a(csearchdialog.o)(.data+0xc):
> > multiple definition of
`CResMgr::mainMenu::window::loadProfile::actionName'
> > bibletime_init.o(.data+0xc): first defined here
> >
> > How can I avoid these problems? I have no idea.
> > Thank you very much for any help!
> >
>