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"
18 #include "QIncludeDialog.h"
22 #include <qlineedit.h>
23 #include <qpushbutton.h>
24 #include <qcheckbox.h>
25 #include <qcombobox.h>
28 typedef QController<ControlInclude, QView<QIncludeDialog> > base_class;
31 QInclude::QInclude(Dialog & parent)
32 : base_class(parent, _("LyX: Child Document"))
36 void QInclude::build_dialog()
38 dialog_.reset(new QIncludeDialog(this));
40 bcview().setOK(dialog_->okPB);
41 bcview().setCancel(dialog_->closePB);
42 bcview().addReadOnly(dialog_->filenameED);
43 bcview().addReadOnly(dialog_->browsePB);
44 bcview().addReadOnly(dialog_->visiblespaceCB);
45 bcview().addReadOnly(dialog_->typeCO);
49 void QInclude::update_contents()
51 InsetInclude::Params const & params = controller().params();
53 dialog_->filenameED->setText(toqstr(params.cparams.getContents()));
55 dialog_->visiblespaceCB->setChecked(false);
56 dialog_->visiblespaceCB->setEnabled(false);
57 dialog_->previewCB->setChecked(false);
58 dialog_->previewCB->setEnabled(false);
60 switch (params.flag) {
61 case InsetInclude::INPUT:
62 dialog_->typeCO->setCurrentItem(0);
63 dialog_->previewCB->setEnabled(true);
64 dialog_->previewCB->setChecked(params.cparams.preview());
67 case InsetInclude::INCLUDE:
68 dialog_->typeCO->setCurrentItem(1);
71 case InsetInclude::VERBAST:
72 dialog_->visiblespaceCB->setChecked(true);
74 case InsetInclude::VERB:
75 dialog_->typeCO->setCurrentItem(2);
76 dialog_->visiblespaceCB->setEnabled(true);
82 void QInclude::apply()
84 InsetInclude::Params params = controller().params();
86 params.cparams.setContents(fromqstr(dialog_->filenameED->text()));
87 params.cparams.preview(dialog_->previewCB->isChecked());
89 int const item = dialog_->typeCO->currentItem();
91 params.flag = InsetInclude::INPUT;
93 params.flag = InsetInclude::INCLUDE;
95 if (dialog_->visiblespaceCB->isChecked())
96 params.flag = InsetInclude::VERBAST;
98 params.flag = InsetInclude::VERB;
100 controller().setParams(params);
104 void QInclude::browse()
106 ControlInclude::Type type;
108 int const item = dialog_->typeCO->currentItem();
110 type = ControlInclude::INPUT;
112 type = ControlInclude::INCLUDE;
114 type = ControlInclude::VERBATIM;
116 string const & name = controller().Browse(fromqstr(dialog_->filenameED->text()), type);
118 dialog_->filenameED->setText(toqstr(name));
122 void QInclude::load()
125 string const file(fromqstr(dialog_->filenameED->text()));
127 controller().load(file);
132 bool QInclude::isValid()
134 return !dialog_->filenameED->text().isEmpty();