]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/QExternal.C
No longer pass Controller & or Dialogs & to the View c-tors.
[lyx.git] / src / frontends / qt2 / QExternal.C
1 /**
2  * \file QExternal.C
3  * Copyright 2001 the LyX Team
4  * Read the file COPYING
5  *
6  * \author John Levon <moz@compsoc.man.ac.uk>
7  */
8
9 #include <config.h>
10 #include <vector>
11
12 #include "ControlExternal.h"
13 #include "gettext.h"
14
15 #include <qlineedit.h>
16 #include <qpushbutton.h>
17 #include <qcombobox.h>
18 #include <qtextview.h>
19
20 #include "QExternalDialog.h"
21 #include "QExternal.h"
22 #include "Qt2BC.h"
23  
24 typedef Qt2CB<ControlExternal, Qt2DB<QExternalDialog> > base_class;
25
26 QExternal::QExternal()
27         : base_class(_("External"))
28 {
29 }
30
31
32 void QExternal::build_dialog()
33 {
34         dialog_.reset(new QExternalDialog(this));
35
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);
42
43         std::vector<string> templates(controller().getTemplates());
44
45         for (std::vector<string>::const_iterator cit = templates.begin();
46                 cit != templates.end(); ++cit) {
47                 dialog_->externalCO->insertItem(cit->c_str(), -1);
48         }
49 }
50
51
52 void QExternal::update_contents()
53 {
54         InsetExternal::Params const & params = controller().params();
55
56         dialog_->fileED->setText(params.filename.c_str());
57         dialog_->paramsED->setText(params.parameters.c_str());
58
59         dialog_->externalCO->setCurrentItem(controller().getTemplateNumber(params.templ.lyxName));
60         dialog_->externalTV->setText(controller().params().templ.helpText.c_str());
61         isValid();
62 }
63
64
65 string const & QExternal::helpText()
66 {
67         controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
68         return controller().params().templ.helpText;
69 }
70
71
72 void QExternal::apply()
73 {
74         controller().params().filename =
75                 string(dialog_->fileED->text().latin1());
76         controller().params().parameters =
77                 string(dialog_->paramsED->text().latin1());
78
79         controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
80 }
81
82
83 bool QExternal::isValid()
84 {
85         bool const valid = !string(dialog_->fileED->text()).empty();
86         dialog_->viewPB->setEnabled(valid);
87         dialog_->editPB->setEnabled(valid);
88         dialog_->updatePB->setEnabled(valid);
89         return valid;
90 }