Fix portability of Session::source_search_path

This commit is contained in:
Paul Davis 2013-07-15 08:05:37 -04:00
parent f08d9591e6
commit 43f7813b24
7 changed files with 53 additions and 74 deletions

View file

@ -19,12 +19,17 @@
#include "pbd/compose.h"
#include "pbd/replace_all.h"
#include "pbd/strsplit.h"
#include "pbd/search_path.h"
#include "ardour/session.h"
#include "missing_file_dialog.h"
#include "i18n.h"
#ifdef SearchPath
#undef SearchPath
#endif
using namespace Gtk;
using namespace std;
using namespace ARDOUR;
@ -56,14 +61,18 @@ MissingFileDialog::MissingFileDialog (Session* s, const std::string& path, DataT
break;
}
string dirstr;
vector<string> source_dirs = s->source_search_path (type);
vector<string>::iterator i = source_dirs.begin();
ostringstream oss;
oss << *i << endl;
dirstr = s->source_search_path (type);
replace_all (dirstr, ":", "\n");
while (++i != source_dirs.end()) {
oss << *i << endl;
}
msg.set_justify (JUSTIFY_CENTER);
msg.set_markup (string_compose (_("%1 cannot find the %2 file\n\n<i>%3</i>\n\nin any of these folders:\n\n\
<tt>%4</tt>\n\n"), PROGRAM_NAME, typestr, Glib::Markup::escape_text(path), Glib::Markup::escape_text (dirstr)));
<tt>%4</tt>\n\n"), PROGRAM_NAME, typestr, Glib::Markup::escape_text(path), Glib::Markup::escape_text (oss.str())));
HBox* hbox = manage (new HBox);
hbox->pack_start (msg, false, true);