]> git.lyx.org Git - lyx.git/commitdiff
Introducing GuiMenubar::init() to avoid destructing the object in order to re-initial...
authorAbdelrazak Younes <younes@lyx.org>
Wed, 21 Nov 2007 21:14:34 +0000 (21:14 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Wed, 21 Nov 2007 21:14:34 +0000 (21:14 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21694 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiMenubar.cpp
src/frontends/qt4/GuiMenubar.h
src/frontends/qt4/GuiView.cpp

index 194095ddffe0662b277a2014bb54900fbf0bdf0f..a06be19ae9be4f7c6049be88fcaebe271e138b38 100644 (file)
@@ -39,6 +39,12 @@ namespace frontend {
 
 GuiMenubar::GuiMenubar(LyXView * view, MenuBackend & mbe)
        : owner_(static_cast<GuiView*>(view)), menubackend_(mbe)
+{
+       init();
+}
+
+
+void GuiMenubar::init()
 {
        macxMenuBarInit();
 
@@ -55,6 +61,9 @@ GuiMenubar::GuiMenubar(LyXView * view, MenuBackend & mbe)
                        << menubackend_.getMenubar().size());
        }
 
+       // Clear all menubar contents before filling it.
+       owner_->menuBar()->clear();
+
        Menu menu;
        menubackend_.expand(menubackend_.getMenubar(), menu, owner_->buffer());
 
index e52906c3562fd4d1c5e5e08bceca9e4e6ab85348..fd48ea3ccfad1d48b30d7fc49fd61bfcb28269f6 100644 (file)
@@ -36,6 +36,9 @@ public:
 
        ~GuiMenubar();
 
+       ///
+       void init();
+
        /// opens a top-level submenu given its name
        void openByName(QString const & name);
 
index 027a7fe68d7abe44167667d2ed7badfa1cde8ee1..66ed4feccf20a3a701f07db5625580d9d449bad2 100644 (file)
@@ -1217,9 +1217,8 @@ void GuiView::resetDialogs()
 {
        // Make sure that no LFUN uses any LyXView.
        theLyXFunc().setLyXView(0);
-       delete d.menubar_;
        d.toolbars_->init();
-       d.menubar_ = new GuiMenubar(this, menubackend);
+       d.menubar_->init();
        if (d.layout_)
                d.layout_->updateContents(true);
 }