Attached.

I am not quite sure the first chunk in GuiWorkArea.cpp is needed.

Comments?

Andre'
Index: LyXRC.h
===================================================================
--- LyXRC.h     (revision 29842)
+++ LyXRC.h     (working copy)
@@ -82,6 +82,7 @@
                RC_FULL_SCREEN_LIMIT,
                RC_FULL_SCREEN_SCROLLBAR,
                RC_FULL_SCREEN_TABBAR,
+               RC_FULL_SCREEN_MENUBAR,
                RC_FULL_SCREEN_TOOLBARS,
                RC_FULL_SCREEN_WIDTH,
                RC_GEOMETRY_SESSION,
@@ -443,6 +444,8 @@
        bool full_screen_scrollbar;
        /// Toggle tabbar in fullscreen mode?
        bool full_screen_tabbar;
+       /// Toggle menubar in fullscreen mode?
+       bool full_screen_menubar;
        /// Limit the text width?
        bool full_screen_limit;
        /// Width of limited screen (in pixels) in fullscreen mode
Index: frontends/qt4/GuiView.cpp
===================================================================
--- frontends/qt4/GuiView.cpp   (revision 29842)
+++ frontends/qt4/GuiView.cpp   (working copy)
@@ -2282,7 +2282,7 @@
 
        // Part of automatic menu appearance feature.
        if (isFullScreen()) {
-               if (menuBar()->isVisible())
+               if (menuBar()->isVisible() && !lyxrc.full_screen_menubar)
                        menuBar()->hide();
                if (statusBar()->isVisible())
                        statusBar()->hide();
@@ -2361,7 +2361,8 @@
                saveLayout();
                setWindowState(windowState() ^ Qt::WindowFullScreen);
                statusBar()->hide();
-               menuBar()->hide();
+               if (!lyxrc.full_screen_menubar)
+                       menuBar()->hide();
                if (lyxrc.full_screen_toolbars) {
                        ToolbarMap::iterator end = d.toolbars_.end();
                        for (ToolbarMap::iterator it = d.toolbars_.begin(); it 
!= end; ++it)
Index: frontends/qt4/GuiWorkArea.cpp
===================================================================
--- frontends/qt4/GuiWorkArea.cpp       (revision 29842)
+++ frontends/qt4/GuiWorkArea.cpp       (working copy)
@@ -367,6 +367,7 @@
                setFrameStyle(QFrame::NoFrame);
                if (lyxrc.full_screen_scrollbar)
                        setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+               lyx_view_->menuBar()->setVisible(lyxrc.full_screen_menubar);
        } else {
 #ifdef Q_WS_MACX
                setFrameStyle(QFrame::NoFrame);
@@ -374,6 +375,7 @@
                setFrameStyle(QFrame::Box);
 #endif
                setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+               lyx_view_->menuBar()->setVisible(true);
        }
 }
 
@@ -447,7 +449,8 @@
 
 void GuiWorkArea::processKeySym(KeySymbol const & key, KeyModifier mod)
 {
-       if (lyx_view_->isFullScreen() && lyx_view_->menuBar()->isVisible()) {
+       if (lyx_view_->isFullScreen() && lyx_view_->menuBar()->isVisible()
+                       && !lyxrc.full_screen_menubar) {
                // FIXME HACK: we should not have to do this here. See related 
comment
                // in GuiView::event() (QEvent::ShortcutOverride)
                lyx_view_->menuBar()->hide();
@@ -1353,7 +1356,7 @@
        }
 
        if (lyxrc.full_screen_tabbar)
-               showBar(!full_screen && count()>1);
+               showBar(!full_screen && count() > 1);
 }
 
 
Index: frontends/qt4/GuiPrefs.cpp
===================================================================
--- frontends/qt4/GuiPrefs.cpp  (revision 29842)
+++ frontends/qt4/GuiPrefs.cpp  (working copy)
@@ -2160,6 +2160,8 @@
                this, SIGNAL(changed()));
        connect(toggleTabbarCB, SIGNAL(toggled(bool)),
                this, SIGNAL(changed()));
+       connect(toggleMenubarCB, SIGNAL(toggled(bool)),
+               this, SIGNAL(changed()));
        connect(toggleScrollbarCB, SIGNAL(toggled(bool)),
                this, SIGNAL(changed()));
        connect(toggleToolbarsCB, SIGNAL(toggled(bool)),
@@ -2181,6 +2183,7 @@
        rc.full_screen_toolbars = toggleToolbarsCB->isChecked();
        rc.full_screen_scrollbar = toggleScrollbarCB->isChecked();
        rc.full_screen_tabbar = toggleTabbarCB->isChecked();
+       rc.full_screen_menubar = toggleMenubarCB->isChecked();
        rc.full_screen_width = fullscreenWidthSB->value();
        rc.full_screen_limit = fullscreenLimitGB->isChecked();
 }
