]> git.lyx.org Git - lyx.git/blob - src/frontends/qt4/QERT.cpp
* src/frontends/qt4/ui/TextLayoutUi.ui:
[lyx.git] / src / frontends / qt4 / QERT.cpp
1 /**
2  * \file QERT.cpp
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author John Levon
7  *
8  * Full author contact details are available in file CREDITS.
9  */
10
11 #include <config.h>
12
13 #include "QERT.h"
14 #include "Qt2BC.h"
15
16 #include "controllers/ControlERT.h"
17
18 #include <QRadioButton>
19 #include <QPushButton>
20 #include <QCloseEvent>
21
22
23 namespace lyx {
24 namespace frontend {
25
26 /////////////////////////////////////////////////////////////////////
27 //
28 // QERTDialog
29 //
30 /////////////////////////////////////////////////////////////////////
31
32
33 QERTDialog::QERTDialog(QERT * form)
34         : form_(form)
35 {
36         setupUi(this);
37         connect(okPB, SIGNAL(clicked()), form, SLOT(slotOK()));
38         connect(closePB, SIGNAL(clicked()), form, SLOT(slotClose()));
39         connect(inlineRB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
40         connect(collapsedRB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
41         connect(openRB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
42 }
43
44
45 void QERTDialog::closeEvent(QCloseEvent * e)
46 {
47         form_->slotWMHide();
48         e->accept();
49 }
50
51
52 void QERTDialog::change_adaptor()
53 {
54         form_->changed();
55 }
56
57
58 /////////////////////////////////////////////////////////////////////
59 //
60 // QERT
61 //
62 /////////////////////////////////////////////////////////////////////
63
64 typedef QController<ControlERT, QView<QERTDialog> > ERTBase;
65
66
67 QERT::QERT(Dialog & parent)
68         : ERTBase(parent, _("TeX Code Settings"))
69 {
70 }
71
72
73 void QERT::build_dialog()
74 {
75         dialog_.reset(new QERTDialog(this));
76
77         bcview().setOK(dialog_->okPB);
78         bcview().setCancel(dialog_->closePB);
79 }
80
81
82 void QERT::apply()
83 {
84         if (dialog_->openRB->isChecked())
85                 controller().setStatus(InsetERT::Open);
86         else if (dialog_->inlineRB->isChecked())
87                 controller().setStatus(InsetERT::Inlined);
88         else
89                 controller().setStatus(InsetERT::Collapsed);
90 }
91
92
93 void QERT::update_contents()
94 {
95         QRadioButton * rb = 0;
96
97         switch (controller().status()) {
98                 case InsetERT::Open: rb = dialog_->openRB; break;
99                 case InsetERT::Inlined: rb = dialog_->inlineRB; break;
100                 case InsetERT::Collapsed: rb = dialog_->collapsedRB; break;
101         }
102
103         rb->setChecked(true);
104 }
105
106 } // namespace frontend
107 } // namespace lyx
108
109 #include "QERT_moc.cpp"