]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/DialogView.h
* fix spelling in comments to please John.
[lyx.git] / src / frontends / qt4 / DialogView.h
1 // -*- C++ -*-
2 /**
3  * \file DialogView.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author Abdelrazak Younes
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef DIALOGVIEW_H
13 #define DIALOGVIEW_H
14
15 #include "Dialog.h"
16 #include "GuiView.h"
17
18 #include <QCloseEvent>
19 #include <QDialog>
20
21 namespace lyx {
22 namespace frontend {
23
24 class DialogView : public QDialog, public Dialog
25 {
26 public:
27         /// \param lv is the access point for the dialog to the LyX kernel.
28         /// \param name is the identifier given to the dialog by its parent
29         /// container.
30         /// \param title is the window title used for decoration.
31         DialogView(GuiView & lv, QString const & name, QString const & title)
32                 : QDialog(&lv), Dialog(lv, name, "LyX: " + title)
33         {}
34
35         virtual QWidget * asQWidget() { return this; }
36         virtual QWidget const * asQWidget() const { return this; }
37
38 protected:
39         /// \name Dialog inherited methods
40         //@{
41         void applyView() {}
42         bool initialiseParams(std::string const & /*data*/) { return true; }
43         void clearParams() {}
44         //@}
45         /// Any dialog that overrides this method should make sure to call it.
46         void closeEvent(QCloseEvent * ev)
47         {
48                 clearParams();
49                 Dialog::disconnect();
50                 ev->accept();
51         }
52         /// Any dialog that overrides this method should make sure to call it.
53         void hideEvent(QHideEvent * ev)
54         {
55                 if (!ev->spontaneous()) {
56                         clearParams();
57                         Dialog::disconnect();
58                         ev->accept();
59                 }
60         }
61 };
62
63 } // namespace frontend
64 } // namespace lyx
65
66 #endif // DIALOGVIEW_H