From e100536d59170a1c99437ea22b6fd1bea864bcf0 Mon Sep 17 00:00:00 2001 From: Juergen Spitzmueller Date: Sat, 14 Sep 2013 13:11:10 +0200 Subject: [PATCH] Fix 'Export As...' in non-English localizations It is always a bad idea to compare a localized string. I think the whole method Formats::getFormatFromPrettyName (which is now unused) should be ditched. This is bound to fail. --- src/frontends/qt4/GuiView.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp index 3f1cf75996..6cf97a8b98 100644 --- a/src/frontends/qt4/GuiView.cpp +++ b/src/frontends/qt4/GuiView.cpp @@ -2394,10 +2394,15 @@ bool GuiView::exportBufferAs(Buffer & b) PrettyNameComparator cmp; sort(export_formats.begin(), export_formats.end(), cmp); vector::const_iterator fit = export_formats.begin(); - for (; fit != export_formats.end(); ++fit) + map fmap; + for (; fit != export_formats.end(); ++fit) { + docstring const loc_prettyname = + translateIfPossible(from_utf8((*fit)->prettyname())); types << toqstr(bformat(_("%1$s (*.%2$s)"), - translateIfPossible(from_utf8((*fit)->prettyname())), + loc_prettyname, from_ascii((*fit)->extension()))); + fmap[loc_prettyname] = (*fit)->name(); + } QString filter; FileDialog::Result result = dlg.save(toqstr(fname.onlyPath().absFileName()), @@ -2416,7 +2421,7 @@ bool GuiView::exportBufferAs(Buffer & b) if (fmt_prettyname == "Any supported format") fmt_name = formats.getFormatFromExtension(fname.extension()); else - fmt_name = formats.getFormatFromPrettyName(fmt_prettyname); + fmt_name = fmap[from_utf8(fmt_prettyname)]; LYXERR(Debug::FILES, "fmt_prettyname=" << fmt_prettyname << ", fmt_name=" << fmt_name << ", fname=" << fname.absFileName()); -- 2.39.2