* Licence details can be found in the file COPYING.
*
* \author John Levon
+ * \author Angus Leeming
*
* Full author contact details are available in file CREDITS.
*/
#ifndef GUIBIBTEX_H
#define GUIBIBTEX_H
-#include "GuiDialogView.h"
+#include "GuiDialog.h"
#include "ButtonController.h"
-#include "ControlBibtex.h"
#include "ui_BibtexUi.h"
#include "ui_BibtexAddUi.h"
-#include <QDialog>
+#include "insets/InsetCommandParams.h"
+
namespace lyx {
namespace frontend {
-class GuiBibtex;
-
-template<class UI>
-class UiDialog : public QDialog, public UI
+class GuiBibtexAddDialog : public QDialog, public Ui::BibtexAddUi
{
public:
- UiDialog(QWidget * parent=0, bool modal=false, Qt::WFlags f=0)
- : QDialog(parent, f)
+ GuiBibtexAddDialog(QWidget * parent) : QDialog(parent)
{
- UI::setupUi(this);
- QDialog::setModal(modal);
+ Ui::BibtexAddUi::setupUi(this);
+ QDialog::setModal(true);
}
};
-class GuiBibtexDialog : public QDialog, public Ui::BibtexUi {
+class GuiBibtex : public GuiDialog, public Ui::BibtexUi
+{
Q_OBJECT
public:
- GuiBibtexDialog(GuiBibtex * form);
-
- UiDialog<Ui::BibtexAddUi> * add_;
-
-protected Q_SLOTS:
- virtual void change_adaptor();
- virtual void browsePressed();
- virtual void browseBibPressed();
- virtual void addPressed();
- virtual void addDatabase();
- virtual void deletePressed();
- virtual void databaseChanged();
- virtual void availableChanged();
+ explicit GuiBibtex(GuiView & lv);
+
+private Q_SLOTS:
+ void change_adaptor();
+ void browsePressed();
+ void browseBibPressed();
+ void addPressed();
+ void addDatabase();
+ void deletePressed();
+ void upPressed();
+ void downPressed();
+ void databaseChanged();
+ void availableChanged();
void bibEDChanged();
+ void rescanClicked();
-protected:
- virtual void closeEvent(QCloseEvent * e);
-
-private:
- GuiBibtex * form_;
- ButtonController add_bc_;
-};
-
-
-class GuiBibtex : public GuiView<GuiBibtexDialog>
-{
-public:
- friend class GuiBibtexDialog;
-
- GuiBibtex(Dialog &);
- /// parent controller
- ControlBibtex & controller()
- { return static_cast<ControlBibtex &>(this->getController()); }
- /// parent controller
- ControlBibtex const & controller() const
- { return static_cast<ControlBibtex const &>(this->getController()); }
-protected:
- virtual bool isValid();
private:
+ ///
+ bool isValid();
/// Apply changes
- virtual void apply();
+ void applyView();
/// update
- virtual void update_contents();
- /// build the dialog
- virtual void build_dialog();
+ void updateContents();
+
+ /// Browse for a .bib file
+ QString browseBib(QString const & in_name) const;
+ /// Browse for a .bst file
+ QString browseBst(QString const & in_name) const;
+ /// get the list of bst files
+ QStringList bibStyles() const;
+ /// get the list of bib files
+ QStringList bibFiles() const;
+ /// build filelists of all availabe bib/bst/cls/sty-files. done through
+ /// kpsewhich and an external script, saved in *Files.lst
+ void rescanBibStyles() const;
+ /// do we use bibtopic (for sectioned bibliography)?
+ bool usingBibtopic() const;
+ /// should we put the bibliography to the TOC?
+ bool bibtotoc() const;
+ /// do we use biblatex?
+ bool usingBiblatex() const;
+ /// which stylefile do we use?
+ QString styleFile() const;
+
+ ///
+ bool initialiseParams(std::string const & data);
+ /// clean-up on hide.
+ void clearParams() { params_.clear(); }
+ /// clean-up on hide.
+ void dispatchParams();
+ ///
+ bool isBufferDependent() const { return true; }
+
+private:
+ ///
+ InsetCommandParams params_;
+ ///
+ GuiBibtexAddDialog * add_;
+ ///
+ ButtonController add_bc_;
};
} // namespace frontend