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.
13 #include "QIncludeDialog.h"
16 #include "qt_helpers.h"
18 #include "controllers/ControlInclude.h"
20 #include <qlineedit.h>
21 #include <qpushbutton.h>
22 #include <qcheckbox.h>
23 #include <qcombobox.h>
30 typedef QController<ControlInclude, QView<QIncludeDialog> > base_class;
33 QInclude::QInclude(Dialog & parent)
34 : base_class(parent, _("LyX: Child Document"))
38 void QInclude::build_dialog()
40 dialog_.reset(new QIncludeDialog(this));
42 bcview().setOK(dialog_->okPB);
43 bcview().setCancel(dialog_->closePB);
44 bcview().addReadOnly(dialog_->filenameED);
45 bcview().addReadOnly(dialog_->browsePB);
46 bcview().addReadOnly(dialog_->visiblespaceCB);
47 bcview().addReadOnly(dialog_->typeCO);
51 void QInclude::update_contents()
53 InsetCommandParams const & params = controller().params();
55 dialog_->filenameED->setText(toqstr(params.getContents()));
57 dialog_->visiblespaceCB->setChecked(false);
58 dialog_->visiblespaceCB->setEnabled(false);
59 dialog_->previewCB->setChecked(false);
60 dialog_->previewCB->setEnabled(false);
62 string cmdname = controller().params().getCmdName();
63 if (cmdname != "include" &&
64 cmdname != "verbatiminput" &&
65 cmdname != "verbatiminput*")
68 if (cmdname == "input") {
69 dialog_->typeCO->setCurrentItem(0);
70 dialog_->previewCB->setEnabled(true);
71 dialog_->previewCB->setChecked(params.preview());
73 } else if (cmdname == "include") {
74 dialog_->typeCO->setCurrentItem(1);
76 } else if (cmdname == "verbatiminput*") {
77 dialog_->typeCO->setCurrentItem(2);
78 dialog_->visiblespaceCB->setEnabled(true);
79 dialog_->visiblespaceCB->setChecked(true);
81 } else if (cmdname == "verbatiminput") {
82 dialog_->typeCO->setCurrentItem(2);
83 dialog_->visiblespaceCB->setEnabled(true);
88 void QInclude::apply()
90 InsetCommandParams params = controller().params();
92 params.setContents(fromqstr(dialog_->filenameED->text()));
93 params.preview(dialog_->previewCB->isChecked());
95 int const item = dialog_->typeCO->currentItem();
97 params.setCmdName("input");
99 params.setCmdName("include");
101 if (dialog_->visiblespaceCB->isChecked())
102 params.setCmdName("verbatiminput*");
104 params.setCmdName("verbatiminput");
106 controller().setParams(params);
110 void QInclude::browse()
112 ControlInclude::Type type;
114 int const item = dialog_->typeCO->currentItem();
116 type = ControlInclude::INPUT;
118 type = ControlInclude::INCLUDE;
120 type = ControlInclude::VERBATIM;
122 string const & name = controller().browse(fromqstr(dialog_->filenameED->text()), type);
124 dialog_->filenameED->setText(toqstr(name));
128 void QInclude::load()
131 string const file(fromqstr(dialog_->filenameED->text()));
133 controller().load(file);
138 bool QInclude::isValid()
140 return !dialog_->filenameED->text().isEmpty();
143 } // namespace frontend