3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * Full author contact details are available in file CREDITS
14 #pragma implementation
17 #include "ControlInclude.h"
21 #include "QIncludeDialog.h"
25 #include <qlineedit.h>
26 #include <qpushbutton.h>
27 #include <qcheckbox.h>
28 #include <qcombobox.h>
31 typedef Qt2CB<ControlInclude, Qt2DB<QIncludeDialog> > base_class;
35 : base_class(_("Include"))
40 void QInclude::build_dialog()
42 dialog_.reset(new QIncludeDialog(this));
44 bc().setOK(dialog_->okPB);
45 bc().setCancel(dialog_->closePB);
46 bc().addReadOnly(dialog_->filenameED);
47 bc().addReadOnly(dialog_->browsePB);
48 bc().addReadOnly(dialog_->visiblespaceCB);
49 bc().addReadOnly(dialog_->typeCO);
53 void QInclude::update_contents()
55 InsetInclude::Params const & params = controller().params();
57 dialog_->filenameED->setText(params.cparams.getContents().c_str());
59 dialog_->visiblespaceCB->setChecked(false);
60 dialog_->visiblespaceCB->setEnabled(false);
61 dialog_->previewCB->setChecked(false);
62 dialog_->previewCB->setEnabled(false);
64 switch (params.flag) {
65 case InsetInclude::INPUT:
66 dialog_->typeCO->setCurrentItem(0);
67 dialog_->previewCB->setEnabled(true);
68 dialog_->previewCB->setChecked(params.cparams.preview());
71 case InsetInclude::INCLUDE:
72 dialog_->typeCO->setCurrentItem(1);
75 case InsetInclude::VERBAST:
76 dialog_->visiblespaceCB->setChecked(true);
78 case InsetInclude::VERB:
79 dialog_->typeCO->setCurrentItem(2);
80 dialog_->visiblespaceCB->setEnabled(true);
86 void QInclude::apply()
88 InsetInclude::Params & params = controller().params();
90 params.cparams.setContents(dialog_->filenameED->text().latin1());
91 params.cparams.preview(dialog_->previewCB->isChecked());
93 int const item = dialog_->typeCO->currentItem();
95 params.flag = InsetInclude::INPUT;
97 params.flag = InsetInclude::INCLUDE;
99 if (dialog_->visiblespaceCB->isChecked())
100 params.flag = InsetInclude::VERBAST;
102 params.flag = InsetInclude::VERB;
107 void QInclude::browse()
109 ControlInclude::Type type;
111 int const item = dialog_->typeCO->currentItem();
113 type = ControlInclude::INPUT;
115 type = ControlInclude::INCLUDE;
117 type = ControlInclude::VERBATIM;
119 string const & name = controller().Browse(dialog_->filenameED->text().latin1(), type);
121 dialog_->filenameED->setText(name.c_str());
125 void QInclude::load()
128 string const file(dialog_->filenameED->text().latin1());
130 controller().load(file);
135 bool QInclude::isValid()
137 return !string(dialog_->filenameED->text().latin1()).empty();