* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
* \author John Levon
* \author Jean-Marc Lasgouttes
* \author Angus Leeming
#include "Session.h"
-#include <QAbstractProxyModel>
-#include <QComboBox>
#include <QList>
#include <QToolBar>
-
-class QSortFilterProxyModel;
-class QStandardItemModel;
+#include <QToolButton>
namespace lyx {
class DocumentClass;
class Inset;
-class ToolbarItem;
namespace frontend {
class Action;
class GuiCommandBuffer;
class GuiLayoutFilterModel;
+class GuiToolbar;
class GuiView;
-class LayoutItemDelegate;
+class LayoutBox;
+class ToolbarInfo;
+class ToolbarItem;
-class GuiLayoutBox : public QComboBox
+class MenuButton : public QToolButton
{
Q_OBJECT
public:
- GuiLayoutBox(GuiToolbar * bar, GuiView &);
-
- /// select the right layout in the combobox.
- void set(docstring const & layout);
- /// Populate the layout combobox.
- void updateContents(bool reset);
- /// Add Item to Layout box according to sorting settings from preferences
- void addItemSort(docstring const & item, docstring const & category,
- bool sorted, bool sortedByCat);
-
- ///
- void showPopup();
-
- ///
- bool eventFilter(QObject * o, QEvent * e);
- ///
- QString const & filter() { return filter_; }
-
-private Q_SLOTS:
///
- void selected(int index);
+ MenuButton(GuiToolbar * bar, ToolbarItem const & item,
+ bool const sticky = false);
///
- void setIconSize(QSize size);
+ void mousePressEvent(QMouseEvent * e);
private:
- friend class LayoutItemDelegate;
-
- ///
- void resetFilter();
- ///
- void setFilter(QString const & s);
- ///
- QString charFilterRegExp(QString const & filter);
- ///
- void countCategories();
-
- ///
- GuiView & owner_;
///
GuiToolbar * bar_;
///
- DocumentClass const * text_class_;
- ///
- Inset const * inset_;
-
- /// the layout model: 1st column translated, 2nd column raw layout name
- QStandardItemModel * model_;
- /// the proxy model filtering \c model_
- GuiLayoutFilterModel * filterModel_;
- /// the (model-) index of the last successful selection
- int lastSel_;
- /// the character filter
- QString filter_;
- ///
- LayoutItemDelegate * layoutItemDelegate_;
+ ToolbarItem const & tbitem_;
///
- unsigned visibleCategories_;
+ bool initialized_;
+
+private Q_SLOTS:
///
- bool inShowPopup_;
+ void actionTriggered(QAction * action);
};
+
class GuiToolbar : public QToolBar
{
Q_OBJECT
public:
+ ///
GuiToolbar(ToolbarInfo const &, GuiView &);
+ ///
+ void setVisibility(int visibility);
+
/// Add a button to the bar.
void add(ToolbarItem const & item);
- /** update toolbar information
- * ToolbarInfo will then be saved by session
- */
- void saveInfo(ToolbarSection::ToolbarInfo & info);
+
+ /// Session key.
+ /**
+ * This key must be used for any session setting.
+ **/
+ QString sessionKey() const;
+ /// Save session settings.
+ void saveSession() const;
+ /// Restore session settings.
+ void restoreSession();
+
/// Refresh the contents of the bar.
- void updateContents();
+ void update(bool in_math, bool in_table, bool review,
+ bool in_mathmacrotemplate);
+
+ ///
+ void toggle();
+
///
GuiCommandBuffer * commandBuffer() { return command_buffer_; }
void updated();
private:
+ // load flags with saved values
+ void initFlags();
///
- QList<Action *> actions_;
+ void fill();
///
- GuiView & owner_;
+ void showEvent(QShowEvent *);
///
- GuiLayoutBox * layout_;
+ QList<Action *> actions_;
+ /// initial visibility flags
+ int visibility_;
+ ///
+ GuiView & owner_;
///
GuiCommandBuffer * command_buffer_;
+ ///
+ ToolbarInfo const & tbinfo_;
+ ///
+ bool filled_;
};
} // namespace frontend