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_->visiblespaceCB);
45 bc().addReadOnly(dialog_->typeCO);
49 void QInclude::update_contents()
51 dialog_->filenameED->setText(controller().params().cparams.getContents().c_str());
53 string const cmdname = controller().params().cparams.getCmdName();
55 dialog_->visiblespaceCB->setChecked(false);
56 dialog_->visiblespaceCB->setEnabled(false);
58 if (cmdname == "input")
59 dialog_->typeCO->setCurrentItem(0);
60 else if (!cmdname.empty()) {
61 dialog_->typeCO->setCurrentItem(2);
62 dialog_->visiblespaceCB->setChecked(cmdname == "verbatiminput*");
63 dialog_->visiblespaceCB->setEnabled(true);
65 dialog_->typeCO->setCurrentItem(1);
70 void QInclude::apply()
72 controller().params().cparams.
73 setContents(dialog_->filenameED->text().latin1());
75 int const item = dialog_->typeCO->currentItem();
77 controller().params().flag = InsetInclude::INPUT;
79 controller().params().flag = InsetInclude::INCLUDE;
81 if (dialog_->visiblespaceCB->isChecked())
82 controller().params().flag = InsetInclude::VERBAST;
84 controller().params().flag = InsetInclude::VERB;
89 void QInclude::browse()
91 ControlInclude::Type type;
93 int const item = dialog_->typeCO->currentItem();
95 type = ControlInclude::INPUT;
97 type = ControlInclude::INCLUDE;
99 type = ControlInclude::VERBATIM;
101 string const & name = controller().Browse(dialog_->filenameED->text().latin1(), type);
103 dialog_->filenameED->setText(name.c_str());
107 void QInclude::load()
110 string const file(dialog_->filenameED->text().latin1());
112 controller().load(file);
117 bool QInclude::isValid()
119 return !string(dialog_->filenameED->text().latin1()).empty();