]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/TocWidget.h
Do not compute caret geometry when we are not ready to do so.
[lyx.git] / src / frontends / qt4 / TocWidget.h
index 608920a42ad3f7b7f03519895e6686c1930d9301..3f67606302705f2cb049477e46a2c7c9a9745782 100644 (file)
@@ -18,6 +18,7 @@
 #include "Cursor.h"
 #include "FuncCode.h"
 
+#include <QTimer>
 #include <QWidget>
 
 class QModelIndex;
@@ -44,10 +45,10 @@ public:
                const;
 
 public Q_SLOTS:
-       /// Schedule new update of the display unless already scheduled.
+       /// Schedule an update of the dialog, delaying expensive operations
        void updateView();
-       /// Update the display of the dialog whilst it is still visible.
-       void updateViewForce();
+       /// Update completely without delay
+       void updateViewNow();
 
 protected Q_SLOTS:
        ///
@@ -70,19 +71,23 @@ protected Q_SLOTS:
 
        void showContextMenu(const QPoint & pos);
 
+private Q_SLOTS:
+       /// Perform the expensive update operations
+       void finishUpdateView();
+
 private:
        ///
        void enableControls(bool enable = true);
        ///
-       bool canOutline() 
+       bool canOutline()
                { return current_type_ == "tableofcontents"; }
        /// It is not possible to have synchronous navigation in a correct
        /// and efficient way with the label and change type because Toc::item()
        /// does a linear search. Even when fixed, it might even not be desirable
        /// to do so if we want to support drag&drop of labels and references.
-       bool canNavigate() 
+       bool canNavigate()
                { return current_type_ != "label" && current_type_ != "change"; }
-       /// 
+       ///
        bool isSortable()
                { return current_type_ != "tableofcontents"; }
        ///
@@ -101,8 +106,8 @@ private:
        bool persistent_;
        ///
        GuiView & gui_view_;
-       // next delay for outliner update in ms. -1 when already scheduled.
-       int update_delay_;
+       // Timer for scheduling expensive update operations
+       QTimer * timer_;
 };
 
 } // namespace frontend