]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiCitation.cpp
Use QFontMetrics information for underlines (and friends) width and position
[lyx.git] / src / frontends / qt4 / GuiCitation.cpp
index 84c9c8255741349b8ce62bce94b13509d0be2c29..483c8fb5b128e86ffee2ab1597476714fa82dffe 100644 (file)
@@ -54,6 +54,8 @@ using namespace lyx::support;
 namespace lyx {
 namespace frontend {
 
+// FIXME THREAD
+// I am guessing that it would not hurt to make these private members.
 static vector<string> citeCmds_;
 static vector<CitationStyle> citeStyles_;
 
@@ -143,7 +145,7 @@ void GuiCitation::applyView()
        QString const before = textBeforeED->text();
        QString const after = textAfterED->text();
 
-       apply(choice, full, force, before, after);
+       applyParams(choice, full, force, before, after);
 }
 
 
@@ -155,6 +157,17 @@ void GuiCitation::showEvent(QShowEvent * e)
 }
 
 
+void GuiCitation::on_citationTB_currentChanged(int i)
+{
+       if (i == 0)
+               findLE->setFocus();
+       else if (citationStyleCO->isEnabled())
+               citationStyleCO->setFocus();
+       else
+               textAfterED->setFocus();
+}
+
+
 void GuiCitation::on_okPB_clicked()
 {
        applyView();
@@ -250,7 +263,8 @@ void GuiCitation::updateStyles(BiblioInfo const & bi)
        if (!selectedLV->selectionModel()->selectedIndexes().empty())
                curr = selectedLV->selectionModel()->selectedIndexes()[0].row();
 
-       QStringList sty = citationStyles(bi);
+       static const size_t max_length = 80;
+       QStringList sty = citationStyles(bi, max_length);
 
        if (sty.isEmpty()) {
                // some error
@@ -440,7 +454,7 @@ void GuiCitation::changed()
 }
 
 
-void GuiCitation::apply(int const choice, bool full, bool force,
+void GuiCitation::applyParams(int const choice, bool full, bool force,
        QString before, QString after)
 {
        if (cited_keys_.isEmpty())
@@ -539,6 +553,7 @@ void GuiCitation::findKey(BiblioInfo const & bi,
        docstring field, docstring entry_type,
        bool case_sensitive, bool reg_exp, bool reset)
 {
+       // FIXME THREAD
        // Used for optimisation: store last searched string.
        static QString last_searched_string;
        // Used to disable the above optimisation.
@@ -587,7 +602,7 @@ void GuiCitation::findKey(BiblioInfo const & bi,
 }
 
 
-QStringList GuiCitation::citationStyles(BiblioInfo const & bi)
+QStringList GuiCitation::citationStyles(BiblioInfo const & bi, size_t max_size)
 {
        docstring const before = qstring_to_ucs4(textBeforeED->text());
        docstring const after = qstring_to_ucs4(textAfterED->text());
@@ -595,7 +610,7 @@ QStringList GuiCitation::citationStyles(BiblioInfo const & bi)
        vector<CitationStyle> styles = citeStyles_;
        // FIXME: pass a dictionary instead of individual before, after, dialog, etc.
        vector<docstring> ret = bi.getCiteStrings(keys, styles, documentBuffer(),
-               false, before, after, from_utf8("dialog"));
+               before, after, from_utf8("dialog"), max_size);
        return to_qstring_list(ret);
 }