better fix for duplicate regions, fix nasty side-effects from recent directory structure changes, debug info for d-n-d issue

git-svn-id: svn://localhost/ardour2/trunk@919 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis
2006-09-18 15:16:29 +00:00
parent 2b2a51b4a3
commit ea6de825fa
7 changed files with 24 additions and 12 deletions

View File

@@ -73,13 +73,13 @@ ActionManager::init ()
ui_manager->add_ui_from_file (ui_file);
loaded = true;
} catch (Glib::MarkupError& err) {
error << "badly formatted UI definition file" << endmsg;
error << _("badly formatted UI definition file") << endmsg;
} catch (...) {
error << "Ardour menu definition file not found" << endmsg;
error << _("Ardour menu definition file not found") << endmsg;
}
if (!loaded) {
error << "ardour will not work without a valid ardour.menus file" << endmsg;
error << _("ardour will not work without a valid ardour.menus file") << endmsg;
exit(1);
}
}
@@ -277,7 +277,7 @@ ActionManager::uncheck_toggleaction (const char * name)
RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic(act);
tact->set_active (false);
} else {
error << "Unknown action name: " << name << endmsg;
error << string_compose (_("Unknown action name: %1"), name) << endmsg;
}
delete [] group_name;

View File

@@ -504,9 +504,14 @@ AudioStreamView::setup_rec_box ()
/* remove temp regions */
for (list<boost::shared_ptr<ARDOUR::Region> >::iterator i = rec_regions.begin(); i != rec_regions.end(); ++i) {
(*i)->drop_references();
for (list<boost::shared_ptr<Region> >::iterator iter = rec_regions.begin(); iter != rec_regions.end();) {
list<boost::shared_ptr<Region> >::iterator tmp;
tmp = iter;
++tmp;
(*iter)->drop_references ();
iter = tmp;
}
rec_regions.clear();
// cerr << "\tclear " << rec_rects.size() << " rec rects\n";

View File

@@ -417,6 +417,8 @@ Editor::track_canvas_drag_data_received (const RefPtr<Gdk::DragContext>& context
const SelectionData& data,
guint info, guint time)
{
cerr << "dropping, target = " << data.get_target() << endl;
if (data.get_target() == "regions") {
drop_regions (context, x, y, data, info, time);
} else {

View File

@@ -1581,7 +1581,7 @@ AudioDiskstream::transport_stopped (struct tm& when, time_t twhen, bool abort_ca
string region_name;
_session.region_name (region_name, channels[0].write_source->name(), false);
cerr << _name << ": based on ci of " << (*ci)->start << " for " << (*ci)->frames << " add region " << region_name << endl;
// cerr << _name << ": based on ci of " << (*ci)->start << " for " << (*ci)->frames << " add region " << region_name << endl;
try {
boost::shared_ptr<Region> rx (RegionFactory::create (srcs, buffer_position, (*ci)->frames, region_name));

View File

@@ -2950,7 +2950,7 @@ Session::audio_path_from_name (string name, uint32_t nchan, uint32_t chan, bool
spath = (*i).path;
spath += sound_dir_name;
spath += sound_dir (false);
if (destructive) {
if (nchan < 2) {
@@ -2986,9 +2986,10 @@ Session::audio_path_from_name (string name, uint32_t nchan, uint32_t chan, bool
}
}
if (access (buf, F_OK) == 0) {
if (g_file_test (buf, G_FILE_TEST_EXISTS)) {
existing++;
}
}
}
if (existing == 0) {

View File

@@ -226,7 +226,6 @@ SndFileSource::open ()
_length = _info.frames;
_broadcast_info = new SF_BROADCAST_INFO;
memset (_broadcast_info, 0, sizeof (*_broadcast_info));

View File

@@ -48,6 +48,8 @@ DnDTreeView::serialize_pointers (RefPtr<TreeModel> model, TreeSelection::ListHan
uint32_t cnt = selection->size();
uint32_t sz = (sizeof (void*) * cnt) + sizeof (SerializedObjectPointers);
cerr << "lets plan to serialize " << cnt << " from selection\n";
char* buf = new char[sz];
SerializedObjectPointers* sr = new (buf) SerializedObjectPointers;
@@ -59,10 +61,12 @@ DnDTreeView::serialize_pointers (RefPtr<TreeModel> model, TreeSelection::ListHan
cnt = 0;
for (TreeSelection::ListHandle_Path::iterator x = selection->begin(); x != selection->end(); ++x, ++cnt) {
cerr << "getting next item\n";
TreeModel::Row row = *(model->get_iter (*x));
row.get_value (data_column, sr->ptr[cnt]);
}
cerr << "returning an SR with size = " << sr->size << endl;
return sr;
}
@@ -79,6 +83,7 @@ DnDTreeView::on_drag_data_get(const RefPtr<DragContext>& context, SelectionData&
SerializedObjectPointers* sr = serialize_pointers (get_model(), &selection, selection_data.get_target());
selection_data.set (8, (guchar*)sr, sr->size);
cerr << "selection data set to contain " << sr->size << endl;
}
}