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