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);
62 switch (params.flag) {
63 case InsetInclude::INPUT:
64 dialog_->typeCO->setCurrentItem(0);
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(dialog_->filenameED->text().latin1());
88 int const item = dialog_->typeCO->currentItem();
90 params.flag = InsetInclude::INPUT;
92 params.flag = InsetInclude::INCLUDE;
94 if (dialog_->visiblespaceCB->isChecked())
95 params.flag = InsetInclude::VERBAST;
97 params.flag = InsetInclude::VERB;
102 void QInclude::browse()
104 ControlInclude::Type type;
106 int const item = dialog_->typeCO->currentItem();
108 type = ControlInclude::INPUT;
110 type = ControlInclude::INCLUDE;
112 type = ControlInclude::VERBATIM;
114 string const & name = controller().Browse(dialog_->filenameED->text().latin1(), type);
116 dialog_->filenameED->setText(name.c_str());
120 void QInclude::load()
123 string const file(dialog_->filenameED->text().latin1());
125 controller().load(file);
130 bool QInclude::isValid()
132 return !string(dialog_->filenameED->text().latin1()).empty();