#include "ui_TocUi.h"
#include "Cursor.h"
+#include "FuncCode.h"
+#include <QTimer>
#include <QWidget>
class QModelIndex;
const;
public Q_SLOTS:
- /// Update the display of the dialog whilst it is still visible.
+ /// Schedule an update of the dialog, delaying expensive operations
void updateView();
+ /// Update completely without delay
+ void updateViewNow();
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"; }
///
void setTreeDepth(int depth);
///
- void outline(int func_code);
+ void outline(FuncCode func_code);
/// finds the inset that is connected to the current item,
/// if any, otherwise return null
Inset * itemInset() const;
bool persistent_;
///
GuiView & gui_view_;
+ // Timer for scheduling expensive update operations
+ QTimer * timer_;
};
} // namespace frontend