X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiToolbar.h;h=badd59930ab4d2d97fe12f99fabb7b1c1d3a09a1;hb=c0a1893008bd13650d470afff16f56720b65c87c;hp=caa50156e72ea18848fcd6ccdb7da53b5d90fd50;hpb=7bb8a5f183808b2801df176b8626dccb282f97d4;p=lyx.git diff --git a/src/frontends/qt4/GuiToolbar.h b/src/frontends/qt4/GuiToolbar.h index caa50156e7..badd59930a 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 @@ -16,15 +16,11 @@ #ifndef GUITOOLBAR_H #define GUITOOLBAR_H -#include "Session.h" - -#include -#include #include #include +#include -class QSortFilterProxyModel; -class QStandardItemModel; +class QSettings; namespace lyx { @@ -38,76 +34,35 @@ 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); - /// - void setIconSize(QSize size); + MenuButton(GuiToolbar * bar, ToolbarItem const & item, + bool const sticky = false); private: - friend class LayoutItemDelegate; - - /// - void resetFilter(); - /// - void setFilter(QString const & s); /// - QString charFilterRegExp(QString const & filter); - /// - void countCategories(); - - /// - GuiView & owner_; + void initialize(); /// 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_; + +private Q_SLOTS: /// - unsigned visibleCategories_; + void actionTriggered(QAction * action); /// - bool inShowPopup_; + void updateTriggered(); }; + class GuiToolbar : public QToolBar { Q_OBJECT @@ -115,6 +70,10 @@ public: /// GuiToolbar(ToolbarInfo const &, GuiView &); + /// Reimplemented from QToolbar to detect whether the + /// toolbar is restored with MainWindow::restoreState(). + void setVisible(bool visible); + /// void setVisibility(int visibility); @@ -127,17 +86,22 @@ public: **/ QString sessionKey() const; /// Save session settings. - void saveSession() const; + void saveSession(QSettings & settings) const; /// Restore session settings. void restoreSession(); + /// + bool isRestored() const; + /// Refresh the contents of the bar. - void update(bool in_math, bool in_table, bool review, - bool in_mathmacrotemplate); + void update(int context = 0); /// void toggle(); + /// toggles movability + void movable(bool silent = false); + /// GuiCommandBuffer * commandBuffer() { return command_buffer_; } @@ -152,19 +116,24 @@ private: // load flags with saved values void initFlags(); /// - QString name_; + void fill(); + /// + void showEvent(QShowEvent *); + /// QList actions_; /// initial visibility flags int visibility_; /// - bool allowauto_; - /// GuiView & owner_; /// - GuiLayoutBox * layout_; - /// GuiCommandBuffer * command_buffer_; + /// + ToolbarInfo const & tbinfo_; + /// + bool filled_; + /// + bool restored_; }; } // namespace frontend