]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/QInclude.C
ws change
[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 "QIncludeDialog.h"
16 #include "ControlInclude.h"
17 #include "QInclude.h"
18 #include "Qt2BC.h"
19 #include "gettext.h"
20 #include "debug.h"
21
22 #include <qlineedit.h>
23 #include <qpushbutton.h>
24 #include <qcheckbox.h>
25 #include <qradiobutton.h>
26
27 typedef Qt2CB<ControlInclude, Qt2DB<QIncludeDialog> > base_class;
28
29 QInclude::QInclude(ControlInclude & c)
30         : base_class(c, _("Include"))
31 {
32 }
33
34
35 void QInclude::build_dialog()
36 {
37         dialog_.reset(new QIncludeDialog(this));
38
39         bc().setOK(dialog_->okPB);
40         bc().setCancel(dialog_->closePB);
41         bc().addReadOnly(dialog_->filenameED);
42         bc().addReadOnly(dialog_->browsePB);
43         bc().addReadOnly(dialog_->typesetCB);
44         bc().addReadOnly(dialog_->visiblespaceCB);
45         bc().addReadOnly(dialog_->includeRB);
46         bc().addReadOnly(dialog_->inputRB);
47         bc().addReadOnly(dialog_->verbatimRB);
48 }
49
50
51 void QInclude::update_contents()
52 {
53         if (controller().params().noload) {
54                 dialog_->filenameED->setText("");
55                 dialog_->typesetCB->setChecked(false);
56                 dialog_->visiblespaceCB->setChecked(false);
57                 dialog_->visiblespaceCB->setEnabled(false);
58                 dialog_->includeRB->setChecked(true);
59                 return;
60         }
61
62         dialog_->filenameED->setText(controller().params().cparams.getContents().c_str());
63
64         string const cmdname = controller().params().cparams.getCmdName();
65
66         // FIXME: ??
67         dialog_->typesetCB->setChecked(controller().params().noload);
68
69         dialog_->visiblespaceCB->setChecked(false);
70         dialog_->visiblespaceCB->setEnabled(false);
71
72         if (cmdname == "input")
73                 dialog_->inputRB->setChecked(true);
74         else if (cmdname == "include")
75                 dialog_->includeRB->setChecked(true);
76         else if (!cmdname.empty()) {
77                 dialog_->verbatimRB->setChecked(true);
78                 dialog_->visiblespaceCB->setChecked(cmdname == "verbatiminput*");
79                 dialog_->visiblespaceCB->setEnabled(true);
80         }
81
82         if (cmdname.empty())
83                 dialog_->includeRB->setChecked(true);
84 }
85
86
87 void QInclude::apply()
88 {
89         controller().params().noload = dialog_->typesetCB->isChecked();
90
91         controller().params().cparams.
92                 setContents(dialog_->filenameED->text().latin1());
93
94         if (dialog_->inputRB->isChecked())
95                 controller().params().flag = InsetInclude::INPUT;
96         else if (dialog_->includeRB->isChecked())
97                 controller().params().flag = InsetInclude::INCLUDE;
98         else {
99                 if (dialog_->visiblespaceCB->isChecked())
100                         controller().params().flag = InsetInclude::VERBAST;
101                 else
102                         controller().params().flag = InsetInclude::VERB;
103         }
104 }
105
106
107 void QInclude::browse()
108 {
109         ControlInclude::Type type;
110
111         if (dialog_->includeRB->isChecked())
112                 type = ControlInclude::INCLUDE;
113         else if (dialog_->inputRB->isChecked())
114                 type = ControlInclude::INPUT;
115         else
116                 type = ControlInclude::VERBATIM;
117
118         string const & name = controller().Browse(dialog_->filenameED->text().latin1(), type);
119         if (!name.empty())
120                 dialog_->filenameED->setText(name.c_str());
121 }
122
123
124 void QInclude::load()
125 {
126         if (isValid()) {
127                 string const file(dialog_->filenameED->text().latin1());
128                 slotOK();
129                 controller().load(file);
130         }
131 }
132
133
134 bool QInclude::isValid()
135 {
136         return !string(dialog_->filenameED->text().latin1()).empty();
137 }