]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/QInclude.C
Compile fixes. Qt2 should now build (and fail immediately when you start it,
[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 <qradiobutton.h>
27
28 typedef Qt2CB<ControlInclude, Qt2DB<QIncludeDialog> > base_class;
29
30 QInclude::QInclude(ControlInclude & c, Dialogs &)
31         : base_class(c, _("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_->includeRB);
47         bc().addReadOnly(dialog_->inputRB);
48         bc().addReadOnly(dialog_->verbatimRB);
49 }
50
51
52 void QInclude::update_contents()
53 {
54         if (controller().params().noload) {
55                 dialog_->filenameED->setText("");
56                 dialog_->typesetCB->setChecked(false);
57                 dialog_->visiblespaceCB->setChecked(false);
58                 dialog_->visiblespaceCB->setEnabled(false);
59                 dialog_->includeRB->setChecked(true);
60                 return;
61         }
62
63         dialog_->filenameED->setText(controller().params().cparams.getContents().c_str());
64
65         string const cmdname = controller().params().cparams.getCmdName();
66
67         // FIXME: ??
68         dialog_->typesetCB->setChecked(controller().params().noload);
69
70         dialog_->visiblespaceCB->setChecked(false);
71         dialog_->visiblespaceCB->setEnabled(false);
72
73         if (cmdname == "input")
74                 dialog_->inputRB->setChecked(true);
75         else if (cmdname == "include")
76                 dialog_->includeRB->setChecked(true);
77         else if (!cmdname.empty()) {
78                 dialog_->verbatimRB->setChecked(true);
79                 dialog_->visiblespaceCB->setChecked(cmdname == "verbatiminput*");
80                 dialog_->visiblespaceCB->setEnabled(true);
81         }
82
83         if (cmdname.empty())
84                 dialog_->includeRB->setChecked(true);
85 }
86
87
88 void QInclude::apply()
89 {
90         controller().params().noload = dialog_->typesetCB->isChecked();
91
92         controller().params().cparams.
93                 setContents(dialog_->filenameED->text().latin1());
94
95         if (dialog_->inputRB->isChecked())
96                 controller().params().flag = InsetInclude::INPUT;
97         else if (dialog_->includeRB->isChecked())
98                 controller().params().flag = InsetInclude::INCLUDE;
99         else {
100                 if (dialog_->visiblespaceCB->isChecked())
101                         controller().params().flag = InsetInclude::VERBAST;
102                 else
103                         controller().params().flag = InsetInclude::VERB;
104         }
105 }
106
107
108 void QInclude::browse()
109 {
110         ControlInclude::Type type;
111
112         if (dialog_->includeRB->isChecked())
113                 type = ControlInclude::INCLUDE;
114         else if (dialog_->inputRB->isChecked())
115                 type = ControlInclude::INPUT;
116         else
117                 type = ControlInclude::VERBATIM;
118
119         string const & name = controller().Browse(dialog_->filenameED->text().latin1(), type);
120         if (!name.empty())
121                 dialog_->filenameED->setText(name.c_str());
122 }
123
124
125 void QInclude::load()
126 {
127         if (isValid()) {
128                 string const file(dialog_->filenameED->text().latin1());
129                 slotOK();
130                 controller().load(file);
131         }
132 }
133
134
135 bool QInclude::isValid()
136 {
137         return !string(dialog_->filenameED->text().latin1()).empty();
138 }