X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiDialog.h;h=2359d740122f260fad455380a79d27bb112613a4;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=87748a7d371228b65f64748b49afd52ad7af5ee2;hpb=6f3cdf8da80a6b3889f2a3b8b53f44590152d600;p=lyx.git diff --git a/src/frontends/qt4/GuiDialog.h b/src/frontends/qt4/GuiDialog.h index 87748a7d37..2359d74012 100644 --- a/src/frontends/qt4/GuiDialog.h +++ b/src/frontends/qt4/GuiDialog.h @@ -15,21 +15,19 @@ #include "Dialog.h" #include "ButtonController.h" -#include "insets/InsetCommandParams.h" - #include -#include -class QCloseEvent; -class QShowEvent; namespace lyx { namespace frontend { -/** \c Dialog collects the different parts of a Model-Controller-View - * split of a generic dialog together. - */ -class GuiDialog : public QDialog, public Dialog, public Controller +/// Base class for historical LyX dialogs. +/** + * \warning New dialogs should use the leaner classes \c DialogView or + * \c DockView depending on the intent. Eventally, old dialog should be + * converted to \c DialogView too. + */ +class GuiDialog : public QDialog, public Dialog { Q_OBJECT @@ -37,8 +35,11 @@ public: /// \param lv is the access point for the dialog to the LyX kernel. /// \param name is the identifier given to the dialog by its parent /// container. - explicit GuiDialog(LyXView & lv, std::string const & name); - ~GuiDialog(); + /// \param title is the window title used for decoration. + GuiDialog(GuiView & lv, QString const & name, QString const & title); + + virtual QWidget * asQWidget() { return this; } + virtual QWidget const * asQWidget() const { return this; } public Q_SLOTS: /** \name Buttons @@ -51,15 +52,18 @@ public Q_SLOTS: void slotOK(); // Apply button clicked void slotApply(); + // AutoApply checkbox clicked + void slotAutoApply(); // Close button clicked or closed from WindowManager void slotClose(); + /// + void closeEvent(QCloseEvent * e); public: /** Check whether we may apply our data. * * The buttons are disabled if not and (re-)enabled if yes. */ - void checkStatus(); void setButtonsValid(bool valid); /** \name Dialog Components @@ -70,115 +74,39 @@ public: ButtonController & bc() { return bc_; } //@} - void setViewTitle(docstring const & title); - - /// the dialog has changed contents virtual void changed(); + virtual void enableView(bool enable); + /// default: do nothing virtual void applyView() {} /// default: do nothing virtual void updateContents() {} - /// - void closeEvent(QCloseEvent *); - /// - void showEvent(QShowEvent *); -protected: - /// Hide the dialog. - virtual void hideView(); - /// Create the dialog if necessary, update it and display it. - virtual void showView(); - /// - virtual bool isVisibleView() const; +public: /// is the dialog currently valid ? virtual bool isValid() { return true; } public: - /** \name Container Access - * These methods are publicly accessible because they are invoked - * by the parent container acting on commands from the LyX kernel. - */ - //@{ - /// \param data is a string encoding of the data to be displayed. - /// It is passed to the Controller to be translated into a useable form. - void showData(std::string const & data); - void updateData(std::string const & data); - - void hide(); - - /** This function is called, for example, if the GUI colours - * have been changed. - */ - void redraw() { redrawView(); } - //@} /** When applying, it's useful to know whether the dialog is about * to close or not (no point refreshing the display for example). */ bool isClosing() const { return is_closing_; } - /** \name Dialog Components - * Methods to access the various components making up a dialog. - */ - //@{ - virtual Controller & controller() { return *this; } - //@} - - /** Defaults to nothing. Can be used by the Controller, however, to - * indicate to the View that something has changed and that the - * dialog therefore needs updating. - * \param id identifies what should be updated. - */ - virtual void partialUpdateView(int /*id*/) {} - - /// - std::string name() const { return name_; } - - void apply(); - void redrawView() {} - -private: /// Update the display of the dialog whilst it is still visible. virtual void updateView(); +private: ButtonController bc_; /// are we updating ? bool updating_; bool is_closing_; - /** The Dialog's name is the means by which a dialog identifies - * itself to the kernel. - */ - std::string name_; }; -class GuiCommand : public GuiDialog -{ -public: - /// We need to know with what sort of inset we're associated. - GuiCommand(LyXView &, std::string const & name); - /// - bool initialiseParams(std::string const & data); - /// clean-up on hide. - void clearParams() { params_.clear(); } - /// clean-up on hide. - void dispatchParams(); - /// - bool isBufferDependent() const { return true; } - -protected: - /// - InsetCommandParams params_; - //FIXME It should be possible to eliminate lfun_name_ - //now and recover that information from params().insetType(). - //But let's not do that quite yet. - /// Flags what action is taken by Kernel::dispatch() - std::string const lfun_name_; -}; - } // namespace frontend } // namespace lyx