X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiCitation.h;h=428ea50a97de293a584d5e3f13dd4eafade126d2;hb=b6eacd8d4f86734e8abef3335b190ce12a6a11b5;hp=8863bc3a04a0edf4ee93ab1d5a8d8ff50bfde6e4;hpb=022ea0feb6dfdc73cee5670b23a25dab4f8a7638;p=lyx.git diff --git a/src/frontends/qt4/GuiCitation.h b/src/frontends/qt4/GuiCitation.h index 8863bc3a04..428ea50a97 100644 --- a/src/frontends/qt4/GuiCitation.h +++ b/src/frontends/qt4/GuiCitation.h @@ -15,22 +15,30 @@ #ifndef GUICITATION_H #define GUICITATION_H -#include "GuiDialog.h" -#include "GuiSelectionManager.h" +#include "DialogView.h" #include "ui_CitationUi.h" +#include "FancyLineEdit.h" + +#include "insets/InsetCommandParams.h" #include "BiblioInfo.h" #include "Citation.h" -#include "insets/InsetCommandParams.h" - +#include +#include #include #include namespace lyx { + +class BiblioInfo; + namespace frontend { -class GuiCitation : public GuiDialog, public Ui::CitationUi +class GuiSelectionManager; + + +class GuiCitation : public DialogView, public Ui::CitationUi { Q_OBJECT @@ -38,14 +46,46 @@ public: /// GuiCitation(GuiView & lv); - /// - void applyView(); +private Q_SLOTS: + void on_buttonBox_accepted(); + void on_buttonBox_rejected(); + void on_buttonBox_clicked(QAbstractButton *); + 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 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(); -public Q_SLOTS: - /// Update the display of the dialog whilst it is still visible. - void updateView(); private: + /// Dialog inherited methods + //@{ + void applyView(); + void updateView() {} + bool initialiseParams(std::string const & data); + void clearParams(); + void dispatchParams(); + bool isBufferDependent() const { return true; } + void saveSession(QSettings & settings) const; + void restoreSession(); + /** Disconnect from the inset when the Apply button is pressed. + * Allows easy insertion of multiple citations. + */ + bool disconnectOnApply() const { return true; } + //@} + /// void showEvent(QShowEvent * e); /// @@ -56,66 +96,42 @@ private: /// check whether key is already selected bool isSelected(const QModelIndex &); /// update the display of BibTeX information - void updateInfo(QModelIndex const &); - -private Q_SLOTS: - void cleanUp(); - 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_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 changed(); - /// - void setCitedKeys(); - /// performs a limited update, suitable for internal call - void updateDialog(); - -private: + void updateInfo(BiblioInfo const & bi, QModelIndex const &); /// enable/disable buttons void setButtons(); - /// fill the styles combo - void fillStyles(); /// fill the fields combo - void fillFields(); + void fillFields(BiblioInfo const & bi); /// fill the entries combo - void fillEntries(); + void fillEntries(BiblioInfo const & bi); /// set the styles combo - void updateStyle(); + void updateStyles(BiblioInfo const & bi); /// set the formatting widgets - void updateFormatting(CiteStyle currentStyle); - /// last used citation style - int style_; - - GuiSelectionManager * selectionManager; - + void updateFormatting(CitationStyle const & currentStyle); + /// + void updateControls(BiblioInfo const & bi); + /// Set the appropriate hinting text on the filter bar + void updateFilterHint(); /// void init(); - /// Available keys - QStringListModel * available() { return &available_model_; } - /// Selected keys - QStringListModel * selected() { return &selected_model_; } - /// Text before cite - QString textBefore(); - /// Text after cite - QString textAfter(); - /// Get key description - QString getKeyInfo(QString const &); /// Clear selected keys void clearSelection(); - /// Return a list of available fields - QStringList getFieldsAsQStringList(); - /// Return a list of available fields - QStringList getEntriesAsQStringList(); - + + /// Set selected keys + void setSelectedKeys(QStringList const); + /// Get selected keys + QStringList selectedKeys(); + /// Set pre texts of qualified lists + void setPreTexts(std::vector const m); + /// Get pre texts of qualified lists + std::vector getPreTexts(); + /// Set post texts of qualified lists + void setPostTexts(std::vector const m); + /// Get post texts of qualified lists + std::vector getPostTexts(); + /// Find keys containing a string. void findKey( + BiblioInfo const & bi, //< optimize by passing this QString const & str, //< string expression bool only_keys, //< set to true if only keys shall be searched. docstring field, // availableKeys() const; - /// \return the list of all used BibTeX fields - std::vector availableFields() const; - /// \return the list of all used BibTeX entry types - std::vector availableEntries() const; - /// - void filterByEntryType( + void filterByEntryType(BiblioInfo const & bi, std::vector & keyVector, docstring entryType); - /// - CiteEngine citeEngine() const; - - /// \return information for this key. - docstring getInfo(docstring const & key) const; /// Search a given string within the passed keys. /// \return the vector of matched keys. std::vector searchKeys( + BiblioInfo const & bi, //< optimize by passing this std::vector const & keys_to_search, //< Keys to search. bool only_keys, //< whether to search only the keys docstring const & search_expression, //< Search expression (regex possible) @@ -183,9 +165,35 @@ private: bool regex = false //< \set to true if \c search_expression is a regex ); // -private: /// The BibTeX information available to the dialog - BiblioInfo bibkeysInfo_; + /// Calls to this method will lead to checks of modification times and + /// 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 + QString style_; + /// + GuiSelectionManager * selectionManager; + /// available keys. + QStringListModel available_model_; + /// selected keys. + QStandardItemModel selected_model_; + /// All keys. + QStringList all_keys_; + /// Cited keys. + QStringList cited_keys_; + /// + InsetCommandParams params_; }; } // namespace frontend