]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiCitation.h
Fix bug #11748.
[lyx.git] / src / frontends / qt4 / GuiCitation.h
index 3ca1b50a9450fc971812615a9fde69fe8191f278..08a7c4c42d8372e07e1339201190f408de5b0e92 100644 (file)
 
 #include "DialogView.h"
 #include "ui_CitationUi.h"
+#include "FancyLineEdit.h"
 
 #include "insets/InsetCommandParams.h"
 
+#include "BiblioInfo.h"
 #include "Citation.h"
 
+#include <QAbstractListModel>
+#include <QStandardItemModel>
 #include <QStringList>
 #include <QStringListModel>
 
@@ -33,6 +37,7 @@ namespace frontend {
 
 class GuiSelectionManager;
 
+
 class GuiCitation : public DialogView, public Ui::CitationUi
 {
        Q_OBJECT
@@ -40,25 +45,27 @@ class GuiCitation : public DialogView, public Ui::CitationUi
 public:
        ///
        GuiCitation(GuiView & lv);
-       ///
-       ~GuiCitation();
 
 private Q_SLOTS:
        void on_okPB_clicked();
        void on_cancelPB_clicked();
        void on_restorePB_clicked();
        void on_applyPB_clicked();
-       void on_searchPB_clicked();
-       void on_findLE_textChanged(const QString & text);
+       void on_literalCB_clicked();
+       void filterPressed();
+       void filterChanged(const QString & text);
        void on_fieldsCO_currentIndexChanged(int index);
        void on_entriesCO_currentIndexChanged(int index);
        void on_citationStyleCO_currentIndexChanged(int index);
-       void on_caseCB_stateChanged(int);
-       void on_regexCB_stateChanged(int);
-       void on_asTypeCB_stateChanged(int);
+       void resetFilter();
+       void caseChanged();
+       void regexChanged();
+       void instantChanged(bool checked);
        void changed();
-       ///
+       /// set the citation keys, mark as changed
        void setCitedKeys();
+       /// update the styles for the style combo, mark as changed
+       void updateStyles();
        /// performs a limited update, suitable for internal call
        void updateControls();
 
@@ -72,7 +79,7 @@ private:
        void clearParams();
        void dispatchParams();
        bool isBufferDependent() const { return true; }
-       void saveSession() const;
+       void saveSession(QSettings & settings) const;
        void restoreSession();
        /** Disconnect from the inset when the Apply button is pressed.
         *  Allows easy insertion of multiple citations.
@@ -93,23 +100,36 @@ private:
        void updateInfo(BiblioInfo const & bi, QModelIndex const &);
        /// enable/disable buttons
        void setButtons();
-       /// fill the styles combo
-       void fillStyles(BiblioInfo const & bi);
        /// fill the fields combo
        void fillFields(BiblioInfo const & bi);
        /// fill the entries combo
        void fillEntries(BiblioInfo const & bi);
        /// set the styles combo
-       void updateStyle();
+       void updateStyles(BiblioInfo const & bi);
        /// set the formatting widgets
-       void updateFormatting(CiteStyle currentStyle);
+       void updateFormatting(CitationStyle const & currentStyle);
        ///
        void updateControls(BiblioInfo const & bi);
+       /// Set the appropriate hinting text on the filter bar
+       void updateFilterHint();
        ///
        void init();
        /// Clear selected keys
        void clearSelection();
 
+       /// Set selected keys
+       void setSelectedKeys(QStringList const);
+       /// Get selected keys
+       QStringList selectedKeys();
+       /// Set pre texts of qualified lists
+       void setPreTexts(std::vector<docstring> const m);
+       /// Get pre texts of qualified lists
+       std::vector<docstring> getPreTexts();
+       /// Set post texts of qualified lists
+       void setPostTexts(std::vector<docstring> const m);
+       /// Get post texts of qualified lists
+       std::vector<docstring> getPostTexts();
+
        /// Find keys containing a string.
        void findKey(
                BiblioInfo const & bi, //< optimize by passing this
@@ -122,20 +142,17 @@ private:
                bool reset = false //< whether to reset and search all keys
                );
 
-       /// List of example cite strings
-       QStringList citationStyles(BiblioInfo const & bi, int);
+       /// List of example cite strings and their correlating lyx name
+       BiblioInfo::CiteStringMap citationStyles(BiblioInfo const & bi,
+                                                               size_t max_size);
 
        /// Set the Params variable for the Controller.
-       void apply(int const choice, bool const full, bool const force,
+       void applyParams(int const choice, bool const full, bool const force,
                                          QString before, QString after);
 
        ///
        void filterByEntryType(BiblioInfo const & bi,
                std::vector<docstring> & keyVector, docstring entryType);
-       ///
-       CiteEngine citeEngine() const;
-       ///
-       CiteEngineType citeEngineType() const;
 
        /// Search a given string within the passed keys.
        /// \return the vector of matched keys.
@@ -154,14 +171,26 @@ private:
        /// the like, so it should be avoided.
        BiblioInfo const & bibInfo() const;
 
+       /// contains the search box
+       FancyLineEdit * filter_;
+
+       /// Regexp action
+       QAction * regexp_;
+       /// Case sensitive action
+       QAction * casesense_;
+       /// Search as you type action
+       QAction * instant_;
+
        /// last used citation style
-       int style_;
+       QString style_;
+        /// this is the last style chosen in the current dialog
+        QString last_chosen_style_;
        ///
        GuiSelectionManager * selectionManager;
        /// available keys.
        QStringListModel available_model_;
        /// selected keys.
-       QStringListModel selected_model_;
+       QStandardItemModel selected_model_;
        /// All keys.
        QStringList all_keys_;
        /// Cited keys.