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 #include "ControlInclude.h"
15 #include "qt_helpers.h"
17 #include "QIncludeDialog.h"
21 #include <qlineedit.h>
22 #include <qpushbutton.h>
23 #include <qcheckbox.h>
24 #include <qcombobox.h>
29 typedef QController<ControlInclude, QView<QIncludeDialog> > base_class;
32 QInclude::QInclude(Dialog & parent)
33 : base_class(parent, _("LyX: Child Document"))
37 void QInclude::build_dialog()
39 dialog_.reset(new QIncludeDialog(this));
41 bcview().setOK(dialog_->okPB);
42 bcview().setCancel(dialog_->closePB);
43 bcview().addReadOnly(dialog_->filenameED);
44 bcview().addReadOnly(dialog_->browsePB);
45 bcview().addReadOnly(dialog_->visiblespaceCB);
46 bcview().addReadOnly(dialog_->typeCO);
50 void QInclude::update_contents()
52 InsetCommandParams const & params = controller().params();
54 dialog_->filenameED->setText(toqstr(params.getContents()));
56 dialog_->visiblespaceCB->setChecked(false);
57 dialog_->visiblespaceCB->setEnabled(false);
58 dialog_->previewCB->setChecked(false);
59 dialog_->previewCB->setEnabled(false);
61 string cmdname = controller().params().getCmdName();
62 if (cmdname != "include" &&
63 cmdname != "verbatiminput" &&
64 cmdname != "verbatiminput*")
67 if (cmdname == "input") {
68 dialog_->typeCO->setCurrentItem(0);
69 dialog_->previewCB->setEnabled(true);
70 dialog_->previewCB->setChecked(params.preview());
72 } else if (cmdname == "include") {
73 dialog_->typeCO->setCurrentItem(1);
75 } else if (cmdname == "verbatiminput*") {
76 dialog_->typeCO->setCurrentItem(2);
77 dialog_->visiblespaceCB->setEnabled(true);
78 dialog_->visiblespaceCB->setChecked(true);
80 } else if (cmdname == "verbatiminput") {
81 dialog_->typeCO->setCurrentItem(2);
82 dialog_->visiblespaceCB->setEnabled(true);
87 void QInclude::apply()
89 InsetCommandParams params = controller().params();
91 params.setContents(fromqstr(dialog_->filenameED->text()));
92 params.preview(dialog_->previewCB->isChecked());
94 int const item = dialog_->typeCO->currentItem();
96 params.setCmdName("input");
98 params.setCmdName("include");
100 if (dialog_->visiblespaceCB->isChecked())
101 params.setCmdName("verbatiminput*");
103 params.setCmdName("verbatiminput");
105 controller().setParams(params);
109 void QInclude::browse()
111 ControlInclude::Type type;
113 int const item = dialog_->typeCO->currentItem();
115 type = ControlInclude::INPUT;
117 type = ControlInclude::INCLUDE;
119 type = ControlInclude::VERBATIM;
121 string const & name = controller().Browse(fromqstr(dialog_->filenameED->text()), type);
123 dialog_->filenameED->setText(toqstr(name));
127 void QInclude::load()
130 string const file(fromqstr(dialog_->filenameED->text()));
132 controller().load(file);
137 bool QInclude::isValid()
139 return !dialog_->filenameED->text().isEmpty();