]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/GuiBibtex.h
merge ButtonController and its view (Qt2BC in this case)
[lyx.git] / src / frontends / qt4 / GuiBibtex.h
1 // -*- C++ -*-
2 /**
3  * \file GuiBibtex.h
4  * This file is part of LyX, the document processor.
5  * Licence details can be found in the file COPYING.
6  *
7  * \author John Levon
8  *
9  * Full author contact details are available in file CREDITS.
10  */
11
12 #ifndef GUIBIBTEX_H
13 #define GUIBIBTEX_H
14
15 #include "GuiDialogView.h"
16 #include "ButtonController.h"
17 #include "ControlBibtex.h"
18 #include "ui_BibtexUi.h"
19 #include "ui_BibtexAddUi.h"
20
21 #include <QDialog>
22
23 namespace lyx {
24 namespace frontend {
25
26 class GuiBibtex;
27
28 template<class UI>
29 class UiDialog : public QDialog, public UI
30 {
31 public:
32         UiDialog(QWidget * parent=0, bool modal=false, Qt::WFlags f=0)
33                 : QDialog(parent, f)
34         {
35                 UI::setupUi(this);
36                 QDialog::setModal(modal);
37         }
38 };
39
40
41 class GuiBibtexDialog : public QDialog, public Ui::BibtexUi {
42         Q_OBJECT
43
44 public:
45         GuiBibtexDialog(GuiBibtex * form);
46
47         UiDialog<Ui::BibtexAddUi> * add_;
48
49 protected Q_SLOTS:
50         virtual void change_adaptor();
51         virtual void browsePressed();
52         virtual void browseBibPressed();
53         virtual void addPressed();
54         virtual void addDatabase();
55         virtual void deletePressed();
56         virtual void databaseChanged();
57         virtual void availableChanged();
58         void bibEDChanged();
59
60 protected:
61         virtual void closeEvent(QCloseEvent * e);
62
63 private:
64         GuiBibtex * form_;
65         ButtonController add_bc_;
66 };
67
68
69 class GuiBibtex : public GuiView<GuiBibtexDialog>
70 {
71 public:
72         friend class GuiBibtexDialog;
73
74         GuiBibtex(GuiDialog &);
75         /// parent controller
76         ControlBibtex & controller()
77         { return static_cast<ControlBibtex &>(this->getController()); }
78         /// parent controller
79         ControlBibtex const & controller() const
80         { return static_cast<ControlBibtex const &>(this->getController()); }
81 protected:
82         virtual bool isValid();
83 private:
84         /// Apply changes
85         virtual void apply();
86         /// update
87         virtual void update_contents();
88         /// build the dialog
89         virtual void build_dialog();
90 };
91
92 } // namespace frontend
93 } // namespace lyx
94
95 #endif // GUIBIBTEX_H