3 * Copyright 2001 the LyX Team
4 * Read the file COPYING
6 * \author John Levon <moz@compsoc.man.ac.uk>
12 #include "QExternalDialog.h"
13 #include "ControlExternal.h"
14 #include "QExternal.h"
18 #include <qlineedit.h>
19 #include <qpushbutton.h>
20 #include <qcombobox.h>
21 #include <qtextview.h>
23 typedef Qt2CB<ControlExternal, Qt2DB<QExternalDialog> > base_class;
25 QExternal::QExternal(ControlExternal & c)
26 : base_class(c, _("External"))
31 void QExternal::build_dialog()
33 dialog_.reset(new QExternalDialog(this));
35 bc().setOK(dialog_->okPB);
36 bc().setApply(dialog_->applyPB);
37 bc().setCancel(dialog_->closePB);
38 bc().addReadOnly(dialog_->externalCO);
39 bc().addReadOnly(dialog_->fileED);
40 bc().addReadOnly(dialog_->browsePB);
42 std::vector<string> templates(controller().getTemplates());
44 for (std::vector<string>::const_iterator cit = templates.begin();
45 cit != templates.end(); ++cit) {
46 dialog_->externalCO->insertItem(cit->c_str(), -1);
51 void QExternal::update_contents()
53 InsetExternal::Params const & params = controller().params();
55 dialog_->fileED->setText(params.filename.c_str());
56 dialog_->paramsED->setText(params.parameters.c_str());
58 dialog_->externalCO->setCurrentItem(controller().getTemplateNumber(params.templ.lyxName));
59 dialog_->externalTV->setText(controller().params().templ.helpText.c_str());
64 string const & QExternal::helpText()
66 controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
67 return controller().params().templ.helpText;
71 void QExternal::apply()
73 controller().params().filename =
74 string(dialog_->fileED->text().latin1());
75 controller().params().parameters =
76 string(dialog_->paramsED->text().latin1());
78 controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
82 bool QExternal::isValid()
84 bool const valid = !string(dialog_->fileED->text()).empty();
85 dialog_->viewPB->setEnabled(valid);
86 dialog_->editPB->setEnabled(valid);
87 dialog_->updatePB->setEnabled(valid);