commit 6933051747f7ce62e60d5e6b73172cc207c646bf
Author: Juergen Spitzmueller <sp...@lyx.org>
Date:   Sat Jan 7 17:21:41 2017 +0100

    Implement display of forceUpperCase
---
 src/BiblioInfo.cpp                |    2 ++
 src/frontends/qt4/GuiCitation.cpp |    3 ++-
 src/frontends/qt4/Menus.cpp       |    1 +
 src/insets/InsetCitation.cpp      |    5 +++--
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/BiblioInfo.cpp b/src/BiblioInfo.cpp
index c5d06ea..8a17925 100644
--- a/src/BiblioInfo.cpp
+++ b/src/BiblioInfo.cpp
@@ -744,6 +744,8 @@ docstring BibTeXInfo::getValueForKey(string const & oldkey, 
Buffer const & buf,
                                        + " [" + operator[]("year") + "]";
                        else
                                ret = operator[]("title");
+                       if (ci.forceUpperCase && isLowerCase(ret[0]))
+                               ret[0] = uppercase(ret[0]);
                } else if (key == "bibentry") {
                        // Special key to provide the full bibliography entry: 
see getInfo()
                        CiteEngineType const engine_type = 
buf.params().citeEngineType();
diff --git a/src/frontends/qt4/GuiCitation.cpp 
b/src/frontends/qt4/GuiCitation.cpp
index 5ee05d5..9e5bfab 100644
--- a/src/frontends/qt4/GuiCitation.cpp
+++ b/src/frontends/qt4/GuiCitation.cpp
@@ -127,7 +127,7 @@ GuiCitation::GuiCitation(GuiView & lv)
        connect(starredCB, SIGNAL(clicked()),
                this, SLOT(changed()));
        connect(forceuppercaseCB, SIGNAL(clicked()),
-               this, SLOT(changed()));
+               this, SLOT(updateStyles()));
        connect(textBeforeED, SIGNAL(textChanged(QString)),
                this, SLOT(updateStyles()));
        connect(textAfterED, SIGNAL(textChanged(QString)),
@@ -685,6 +685,7 @@ QStringList GuiCitation::citationStyles(BiblioInfo const & 
bi, size_t max_size)
        CiteItem ci;
        ci.textBefore = qstring_to_ucs4(textBeforeED->text());
        ci.textAfter = qstring_to_ucs4(textAfterED->text());
+       ci.forceUpperCase = forceuppercaseCB->isChecked();
        ci.context = CiteItem::Dialog;
        ci.max_size = max_size;
        vector<docstring> ret = bi.getCiteStrings(keys, styles, 
documentBuffer(), ci);
diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp
index cdd70fb..78b596f 100644
--- a/src/frontends/qt4/Menus.cpp
+++ b/src/frontends/qt4/Menus.cpp
@@ -1553,6 +1553,7 @@ void MenuDefinition::expandCiteStyles(BufferView const * 
bv)
        CiteItem ci;
        ci.textBefore = citinset->getParam("before");
        ci.textAfter = citinset->getParam("after");
+       ci.forceUpperCase = force;
        ci.context = CiteItem::Dialog;
        ci.max_size = 40;
        vector<docstring> citeStrings =
diff --git a/src/insets/InsetCitation.cpp b/src/insets/InsetCitation.cpp
index c92b665..a6cb6af 100644
--- a/src/insets/InsetCitation.cpp
+++ b/src/insets/InsetCitation.cpp
@@ -256,8 +256,8 @@ docstring InsetCitation::complexLabel(bool for_xhtml) const
 
        // We don't currently use the full or forceUCase fields.
        string cite_type = getCmdName();
-       if (isUpperCase(cite_type[0]))
-               // If we were going to use them, this would mean ForceUCase
+       bool const uppercase = isUpperCase(cite_type[0]);
+       if (uppercase)
                cite_type[0] = lowercase(cite_type[0]);
        if (cite_type[cite_type.size() - 1] == '*')
                // and this would mean FULL
@@ -278,6 +278,7 @@ docstring InsetCitation::complexLabel(bool for_xhtml) const
        CiteItem ci;
        ci.textBefore = getParam("before");
        ci.textAfter = getParam("after");
+       ci.forceUpperCase = uppercase;
        ci.max_size = UINT_MAX;
        if (for_xhtml) {
                ci.max_key_size = UINT_MAX;

Reply via email to