#include "ui_SymbolsUi.h"
#include <map>
-
-class QListWidgetItem;
+#include <string>
+#include <vector>
namespace lyx {
namespace frontend {
void dispatchParams();
void enableView(bool enable);
bool isBufferDependent() const { return true; }
- virtual kb_action getLfun() const { return LFUN_SELF_INSERT; }\r
+ FuncCode getLfun() const { return LFUN_SELF_INSERT; }
//@}
public Q_SLOTS:
void on_applyPB_clicked();
void on_okPB_clicked();
void on_closePB_clicked();
- void on_symbolsLW_itemActivated(QListWidgetItem *);
- void on_symbolsLW_itemClicked(QListWidgetItem * item);
+ void on_symbolsLW_activated(QModelIndex const & index);
+ void on_symbolsLW_clicked(QModelIndex const & index);
void on_categoryCO_activated(QString const & text);
void on_categoryFilterCB_toggled(bool);
void on_chosenLE_returnPressed();
void on_chosenLE_textChanged(QString const &);
private:
- /// update the widgets (symbol browser, category combo)
- void updateSymbolList();
- /// get the unicode block associated with \p c
- QString const getBlock(char_type c) const;
+ void scrollToItem(QString const & category);
+ /** update the widgets (symbol browser, category combo)
+ * \p combo indicates if the combo box has to be refreshed
+ * as well (which is rather expensive)
+ **/
+ void updateSymbolList(bool update_combo = true);
/// the encoding at cursor position
std::string encoding_;
/// which blocks do we actually include?
- typedef std::map<QString, QListWidgetItem *> UsedBlocks;
+ typedef std::map<QString, int> UsedBlocks;
///
UsedBlocks used_blocks;
+ /// list of all symbols
+ typedef std::vector<char_type> SymbolsList;
+ ///
+ SymbolsList symbols_;
+ /// custom model for symbol list view
+ class Model;
+ friend class Model;
+ Model * model_;
};
} // namespace frontend