From 837661a255b55ee558d525ca4acde5800bac1be7 Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Thu, 26 Mar 2009 12:29:54 +0000 Subject: [PATCH] Enhance LyX by fixing bug 5872. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@28920 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/qt4/Menus.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp index 708aaf936c..5d8cfe0e5d 100644 --- a/src/frontends/qt4/Menus.cpp +++ b/src/frontends/qt4/Menus.cpp @@ -681,24 +681,37 @@ void MenuDefinition::expandLastfiles() void MenuDefinition::expandDocuments() { + MenuItem item(MenuItem::Submenu, qt_("Invisible")); + item.setSubmenu(MenuDefinition(qt_("Invisible"))); + Buffer * first = theBufferList().first(); if (first) { Buffer * b = first; - int ii = 1; + int vis = 1; + int invis = 1; // We cannot use a for loop as the buffer list cycles. do { QString label = toqstr(b->fileName().displayName(20)); if (!b->isClean()) label += "*"; + bool const shown = guiApp->currentView()->workArea(*b); + int ii = shown ? vis : invis; if (ii < 10) label = QString::number(ii) + ". " + label + '|' + QString::number(ii); - add(MenuItem(MenuItem::Command, label, - FuncRequest(LFUN_BUFFER_SWITCH, b->absFileName()))); - + if (shown) { + add(MenuItem(MenuItem::Command, label, + FuncRequest(LFUN_BUFFER_SWITCH, b->absFileName()))); + ++vis; + } else { + item.submenu().add(MenuItem(MenuItem::Command, label, + FuncRequest(LFUN_BUFFER_SWITCH, b->absFileName()))); + ++invis; + } b = theBufferList().next(b); - ++ii; } while (b != first); + if (!item.submenu().empty()) + add(item); } else add(MenuItem(MenuItem::Info, qt_(""))); } -- 2.39.5