Skip to content

Commit

Permalink
Merge pull request LMMS#3676 from M374LX/stable-1.2
Browse files Browse the repository at this point in the history
With this pull request, the user is able to cancel a track rename action by pressing the Escape key.

Also renamed rename_dlg to renameDlg in TrackLabelButton::rename() so it complies to the naming conventions.

Fixes LMMS#3675.
  • Loading branch information
tresf committed Jul 14, 2017
2 parents 4b68185 + e449a9a commit 04a0bc7
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 5 deletions.
5 changes: 3 additions & 2 deletions include/TrackLabelButton.h
Expand Up @@ -29,9 +29,10 @@
#include <QToolButton>
#include <QLineEdit>


class TrackView;

class TrackRenameLineEdit;


class TrackLabelButton : public QToolButton
{
Expand Down Expand Up @@ -60,7 +61,7 @@ public slots:
private:
TrackView * m_trackView;
QString m_iconName;
QLineEdit * m_renameLineEdit;
TrackRenameLineEdit * m_renameLineEdit;
QRect m_buttonRect;
QString elideName( const QString &name );

Expand Down
46 changes: 46 additions & 0 deletions include/TrackRenameLineEdit.h
@@ -0,0 +1,46 @@
/*
* TrackRenameLineEdit.h - class TrackRenameLineEdit
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2017 Alexandre Almeida <http://m374lx.users.sourceforge.net/>
*
* This file is part of LMMS - https://lmms.io
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/


#ifndef TRACK_RENAME_LINE_EDIT_H
#define TRACK_RENAME_LINE_EDIT_H

#include <QLineEdit>

class TrackRenameLineEdit : public QLineEdit
{
Q_OBJECT
public:
TrackRenameLineEdit( QWidget * parent );
void show();

protected:
virtual void keyPressEvent( QKeyEvent * ke );

private:
QString m_oldName;
} ;

#endif
1 change: 1 addition & 0 deletions src/gui/CMakeLists.txt
Expand Up @@ -85,6 +85,7 @@ SET(LMMS_SRCS
gui/widgets/ToolButton.cpp
gui/widgets/ToolTip.cpp
gui/widgets/TrackLabelButton.cpp
gui/widgets/TrackRenameLineEdit.cpp
gui/widgets/VisualizationWidget.cpp

PARENT_SCOPE
Expand Down
7 changes: 4 additions & 3 deletions src/gui/widgets/TrackLabelButton.cpp
Expand Up @@ -36,6 +36,7 @@
#include "InstrumentTrack.h"
#include "RenameDialog.h"
#include "Song.h"
#include "TrackRenameLineEdit.h"



Expand All @@ -48,7 +49,7 @@ TrackLabelButton::TrackLabelButton( TrackView * _tv, QWidget * _parent ) :
setAcceptDrops( true );
setCursor( QCursor( embed::getIconPixmap( "hand" ), 3, 3 ) );
setToolButtonStyle( Qt::ToolButtonTextBesideIcon );
m_renameLineEdit = new QLineEdit( this );
m_renameLineEdit = new TrackRenameLineEdit( this );
m_renameLineEdit->hide();

if( ConfigManager::inst()->value( "ui", "compacttrackbuttons" ).toInt() )
Expand Down Expand Up @@ -83,8 +84,8 @@ void TrackLabelButton::rename()
if( ConfigManager::inst()->value( "ui", "compacttrackbuttons" ).toInt() )
{
QString txt = m_trackView->getTrack()->name();
RenameDialog rename_dlg( txt );
rename_dlg.exec();
RenameDialog renameDlg( txt );
renameDlg.exec();
if( txt != text() )
{
m_trackView->getTrack()->setName( txt );
Expand Down
61 changes: 61 additions & 0 deletions src/gui/widgets/TrackRenameLineEdit.cpp
@@ -0,0 +1,61 @@
/*
* TrackRenameLineEdit.cpp - implementation of class TrackRenameLineEdit, which
* represents the text field that appears when one
* double-clicks a track's label to rename it
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2017 Alexandre Almeida <http://m374lx.users.sourceforge.net/>
*
* This file is part of LMMS - https://lmms.io
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/


#include "TrackRenameLineEdit.h"

#include <QKeyEvent>



TrackRenameLineEdit::TrackRenameLineEdit( QWidget * parent ) :
QLineEdit( parent )
{
}




void TrackRenameLineEdit::show()
{
m_oldName = text();
QLineEdit::show();
}




void TrackRenameLineEdit::keyPressEvent( QKeyEvent * ke )
{
if( ke->key() == Qt::Key_Escape )
{
setText( m_oldName );
hide();
}

QLineEdit::keyPressEvent( ke );
}

0 comments on commit 04a0bc7

Please sign in to comment.