X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiToolbar.h;h=43f61887485d56ef778944c3db59248b37772dc2;hb=161f7b7f62cb33dab681add6c5b5b68a887e2ea1;hp=b4a4b6efbe6e839dadc6914c20d4617c8b8a2e82;hpb=3931ff3f2e54882fdcd32a81f7e528a30ae80943;p=lyx.git diff --git a/src/frontends/qt4/GuiToolbar.h b/src/frontends/qt4/GuiToolbar.h index b4a4b6efbe..43f6188748 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,103 +16,122 @@ #ifndef GUITOOLBAR_H #define GUITOOLBAR_H -#include "Session.h" - #include #include -#include - -class QStandardItemModel; +#include namespace lyx { -class Inset; class DocumentClass; -class ToolbarItem; +class Inset; namespace frontend { +class Action; class GuiCommandBuffer; -class GuiFilterProxyModel; +class GuiLayoutFilterModel; +class GuiToolbar; class GuiView; -class Action; - +class LayoutBox; +class ToolbarInfo; +class ToolbarItem; -class GuiLayoutBox : public QComboBox +class MenuButton : public QToolButton { Q_OBJECT public: - GuiLayoutBox(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, bool sorted); - /// - 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); private: /// - void resetFilter(); + void initialize(); /// - void setFilter(QString const & s); - + GuiToolbar * bar_; /// - GuiView & owner_; + ToolbarItem const & tbitem_; + +private Q_SLOTS: /// - DocumentClass const * text_class_; + void actionTriggered(QAction * action); /// - Inset const * inset_; - - /// the layout model: 1st column translated, 2nd column raw layout name - QStandardItemModel * model_; - /// the proxy model filtering \c model_ - GuiFilterProxyModel * filterModel_; - /// the (model-) index of the last successful selection - int lastSel_; - /// the character filter - QString filter_; + void updateTriggered(); }; + class GuiToolbar : public QToolBar { Q_OBJECT 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); /// 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(); + + /// + bool isRestored() const; + /// Refresh the contents of the bar. - void updateContents(); + void update(int context = 0); + + /// + void toggle(); + + /// toggles movability + void movable(bool silent = false); + /// GuiCommandBuffer * commandBuffer() { return command_buffer_; } + /// Action * addItem(ToolbarItem const & item); Q_SIGNALS: + /// void updated(); private: + // load flags with saved values + void initFlags(); + /// + void fill(); + /// + void showEvent(QShowEvent *); + /// QList actions_; + /// initial visibility flags + int visibility_; + /// GuiView & owner_; - - GuiLayoutBox * layout_; + /// GuiCommandBuffer * command_buffer_; + /// + ToolbarInfo const & tbinfo_; + /// + bool filled_; + /// + bool restored_; }; } // namespace frontend