summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-04-06 02:27:24 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-04-06 02:27:24 +0000
commit8ed825c3dddbd0feaf30ef1311dac30454ac5cdd (patch)
tree106031abb005110218ceafc135adca98f0089c5b /gtk2_ardour
parentd4a73c373a5447ed777b62206159e57a2cc88607 (diff)
fix nasty logic error that leads to crashing bugs when trying to operate on regions that have been subject to undo/redo
git-svn-id: svn://localhost/ardour2/trunk@1670 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/editor_audio_import.cc2
-rw-r--r--gtk2_ardour/editor_mouse.cc2
-rw-r--r--gtk2_ardour/selection.cc1
-rw-r--r--gtk2_ardour/utils.cc51
-rw-r--r--gtk2_ardour/utils.h1
5 files changed, 4 insertions, 53 deletions
diff --git a/gtk2_ardour/editor_audio_import.cc b/gtk2_ardour/editor_audio_import.cc
index cf57261aa6..df737429bd 100644
--- a/gtk2_ardour/editor_audio_import.cc
+++ b/gtk2_ardour/editor_audio_import.cc
@@ -19,6 +19,7 @@
#include <pbd/pthread_utils.h>
#include <pbd/basename.h>
+#include <pbd/shortpath.h>
#include <gtkmm2ext/choice.h>
#include <gtkmm2ext/window_title.h>
@@ -380,7 +381,6 @@ Editor::embed_sndfile (vector<Glib::ustring> paths, bool split, bool multiple_fi
boost::shared_ptr<Source> s;
if ((s = session->source_by_path_and_channel (path, n)) == 0) {
- cerr << "source doesn't exist yet\n";
source = boost::dynamic_pointer_cast<AudioFileSource> (SourceFactory::createReadable
(*session, path, n,
(mode == ImportAsTapeTrack ?
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index e9b71e4e85..356504d809 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -3381,6 +3381,8 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
boost::shared_ptr<Playlist> to_playlist = rv->region()->playlist();
+ assert (to_playlist);
+
/* add the undo */
session->add_command (new MementoCommand<Playlist>(*to_playlist, &to_playlist->get_state(), 0));
diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc
index 2b1b522d12..1e8874444c 100644
--- a/gtk2_ardour/selection.cc
+++ b/gtk2_ardour/selection.cc
@@ -20,6 +20,7 @@
#include <algorithm>
#include <sigc++/bind.h>
#include <pbd/error.h>
+#include <pbd/stacktrace.h>
#include <ardour/playlist.h>
diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc
index 9c1ef22a88..b4d02591e9 100644
--- a/gtk2_ardour/utils.cc
+++ b/gtk2_ardour/utils.cc
@@ -576,55 +576,4 @@ key_is_legal_for_numeric_entry (guint keyval)
}
-ustring
-short_path (ustring path, uint32_t target_characters)
-{
- ustring::size_type last_sep;
- ustring::size_type len = path.length();
- const char separator = '/';
-
- if (len <= target_characters) {
- return path;
- }
-
- if ((last_sep = path.find_last_of (separator)) == ustring::npos) {
-
- /* just a filename, but its too long anyway */
-
- if (target_characters > 3) {
- return path.substr (0, target_characters - 3) + ustring ("...");
- } else {
- /* stupid caller, just hand back the whole thing */
- return path;
- }
- }
-
- if (len - last_sep >= target_characters) {
-
- /* even the filename itself is too long */
-
- if (target_characters > 3) {
- return path.substr (last_sep+1, target_characters - 3) + ustring ("...");
- } else {
- /* stupid caller, just hand back the whole thing */
- return path;
- }
- }
-
- uint32_t so_far = (len - last_sep);
- uint32_t space_for = target_characters - so_far;
-
- if (space_for >= 3) {
- ustring res = "...";
- res += path.substr (last_sep - space_for);
- return res;
- } else {
- /* remove part of the end */
- ustring res = "...";
- res += path.substr (last_sep - space_for, len - last_sep + space_for - 3);
- res += "...";
- return res;
-
- }
-}
diff --git a/gtk2_ardour/utils.h b/gtk2_ardour/utils.h
index b95f09d243..7e26ba066c 100644
--- a/gtk2_ardour/utils.h
+++ b/gtk2_ardour/utils.h
@@ -81,6 +81,5 @@ static std::map<std::string, Glib::RefPtr<Gdk::Pixbuf> > xpm_map;
const char* const *get_xpm_data (std::string path);
std::string longest (std::vector<std::string>&);
bool key_is_legal_for_numeric_entry (guint keyval);
-Glib::ustring short_path (Glib::ustring, uint32_t target_characters);
#endif /* __ardour_gtk_utils_h__ */