3 * Copyright 2001 the LyX Team
4 * Read the file COPYING
6 * \author John Levon <moz@compsoc.man.ac.uk>
13 #include "QExternalDialog.h"
14 #include "ControlExternal.h"
15 #include "QExternal.h"
19 #include <qlineedit.h>
20 #include <qpushbutton.h>
21 #include <qcombobox.h>
22 #include <qtextview.h>
24 typedef Qt2CB<ControlExternal, Qt2DB<QExternalDialog> > base_class;
26 QExternal::QExternal(ControlExternal & c)
27 : base_class(c, _("External"))
32 void QExternal::build_dialog()
34 dialog_.reset(new QExternalDialog(this));
36 bc().setOK(dialog_->okPB);
37 bc().setApply(dialog_->applyPB);
38 bc().setCancel(dialog_->closePB);
39 bc().addReadOnly(dialog_->externalCO);
40 bc().addReadOnly(dialog_->fileED);
41 bc().addReadOnly(dialog_->browsePB);
43 std::vector<string> templates(controller().getTemplates());
45 for (std::vector<string>::const_iterator cit = templates.begin();
46 cit != templates.end(); ++cit) {
47 dialog_->externalCO->insertItem(cit->c_str(), -1);
52 void QExternal::update_contents()
54 InsetExternal::Params const & params = controller().params();
56 dialog_->fileED->setText(params.filename.c_str());
57 dialog_->paramsED->setText(params.parameters.c_str());
59 dialog_->externalCO->setCurrentItem(controller().getTemplateNumber(params.templ.lyxName));
60 dialog_->externalTV->setText(controller().params().templ.helpText.c_str());
65 string const & QExternal::helpText()
67 controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
68 return controller().params().templ.helpText;
72 void QExternal::apply()
74 controller().params().filename =
75 string(dialog_->fileED->text().latin1());
76 controller().params().parameters =
77 string(dialog_->paramsED->text().latin1());
79 controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
83 bool QExternal::isValid()
85 bool const valid = !string(dialog_->fileED->text()).empty();
86 dialog_->viewPB->setEnabled(valid);
87 dialog_->editPB->setEnabled(valid);
88 dialog_->updatePB->setEnabled(valid);