@@ -2196,6 +2199,7 @@
        toggleScrollbarCB->setChecked(rc.full_screen_scrollbar);
        toggleToolbarsCB->setChecked(rc.full_screen_toolbars);
        toggleTabbarCB->setChecked(rc.full_screen_tabbar);
+       toggleMenubarCB->setChecked(rc.full_screen_menubar);
        fullscreenWidthSB->setValue(rc.full_screen_width);
        fullscreenLimitGB->setChecked(rc.full_screen_limit);
 }
Index: frontends/qt4/ui/PrefEditUi.ui
===================================================================
--- frontends/qt4/ui/PrefEditUi.ui      (revision 29842)
+++ frontends/qt4/ui/PrefEditUi.ui      (working copy)
@@ -170,6 +170,13 @@
         </property>
        </spacer>
       </item>
+      <item row="3" column="0" >
+       <widget class="QCheckBox" name="toggleMenubarCB" >
+        <property name="text" >
+         <string>Hide &amp;menubar</string>
+        </property>
+       </widget>
+      </item>
       <item row="2" column="0" >
        <widget class="QCheckBox" name="toggleTabbarCB" >
         <property name="text" >
Index: frontends/qt4/GuiPrintNomencl.cpp
===================================================================
--- frontends/qt4/GuiPrintNomencl.cpp   (revision 29842)
+++ frontends/qt4/GuiPrintNomencl.cpp   (working copy)
@@ -129,11 +129,11 @@
 }
 
 
-bool GuiPrintNomencl::isValid()
+bool GuiPrintNomencl::isValid() const
 {
-       return (setWidthCO->itemData(
+       return setWidthCO->itemData(
                        setWidthCO->currentIndex()).toString() != "custom"
-               || !valueLE->text().isEmpty());
+               || !valueLE->text().isEmpty();
 }
 
 
Index: frontends/qt4/GuiPrintNomencl.h
===================================================================
--- frontends/qt4/GuiPrintNomencl.h     (revision 29842)
+++ frontends/qt4/GuiPrintNomencl.h     (working copy)
@@ -49,7 +49,7 @@
        ///
        bool isBufferDependent() const { return true; }
        ///
-       bool isValid();
+       bool isValid() const;
 
        ///
        InsetCommandParams params_;
Index: LyXRC.cpp
===================================================================
--- LyXRC.cpp   (revision 29842)
+++ LyXRC.cpp   (working copy)
@@ -92,6 +92,7 @@
        { "\\font_encoding", LyXRC::RC_FONT_ENCODING },
        { "\\format", LyXRC::RC_FORMAT },
        { "\\fullscreen_limit", LyXRC::RC_FULL_SCREEN_LIMIT },
+       { "\\fullscreen_menubar", LyXRC::RC_FULL_SCREEN_TABBAR },
        { "\\fullscreen_scrollbar", LyXRC::RC_FULL_SCREEN_SCROLLBAR },
        { "\\fullscreen_tabbar", LyXRC::RC_FULL_SCREEN_TABBAR },
        { "\\fullscreen_toolbars", LyXRC::RC_FULL_SCREEN_TOOLBARS },
@@ -315,6 +316,7 @@
        full_screen_limit = false;
        full_screen_toolbars = true;
        full_screen_tabbar = true;
+       full_screen_menubar = true;
        full_screen_scrollbar = true;
        full_screen_width = 700;
 
@@ -1123,6 +1125,9 @@
                case RC_FULL_SCREEN_TABBAR:
                        lexrc >> full_screen_tabbar;
                        break;
+               case RC_FULL_SCREEN_MENUBAR:
+                       lexrc >> full_screen_menubar;
+                       break;
                case RC_FULL_SCREEN_WIDTH:
                        lexrc >> full_screen_width;
                        break;
@@ -1771,6 +1776,15 @@
                }
                if (tag != RC_LAST)
                        break;
+       case RC_FULL_SCREEN_MENUBAR:
+               if (ignore_system_lyxrc ||
+                   full_screen_menubar != system_lyxrc.full_screen_menubar) {
+                       os << "\\fullscreen_menubar "
+                          << convert<string>(full_screen_menubar)
+                          << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
        case RC_FULL_SCREEN_WIDTH:
                if (ignore_system_lyxrc ||
                    full_screen_width != system_lyxrc.full_screen_width) {

Reply via email to