X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiToolbar.h;h=31146ee3999c7fff26c43d695a62e35bf0c5010e;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=382440bf90c076301c6844525879318ed96d9d7c;hpb=033c3df44c6588bf1e341914bc9d47e1ba76e312;p=lyx.git diff --git a/src/frontends/qt4/GuiToolbar.h b/src/frontends/qt4/GuiToolbar.h index 382440bf90..31146ee399 100644 --- a/src/frontends/qt4/GuiToolbar.h +++ b/src/frontends/qt4/GuiToolbar.h @@ -4,7 +4,7 @@ * 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 @@ -18,13 +18,9 @@ #include "Session.h" -#include -#include #include #include - -class QSortFilterProxyModel; -class QStandardItemModel; +#include namespace lyx { @@ -38,90 +34,65 @@ 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_; + ToolbarItem const & tbitem_; /// - 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_; - /// - 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_; } @@ -133,15 +104,29 @@ Q_SIGNALS: void updated(); private: + // load flags with saved values + void initFlags(); /// - QList actions_; + void fill(); /// - GuiView & owner_; + void showEvent(QShowEvent *); /// - GuiLayoutBox * layout_; + QString name_; + /// + QList actions_; + /// initial visibility flags + int visibility_; + /// + bool allowauto_; + /// + GuiView & owner_; /// GuiCommandBuffer * command_buffer_; + /// + ToolbarInfo const & tbinfo_; + /// + bool filled_; }; } // namespace frontend