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