Allow renaming of FX mixer channels with the F2 and enter keys. (#4348)

* Add f2 as a FX mixer rename shortcut. Enter doesn't work yet.

* Add both enter keys, remove code duplication

* Fix renaming with enter/return

* Clean up
This commit is contained in:
SecondFlight
2018-05-13 17:15:32 -04:00
committed by GitHub
parent 0d73f32c03
commit 4585a07673
4 changed files with 36 additions and 1 deletions

View File

@@ -79,6 +79,10 @@ public:
static const int FxLineHeight;
void renameChannel();
bool eventFilter (QObject *dist, QEvent *event);
private:
void drawFxLine( QPainter* p, const FxLine *fxLine, bool isActive, bool sendToThis, bool receiveFromThis );
QString elideName( const QString & name );
@@ -98,7 +102,6 @@ private:
QGraphicsView * m_view;
private slots:
void renameChannel();
void renameFinished();
void removeChannel();
void removeUnusedChannels();

View File

@@ -100,6 +100,8 @@ public:
void moveChannelLeft(int index, int focusIndex);
void moveChannelRight(int index);
void renameChannel(int index);
// make sure the display syncs up with the fx mixer.
// useful for loading projects
void refreshDisplay();

View File

@@ -491,6 +491,12 @@ void FxMixerView::moveChannelRight(int index)
}
void FxMixerView::renameChannel(int index)
{
m_fxChannelViews[index]->m_fxLine->renameChannel();
}
void FxMixerView::keyPressEvent(QKeyEvent * e)
{
@@ -527,6 +533,11 @@ void FxMixerView::keyPressEvent(QKeyEvent * e)
addNewChannel();
}
break;
case Qt::Key_Enter:
case Qt::Key_Return:
case Qt::Key_F2:
renameChannel( m_currentFxLine->channelIndex() );
break;
}
}

View File

@@ -34,6 +34,24 @@
#include "GuiApplication.h"
#include "Song.h"
bool FxLine::eventFilter( QObject *dist, QEvent *event )
{
// If we are in a rename, capture the enter/return events and handle them
if ( event->type() == QEvent::KeyPress )
{
QKeyEvent * keyEvent = static_cast<QKeyEvent*>(event);
if( keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return )
{
if( m_inRename )
{
renameFinished();
event->accept(); // Stop the event from propagating
return true;
}
}
}
return false;
}
const int FxLine::FxLineHeight = 287;
QPixmap * FxLine::s_sendBgArrow = NULL;
@@ -100,6 +118,7 @@ FxLine::FxLine( QWidget * _parent, FxMixerView * _mv, int _channelIndex ) :
m_renameLineEdit->setFixedWidth( 65 );
m_renameLineEdit->setFont( pointSizeF( font(), 7.5f ) );
m_renameLineEdit->setReadOnly( true );
m_renameLineEdit->installEventFilter( this );
QGraphicsScene * scene = new QGraphicsScene();
scene->setSceneRect( 0, 0, 33, FxLineHeight );