]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlBibtex.C
do not use QFileDialog directly
[lyx.git] / src / frontends / controllers / ControlBibtex.C
index 079ce2ae09a11e949ff31cb56265ed0f21dc2584..9d7fb6c069bbffd168d81c666669c397c65caf48 100644 (file)
@@ -5,7 +5,7 @@
  *
  * \author John Levon
  * \author Angus Leeming
- * \author Herbert Voss
+ * \author Herbert Voß
  *
  * Full author contact details are available in file CREDITS.
  */
 #include <config.h>
 
 #include "ControlBibtex.h"
-#include "Kernel.h"
+
+#include "buffer.h"
+#include "bufferparams.h"
+
+#include "lyxrc.h"
 #include "helper_funcs.h"
 #include "tex_helpers.h"
-
-#include "funcrequest.h"
 #include "gettext.h"
-#include "lyxrc.h"
 
 #include "support/filetools.h"
-
-using namespace lyx::support;
+#include "support/globbing.h"
 
 using std::pair;
+using std::string;
 using std::vector;
 
 
-ControlBibtex::ControlBibtex(Dialog & d)
-       : Dialog::Controller(d)
-{}
+namespace lyx {
 
+using support::FileFilterList;
+using support::OnlyFilename;
 
-bool ControlBibtex::initialiseParams(string const & data)
-{
-       InsetBibtexMailer::string2params(data, kernel().buffer(), params_);
-       return true;
-}
+namespace frontend {
 
 
-void ControlBibtex::clearParams()
-{
-       params_.erase();
-}
+ControlBibtex::ControlBibtex(Dialog & d)
+       : ControlCommand(d, "bibtex")
+{}
 
 
-void ControlBibtex::dispatchParams()
+string const ControlBibtex::browseBib(string const & in_name) const
 {
-       string const lfun =
-               InsetBibtexMailer::params2string(params_, kernel().buffer());
-       kernel().dispatch(FuncRequest(LFUN_INSET_APPLY, lfun));
+       pair<string, string> dir1(_("Documents|#o#O"),
+                                 string(lyxrc.document_path));
+       FileFilterList const filter(_("BibTeX Databases (*.bib)"));
+       return browseRelFile(in_name, kernel().bufferFilepath(),
+                            _("Select a BibTeX database to add"),
+                            filter, false, dir1);
 }
 
 
-string const ControlBibtex::Browse(string const & in_name,
-                                  string const & title,
-                                  string const & pattern)
+string const ControlBibtex::browseBst(string const & in_name) const
 {
        pair<string, string> dir1(_("Documents|#o#O"),
                                  string(lyxrc.document_path));
+       FileFilterList const filter(_("BibTeX Styles (*.bst)"));
        return browseRelFile(in_name, kernel().bufferFilepath(),
-                            title, pattern, false, dir1);
+                            _("Select a BibTeX style"), filter, false, dir1);
 }
 
 
@@ -81,10 +79,6 @@ void ControlBibtex::getBibStyles(vector<string> & data) const
        for (; it != end; ++it) {
                *it = OnlyFilename(*it);
        }
-       std::sort(data.begin(), end);
-
-       // Add an empy string to the list.
-       data.insert(data.begin(), " ");
 }
 
 
@@ -110,3 +104,12 @@ void ControlBibtex::rescanBibStyles() const
 {
        rescanTexStyles();
 }
+
+
+bool ControlBibtex::usingBibtopic() const
+{
+    return kernel().buffer().params().use_bibtopic;
+}
+
+} // namespace frontend
+} // namespace lyx