summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2010-09-14 15:45:21 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2010-09-14 15:45:21 +0000
commit4d112a8e6b90fa64a5cd333042044768111ba994 (patch)
tree6688c5250bc55de106f74ef9be93d7ee574ec9d8 /gtk2_ardour
parent875f0befd5fb52678d25544fcbcb6e6b55a2c483 (diff)
remove Glib::ustring from libardour; allow any characters except '/' and '\' in paths (may cause issues when loading creatively named 2.X sessions; fix a couple of details of name collection and usage from the startup dialog
git-svn-id: svn://localhost/ardour2/branches/3.0@7772 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/ardour_ui.cc34
-rw-r--r--gtk2_ardour/editor.cc4
-rw-r--r--gtk2_ardour/editor.h92
-rw-r--r--gtk2_ardour/editor_audio_import.cc43
-rw-r--r--gtk2_ardour/editor_canvas.cc6
-rw-r--r--gtk2_ardour/editor_regions.cc2
-rw-r--r--gtk2_ardour/export_dialog.cc17
-rw-r--r--gtk2_ardour/export_dialog.h11
-rw-r--r--gtk2_ardour/export_format_selector.h6
-rw-r--r--gtk2_ardour/session_metadata_dialog.cc40
-rw-r--r--gtk2_ardour/session_metadata_dialog.h40
-rw-r--r--gtk2_ardour/startup.cc5
12 files changed, 164 insertions, 136 deletions
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 8eacd1904b..91352740f7 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -118,6 +118,8 @@ sigc::signal<void> ARDOUR_UI::RapidScreenUpdate;
sigc::signal<void> ARDOUR_UI::SuperRapidScreenUpdate;
sigc::signal<void,nframes_t, bool, nframes_t> ARDOUR_UI::Clock;
+bool could_be_a_valid_path (const string& path);
+
ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
: Gtkmm2ext::UI (PROGRAM_NAME, argcp, argvp),
@@ -2465,9 +2467,9 @@ ARDOUR_UI::loading_message (const std::string& /*msg*/)
int
ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, string load_template)
{
- Glib::ustring session_name;
- Glib::ustring session_path;
- Glib::ustring template_name;
+ string session_name;
+ string session_path;
+ string template_name;
int ret = -1;
bool likely_new = false;
@@ -2496,6 +2498,7 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri
} else {
bool const apply = run_startup (should_be_new, load_template);
+
if (!apply) {
if (quit_on_cancel) {
exit (1);
@@ -2513,16 +2516,17 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri
/* this shouldn't happen, but we catch it just in case it does */
if (session_name.empty()) {
- break;
+ continue;
}
+
if (_startup->use_session_template()) {
template_name = _startup->session_template_name();
_session_is_new = true;
}
- if (session_name[0] == '/' ||
- (session_name.length() > 2 && session_name[0] == '.' && session_name[1] == '/') ||
- (session_name.length() > 3 && session_name[0] == '.' && session_name[1] == '.' && session_name[2] == '/')) {
+ if (session_name[0] == G_DIR_SEPARATOR ||
+ (session_name.length() > 2 && session_name[0] == '.' && session_name[1] == G_DIR_SEPARATOR) ||
+ (session_name.length() > 3 && session_name[0] == '.' && session_name[1] == '.' && session_name[2] == G_DIR_SEPARATOR)) {
/* absolute path or cwd-relative path specified for session name: infer session folder
from what was given.
@@ -2534,6 +2538,22 @@ ARDOUR_UI::get_session_parameters (bool quit_on_cancel, bool should_be_new, stri
} else {
session_path = _startup->session_folder();
+
+ if (session_name.find ('/') != string::npos) {
+ MessageDialog msg (*_startup, _("To ensure compatibility with various systems\n"
+ "session names may not contain a '/' character"));
+ msg.run ();
+ ARDOUR_COMMAND_LINE::session_name = ""; // cancel that
+ continue;
+ }
+
+ if (session_name.find ('\\') != string::npos) {
+ MessageDialog msg (*_startup, _("To ensure compatibility with various systems\n"
+ "session names may not contain a '\\' character"));
+ msg.run ();
+ ARDOUR_COMMAND_LINE::session_name = ""; // cancel that
+ continue;
+ }
}
}
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 1ccdbec4d7..42bb07299d 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -3223,7 +3223,7 @@ Editor::setup_midi_toolbar ()
int
Editor::convert_drop_to_paths (
- vector<ustring>& paths,
+ vector<string>& paths,
const RefPtr<Gdk::DragContext>& /*context*/,
gint /*x*/,
gint /*y*/,
@@ -3234,7 +3234,7 @@ Editor::convert_drop_to_paths (
if (_session == 0) {
return -1;
}
-
+
vector<ustring> uris = data.get_uris();
if (uris.empty()) {
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index dd4679012a..1c5a38bbb4 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -27,8 +27,6 @@
#include <sys/time.h>
#include <bitset>
-#include <glibmm/ustring.h>
-
#include <boost/optional.hpp>
#include <libgnomecanvasmm/canvas.h>
@@ -424,8 +422,8 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
int get_regionview_count_from_region_list (boost::shared_ptr<ARDOUR::Region>);
- void do_import (std::vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t&);
- void do_embed (std::vector<Glib::ustring> paths, Editing::ImportDisposition, Editing::ImportMode mode, nframes64_t&);
+ void do_import (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t&);
+ void do_embed (std::vector<std::string> paths, Editing::ImportDisposition, Editing::ImportMode mode, nframes64_t&);
void get_regions_corresponding_to (boost::shared_ptr<ARDOUR::Region> region, std::vector<RegionView*>& regions);
@@ -1172,21 +1170,21 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
void session_import_dialog ();
int check_whether_and_how_to_import(std::string, bool all_or_nothing = true);
- bool check_multichannel_status (const std::vector<Glib::ustring>& paths);
+ bool check_multichannel_status (const std::vector<std::string>& paths);
SoundFileOmega* sfbrowser;
void bring_in_external_audio (Editing::ImportMode mode, nframes64_t& pos);
- bool idle_drop_paths (std::vector<Glib::ustring> paths, nframes64_t frame, double ypos);
- void drop_paths_part_two (const std::vector<Glib::ustring>& paths, nframes64_t frame, double ypos);
+ bool idle_drop_paths (std::vector<std::string> paths, nframes64_t frame, double ypos);
+ void drop_paths_part_two (const std::vector<std::string>& paths, nframes64_t frame, double ypos);
- int import_sndfiles (std::vector<Glib::ustring> paths, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t& pos,
+ int import_sndfiles (std::vector<std::string> paths, Editing::ImportMode mode, ARDOUR::SrcQuality, nframes64_t& pos,
int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&, bool);
- int embed_sndfiles (std::vector<Glib::ustring> paths, bool multiple_files, bool& check_sample_rate, Editing::ImportMode mode,
+ int embed_sndfiles (std::vector<std::string> paths, bool multiple_files, bool& check_sample_rate, Editing::ImportMode mode,
nframes64_t& pos, int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&);
- int add_sources (std::vector<Glib::ustring> paths, ARDOUR::SourceList& sources, nframes64_t& pos, Editing::ImportMode,
+ int add_sources (std::vector<std::string> paths, ARDOUR::SourceList& sources, nframes64_t& pos, Editing::ImportMode,
int target_regions, int target_tracks, boost::shared_ptr<ARDOUR::Track>&, bool add_channel_suffix);
int finish_bringing_in_material (boost::shared_ptr<ARDOUR::Region> region, uint32_t, uint32_t, nframes64_t& pos, Editing::ImportMode mode,
boost::shared_ptr<ARDOUR::Track>& existing_track);
@@ -1217,7 +1215,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
/* to support this ... */
void import_audio (bool as_tracks);
- void do_import (std::vector<Glib::ustring> paths, bool split, bool as_tracks);
+ void do_import (std::vector<std::string> paths, bool split, bool as_tracks);
void move_to_start ();
void move_to_end ();
@@ -1722,46 +1720,46 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
/* Drag-n-Drop */
int convert_drop_to_paths (
- std::vector<Glib::ustring>& paths,
- const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
+ std::vector<std::string>& paths,
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
void track_canvas_drag_data_received (
- const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
void drop_paths (
- const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
void drop_regions (
- const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
void drop_routes (
- const Glib::RefPtr<Gdk::DragContext>& context,
- gint x,
- gint y,
- const Gtk::SelectionData& data,
- guint info,
- guint time);
-
+ const Glib::RefPtr<Gdk::DragContext>& context,
+ gint x,
+ gint y,
+ const Gtk::SelectionData& data,
+ guint info,
+ guint time);
+
/* audio export */
int write_region_selection(RegionSelection&);
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index 152c1d896e..9eb448d998 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -24,6 +24,8 @@
#include <unistd.h>
#include <algorithm>
+#include <glibmm/ustring.h>
+
#include <sndfile.h>
#include "pbd/pthread_utils.h"
@@ -94,7 +96,7 @@ Editor::add_external_audio_action (ImportMode mode_hint)
void
Editor::external_audio_dialog ()
{
- vector<Glib::ustring> paths;
+ vector<string> paths;
uint32_t track_cnt;
if (_session == 0) {
@@ -148,8 +150,11 @@ Editor::external_audio_dialog ()
/* lets do it */
- paths = sfbrowser->get_paths ();
-
+ vector<ustring> upaths = sfbrowser->get_paths ();
+ for (vector<ustring>::iterator x = upaths.begin(); x != upaths.end(); ++x) {
+ paths.push_back (*x);
+ }
+
ImportPosition pos = sfbrowser->get_position ();
ImportMode mode = sfbrowser->get_mode ();
ImportDisposition chns = sfbrowser->get_channel_disposition ();
@@ -322,10 +327,10 @@ Editor::get_nth_selected_midi_track (int nth) const
}
void
-Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos)
+Editor::do_import (vector<string> paths, ImportDisposition chns, ImportMode mode, SrcQuality quality, nframes64_t& pos)
{
boost::shared_ptr<Track> track;
- vector<ustring> to_import;
+ vector<string> to_import;
int nth = 0;
bool use_timestamp = (pos == -1);
@@ -342,7 +347,7 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
*/
bool cancel = false;
- for (vector<ustring>::iterator a = paths.begin(); a != paths.end(); ++a) {
+ for (vector<string>::iterator a = paths.begin(); a != paths.end(); ++a) {
int check = check_whether_and_how_to_import(*a, false);
if (check == 2) {
cancel = true;
@@ -359,7 +364,7 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
bool replace = false;
bool ok = true;
- for (vector<ustring>::iterator a = paths.begin(); a != paths.end(); ++a) {
+ for (vector<string>::iterator a = paths.begin(); a != paths.end(); ++a) {
const int check = check_whether_and_how_to_import (*a, true);
@@ -423,18 +428,18 @@ Editor::do_import (vector<ustring> paths, ImportDisposition chns, ImportMode mod
}
void
-Editor::do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode, nframes64_t& pos)
+Editor::do_embed (vector<string> paths, ImportDisposition chns, ImportMode mode, nframes64_t& pos)
{
boost::shared_ptr<Track> track;
bool check_sample_rate = true;
bool ok = false;
- vector<ustring> to_embed;
+ vector<string> to_embed;
bool multi = paths.size() > 1;
int nth = 0;
switch (chns) {
case Editing::ImportDistinctFiles:
- for (vector<ustring>::iterator a = paths.begin(); a != paths.end(); ++a) {
+ for (vector<string>::iterator a = paths.begin(); a != paths.end(); ++a) {
to_embed.clear ();
to_embed.push_back (*a);
@@ -450,7 +455,7 @@ Editor::do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode
break;
case Editing::ImportDistinctChannels:
- for (vector<ustring>::iterator a = paths.begin(); a != paths.end(); ++a) {
+ for (vector<string>::iterator a = paths.begin(); a != paths.end(); ++a) {
to_embed.clear ();
to_embed.push_back (*a);
@@ -468,7 +473,7 @@ Editor::do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode
break;
case Editing::ImportSerializeFiles:
- for (vector<ustring>::iterator a = paths.begin(); a != paths.end(); ++a) {
+ for (vector<string>::iterator a = paths.begin(); a != paths.end(); ++a) {
to_embed.clear ();
to_embed.push_back (*a);
@@ -489,7 +494,7 @@ Editor::do_embed (vector<ustring> paths, ImportDisposition chns, ImportMode mode
}
int
-Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality quality, nframes64_t& pos,
+Editor::import_sndfiles (vector<string> paths, ImportMode mode, SrcQuality quality, nframes64_t& pos,
int target_regions, int target_tracks, boost::shared_ptr<Track>& track, bool replace)
{
import_status.paths = paths;
@@ -546,7 +551,7 @@ Editor::import_sndfiles (vector<ustring> paths, ImportMode mode, SrcQuality qual
}
int
-Editor::embed_sndfiles (vector<Glib::ustring> paths, bool multifile,
+Editor::embed_sndfiles (vector<string> paths, bool multifile,
bool& check_sample_rate, ImportMode mode, nframes64_t& pos, int target_regions, int target_tracks,
boost::shared_ptr<Track>& track)
{
@@ -555,14 +560,14 @@ Editor::embed_sndfiles (vector<Glib::ustring> paths, bool multifile,
string linked_path;
SoundFileInfo finfo;
int ret = 0;
- Glib::ustring path_to_use;
+ string path_to_use;
track_canvas->get_window()->set_cursor (Gdk::Cursor (Gdk::WATCH));
gdk_flush ();
- for (vector<Glib::ustring>::iterator p = paths.begin(); p != paths.end(); ++p) {
+ for (vector<string>::iterator p = paths.begin(); p != paths.end(); ++p) {
- ustring path = *p;
+ string path = *p;
if (Config->get_try_link_for_embed()) {
@@ -714,11 +719,11 @@ Editor::embed_sndfiles (vector<Glib::ustring> paths, bool multifile,
}
int
-Editor::add_sources (vector<Glib::ustring> paths, SourceList& sources, nframes64_t& pos, ImportMode mode,
+Editor::add_sources (vector<string> paths, SourceList& sources, nframes64_t& pos, ImportMode mode,
int target_regions, int target_tracks, boost::shared_ptr<Track>& track, bool /*add_channel_suffix*/)
{
vector<boost::shared_ptr<Region> > regions;
- ustring region_name;
+ string region_name;
uint32_t input_chan = 0;
uint32_t output_chan = 0;
bool use_timestamp;
diff --git a/gtk2_ardour/editor_canvas.cc b/gtk2_ardour/editor_canvas.cc
index 27f9128ce5..52850644be 100644
--- a/gtk2_ardour/editor_canvas.cc
+++ b/gtk2_ardour/editor_canvas.cc
@@ -443,14 +443,14 @@ Editor::track_canvas_drag_data_received (const RefPtr<Gdk::DragContext>& context
}
bool
-Editor::idle_drop_paths (vector<ustring> paths, nframes64_t frame, double ypos)
+Editor::idle_drop_paths (vector<string> paths, nframes64_t frame, double ypos)
{
drop_paths_part_two (paths, frame, ypos);
return false;
}
void
-Editor::drop_paths_part_two (const vector<ustring>& paths, nframes64_t frame, double ypos)
+Editor::drop_paths_part_two (const vector<string>& paths, nframes64_t frame, double ypos)
{
RouteTimeAxisView* tv;
@@ -490,7 +490,7 @@ Editor::drop_paths (const RefPtr<Gdk::DragContext>& context,
const SelectionData& data,
guint info, guint time)
{
- vector<ustring> paths;
+ vector<string> paths;
GdkEvent ev;
nframes64_t frame;
double wx;
diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc
index 91cebff090..3a38f1490c 100644
--- a/gtk2_ardour/editor_regions.cc
+++ b/gtk2_ardour/editor_regions.cc
@@ -1119,7 +1119,7 @@ EditorRegions::drag_data_received (const RefPtr<Gdk::DragContext>& context,
const SelectionData& data,
guint info, guint time)
{
- vector<ustring> paths;
+ vector<string> paths;
if (data.get_target() == "GTK_TREE_MODEL_ROW") {
/* something is being dragged over the region list */
diff --git a/gtk2_ardour/export_dialog.cc b/gtk2_ardour/export_dialog.cc
index ae8e963d9a..964be075f2 100644
--- a/gtk2_ardour/export_dialog.cc
+++ b/gtk2_ardour/export_dialog.cc
@@ -33,6 +33,7 @@
using namespace ARDOUR;
using namespace PBD;
+using std::string;
ExportDialog::ExportDialog (PublicEditor & editor, Glib::ustring title) :
ArdourDialog (title),
@@ -243,18 +244,18 @@ ExportDialog::update_warnings ()
boost::shared_ptr<ExportProfileManager::Warnings> warnings = profile_manager->get_warnings();
- for (std::list<Glib::ustring>::iterator it = warnings->errors.begin(); it != warnings->errors.end(); ++it) {
+ for (std::list<string>::iterator it = warnings->errors.begin(); it != warnings->errors.end(); ++it) {
add_error (*it);
}
- for (std::list<Glib::ustring>::iterator it = warnings->warnings.begin(); it != warnings->warnings.end(); ++it) {
+ for (std::list<string>::iterator it = warnings->warnings.begin(); it != warnings->warnings.end(); ++it) {
add_warning (*it);
}
if (!warnings->conflicting_filenames.empty()) {
list_files_hbox.show ();
- for (std::list<Glib::ustring>::iterator it = warnings->conflicting_filenames.begin(); it != warnings->conflicting_filenames.end(); ++it) {
- Glib::ustring::size_type pos = it->find_last_of ("/");
+ for (std::list<string>::iterator it = warnings->conflicting_filenames.begin(); it != warnings->conflicting_filenames.end(); ++it) {
+ string::size_type pos = it->find_last_of ("/");
list_files_string += "\n" + it->substr (0, pos + 1) + "<b>" + it->substr (pos + 1) + "</b>";
}
}
@@ -350,7 +351,7 @@ ExportDialog::progress_timeout ()
}
void
-ExportDialog::add_error (Glib::ustring const & text)
+ExportDialog::add_error (string const & text)
{
fast_export_button->set_sensitive (false);
//rt_export_button->set_sensitive (false);
@@ -365,7 +366,7 @@ ExportDialog::add_error (Glib::ustring const & text)
}
void
-ExportDialog::add_warning (Glib::ustring const & text)
+ExportDialog::add_warning (string const & text)
{
if (warn_string.empty()) {
warn_string = _("<span color=\"#ffa755\">Warning: ") + text + "</span>";
@@ -378,7 +379,7 @@ ExportDialog::add_warning (Glib::ustring const & text)
/*** Dialog specializations ***/
-ExportRangeDialog::ExportRangeDialog (PublicEditor & editor, Glib::ustring range_id) :
+ExportRangeDialog::ExportRangeDialog (PublicEditor & editor, string range_id) :
ExportDialog (editor, _("Export Range")),
range_id (range_id)
{}
@@ -422,7 +423,7 @@ ExportRegionDialog::init_gui ()
void
ExportRegionDialog::init_components ()
{
- Glib::ustring loc_id = profile_manager->set_single_range (region.position(), region.position() + region.length(), region.name());
+ string loc_id = profile_manager->set_single_range (region.position(), region.position() + region.length(), region.name());
preset_selector.reset (new ExportPresetSelector ());
timespan_selector.reset (new ExportTimespanSelectorSingle (_session, profile_manager, loc_id));
diff --git a/gtk2_ardour/export_dialog.h b/gtk2_ardour/export_dialog.h
index 93d3b21654..4182b0f236 100644
--- a/gtk2_ardour/export_dialog.h
+++ b/gtk2_ardour/export_dialog.h
@@ -22,6 +22,7 @@
#define __export_dialog_h__
#include <boost/scoped_ptr.hpp>
+#include <string>
#include "ardour/export_profile_manager.h"
@@ -120,8 +121,8 @@ class ExportDialog : public ArdourDialog {
Gtk::Button list_files_button;
Glib::ustring list_files_string;
- void add_error (Glib::ustring const & text);
- void add_warning (Glib::ustring const & text);
+ void add_error (std::string const & text);
+ void add_warning (std::string const & text);
/* Progress bar */
@@ -140,12 +141,12 @@ class ExportDialog : public ArdourDialog {
class ExportRangeDialog : public ExportDialog
{
public:
- ExportRangeDialog (PublicEditor & editor, Glib::ustring range_id);
+ ExportRangeDialog (PublicEditor & editor, std::string range_id);
private:
void init_components ();
-
- Glib::ustring range_id;
+
+ std::string range_id;
};
class ExportSelectionDialog : public ExportDialog
diff --git a/gtk2_ardour/export_format_selector.h b/gtk2_ardour/export_format_selector.h
index 6e1dd52786..9533b15d9b 100644
--- a/gtk2_ardour/export_format_selector.h
+++ b/gtk2_ardour/export_format_selector.h
@@ -21,12 +21,12 @@
#ifndef __export_format_selector_h__
#define __export_format_selector_h__
-#include "ardour/export_profile_manager.h"
-
+#include <string>
#include <gtkmm.h>
#include <sigc++/signal.h>
#include <boost/shared_ptr.hpp>
+#include "ardour/export_profile_manager.h"
#include "ardour/session_handle.h"
namespace ARDOUR {
@@ -76,7 +76,7 @@ class ExportFormatSelector : public Gtk::HBox, public ARDOUR::SessionHandlePtr
{
public:
Gtk::TreeModelColumn<FormatPtr> format;
- Gtk::TreeModelColumn<Glib::ustring> label;
+ Gtk::TreeModelColumn<std::string> label;
FormatCols () { add (format); add (label); }
};
diff --git a/gtk2_ardour/session_metadata_dialog.cc b/gtk2_ardour/session_metadata_dialog.cc
index f93c57abe4..e437625480 100644
--- a/gtk2_ardour/session_metadata_dialog.cc
+++ b/gtk2_ardour/session_metadata_dialog.cc
@@ -37,7 +37,7 @@ using namespace Glib;
/*** MetadataField ***/
-MetadataField::MetadataField (ustring const & field_name) :
+MetadataField::MetadataField (string const & field_name) :
_name (field_name)
{
}
@@ -46,7 +46,7 @@ MetadataField::~MetadataField() { }
/* TextMetadataField */
-TextMetadataField::TextMetadataField (Getter getter, Setter setter, ustring const & field_name, guint width ) :
+TextMetadataField::TextMetadataField (Getter getter, Setter setter, string const & field_name, guint width ) :
MetadataField (field_name),
getter (getter),
setter (setter),
@@ -112,7 +112,7 @@ TextMetadataField::update_value ()
/* NumberMetadataField */
-NumberMetadataField::NumberMetadataField (Getter getter, Setter setter, ustring const & field_name, guint numbers, guint width) :
+NumberMetadataField::NumberMetadataField (Getter getter, Setter setter, string const & field_name, guint numbers, guint width) :
MetadataField (field_name),
getter (getter),
setter (setter),
@@ -183,7 +183,7 @@ NumberMetadataField::edit_widget ()
return *entry;
}
-ustring
+string
NumberMetadataField::uint_to_str (uint32_t i) const
{
std::ostringstream oss ("");
@@ -196,11 +196,11 @@ NumberMetadataField::uint_to_str (uint32_t i) const
}
uint32_t
-NumberMetadataField::str_to_uint (ustring const & str) const
+NumberMetadataField::str_to_uint (string const & str) const
{
- ustring tmp (str);
- ustring::size_type i;
- while ((i = tmp.find_first_not_of("1234567890")) != ustring::npos) {
+ string tmp (str);
+ string::size_type i;
+ while ((i = tmp.find_first_not_of("1234567890")) != string::npos) {
tmp.erase (i, 1);
}
@@ -213,8 +213,8 @@ NumberMetadataField::str_to_uint (ustring const & str) const
/* SessionMetadataSet */
-SessionMetadataSet::SessionMetadataSet (ustring const & name) :
- name (name)
+SessionMetadataSet::SessionMetadataSet (string const & name)
+ : name (name)
{
}
@@ -226,8 +226,8 @@ SessionMetadataSet::add_data_field (MetadataPtr field)
/* SessionMetadataSetEditable */
-SessionMetadataSetEditable::SessionMetadataSetEditable (ustring const & name) :
- SessionMetadataSet (name)
+SessionMetadataSetEditable::SessionMetadataSetEditable (string const & name)
+ : SessionMetadataSet (name)
{
table.set_row_spacings (6);
table.set_col_spacings (12);
@@ -277,9 +277,9 @@ SessionMetadataSetEditable::save_data ()
/* SessionMetadataSetImportable */
-SessionMetadataSetImportable::SessionMetadataSetImportable (ustring const & name) :
- SessionMetadataSet (name),
- session_list (list)
+SessionMetadataSetImportable::SessionMetadataSetImportable (string const & name)
+ : SessionMetadataSet (name)
+ , session_list (list)
{
tree = Gtk::ListStore::create (tree_cols);
tree_view.set_model (tree);
@@ -351,8 +351,8 @@ SessionMetadataSetImportable::load_extra_data (ARDOUR::SessionMetadata const & d
import_field->load_data(data); // hasn't been done yet
// Make string for values TODO get color from somewhere?
- ustring values = "<span weight=\"ultralight\" color=\"#777\">" + session_field->value() + "</span>\n"
- + "<span weight=\"bold\">" + import_field->value() + "</span>";
+ string values = "<span weight=\"ultralight\" color=\"#777\">" + session_field->value() + "</span>\n"
+ + "<span weight=\"bold\">" + import_field->value() + "</span>";
Gtk::TreeModel::iterator row_iter = tree->append();
Gtk::TreeModel::Row row = *row_iter;
@@ -401,7 +401,7 @@ SessionMetadataSetImportable::select_all ()
}
void
-SessionMetadataSetImportable::selection_changed (ustring const & path)
+SessionMetadataSetImportable::selection_changed (string const & path)
{
select_all_check.set_inconsistent (true);
@@ -413,7 +413,7 @@ SessionMetadataSetImportable::selection_changed (ustring const & path)
/* SessionMetadataDialog */
template <typename DataSet>
-SessionMetadataDialog<DataSet>::SessionMetadataDialog (ustring const & name) :
+SessionMetadataDialog<DataSet>::SessionMetadataDialog (string const & name) :
ArdourDialog (name, true)
{
cancel_button = add_button (Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL);
@@ -477,7 +477,7 @@ SessionMetadataDialog<DataSet>::end_dialog ()
template <typename DataSet>
void
-SessionMetadataDialog<DataSet>::warn_user (ustring const & string)
+SessionMetadataDialog<DataSet>::warn_user (string const & string)
{
Gtk::MessageDialog msg (string, false, Gtk::MESSAGE_WARNING, Gtk::BUTTONS_OK, true);
msg.run();
diff --git a/gtk2_ardour/session_metadata_dialog.h b/gtk2_ardour/session_metadata_dialog.h
index be64c90ae9..fbe430e7ad 100644
--- a/gtk2_ardour/session_metadata_dialog.h
+++ b/gtk2_ardour/session_metadata_dialog.h
@@ -36,15 +36,15 @@ typedef boost::shared_ptr<MetadataField> MetadataPtr;
/// Wraps a metadata field to be used in a GUI
class MetadataField {
public:
- MetadataField (Glib::ustring const & field_name);
+ MetadataField (std::string const & field_name);
virtual ~MetadataField();
virtual MetadataPtr copy () = 0;
virtual void save_data (ARDOUR::SessionMetadata & data) const = 0;
virtual void load_data (ARDOUR::SessionMetadata const & data) = 0;
- virtual Glib::ustring name() { return _name; }
- virtual Glib::ustring value() { return _value; }
+ virtual std::string name() { return _name; }
+ virtual std::string value() { return _value; }
/// Get widget containing name of field
virtual Gtk::Widget & name_widget () = 0;
@@ -53,17 +53,17 @@ class MetadataField {
/// Get widget for editing value
virtual Gtk::Widget & edit_widget () = 0;
protected:
- Glib::ustring _name;
- Glib::ustring _value;
+ std::string _name;
+ std::string _value;
};
/// MetadataField that contains text
class TextMetadataField : public MetadataField {
private:
- typedef Glib::ustring (ARDOUR::SessionMetadata::*Getter) () const;
- typedef void (ARDOUR::SessionMetadata::*Setter) (Glib::ustring const &);
+ typedef std::string (ARDOUR::SessionMetadata::*Getter) () const;
+ typedef void (ARDOUR::SessionMetadata::*Setter) (std::string const &);
public:
- TextMetadataField (Getter getter, Setter setter, Glib::ustring const & field_name, guint width = 50);
+ TextMetadataField (Getter getter, Setter setter, std::string const & field_name, guint width = 50);
MetadataPtr copy ();
void save_data (ARDOUR::SessionMetadata & data) const;
@@ -91,7 +91,7 @@ class NumberMetadataField : public MetadataField {
typedef uint32_t (ARDOUR::SessionMetadata::*Getter) () const;
typedef void (ARDOUR::SessionMetadata::*Setter) (uint32_t);
public:
- NumberMetadataField (Getter getter, Setter setter, Glib::ustring const & field_name, guint numbers, guint width = 50);
+ NumberMetadataField (Getter getter, Setter setter, std::string const & field_name, guint numbers, guint width = 50);
MetadataPtr copy ();
void save_data (ARDOUR::SessionMetadata & data) const;
@@ -102,8 +102,8 @@ class NumberMetadataField : public MetadataField {
Gtk::Widget & edit_widget ();
private:
void update_value ();
- Glib::ustring uint_to_str (uint32_t i) const;
- uint32_t str_to_uint (Glib::ustring const & str) const;
+ std::string uint_to_str (uint32_t i) const;
+ uint32_t str_to_uint (std::string const & str) const;
Getter getter;
Setter setter;
@@ -119,7 +119,7 @@ class NumberMetadataField : public MetadataField {
/// Interface for MetadataFields
class SessionMetadataSet : public ARDOUR::SessionHandlePtr {
public:
- SessionMetadataSet (Glib::ustring const & name);
+ SessionMetadataSet (std::string const & name);
virtual ~SessionMetadataSet () {};
void add_data_field (MetadataPtr field);
@@ -135,13 +135,13 @@ class SessionMetadataSet : public ARDOUR::SessionHandlePtr {
protected:
typedef std::list<MetadataPtr> DataList;
DataList list;
- Glib::ustring name;
+ std::string name;
};
/// Contains MetadataFields for editing
class SessionMetadataSetEditable : public SessionMetadataSet {
public:
- SessionMetadataSetEditable (Glib::ustring const & name);
+ SessionMetadataSetEditable (std::string const & name);
Gtk::Widget & get_widget () { return vbox; }
Gtk::Widget & get_tab_widget ();
@@ -160,7 +160,7 @@ class SessionMetadataSetEditable : public SessionMetadataSet {
/// Contains MetadataFields for importing
class SessionMetadataSetImportable : public SessionMetadataSet {
public:
- SessionMetadataSetImportable (Glib::ustring const & name);
+ SessionMetadataSetImportable (std::string const & name);
Gtk::Widget & get_widget () { return tree_view; }
Gtk::Widget & get_tab_widget ();
@@ -178,8 +178,8 @@ class SessionMetadataSetImportable : public SessionMetadataSet {
struct Columns : public Gtk::TreeModel::ColumnRecord
{
public:
- Gtk::TreeModelColumn<Glib::ustring> field;
- Gtk::TreeModelColumn<Glib::ustring> values;
+ Gtk::TreeModelColumn<std::string> field;
+ Gtk::TreeModelColumn<std::string> values;
Gtk::TreeModelColumn<bool> import;
Gtk::TreeModelColumn<MetadataPtr> data;
@@ -194,7 +194,7 @@ class SessionMetadataSetImportable : public SessionMetadataSet {
Gtk::CheckButton select_all_check;
void select_all ();
- void selection_changed (Glib::ustring const & path);
+ void selection_changed (std::string const & path);
};
/// Metadata dialog interface
@@ -206,7 +206,7 @@ template <typename DataSet>
class SessionMetadataDialog : public ArdourDialog
{
public:
- SessionMetadataDialog (Glib::ustring const & name);
+ SessionMetadataDialog (std::string const & name);
protected:
void init_data ();
@@ -217,7 +217,7 @@ class SessionMetadataDialog : public ArdourDialog
virtual void save_and_close ();
virtual void end_dialog ();
- void warn_user (Glib::ustring const & string);
+ void warn_user (std::string const & string);
typedef std::list<Gtk::Widget *> WidgetList;
typedef boost::shared_ptr<WidgetList> WidgetListPtr;
diff --git a/gtk2_ardour/startup.cc b/gtk2_ardour/startup.cc
index 02e301b940..5ac50d7a8e 100644
--- a/gtk2_ardour/startup.cc
+++ b/gtk2_ardour/startup.cc
@@ -27,6 +27,7 @@
#include "pbd/file_utils.h"
#include "pbd/filesystem.h"
#include "pbd/replace_all.h"
+#include "pbd/whitespace.h"
#include "ardour/filesystem_paths.h"
#include "ardour/recent_sessions.h"
@@ -207,7 +208,9 @@ ArdourStartup::session_name (bool& should_be_new)
{
if (ic_new_session_button.get_active()) {
should_be_new = true;
- return new_name_entry.get_text ();
+ string val = new_name_entry.get_text ();
+ strip_whitespace_edges (val);
+ return val;
} else if (_existing_session_chooser_used) {
/* existing session chosen from file chooser */
should_be_new = false;