diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2010-09-14 15:45:21 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2010-09-14 15:45:21 +0000 |
commit | 4d112a8e6b90fa64a5cd333042044768111ba994 (patch) | |
tree | 6688c5250bc55de106f74ef9be93d7ee574ec9d8 /gtk2_ardour | |
parent | 875f0befd5fb52678d25544fcbcb6e6b55a2c483 (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.cc | 34 | ||||
-rw-r--r-- | gtk2_ardour/editor.cc | 4 | ||||
-rw-r--r-- | gtk2_ardour/editor.h | 92 | ||||
-rw-r--r-- | gtk2_ardour/editor_audio_import.cc | 43 | ||||
-rw-r--r-- | gtk2_ardour/editor_canvas.cc | 6 | ||||
-rw-r--r-- | gtk2_ardour/editor_regions.cc | 2 | ||||
-rw-r--r-- | gtk2_ardour/export_dialog.cc | 17 | ||||
-rw-r--r-- | gtk2_ardour/export_dialog.h | 11 | ||||
-rw-r--r-- | gtk2_ardour/export_format_selector.h | 6 | ||||
-rw-r--r-- | gtk2_ardour/session_metadata_dialog.cc | 40 | ||||
-rw-r--r-- | gtk2_ardour/session_metadata_dialog.h | 40 | ||||
-rw-r--r-- | gtk2_ardour/startup.cc | 5 |
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; |