]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/Menus.cpp
Generalize starred cite commands
[lyx.git] / src / frontends / qt4 / Menus.cpp
index 5a7e8e09aa182df39b7cd8705572de66d3e34165..546fd0c2d13a620b0d856a6088553c7b0b128c2c 100644 (file)
@@ -1547,8 +1547,8 @@ void MenuDefinition::expandCiteStyles(BufferView const * bv)
        docstring const & after = citinset->getParam("after");
 
        size_t const n = cmd.size();
-       bool const force = cmd[0] == 'C';
-       bool const full = cmd[n] == '*';
+       bool const force = isUpperCase(cmd[0]);
+       bool const star = cmd[n] == '*';
 
        vector<docstring> const keys = getVectorFromString(key);
 
@@ -1565,7 +1565,7 @@ void MenuDefinition::expandCiteStyles(BufferView const * bv)
                docstring label = *cit;
                CitationStyle cs = citeStyleList[ii - 1];
                cs.forceUpperCase &= force;
-               cs.fullAuthorList &= full;
+               cs.hasStarredVersion &= star;
                addWithStatusCheck(MenuItem(MenuItem::Command, toqstr(label),
                                    FuncRequest(LFUN_INSET_MODIFY,
                                                "changetype " + from_utf8(citationStyleToString(cs)))));
@@ -1669,7 +1669,7 @@ void MenuDefinition::expandQuotes(BufferView const * bv)
        InsetQuotes const * qinset =
                static_cast<InsetQuotes const *>(inset);
 
-       map<string, docstring> styles = qinset->getTypes();
+       map<string, docstring> styles = quoteparams.getTypes();
        string const qtype = qinset->getType();
        
        map<string, docstring>::const_iterator qq = styles.begin();
@@ -1679,12 +1679,60 @@ void MenuDefinition::expandQuotes(BufferView const * bv)
        MenuDefinition sqs;
        MenuDefinition gqs;
        MenuDefinition pqs;
-       MenuDefinition fqs;
+       MenuDefinition cqs;
        MenuDefinition aqs;
+       MenuDefinition qqs;
+       MenuDefinition bqs;
+       MenuDefinition wqs;
+       MenuDefinition fqs;
+       MenuDefinition iqs;
+       MenuDefinition rqs;
+       MenuDefinition jqs;
+       MenuDefinition kqs;
+       MenuDefinition xqs;
+       InsetQuotesParams::QuoteStyle globalqs =
+                       bv->buffer().masterBuffer()->params().quotes_style;
+       FuncRequest cmd = FuncRequest(LFUN_INSET_MODIFY, from_ascii("changetype xld"));
+       docstring desc = bformat(_("%1$stext (dynamic)"),
+                                docstring(1, quoteparams.getQuoteChar(globalqs,
+                                                                      InsetQuotesParams::PrimaryQuotes,
+                                                                      InsetQuotesParams::OpeningQuote)));
+       if (prefixIs(qtype, "x"))
+               add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+       else
+               xqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+       cmd = FuncRequest(LFUN_INSET_MODIFY, from_ascii("changetype xls"));
+       desc = bformat(_("%1$stext (dynamic)"),
+                      docstring(1, quoteparams.getQuoteChar(globalqs, 
+                                                            InsetQuotesParams::SecondaryQuotes,
+                                                            InsetQuotesParams::OpeningQuote)));
+       if (prefixIs(qtype, "x"))
+               add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+       else
+               xqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+       cmd = FuncRequest(LFUN_INSET_MODIFY, from_ascii("changetype xrd"));
+       desc = bformat(_("text%1$s (dynamic)"),
+                      docstring(1, quoteparams.getQuoteChar(globalqs,
+                                                            InsetQuotesParams::PrimaryQuotes,
+                                                            InsetQuotesParams::ClosingQuote)));
+       if (prefixIs(qtype, "x"))
+               add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+       else
+               xqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+       cmd = FuncRequest(LFUN_INSET_MODIFY, from_ascii("changetype xrs"));
+       desc = bformat(_("text%1$s (dynamic)"),
+                      docstring(1, quoteparams.getQuoteChar(globalqs,
+                                                            InsetQuotesParams::SecondaryQuotes,
+                                                            InsetQuotesParams::ClosingQuote)));
+       if (prefixIs(qtype, "x"))
+               add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+       else
+               xqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+
        for (; qq != end; ++qq) {
                docstring const style = from_ascii(qq->first);
-               FuncRequest const cmd = FuncRequest(LFUN_INSET_MODIFY, from_ascii("changetype ") + style);
-               docstring const desc = contains(style, 'l') ? 
+               cmd = FuncRequest(LFUN_INSET_MODIFY, from_ascii("changetype ") + style);
+               desc = contains(style, 'l') ? 
                        bformat(_("%1$stext"), qq->second) : bformat(_("text%1$s"), qq->second);
                if (prefixIs(style, qtype[0]))
                        add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
@@ -1696,42 +1744,117 @@ void MenuDefinition::expandQuotes(BufferView const * bv)
                        gqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
                else if (prefixIs(style, 'p') && !prefixIs(qtype, "p"))
                        pqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
-               else if (prefixIs(style, 'f') && !prefixIs(qtype, "f"))
-                       fqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'c') && !prefixIs(qtype, "c"))
+                       cqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
                else if (prefixIs(style, 'a') && !prefixIs(qtype, "a"))
                        aqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'q') && !prefixIs(qtype, "q"))
