#include "Session.h"
+#include <QAbstractProxyModel>
+#include <QComboBox>
#include <QList>
#include <QToolBar>
-#include <QComboBox>
+class QSortFilterProxyModel;
class QStandardItemModel;
namespace lyx {
-class Inset;
class DocumentClass;
+class Inset;
class ToolbarItem;
namespace frontend {
-class FilterItemDelegate;
+class Action;
class GuiCommandBuffer;
-class GuiFilterProxyModel;
+class GuiLayoutFilterModel;
class GuiView;
-class Action;
-
+class LayoutItemDelegate;
class GuiLayoutBox : public QComboBox
{
/// Populate the layout combobox.
void updateContents(bool reset);
/// Add Item to Layout box according to sorting settings from preferences
- void addItemSort(docstring const & item, bool sorted);
+ void addItemSort(docstring const & item, docstring const & category,
+ bool sorted, bool sortedByCat);
///
void showPopup();
void selected(int index);
private:
+ friend class LayoutItemDelegate;
+
///
void resetFilter();
///
void setFilter(QString const & s);
-
+ ///
+ QString charFilterRegExp(QString const & filter);
+ ///
+ void countCategories();
+
///
GuiView & owner_;
///
/// the layout model: 1st column translated, 2nd column raw layout name
QStandardItemModel * model_;
/// the proxy model filtering \c model_
- GuiFilterProxyModel * filterModel_;
+ GuiLayoutFilterModel * filterModel_;
/// the (model-) index of the last successful selection
int lastSel_;
/// the character filter
QString filter_;
///
- FilterItemDelegate * filterItemDelegate_;
+ LayoutItemDelegate * layoutItemDelegate_;
+ ///
+ unsigned visibleCategories_;
+ ///
+ bool inShowPopup_;
};