]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiCitation.cpp
Fix the tab ordering of GuiDocument components.
[lyx.git] / src / frontends / qt4 / GuiCitation.cpp
index 4f16ad4998cc9a14eddaa2274ecdf2c83846bb72..e219390fbd4cd35b677bb6b5133988484fb945a2 100644 (file)
@@ -20,6 +20,7 @@
 #include "qt_helpers.h"
 
 #include "Buffer.h"
+#include "BufferView.h"
 #include "BiblioInfo.h"
 #include "BufferParams.h"
 #include "FuncRequest.h"
@@ -41,7 +42,7 @@
 
 #undef KeyPress
 
-#include <boost/regex.hpp>
+#include "support/regex.h"
 
 #include <algorithm>
 #include <string>
@@ -114,6 +115,8 @@ GuiCitation::GuiCitation(GuiView & lv)
        connect(selectionManager, SIGNAL(okHook()),
                this, SLOT(on_okPB_clicked()));
 
+       setFocusProxy(availableLV);
+
        // FIXME: the sizeHint() for this is _way_ too high
        infoML->setFixedHeight(60);
 }
@@ -364,7 +367,7 @@ void GuiCitation::updateInfo(BiblioInfo const & bi, QModelIndex const & idx)
        }
 
        QString const keytxt = toqstr(
-               bi.getInfo(qstring_to_ucs4(idx.data().toString()), buffer(), true));
+               bi.getInfo(qstring_to_ucs4(idx.data().toString()), documentBuffer(), true));
        infoML->document()->setHtml(keytxt);
 }
 
@@ -610,7 +613,7 @@ void GuiCitation::findKey(BiblioInfo const & bi,
 QStringList GuiCitation::citationStyles(BiblioInfo const & bi, int sel)
 {
        docstring const key = qstring_to_ucs4(cited_keys_[sel]);
-       return to_qstring_list(bi.getCiteStrings(key, buffer()));
+       return to_qstring_list(bi.getCiteStrings(key, documentBuffer()));
 }
 
 
@@ -622,8 +625,8 @@ void GuiCitation::setCitedKeys()
 
 bool GuiCitation::initialiseParams(string const & data)
 {
-       InsetCommand::string2params("citation", data, params_);
-       CiteEngine const engine = buffer().params().citeEngine();
+       InsetCommand::string2params(data, params_);
+       CiteEngine const engine = citeEngine();
        citeStyles_ = citeStyles(engine);
        init();
        return true;
@@ -660,7 +663,7 @@ void GuiCitation::filterByEntryType(BiblioInfo const & bi,
 
 CiteEngine GuiCitation::citeEngine() const
 {
-       return buffer().params().citeEngine();
+       return documentBuffer().params().citeEngine();
 }
 
 
@@ -673,9 +676,9 @@ static docstring escape_special_chars(docstring const & expr)
 {
        // Search for all chars '.|*?+(){}[^$]\'
        // Note that '[' and '\' must be escaped.
-       // This is a limitation of boost::regex, but all other chars in BREs
+       // This is a limitation of lyx::regex, but all other chars in BREs
        // are assumed literal.
-       static const boost::regex reg("[].|*?+(){}^$\\[\\\\]");
+       static const lyx::regex reg("[].|*?+(){}^$\\[\\\\]");
 
        // $& is a perl-like expression that expands to all
        // of the current match
@@ -683,7 +686,7 @@ static docstring escape_special_chars(docstring const & expr)
        // boost to treat it as a literal.
        // Thus, to prefix a matched expression with '\', we use:
        // FIXME: UNICODE
-       return from_utf8(boost::regex_replace(to_utf8(expr), reg, "\\\\$&"));
+       return from_utf8(lyx::regex_replace(to_utf8(expr), reg, string("\\\\$&")));
 }
 
 
@@ -700,15 +703,15 @@ vector<docstring> GuiCitation::searchKeys(BiblioInfo const & bi,
 
        if (!regex)
                // We must escape special chars in the search_expr so that
-               // it is treated as a simple string by boost::regex.
+               // it is treated as a simple string by lyx::regex.
                expr = escape_special_chars(expr);
 
-       boost::regex reg_exp;
+       lyx::regex reg_exp;
        try {
                reg_exp.assign(to_utf8(expr), case_sensitive ?
-                       boost::regex_constants::normal : boost::regex_constants::icase);
-       } catch (boost::regex_error & e) {
-               // boost::regex throws an exception if the regular expression is not
+                       lyx::regex_constants::ECMAScript : lyx::regex_constants::icase);
+       } catch (lyx::regex_error & e) {
+               // lyx::regex throws an exception if the regular expression is not
                // valid.
                LYXERR(Debug::GUI, e.what());
                return vector<docstring>();
@@ -734,10 +737,10 @@ vector<docstring> GuiCitation::searchKeys(BiblioInfo const & bi,
                        continue;
 
                try {
-                       if (boost::regex_search(data, reg_exp))
+                       if (lyx::regex_search(data, reg_exp))
                                foundKeys.push_back(*it);
                }
-               catch (boost::regex_error & e) {
+               catch (lyx::regex_error & e) {
                        LYXERR(Debug::GUI, e.what());
                        return vector<docstring>();
                }
@@ -748,15 +751,16 @@ vector<docstring> GuiCitation::searchKeys(BiblioInfo const & bi,
 
 void GuiCitation::dispatchParams()
 {
-       std::string const lfun = InsetCommand::params2string("citation", params_);
+       std::string const lfun = InsetCommand::params2string(params_);
        dispatch(FuncRequest(getLfun(), lfun));
 }
 
 
 BiblioInfo const & GuiCitation::bibInfo() const
 {
-       buffer().checkBibInfoCache();
-       return buffer().masterBibInfo();
+       Buffer const & buf = documentBuffer();
+       buf.reloadBibInfoCache();
+       return buf.masterBibInfo();
 }