]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/TocModel.h
fix completion painting for RTL (inline completion and completion list)
[lyx.git] / src / frontends / qt4 / TocModel.h
index 2003fedbc81858114b32a20a15857e31929ec5c8..2bf4c43282ac4f593b0718666f71f6c0f415714e 100644 (file)
 #include <map>
 
 namespace lyx {
+
+class BufferView;
+
 namespace frontend {
 
 class TocModel : public QStandardItemModel
 {
-       Q_OBJECT
-
 public:
        ///
        TocModel() {}
@@ -60,6 +61,53 @@ private:
        int mindepth_;
 };
 
+
+class TocModels: public QObject
+{
+       Q_OBJECT
+public:
+       ///
+       TocModels(): bv_(0) {}
+       ///
+       ~TocModels() { clear(); }
+       ///
+       void reset(BufferView const * bv);
+       ///
+       int depth(int type);
+       ///
+       QStandardItemModel * model(int type);
+       ///
+       QModelIndex currentIndex(int type) const;
+       ///
+       void goTo(int type, QModelIndex const & index) const;
+       ///
+       void init(Buffer const & buffer);
+       /// Test if outlining operation is possible
+       bool canOutline(int type) const;
+       /// Return the list of types available
+       QStringList const & typeNames() const { return type_names_; }
+       ///
+       void updateBackend() const;
+       ///
+       int decodeType(QString const & str) const;
+
+Q_SIGNALS:
+       /// Signal that the internal toc_models_ has been reset.
+       void modelReset();
+
+private:
+       ///
+       void clear();
+       ///
+       BufferView const * bv_;
+       ///
+       std::vector<TocModel *> models_;
+       ///
+       QStringList types_;
+       ///
+       QStringList type_names_;
+};
+
 } // namespace frontend
 } // namespace lyx