3 * Copyright 2001 the LyX Team
4 * Read the file COPYING
6 * \author John Levon <moz@compsoc.man.ac.uk>
12 #pragma implementation
15 #include "ControlInclude.h"
19 #include "QIncludeDialog.h"
23 #include <qlineedit.h>
24 #include <qpushbutton.h>
25 #include <qcheckbox.h>
26 #include <qcombobox.h>
28 typedef Qt2CB<ControlInclude, Qt2DB<QIncludeDialog> > base_class;
31 : base_class(_("Include"))
36 void QInclude::build_dialog()
38 dialog_.reset(new QIncludeDialog(this));
40 bc().setOK(dialog_->okPB);
41 bc().setCancel(dialog_->closePB);
42 bc().addReadOnly(dialog_->filenameED);
43 bc().addReadOnly(dialog_->browsePB);
44 bc().addReadOnly(dialog_->typesetCB);
45 bc().addReadOnly(dialog_->visiblespaceCB);
46 bc().addReadOnly(dialog_->typeCO);
50 void QInclude::update_contents()
52 dialog_->filenameED->setText(controller().params().cparams.getContents().c_str());
54 string const cmdname = controller().params().cparams.getCmdName();
56 dialog_->typesetCB->setChecked(controller().params().noload);
58 dialog_->visiblespaceCB->setChecked(false);
59 dialog_->visiblespaceCB->setEnabled(false);
61 if (cmdname == "input")
62 dialog_->typeCO->setCurrentItem(1);
63 else if (!cmdname.empty()) {
64 dialog_->typeCO->setCurrentItem(2);
65 dialog_->visiblespaceCB->setChecked(cmdname == "verbatiminput*");
66 dialog_->visiblespaceCB->setEnabled(true);
68 else dialog_->typeCO->setCurrentItem(0);
73 void QInclude::apply()
75 controller().params().noload = dialog_->typesetCB->isChecked();
77 controller().params().cparams.
78 setContents(dialog_->filenameED->text().latin1());
80 int const item = dialog_->typeCO->currentItem();
82 controller().params().flag = InsetInclude::INPUT;
84 controller().params().flag = InsetInclude::INCLUDE;
86 if (dialog_->visiblespaceCB->isChecked())
87 controller().params().flag = InsetInclude::VERBAST;
89 controller().params().flag = InsetInclude::VERB;
94 void QInclude::browse()
96 ControlInclude::Type type;
98 int const item = dialog_->typeCO->currentItem();
100 type = ControlInclude::INCLUDE;
102 type = ControlInclude::INPUT;
104 type = ControlInclude::VERBATIM;
106 string const & name = controller().Browse(dialog_->filenameED->text().latin1(), type);
108 dialog_->filenameED->setText(name.c_str());
112 void QInclude::load()
115 string const file(dialog_->filenameED->text().latin1());
117 controller().load(file);
122 bool QInclude::isValid()
124 return !string(dialog_->filenameED->text().latin1()).empty();