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:
@@ -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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user