add functionality for cut tool
This commit is contained in:
parent
7ec397c019
commit
779fe6c082
@ -470,6 +470,11 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||
void metric_get_samples (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
|
||||
void metric_get_minsec (std::vector<ArdourCanvas::Ruler::Mark>&, gdouble, gdouble, gint);
|
||||
|
||||
/* editing operations that need to be public */
|
||||
void mouse_add_new_marker (framepos_t where, bool is_cd=false, bool is_xrun=false);
|
||||
void split_region ();
|
||||
void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
|
||||
|
||||
protected:
|
||||
void map_transport_state ();
|
||||
void map_position_change (framepos_t);
|
||||
@ -625,7 +630,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||
|
||||
void hide_marker (ArdourCanvas::Item*, GdkEvent*);
|
||||
void clear_marker_display ();
|
||||
void mouse_add_new_marker (framepos_t where, bool is_cd=false, bool is_xrun=false);
|
||||
void mouse_add_new_range (framepos_t);
|
||||
bool choose_new_marker_name(std::string &name);
|
||||
void update_cd_marker_display ();
|
||||
@ -1135,7 +1139,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||
void lower_region_to_bottom ();
|
||||
void split_regions_at (framepos_t, RegionSelection&);
|
||||
void split_region_at_transients ();
|
||||
void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false);
|
||||
void crop_region_to_selection ();
|
||||
void crop_region_to (framepos_t start, framepos_t end);
|
||||
void set_sync_point (framepos_t, const RegionSelection&);
|
||||
@ -1187,8 +1190,6 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
|
||||
|
||||
void reset_focus ();
|
||||
|
||||
void split_region ();
|
||||
|
||||
void delete_ ();
|
||||
void cut ();
|
||||
void copy ();
|
||||
|
@ -5447,3 +5447,24 @@ CrossfadeEdgeDrag::aborted (bool)
|
||||
}
|
||||
}
|
||||
|
||||
RegionCutDrag::RegionCutDrag (Editor* e, ArdourCanvas::Item* item)
|
||||
: Drag (e, item, true)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
RegionCutDrag::motion (GdkEvent*, bool)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
RegionCutDrag::finished (GdkEvent*, bool)
|
||||
{
|
||||
_editor->split_region ();
|
||||
}
|
||||
|
||||
void
|
||||
RegionCutDrag::aborted (bool)
|
||||
{
|
||||
}
|
||||
|
@ -440,6 +440,16 @@ private:
|
||||
|
||||
};
|
||||
|
||||
/** "Drag" to cut a region (action only on button release) */
|
||||
class RegionCutDrag : public Drag
|
||||
{
|
||||
public:
|
||||
RegionCutDrag (Editor*, ArdourCanvas::Item*);
|
||||
void motion (GdkEvent*, bool);
|
||||
void finished (GdkEvent*, bool);
|
||||
void aborted (bool);
|
||||
};
|
||||
|
||||
/** Drags to create regions */
|
||||
class RegionCreateDrag : public Drag
|
||||
{
|
||||
|
@ -40,7 +40,7 @@ using namespace PBD;
|
||||
using namespace Editing;
|
||||
|
||||
void
|
||||
Editor::keyboard_selection_finish (bool add)
|
||||
Editor::keyboard_selection_finish (bool /*add*/)
|
||||
{
|
||||
if (_session) {
|
||||
|
||||
|
@ -240,7 +240,7 @@ Editor::set_mouse_mode (MouseMode m, bool force)
|
||||
break;
|
||||
|
||||
case MouseCut:
|
||||
act = ActionManager::get_action (X_("MouseCut"), X_("set-mouse-mode-cut"));
|
||||
act = ActionManager::get_action (X_("MouseMode"), X_("set-mouse-mode-cut"));
|
||||
break;
|
||||
|
||||
case MouseObject:
|
||||
@ -854,6 +854,23 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||
}
|
||||
break;
|
||||
|
||||
case MouseCut:
|
||||
switch (item_type) {
|
||||
case RegionItem:
|
||||
case FadeInHandleItem:
|
||||
case FadeOutHandleItem:
|
||||
case LeftFrameHandle:
|
||||
case RightFrameHandle:
|
||||
case FeatureLineItem:
|
||||
case RegionViewNameHighlight:
|
||||
case RegionViewName:
|
||||
_drags->set (new RegionCutDrag (this, item), event, current_canvas_cursor);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case MouseObject:
|
||||
switch (item_type) {
|
||||
case NoteItem:
|
||||
|
@ -295,6 +295,7 @@ class PublicEditor : public Gtk::Window, public PBD::StatefulDestructible, publi
|
||||
virtual void update_tearoff_visibility () = 0;
|
||||
virtual framepos_t get_preferred_edit_position (bool ignore_playhead = false, bool from_context_menu = false) = 0;
|
||||
virtual void toggle_meter_updating() = 0;
|
||||
virtual void split_region () = 0;
|
||||
virtual void split_region_at_points (boost::shared_ptr<ARDOUR::Region>, ARDOUR::AnalysisFeatureList&, bool can_ferret, bool select_new = false) = 0;
|
||||
virtual void mouse_add_new_marker (framepos_t where, bool is_cd=false, bool is_xrun=false) = 0;
|
||||
virtual void foreach_time_axis_view (sigc::slot<void,TimeAxisView&>) = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user