X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FDialogView.h;h=a95b1a435cd910141d5557a5e5b7ac7c314c7ece;hb=425d092204118ea6c24c28e85fdf03fcf2bb51a4;hp=a5394963dcf2fe6f5f3bee82078b6cd9a8c8637e;hpb=6bb94129d8a5e087642458eb098c09c54c3c425e;p=lyx.git diff --git a/src/frontends/qt4/DialogView.h b/src/frontends/qt4/DialogView.h index a5394963dc..a95b1a435c 100644 --- a/src/frontends/qt4/DialogView.h +++ b/src/frontends/qt4/DialogView.h @@ -13,37 +13,51 @@ #define DIALOGVIEW_H #include "Dialog.h" +#include "GuiView.h" +#include #include namespace lyx { namespace frontend { -/** \c Dialog collects the different parts of a Model-Controller-View - * split of a generic dialog together. - */ class DialogView : public QDialog, public Dialog { - Q_OBJECT - 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. /// \param title is the window title used for decoration. - DialogView(GuiView & lv, std::string const & name, QString const & title); - virtual ~DialogView() {} + DialogView(GuiView & lv, QString const & name, QString const & title) + : QDialog(&lv), Dialog(lv, name, "LyX: " + title) + {} virtual QWidget * asQWidget() { return this; } virtual QWidget const * asQWidget() const { return this; } protected: - /// Dialog inherited methods + /// \name Dialog inherited methods //@{ void applyView() {} bool initialiseParams(std::string const & /*data*/) { return true; } void clearParams() {} //@} + /// Any dialog that overrides this method should make sure to call it. + void closeEvent(QCloseEvent * ev) + { + clearParams(); + Dialog::disconnect(); + ev->accept(); + } + /// Any dialog that overrides this method should make sure to call it. + void hideEvent(QHideEvent * ev) + { + if (!ev->spontaneous()) { + clearParams(); + Dialog::disconnect(); + ev->accept(); + } + } }; } // namespace frontend