]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/QInclude.C
No longer pass Controller & or Dialogs & to the View c-tors.
[lyx.git] / src / frontends / qt2 / QInclude.C
1 /**
2  * \file QInclude.C
3  * Copyright 2001 the LyX Team
4  * Read the file COPYING
5  *
6  * \author John Levon <moz@compsoc.man.ac.uk>
7  */
8
9 #include <config.h>
10
11 #ifdef __GNUG__
12 #pragma implementation
13 #endif
14
15 #include "ControlInclude.h"
16 #include "gettext.h"
17 #include "debug.h"
18  
19 #include "QIncludeDialog.h"
20 #include "QInclude.h"
21 #include "Qt2BC.h"
22
23 #include <qlineedit.h>
24 #include <qpushbutton.h>
25 #include <qcheckbox.h>
26 #include <qcombobox.h>
27
28 typedef Qt2CB<ControlInclude, Qt2DB<QIncludeDialog> > base_class;
29
30 QInclude::QInclude()
31         : base_class(_("Include"))
32 {
33 }
34
35
36 void QInclude::build_dialog()
37 {
38         dialog_.reset(new QIncludeDialog(this));
39
40         bc().setOK(dialog_->okPB);
41         bc().setCancel(dialog_->closePB);
42         bc().addReadOnly(dialog_->filenameED);
43         bc().addReadOnly(dialog_->browsePB);
44         bc().addReadOnly(dialog_->typesetCB);
45         bc().addReadOnly(dialog_->visiblespaceCB);
46         bc().addReadOnly(dialog_->typeCO);
47 }
48
49
50 void QInclude::update_contents()
51 {
52         if (controller().params().noload) {
53                 dialog_->filenameED->setText("");
54                 dialog_->typesetCB->setChecked(false);
55                 dialog_->visiblespaceCB->setChecked(false);
56                 dialog_->visiblespaceCB->setEnabled(false);
57                 //dialog_->typeCO->setEnabled(true);
58                 return;
59         }
60
61         dialog_->filenameED->setText(controller().params().cparams.getContents().c_str());
62
63         string const cmdname = controller().params().cparams.getCmdName();
64
65         // FIXME: ??
66         dialog_->typesetCB->setChecked(controller().params().noload);
67
68         dialog_->visiblespaceCB->setChecked(false);
69         dialog_->visiblespaceCB->setEnabled(false);
70
71         if (cmdname == "input")
72                 dialog_->typeCO->setCurrentItem(1);
73         else if (!cmdname.empty()) {
74                 dialog_->typeCO->setCurrentItem(2);
75                 dialog_->visiblespaceCB->setChecked(cmdname == "verbatiminput*");
76                 dialog_->visiblespaceCB->setEnabled(true);
77         }
78         else dialog_->typeCO->setCurrentItem(0);
79
80 }
81
82
83 void QInclude::apply()
84 {
85         controller().params().noload = dialog_->typesetCB->isChecked();
86
87         controller().params().cparams.
88                 setContents(dialog_->filenameED->text().latin1());
89
90         int const item = dialog_->typeCO->currentItem();
91         if (item==1)
92                 controller().params().flag = InsetInclude::INPUT;
93         else if (item==0)
94                 controller().params().flag = InsetInclude::INCLUDE;
95         else {
96                 if (dialog_->visiblespaceCB->isChecked())
97                         controller().params().flag = InsetInclude::VERBAST;
98                 else
99                         controller().params().flag = InsetInclude::VERB;
100         }
101 }
102
103
104 void QInclude::browse()
105 {
106         ControlInclude::Type type;
107
108         int const item = dialog_->typeCO->currentItem();
109         if (item==0)
110                 type = ControlInclude::INCLUDE;
111         else if (item==1)
112                 type = ControlInclude::INPUT;
113         else
114                 type = ControlInclude::VERBATIM;
115
116         string const & name = controller().Browse(dialog_->filenameED->text().latin1(), type);
117         if (!name.empty())
118                 dialog_->filenameED->setText(name.c_str());
119 }
120
121
122 void QInclude::load()
123 {
124         if (isValid()) {
125                 string const file(dialog_->filenameED->text().latin1());
126                 slotOK();
127                 controller().load(file);
128         }
129 }
130
131
132 bool QInclude::isValid()
133 {
134         return !string(dialog_->filenameED->text().latin1()).empty();
135 }