]> git.lyx.org Git - lyx.git/blob - src/frontends/qt2/QExternal.C
fix build, thesaurus
[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 "QExternalDialog.h"
13 #include "ControlExternal.h"
14 #include "QExternal.h"
15 #include "Qt2BC.h"
16 #include "gettext.h"
17
18 #include <qlineedit.h>
19 #include <qpushbutton.h>
20 #include <qcombobox.h> 
21 #include <qtextview.h>
22
23 typedef Qt2CB<ControlExternal, Qt2DB<QExternalDialog> > base_class;
24  
25 QExternal::QExternal(ControlExternal & c)
26         : base_class(c, _("External"))
27 {
28 }
29
30
31 void QExternal::build_dialog()
32 {
33         dialog_.reset(new QExternalDialog(this));
34
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);
41
42         std::vector<string> templates(controller().getTemplates());
43  
44         for (std::vector<string>::const_iterator cit = templates.begin();
45                 cit != templates.end(); ++cit) {
46                 dialog_->externalCO->insertItem(cit->c_str(), -1);
47         }
48 }
49
50  
51 void QExternal::update_contents()
52 {
53         InsetExternal::Params const & params = controller().params();
54
55         dialog_->fileED->setText(params.filename.c_str());
56         dialog_->paramsED->setText(params.parameters.c_str());
57  
58         dialog_->externalCO->setCurrentItem(controller().getTemplateNumber(params.templ.lyxName));
59         dialog_->externalTV->setText(controller().params().templ.helpText.c_str()); 
60         isValid();
61 }
62
63
64 string const & QExternal::helpText()
65 {
66         controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
67         return controller().params().templ.helpText; 
68 }
69
70  
71 void QExternal::apply()
72 {
73         controller().params().filename =
74                 string(dialog_->fileED->text().latin1());
75         controller().params().parameters =
76                 string(dialog_->paramsED->text().latin1());
77
78         controller().params().templ = controller().getTemplate(dialog_->externalCO->currentItem() + 1);
79 }
80
81
82 bool QExternal::isValid()
83 {
84         bool const valid = !string(dialog_->fileED->text()).empty();
85         dialog_->viewPB->setEnabled(valid); 
86         dialog_->editPB->setEnabled(valid); 
87         dialog_->updatePB->setEnabled(valid); 
88         return valid;
89 }