From 0c4833ca4a007187a807b3eb5e3d187bf158e79a Mon Sep 17 00:00:00 2001 From: Lukas W Date: Tue, 6 Jan 2015 23:40:14 +0100 Subject: [PATCH] Adjust automation editor flip implementation --- include/AutomationEditor.h | 7 ++-- include/AutomationPattern.h | 1 + src/core/AutomationPattern.cpp | 8 +++++ src/gui/editors/AutomationEditor.cpp | 50 +++++++++++----------------- 4 files changed, 31 insertions(+), 35 deletions(-) diff --git a/include/AutomationEditor.h b/include/AutomationEditor.h index a96c8ae71..64cfeb718 100644 --- a/include/AutomationEditor.h +++ b/include/AutomationEditor.h @@ -131,9 +131,6 @@ protected slots: void setEditMode(AutomationEditor::EditModes mode); void setEditMode(int mode); - void flipYButtonPressed(); - void flipXButtonPressed(); - void setProgressionType(AutomationPattern::ProgressionTypes type); void setProgressionType(int type); void setTension(); @@ -286,8 +283,8 @@ private: QAction* m_linearAction; QAction* m_cubicHermiteAction; - ToolButton * m_flipYButton; - ToolButton * m_flipXButton; + QAction* m_flipYAction; + QAction* m_flipXAction; Knob * m_tensionKnob; diff --git a/include/AutomationPattern.h b/include/AutomationPattern.h index 231b73836..5257cecab 100644 --- a/include/AutomationPattern.h +++ b/include/AutomationPattern.h @@ -159,6 +159,7 @@ public slots: void clear(); void objectDestroyed( jo_id_t ); void flipY( int min, int max ); + void flipY(); void flipX( int length = -1 ); private: diff --git a/src/core/AutomationPattern.cpp b/src/core/AutomationPattern.cpp index 7564a46f0..ac69b6539 100644 --- a/src/core/AutomationPattern.cpp +++ b/src/core/AutomationPattern.cpp @@ -408,6 +408,14 @@ void AutomationPattern::flipY( int min, int max ) +void AutomationPattern::flipY() +{ + flipY(getMin(), getMax()); +} + + + + void AutomationPattern::flipX( int length ) { timeMap tempMap; diff --git a/src/gui/editors/AutomationEditor.cpp b/src/gui/editors/AutomationEditor.cpp index 897acfbff..57f0bae86 100644 --- a/src/gui/editors/AutomationEditor.cpp +++ b/src/gui/editors/AutomationEditor.cpp @@ -1645,21 +1645,6 @@ void AutomationEditor::setEditMode(AutomationEditor::EditModes mode) -void AutomationEditor::flipYButtonPressed() -{ - m_pattern->flipY( m_minLevel, m_maxLevel ); -} - - - - -void AutomationEditor::flipXButtonPressed() -{ - m_pattern->flipX(); -} - - - void AutomationEditor::setEditMode(int mode) { setEditMode((AutomationEditor::EditModes) mode); @@ -2036,20 +2021,13 @@ AutomationEditorWindow::AutomationEditorWindow() : QAction* eraseAction = editModeGroup->addAction(embed::getIconPixmap("edit_erase"), tr("Erase mode (Shift+E)")); eraseAction->setShortcut(Qt::SHIFT | Qt::Key_E); - m_flipYButton = new ToolButton( embed::getIconPixmap( "flip_y" ), - tr( "Flip Vertically" ), - m_editor, SLOT( flipYButtonPressed() ), - m_toolBar ); + m_flipYAction = new QAction(embed::getIconPixmap("flip_y"), tr("Flip vertically"), this); + m_flipXAction = new QAction(embed::getIconPixmap("flip_x"), tr("Flip horizontally"), this); - m_flipXButton = new ToolButton( embed::getIconPixmap( "flip_x" ), - tr( "Flip Horizontally" ), - m_editor, SLOT( flipXButtonPressed() ), - m_toolBar ); - - m_flipYButton->setWhatsThis( + m_flipYAction->setWhatsThis( tr( "Click here and the pattern will be inverted." "The points are flipped in the y direction. " ) ); - m_flipXButton->setWhatsThis( + m_flipXAction->setWhatsThis( tr( "Click here and the pattern will be reversed. " "The points are flipped in the x direction." ) ); @@ -2208,8 +2186,8 @@ AutomationEditorWindow::AutomationEditorWindow() : m_toolBar->addAction(eraseAction); // m_toolBar->addAction(m_selectButton); // m_toolBar->addAction(m_moveButton); - m_toolBar->addWidget(m_flipXButton); - m_toolBar->addWidget(m_flipYButton); + m_toolBar->addAction(m_flipXAction); + m_toolBar->addAction(m_flipYAction); m_toolBar->addSeparator(); m_toolBar->addAction(m_discreteAction); m_toolBar->addAction(m_linearAction); @@ -2251,13 +2229,17 @@ AutomationEditorWindow::~AutomationEditorWindow() void AutomationEditorWindow::setCurrentPattern(AutomationPattern* pattern) { + // Disconnect our old pattern if (currentPattern() != nullptr) { m_editor->m_pattern->disconnect(this); + m_flipXAction->disconnect(); + m_flipYAction->disconnect(); } m_editor->setCurrentPattern(pattern); + // Set our window's title if (pattern == nullptr) { setWindowTitle( tr( "Automation Editor - no pattern" ) ); @@ -2266,6 +2248,7 @@ void AutomationEditorWindow::setCurrentPattern(AutomationPattern* pattern) setWindowTitle( tr( "Automation Editor - %1" ).arg( m_editor->m_pattern->name() ) ); + switch(m_editor->m_pattern->progressionType()) { case AutomationPattern::DiscreteProgression: @@ -2279,8 +2262,15 @@ void AutomationEditorWindow::setCurrentPattern(AutomationPattern* pattern) break; } - connect(pattern, SIGNAL(dataChanged()), this, SLOT(update())); - connect(pattern, SIGNAL(destroyed()), this, SLOT(clearCurrentPattern())); + // Connect new pattern + if (pattern) + { + connect(pattern, SIGNAL(dataChanged()), this, SLOT(update())); + connect(pattern, SIGNAL(destroyed()), this, SLOT(clearCurrentPattern())); + + connect(m_flipXAction, SIGNAL(triggered()), pattern, SLOT(flipX())); + connect(m_flipYAction, SIGNAL(triggered()), pattern, SLOT(flipY())); + } emit currentPatternChanged(); }