2 * \file QBibtexDialog.C
3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * Full author contact details are available in file CREDITS
14 #pragma implementation
17 #include "ControlBibtex.h"
21 #include "support/filetools.h"
22 #include "support/lyxalgo.h" // eliminate_duplicates
25 #include <qpushbutton.h>
26 #include <qcombobox.h>
28 #include <qcheckbox.h>
29 #include <qfiledialog.h>
31 #include "QBibtexDialog.h"
37 QBibtexDialog::QBibtexDialog(QBibtex * form)
38 : QBibtexDialogBase(0, 0, false, 0),
41 connect(okPB, SIGNAL(clicked()),
42 form, SLOT(slotOK()));
43 connect(closePB, SIGNAL(clicked()),
44 form, SLOT(slotClose()));
48 void QBibtexDialog::change_adaptor()
54 void QBibtexDialog::browsePressed()
57 QFileDialog::getOpenFileName(QString::null,
58 _("BibTeX style files (*.bst)"),
61 _("Select a BibTeX style"));
63 string const filen = ChangeExtension(OnlyFilename(file.latin1()), "");
64 styleCB->insertItem(filen.c_str(),0);
69 void QBibtexDialog::addPressed()
71 QString file = QFileDialog::getOpenFileName(QString::null,
72 _("BibTeX database files (*.bib)"), this, 0, _("Select a BibTeX database to add"));
74 string const f = ChangeExtension(file.latin1(), "");
76 for(unsigned int i = 0; i!=databaseLB->count(); i++) {
77 if (databaseLB->text(i).latin1()==f)
82 databaseLB->insertItem(f.c_str());
89 void QBibtexDialog::deletePressed()
91 databaseLB->removeItem(databaseLB->currentItem());
95 void QBibtexDialog::styleChanged(QString const & sel)
97 styleCB->insertItem(sel,0);
101 void QBibtexDialog::databaseChanged()
103 deletePB->setEnabled(!form_->readOnly() && databaseLB->currentItem() != -1);
107 void QBibtexDialog::closeEvent(QCloseEvent *e)