]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/controllers/ControlBibtex.C
fix crash due to invalidated iterator
[lyx.git] / src / frontends / controllers / ControlBibtex.C
index 933b666bea82f8f561a4e3b00e4789df56182b68..0573d240042379777aeb64ffba5574fa0dcd3f5f 100644 (file)
 #include "tex_helpers.h"
 #include "gettext.h"
 
+#include "support/filefilterlist.h"
 #include "support/filetools.h"
-#include "support/globbing.h"
-
-using lyx::support::FileFilterList;
-using lyx::support::OnlyFilename;
 
 using std::pair;
 using std::string;
 using std::vector;
 
 
+namespace lyx {
+
+using support::FileFilterList;
+using support::OnlyFilename;
+
+namespace frontend {
+
+
 ControlBibtex::ControlBibtex(Dialog & d)
        : ControlCommand(d, "bibtex")
 {}
 
 
-string const ControlBibtex::browse(string const & in_name,
-                                  string const & title,
-                                  FileFilterList const & filters) const
+string const ControlBibtex::browseBib(string const & in_name) const
 {
        pair<string, string> dir1(_("Documents|#o#O"),
                                  string(lyxrc.document_path));
+       FileFilterList const filter(_("BibTeX Databases (*.bib)"));
        return browseRelFile(in_name, kernel().bufferFilepath(),
-                            title, filters, false, dir1);
+                            _("Select a BibTeX database to add"),
+                            filter, false, dir1);
+}
+
+
+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(),
+                            _("Select a BibTeX style"), filter, false, dir1);
 }
 
 
@@ -64,6 +79,8 @@ void ControlBibtex::getBibStyles(vector<string> & data) const
        for (; it != end; ++it) {
                *it = OnlyFilename(*it);
        }
+       // sort on filename only (no path)
+       std::sort(data.begin(), data.end());
 }
 
 
@@ -82,6 +99,8 @@ void ControlBibtex::getBibFiles(vector<string> & data) const
        for (; it != end; ++it) {
                *it = OnlyFilename(*it);
        }
+       // sort on filename only (no path)
+       std::sort(data.begin(), data.end());
 }
 
 
@@ -95,3 +114,6 @@ bool ControlBibtex::usingBibtopic() const
 {
     return kernel().buffer().params().use_bibtopic;
 }
+
+} // namespace frontend
+} // namespace lyx