X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiCompleter.h;h=f5986359de8ef82673455ec0e753d5645a260b7f;hb=ee7dd4a11ea21851e7e32164c66b37d3bc8ac31d;hp=da25bec19caba4181cc3bb513a5b902ba8fe3a0c;hpb=b313333c1afd4495260edc03b6c57a4b7acaa539;p=lyx.git diff --git a/src/frontends/qt4/GuiCompleter.h b/src/frontends/qt4/GuiCompleter.h index da25bec19c..f5986359de 100644 --- a/src/frontends/qt4/GuiCompleter.h +++ b/src/frontends/qt4/GuiCompleter.h @@ -15,7 +15,6 @@ #include "frontends/WorkArea.h" #include "DocIterator.h" -#include "FuncRequest.h" #include "qt_helpers.h" #include "support/docstring.h" @@ -31,7 +30,8 @@ class Buffer; namespace frontend { class GuiWorkArea; -class RtlItemDelegate; +class CompleterItemDelegate; +class GuiCompletionModel; class GuiCompleter : private QCompleter { @@ -51,6 +51,8 @@ public: bool popupPossible(Cursor const & cur) const; /// bool inlinePossible(Cursor const & cur) const; + /// + bool completionAvailable() const; /// Activate the current completion, i.e. finalize it. void activate(); /// Do a completion as far as it is unique, but at least one character. @@ -67,6 +69,8 @@ public: QString currentCompletion() const; /// docstring longestUniqueCompletion() const; + /// + bool uniqueCompletionAvailable() const; public Q_SLOTS: /// Show the popup. @@ -74,11 +78,24 @@ public Q_SLOTS: /// Show the inline completion. void showInline(); + /// Hide the popup. + void hidePopup(); + /// Hide the inline completion. + void hideInline(); + private Q_SLOTS: /// void popupActivated(const QString & completion); /// void popupHighlighted(const QString & completion); + /// + void updateAvailability(); + /// the asynchronous part of updatePopup(cur) + void asyncUpdatePopup(); + /// the asynchronous part of hidePopup(cur) + void asyncHidePopup(); + /// the asynchronous part of hideInline(cur) + void asyncHideInline(); private: /// @@ -88,6 +105,10 @@ private: /// void showInline(Cursor & cur); /// + void hidePopup(Cursor & cur); + /// + void hideInline(Cursor & cur); + /// void updatePopup(Cursor & cur); /// void updateInline(Cursor & cur, QString const & completion); @@ -112,10 +133,17 @@ private: int updateLock_; /// the BufferView::inlineCursorPos might be reset by destructive /// operations like backspace. Hence, we have to keep this flag - /// in addition to know whether the popup is to be kept visible. + /// in addition to know whether the completion is to be kept visible. bool inlineVisible_; /// - RtlItemDelegate * rtlItemDelegate_; + bool popupVisible_; + /// the model reset is asynchronous in hidePopup/Inline. So let's mark + /// a coming reset here by setting it to false. + bool modelActive_; + /// + CompleterItemDelegate * itemDelegate_; + /// + GuiCompletionModel * model_; }; // GuiCompleter } // namespace frontend