]> git.lyx.org Git - features.git/blob - src/frontends/qt2/QBibtexDialog.C
build fixes, fixes to thesaurus and bibtex.
[features.git] / src / frontends / qt2 / QBibtexDialog.C
1 /**
2  * \file QBibtexDialog.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 <qwidget.h>
10 #include <qpushbutton.h>
11 #include <qcombobox.h>
12 #include <qlistbox.h>
13 #include <qcheckbox.h>
14 #include <qfiledialog.h>
15  
16 #include "QBibtexDialog.h"
17 #include "QBibtex.h"
18 #include "Dialogs.h"
19 #include "ControlBibtex.h" 
20 #include "gettext.h" 
21 #include "debug.h"
22
23 #include "support/filetools.h"
24
25 QBibtexDialog::QBibtexDialog(QBibtex * form)
26         : QBibtexDialogBase(0, 0, false, 0),
27         form_(form)
28 {
29         connect(okPB, SIGNAL(clicked()),
30                 form, SLOT(slotOK()));
31         connect(closePB, SIGNAL(clicked()),
32                 form, SLOT(slotClose()));
33 }
34
35  
36 void QBibtexDialog::change_adaptor()
37 {
38         form_->changed();
39 }
40
41
42 void QBibtexDialog::browsePressed()
43 {
44         QString file = QFileDialog::getOpenFileName(QString::null, 
45                 _("BibTeX style files (*.bst)"), this, 0, _("Select a BibTeX style"));
46         if (!file.isNull()) {
47                 styleED->setText(ChangeExtension(OnlyFilename(file.latin1()), "").c_str());
48                 form_->changed();
49         }
50 }
51
52  
53 void QBibtexDialog::addPressed()
54 {
55         QString file = QFileDialog::getOpenFileName(QString::null, 
56                 _("BibTeX database files (*.bib)"), this, 0, _("Select a BibTeX database to add")); 
57         if (!file.isNull()) {
58                 // FIXME: check duplicates
59                 databaseLB->insertItem(ChangeExtension(file.latin1(), "").c_str());
60                 form_->changed();
61         }
62 }
63
64  
65 void QBibtexDialog::deletePressed()
66 {
67         databaseLB->removeItem(databaseLB->currentItem());
68 }
69
70  
71 void QBibtexDialog::styleChanged(const QString & sel)
72 {
73         if (form_->readOnly())
74                 return;
75  
76         if (string(_("Other ...")) == sel.latin1()) {
77                 styleED->setEnabled(true);
78                 stylePB->setEnabled(true);
79         } else {
80                 styleED->setEnabled(false);
81                 stylePB->setEnabled(false);
82                 styleED->setText("");
83         }
84 }
85
86  
87 void QBibtexDialog::databaseChanged()
88 {
89         deletePB->setEnabled(!form_->readOnly() && databaseLB->currentItem() != -1);
90 }
91
92  
93 void QBibtexDialog::closeEvent(QCloseEvent *e)
94 {
95         form_->slotWMHide();
96         e->accept();
97 }