[bt-devel] namespace problems

David White bt-devel@crosswire.org
Tue, 22 Oct 2002 07:58:38 +1000


Well, maybe you could consider using the principles of code reuse, and reuse
SWConfig from Sword? Then you could just store tooltips in the same format
that Sword config files are stored in. You would also benefit from future
changes to SWConfig made by the Sword guys.

-David.

----- Original Message -----
From: "Joachim Ansorg" <joachim@ansorgs.de>
To: <bt-devel@crosswire.org>
Sent: Tuesday, October 22, 2002 3:24 AM
Subject: Re: [bt-devel] namespace problems


> Most Qt apps simply don't offer Tooltips and whatsthis helps :)
> Often they're directly included in the source code at the position they're
> needed. But I like to have a structured and easy to navigate source tree.
So
> having all in one place is a good idea for us.
>
>
> Joachim
>
> > 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(desc
> >r 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!
>
> --
> Joachim Ansorg
> www.bibletime.de
> www.ansorgs.de
>