+                       qqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'b') && !prefixIs(qtype, "b"))
+                       bqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'w') && !prefixIs(qtype, "w"))
+                       wqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'f') && !prefixIs(qtype, "f"))
+                       fqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'i') && !prefixIs(qtype, "i"))
+                       iqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'r') && !prefixIs(qtype, "r"))
+                       rqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'j') && !prefixIs(qtype, "j"))
+                       jqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+               else if (prefixIs(style, 'k') && !prefixIs(qtype, "k"))
+                       kqs.add(MenuItem(MenuItem::Command, toqstr(desc), cmd));
+       }
+
+       if (!xqs.empty()) {
+               MenuItem item(MenuItem::Submenu, qt_("Dynamic Quotation Marks"));
+               item.setSubmenu(xqs);
+               add(item);
        }
-
        if (!eqs.empty()) {
-               MenuItem item(MenuItem::Submenu, qt_("``text''"));
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::EnglishQuotes)));
                item.setSubmenu(eqs);
                add(item);
        }
        if (!sqs.empty()) {
-               MenuItem item(MenuItem::Submenu, qt_("''text''"));
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::SwedishQuotes)));
                item.setSubmenu(sqs);
                add(item);
        }
        if (!gqs.empty()) {
-               MenuItem item(MenuItem::Submenu, qt_(",,text``"));
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::GermanQuotes)));
                item.setSubmenu(gqs);
                add(item);
        }
        if (!pqs.empty()) {
-               MenuItem item(MenuItem::Submenu, qt_(",,text''"));
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::PolishQuotes)));
                item.setSubmenu(pqs);
                add(item);
        }
-       if (!fqs.empty()) {
-               MenuItem item(MenuItem::Submenu, qt_("<<text>>"));
-               item.setSubmenu(fqs);
+       if (!cqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::SwissQuotes)));
+               item.setSubmenu(cqs);
                add(item);
        }
        if (!aqs.empty()) {
-               MenuItem item(MenuItem::Submenu, qt_(">>text<<"));
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::DanishQuotes)));
                item.setSubmenu(aqs);
                add(item);
        }
+       if (!qqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::PlainQuotes)));
+               item.setSubmenu(qqs);
+               add(item);
+       }
+       if (!bqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::BritishQuotes)));
+               item.setSubmenu(bqs);
+               add(item);
+       }
+       if (!wqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::SwedishGQuotes)));
+               item.setSubmenu(wqs);
+               add(item);
+       }
+       if (!fqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::FrenchQuotes)));
+               item.setSubmenu(fqs);
+               add(item);
+       }
+       if (!iqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::FrenchINQuotes)));
+               item.setSubmenu(iqs);
+               add(item);
+       }
+       if (!rqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::RussianQuotes)));
+               item.setSubmenu(rqs);
+               add(item);
+       }
+       if (!jqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::CJKQuotes)));
+               item.setSubmenu(jqs);
+               add(item);
+       }
+       if (!kqs.empty()) {
+               MenuItem item(MenuItem::Submenu,
+                             toqstr(quoteparams.getGuiLabel(InsetQuotesParams::CJKAngleQuotes)));
+               item.setSubmenu(kqs);
+               add(item);
+       }
 }