X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FMenus.h;h=1ab407a5e100c077f7193f1c28b98f777cabc3bb;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=dce206d67a62b5ee5603ecaa31309a34c8730a4a;hpb=7a924b3771c2204092952012051b0e43d7677b27;p=lyx.git diff --git a/src/frontends/qt4/Menus.h b/src/frontends/qt4/Menus.h index dce206d67a..1ab407a5e1 100644 --- a/src/frontends/qt4/Menus.h +++ b/src/frontends/qt4/Menus.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 * * Full author contact details are available in file CREDITS. @@ -13,16 +13,16 @@ #ifndef MENUS_H #define MENUS_H -#include "support/docstring.h" - -#include +#include #include class QString; +class QMenuBar; namespace lyx { +class docstring_list; class Lexer; class FuncRequest; @@ -30,27 +30,23 @@ namespace frontend { class GuiView; -class Menus +class Menu : public QMenu { + Q_OBJECT public: - Menus(); - /// - bool searchMenu(FuncRequest const & func, - std::vector & names) const; - /// - void fillMenuBar(GuiView * view); - - /// \return a top-level submenu given its name. - QMenu * menu(QString const & name, GuiView & view); + Menu(GuiView * gv, QString const & name, bool top_level); /// - void read(Lexer &); - + ~Menu(); + +private Q_SLOTS: /// - void updateMenu(QString const & name); + void updateView(); private: + friend class Menus; + /// Use the Pimpl idiom to hide the internals. struct Impl; /// The pointer never changes although *d's contents may. @@ -58,21 +54,35 @@ private: }; -class GuiPopupMenuBase : public QMenu +class Menus { - Q_OBJECT - public: + Menus(); + ~Menus(); + /// - GuiPopupMenuBase(QWidget * parent = 0) - : QMenu(parent) - { - connect(this, SIGNAL(aboutToShow()), this, SLOT(updateView())); - } + void reset(); -private Q_SLOTS: /// - virtual void updateView() = 0; + bool searchMenu(FuncRequest const & func, + docstring_list & names) const; + /// + void fillMenuBar(QMenuBar * qmb, GuiView * view, bool initial = false); + + /// \return a top-level submenu given its name. + Menu * menu(QString const & name, GuiView & view); + + /// + void read(Lexer &); + + /// + void updateMenu(Menu * qmenu); + +private: + /// Use the Pimpl idiom to hide the internals. + struct Impl; + /// + Impl * d; }; } // namespace frontend