correct check for presence of / or \ in a session name
[ardour.git] / gtk2_ardour / editor_region_list.cc
index fb22f6ed676ea8760a2e4a099bfc4bdc8e24ca53..0e14391895fd78c3b8add627634b36095cb13366 100644 (file)
@@ -29,6 +29,7 @@
 #include <ardour/audiofilesource.h>
 #include <ardour/silentfilesource.h>
 #include <ardour/session_region.h>
+#include <ardour/profile.h>
 
 #include <gtkmm2ext/stop_signal.h>
 
@@ -134,8 +135,8 @@ Editor::add_audio_region_to_region_display (boost::shared_ptr<AudioRegion> regio
                for (i = rows.begin(); i != rows.end(); ++i) {
                        
                        boost::shared_ptr<Region> rr = (*i)[region_list_columns.region];
-
-                       if (region->region_list_equivalent (rr)) {
+                       
+                       if (rr && region->region_list_equivalent (rr)) {
                                return;
                        }
                }
@@ -386,8 +387,6 @@ Editor::region_list_display_button_press (GdkEventButton *ev)
        int cellx;
        int celly;
 
-       // cerr << "Button press release, button = " << ev->button << endl;
-
        if (region_list_display.get_path_at_pos ((int)ev->x, (int)ev->y, path, column, cellx, celly)) {
                if ((iter = region_list_model->get_iter (path))) {
                        region = (*iter)[region_list_columns.region];
@@ -396,33 +395,17 @@ Editor::region_list_display_button_press (GdkEventButton *ev)
 
        if (Keyboard::is_context_menu_event (ev)) {
                show_region_list_display_context_menu (ev->button, ev->time);
-               cerr << "\tcontext menu event, event handled\n";
                return true;
        }
 
-       if (region == 0) {
-               cerr << "\tno region, event not handled\n";
-               return false;
-       }
-
-       switch (ev->button) {
-       case 1:
-               break;
-
-       case 2:
-               // audition on middle click (stop audition too)
+       if (region != 0 && Keyboard::is_button2_event (ev)) {
+               // start/stop audition 
                if (!Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
                        consider_auditioning (region);
                }
-               cerr << "\taudition, event handled\n";
                return true;
-               break;
-
-       default:
-               break; 
        }
 
-       cerr << "\tnot handled\n";
        return false;
 }      
 
@@ -465,7 +448,7 @@ Editor::consider_auditioning (boost::shared_ptr<Region> region)
                if (r == last_audition_region) {
                        return;
                }
-       }
+       } 
 
        session->audition_region (r);
        last_audition_region = r;
@@ -643,14 +626,17 @@ Editor::region_list_display_drag_data_received (const RefPtr<Gdk::DragContext>&
        vector<ustring> paths;
 
        if (data.get_target() == "GTK_TREE_MODEL_ROW") {
-               cerr << "Delete drag data drop to treeview\n";
                region_list_display.on_drag_data_received (context, x, y, data, info, time);
                return;
        }
 
        if (convert_drop_to_paths (paths, context, x, y, data, info, time) == 0) {
                nframes64_t pos = 0;
-               do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos);
+               if (Profile->get_sae() || Config->get_only_copy_imported_files()) {
+                       do_import (paths, Editing::ImportDistinctFiles, Editing::ImportAsRegion, SrcBest, pos); 
+               } else {
+                       do_embed (paths, Editing::ImportDistinctFiles, ImportAsRegion, pos);
+               }
                context->drag_finish (true, false, time);
        }
 }