X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FMenus.cpp;h=627ec4c4c95c31be9ff7c4694c7a3266488c1fab;hb=28be7d552f62cc02fa86d7f79201d089bfb2d7b5;hp=249d742013cb6d2d5fed90bd59e36c5c2c454c4b;hpb=461fda9ca9a8079f235fe6d26031aa6b9c5ff36e;p=lyx.git diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp index 249d742013..627ec4c4c9 100644 --- a/src/frontends/qt4/Menus.cpp +++ b/src/frontends/qt4/Menus.cpp @@ -135,6 +135,9 @@ public: /** This is a list of exportable formats typically for the File->Export menu. */ ExportFormats, + /** This exports the document default format + typically for the File->Export menu. */ + ExportFormat, /** This is a list of importable formats typically for the File->Import menu. */ ImportFormats, @@ -454,6 +457,7 @@ void MenuDefinition::read(Lexer & lex) md_custom, md_elements, md_endmenu, + md_exportformat, md_exportformats, md_importformats, md_indices, @@ -495,6 +499,7 @@ void MenuDefinition::read(Lexer & lex) { "elements", md_elements }, { "end", md_endmenu }, { "environmentseparators", md_env_separators }, + { "exportformat", md_exportformat }, { "exportformats", md_exportformats }, { "floatinsert", md_floatinsert }, { "floatlistinsert", md_floatlistinsert }, @@ -587,6 +592,10 @@ void MenuDefinition::read(Lexer & lex) add(MenuItem(MenuItem::ExportFormats)); break; + case md_exportformat: + add(MenuItem(MenuItem::ExportFormat)); + break; + case md_importformats: add(MenuItem(MenuItem::ImportFormats)); break; @@ -981,6 +990,8 @@ void MenuDefinition::expandDocuments() QString label = toqstr(b.fileName().displayName(20)); if (!b.isClean()) label += "*"; + if (b.notifiesExternalModification()) + label += QChar(0x26a0); if (i < 10) label = QString::number(i) + ". " + label + '|' + QString::number(i); add(MenuItem(MenuItem::Command, label, @@ -998,6 +1009,8 @@ void MenuDefinition::expandDocuments() QString label = toqstr(b->fileName().displayName(20)); if (!b->isClean()) label += "*"; + if (b->notifiesExternalModification()) + label += QChar(0x26a0); if (i < 10) label = QString::number(i) + ". " + label + '|' + QString::number(i); item.submenu().add(MenuItem(MenuItem::Command, label, @@ -1208,7 +1221,7 @@ void MenuDefinition::expandFlexInsert( } } // FIXME This is a little clunky. - if (items_.empty() && type == InsetLayout::CUSTOM && !buf->isReadonly()) + if (items_.empty() && type == InsetLayout::CUSTOM && !buf->hasReadonlyFlag()) add(MenuItem(MenuItem::Help, qt_("No Custom Insets Defined!"))); } @@ -1311,20 +1324,20 @@ void MenuDefinition::expandToc(Buffer const * buf) } MenuDefinition other_lists; - TocList const & toc_list = buf->tocBackend().tocs(); - TocList::const_iterator cit = toc_list.begin(); - TocList::const_iterator end = toc_list.end(); - for (; cit != end; ++cit) { + // In the navigation menu, only add tocs from this document + TocBackend const & backend = buf->tocBackend(); + TocList const & toc_list = backend.tocs(); + for (pair> const & toc : toc_list) { // Handle table of contents later - if (cit->first == "tableofcontents" || cit->second->empty()) + if (toc.first == "tableofcontents" || toc.second->empty()) continue; MenuDefinition submenu; - submenu.expandTocSubmenu(cit->first, *cit->second); - docstring const toc_name = buf->tocBackend().outlinerName(cit->first); + submenu.expandTocSubmenu(toc.first, *toc.second); + docstring const toc_name = backend.outlinerName(toc.first); MenuItem item(MenuItem::Submenu, toqstr(toc_name)); item.setSubmenu(submenu); // deserves to be in the main menu? - if (!TocBackend::isOther(cit->first)) + if (!TocBackend::isOther(toc.first)) add(item); else other_lists.add(item); @@ -1336,8 +1349,8 @@ void MenuDefinition::expandToc(Buffer const * buf) } // Handle normal TOC add(MenuItem(MenuItem::Separator)); - cit = toc_list.find("tableofcontents"); - if (cit == end) + TocList::const_iterator cit = toc_list.find("tableofcontents"); + if (cit == toc_list.end()) LYXERR(Debug::GUI, "No table of contents."); else { if (!cit->second->empty()) @@ -1399,7 +1412,7 @@ void MenuDefinition::expandToolbars() void MenuDefinition::expandBranches(Buffer const * buf) { - if (!buf || buf->isReadonly()) + if (!buf || buf->hasReadonlyFlag()) return; BufferParams const & master_params = buf->masterBuffer()->params(); @@ -1540,7 +1553,7 @@ void MenuDefinition::expandCiteStyles(BufferView const * bv) static_cast(inset); Buffer const * buf = &bv->buffer(); - BufferParams const & bp = buf->params(); + BufferParams const & bp = buf->masterParams(); string const cmd = citinset->params().getCmdName(); docstring const & key = citinset->getParam("key"); @@ -1557,7 +1570,18 @@ void MenuDefinition::expandCiteStyles(BufferView const * bv) vector const keys = getVectorFromString(key); - vector const citeStyleList = buf->params().citeStyles(); + vector const citeStyleList = bp.citeStyles(); + + CitationStyle cs = citinset->getCitationStyle(bp, cmd, citeStyleList); + bool const qualified = cs.hasQualifiedList + && (keys.size() > 1 + || !citinset->getParam("pretextlist").empty() + || !citinset->getParam("posttextlist").empty()); + std::map pres = + citinset->getQualifiedLists(citinset->getParam("pretextlist")); + std::map posts = + citinset->getQualifiedLists(citinset->getParam("posttextlist")); + CiteItem ci; ci.textBefore = citinset->getParam("before"); ci.textAfter = citinset->getParam("after"); @@ -1565,14 +1589,17 @@ void MenuDefinition::expandCiteStyles(BufferView const * bv) ci.Starred = star; ci.context = CiteItem::Dialog; ci.max_size = 40; - vector citeStrings = + ci.isQualified = qualified; + ci.pretexts = pres; + ci.posttexts = posts; + BiblioInfo::CiteStringMap citeStrings = buf->masterBibInfo().getCiteStrings(keys, citeStyleList, bv->buffer(), ci); - vector::const_iterator cit = citeStrings.begin(); - vector::const_iterator end = citeStrings.end(); + BiblioInfo::CiteStringMap::const_iterator cit = citeStrings.begin(); + BiblioInfo::CiteStringMap::const_iterator end = citeStrings.end(); for (int ii = 1; cit != end; ++cit, ++ii) { - docstring label = *cit; + docstring label = cit->second; CitationStyle cs = citeStyleList[ii - 1]; cs.forceUpperCase &= force; cs.hasStarredVersion &= star; @@ -1581,9 +1608,6 @@ void MenuDefinition::expandCiteStyles(BufferView const * bv) "changetype " + from_utf8(citationStyleToString(cs))))); } - // Extra features of the citation styles - CitationStyle cs = citinset->getCitationStyle(bp, cmd, citeStyleList); - if (cs.hasStarredVersion) { docstring starred = _("All authors|h"); // Check if we have a custom string/tooltip for the starred version @@ -1665,7 +1689,7 @@ void MenuDefinition::expandCaptions(Buffer const * buf, bool switchcap) for (pair const & il : dc.insetLayouts()) { docstring instype; docstring const type = split(il.first, instype, ':'); - if (instype == "Caption") { + if (instype == from_ascii("Caption")) { // skip forbidden caption types FuncRequest const cmd = switchcap ? FuncRequest(LFUN_INSET_MODIFY, from_ascii("changetype ") + type) @@ -2164,6 +2188,19 @@ void Menus::Impl::expand(MenuDefinition const & frommenu, tomenu.expandFormats(cit->kind(), buf); break; + case MenuItem::ExportFormat: { + if (!buf) + break; + string const format = buf->params().getDefaultOutputFormat(); + Format const * f = theFormats().getFormat(format); + docstring const name = f ? f->prettyname() : from_utf8(format); + docstring const label = bformat(_("Export [%1$s]|E"), name); + MenuItem item(MenuItem::Command, toqstr(label), + FuncRequest(LFUN_BUFFER_EXPORT)); + tomenu.addWithStatusCheck(item); + break; + } + case MenuItem::CharStyles: tomenu.expandFlexInsert(buf, InsetLayout::CHARSTYLE); break;