Am 28.08.2011 um 22:38 schrieb Stephan Witt: > > Am 28.08.2011 um 21:08 schrieb Vincent van Ravesteijn: > >> Op 28-8-2011 20:19, Stephan Witt schreef: >>> Am 28.08.2011 um 20:11 schrieb Vincent van Ravesteijn: >>> >>>> Op 28-8-2011 16:59, Rob Oakes schreef: >>>>> Dear Developers, >>>>> >>>>> Thanks for fixing the configuration error. It now configures correctly >>>>> (or almost correctly). I am still having a couple of problems with >>>>> configuration on Mac OS X, though (Snow Leopard). >>>>> >>>>> 1.) After the first time configuration runs, the option to "Reconfigure >>>>> LyX" disappears from the application menu. Nor is it present in the >>>>> "Tools" menu, as it would be on other platforms. >>>> Yes, it disappears for me too on Mac. hmmm >>> Self compiled LyX? What Qt-build? (Carbon or Cocoa?) >>> Here it works with the Qt-4.6.3-Cocoa-framework - both the Xcode-build and >>> autotools build. >>> >> >> Self-compiled, CMake, Qt 4.7.3 Cocoa. > > I guess the problems are here - in src/frontends/qt4/Menu.cpp: > void Menus::Impl::macxMenuBarInit(GuiView * view, QMenuBar * qmb) > > When using Carbon it doesn't matter how often the ApplicationSpecificRole > actions are bound to the menu. When using Cocoa every new > ApplicationSpecificRole action creates a new item in the application menu, so > you get one "Reconfigure" item per view. I've "fixed" that with the #if > defined(QT_MAC_USE_COCOA) but obviously this works only for 4.6.x. When using > 4.7.x Cocoa Qt the behavior is changed again - the first created item is > invisible because the action is created with view == 0. > > For today I cannot investigate further...
I didn't check all side effects until now... but the attached patch helps. I have to check with Carbon Qt and in case it works this line can be removed. Stephan
Index: src/frontends/qt4/GuiApplication.cpp =================================================================== --- src/frontends/qt4/GuiApplication.cpp (Revision 39552) +++ src/frontends/qt4/GuiApplication.cpp (Arbeitskopie) @@ -1982,7 +1982,7 @@ // and if no GuiView is visible. // This must be done after the session was recovered to know the "last files". d->global_menubar_ = new GlobalMenuBar(); - d->menus_.fillMenuBar(d->global_menubar_, 0, true); + // d->menus_.fillMenuBar(d->global_menubar_, 0, true); #endif lyx::execBatchCommands();