mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-06 14:54:56 +01:00
fix some issues with zoom focus after refactoring it into EditingContext
This commit is contained in:
parent
050828cc10
commit
fb4fefe573
8 changed files with 30 additions and 25 deletions
|
|
@ -9,6 +9,8 @@ CueEditor::CueEditor (std::string const & name)
|
|||
, HistoryOwner (X_("cue-editor"))
|
||||
{
|
||||
_history.Changed.connect (history_connection, invalidator (*this), std::bind (&CueEditor::history_changed, this), gui_context());
|
||||
|
||||
set_zoom_focus (Editing::ZoomFocusMouse);
|
||||
}
|
||||
|
||||
CueEditor::~CueEditor ()
|
||||
|
|
@ -143,21 +145,24 @@ CueEditor::get_y_origin () const
|
|||
}
|
||||
|
||||
void
|
||||
CueEditor::set_zoom_focus (Editing::ZoomFocus)
|
||||
CueEditor::set_zoom_focus (Editing::ZoomFocus zf)
|
||||
{
|
||||
}
|
||||
using namespace Editing;
|
||||
|
||||
Editing::ZoomFocus
|
||||
CueEditor::get_zoom_focus () const
|
||||
{
|
||||
return Editing::ZoomFocusMouse;
|
||||
if (zf == ZoomFocusPlayhead) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (_zoom_focus != zf) {
|
||||
_zoom_focus = zf;
|
||||
ZoomFocusChanged (); /* EMIT SIGNAL */
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
CueEditor::set_samples_per_pixel (samplecnt_t n)
|
||||
{
|
||||
samples_per_pixel = n;
|
||||
std::cerr << "zoom changed to " << samples_per_pixel << std::endl;
|
||||
ZoomChanged(); /* EMIT SIGNAL */
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -71,7 +71,6 @@ class CueEditor : public EditingContext, public PBD::HistoryOwner, public sigc::
|
|||
double get_y_origin () const;
|
||||
|
||||
void set_zoom_focus (Editing::ZoomFocus);
|
||||
Editing::ZoomFocus get_zoom_focus () const;
|
||||
samplecnt_t get_current_zoom () const;
|
||||
void set_samples_per_pixel (samplecnt_t);
|
||||
void reposition_and_zoom (samplepos_t, double);
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ EditingContext::EditingContext (std::string const & name)
|
|||
, _selection_memento (new SelectionMemento())
|
||||
, _verbose_cursor (nullptr)
|
||||
, samples_per_pixel (2048)
|
||||
, zoom_focus (ZoomFocusPlayhead)
|
||||
, _zoom_focus (ZoomFocusPlayhead)
|
||||
, bbt_ruler_scale (bbt_show_many)
|
||||
, bbt_bars (0)
|
||||
, bbt_bar_helper_on (0)
|
||||
|
|
@ -2768,7 +2768,7 @@ EditingContext::follow_playhead_clicked ()
|
|||
void
|
||||
EditingContext::cycle_zoom_focus ()
|
||||
{
|
||||
switch (zoom_focus) {
|
||||
switch (_zoom_focus) {
|
||||
case ZoomFocusLeft:
|
||||
set_zoom_focus (ZoomFocusRight);
|
||||
break;
|
||||
|
|
@ -2793,7 +2793,7 @@ EditingContext::cycle_zoom_focus ()
|
|||
void
|
||||
EditingContext::temporal_zoom_step_mouse_focus_scale (bool zoom_out, double scale)
|
||||
{
|
||||
PBD::Unwinder<Editing::ZoomFocus> zf (zoom_focus, Editing::ZoomFocusMouse);
|
||||
PBD::Unwinder<Editing::ZoomFocus> zf (_zoom_focus, Editing::ZoomFocusMouse);
|
||||
temporal_zoom_step_scale (zoom_out, scale);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -322,9 +322,10 @@ class EditingContext : public ARDOUR::SessionHandlePtr, public AxisViewProvider
|
|||
void set_samples_per_pixel (samplecnt_t);
|
||||
virtual void on_samples_per_pixel_changed () {}
|
||||
|
||||
virtual void cycle_zoom_focus ();
|
||||
virtual void set_zoom_focus (Editing::ZoomFocus) = 0;
|
||||
virtual Editing::ZoomFocus get_zoom_focus () const = 0;
|
||||
void cycle_zoom_focus ();
|
||||
Editing::ZoomFocus zoom_focus () const { return _zoom_focus; }
|
||||
sigc::signal<void> ZoomFocusChanged;
|
||||
|
||||
virtual void reposition_and_zoom (samplepos_t, double) = 0;
|
||||
|
||||
|
|
@ -557,8 +558,8 @@ class EditingContext : public ARDOUR::SessionHandlePtr, public AxisViewProvider
|
|||
VerboseCursor* _verbose_cursor;
|
||||
|
||||
samplecnt_t samples_per_pixel;
|
||||
Editing::ZoomFocus zoom_focus;
|
||||
virtual Editing::ZoomFocus effective_zoom_focus() const { return zoom_focus; }
|
||||
Editing::ZoomFocus _zoom_focus;
|
||||
virtual Editing::ZoomFocus effective_zoom_focus() const { return _zoom_focus; }
|
||||
|
||||
Temporal::timepos_t _snap_to_bbt (Temporal::timepos_t const & start,
|
||||
Temporal::RoundMode direction,
|
||||
|
|
|
|||
|
|
@ -2161,8 +2161,8 @@ Editor::set_state (const XMLNode& node, int version)
|
|||
|
||||
node.get_property ("mixer-width", editor_mixer_strip_width);
|
||||
|
||||
node.get_property ("zoom-focus", zoom_focus);
|
||||
zoom_focus_selection_done (zoom_focus);
|
||||
node.get_property ("zoom-focus", _zoom_focus);
|
||||
zoom_focus_selection_done (_zoom_focus);
|
||||
|
||||
node.get_property ("marker-click-behavior", marker_click_behavior);
|
||||
marker_click_behavior_selection_done (marker_click_behavior);
|
||||
|
|
@ -2312,7 +2312,7 @@ Editor::get_state () const
|
|||
|
||||
maybe_add_mixer_strip_width (*node);
|
||||
|
||||
node->set_property ("zoom-focus", zoom_focus);
|
||||
node->set_property ("zoom-focus", _zoom_focus);
|
||||
|
||||
node->set_property ("edit-point", _edit_point);
|
||||
node->set_property ("visible-track-count", _visible_track_count);
|
||||
|
|
@ -3371,9 +3371,10 @@ Editor::set_zoom_focus (ZoomFocus f)
|
|||
zoom_focus_selector.set_text (str);
|
||||
}
|
||||
|
||||
if (zoom_focus != f) {
|
||||
zoom_focus = f;
|
||||
if (_zoom_focus != f) {
|
||||
_zoom_focus = f;
|
||||
instant_save ();
|
||||
ZoomFocusChanged (); /* EMIT SIGNAL */
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3817,7 +3818,7 @@ Editor::current_visual_state (bool with_tracks)
|
|||
vs->y_position = vertical_adjustment.get_value();
|
||||
vs->samples_per_pixel = samples_per_pixel;
|
||||
vs->_leftmost_sample = _leftmost_sample;
|
||||
vs->zoom_focus = zoom_focus;
|
||||
vs->zoom_focus = _zoom_focus;
|
||||
|
||||
if (with_tracks) {
|
||||
vs->gui_state->set_state (ARDOUR_UI::instance()->gui_object_state->get_state());
|
||||
|
|
|
|||
|
|
@ -504,7 +504,6 @@ public:
|
|||
void focus_on_clock();
|
||||
|
||||
void set_zoom_focus (Editing::ZoomFocus);
|
||||
Editing::ZoomFocus get_zoom_focus () const { return zoom_focus; }
|
||||
|
||||
void temporal_zoom_selection (Editing::ZoomAxis);
|
||||
void temporal_zoom_session ();
|
||||
|
|
|
|||
|
|
@ -9396,11 +9396,11 @@ Editor::ripple_marks (std::shared_ptr<Playlist> target_playlist, timepos_t at, t
|
|||
Editing::ZoomFocus
|
||||
Editor::effective_zoom_focus() const
|
||||
{
|
||||
if (zoom_focus == ZoomFocusEdit && _edit_point == EditAtMouse) {
|
||||
if (_zoom_focus == ZoomFocusEdit && _edit_point == EditAtMouse) {
|
||||
return ZoomFocusMouse;
|
||||
}
|
||||
|
||||
return zoom_focus;
|
||||
return _zoom_focus;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -910,7 +910,7 @@ LuaInstance::register_classes (lua_State* L, bool sandbox)
|
|||
.addFunction ("get_cut_buffer", &EditingContext::get_cut_buffer)
|
||||
|
||||
.addFunction ("set_zoom_focus", &EditingContext::set_zoom_focus)
|
||||
.addFunction ("get_zoom_focus", &EditingContext::get_zoom_focus)
|
||||
.addFunction ("zoom_focus", &EditingContext::zoom_focus)
|
||||
.addFunction ("get_current_zoom", &EditingContext::get_current_zoom)
|
||||
.addFunction ("reset_zoom", &EditingContext::reset_zoom)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue