From f194146ab6967894f64ee2fd9935a30035206d34 Mon Sep 17 00:00:00 2001 From: IanCaio Date: Thu, 17 Sep 2020 09:35:32 -0300 Subject: [PATCH] Makes Clipboard a namespace instead of a class Makes Clipboard a namespace instead of a class and adds "using namespace Clipboard;" statements to methods that required functions from that namespace. The only two methods where the statement wasn't added were StringPairDrag::decodeKey and StringPairDrag::decodeValue because they are both one-liners. --- include/Clipboard.h | 23 ++++--- plugins/Lv2Instrument/Lv2Instrument.cpp | 7 +- .../audio_file_processor.cpp | 7 +- plugins/patman/patman.cpp | 7 +- plugins/vestige/vestige.cpp | 14 ++-- plugins/zynaddsubfx/ZynAddSubFx.cpp | 7 +- src/core/Clipboard.cpp | 65 ++++++++++--------- src/core/Track.cpp | 36 +++++++--- src/gui/AutomatableModelView.cpp | 10 ++- src/gui/StringPairDrag.cpp | 12 +++- src/gui/editors/PianoRoll.cpp | 10 ++- 11 files changed, 127 insertions(+), 71 deletions(-) diff --git a/include/Clipboard.h b/include/Clipboard.h index 88707d6c058..a2dced9a6b7 100644 --- a/include/Clipboard.h +++ b/include/Clipboard.h @@ -29,9 +29,8 @@ #include -class Clipboard +namespace Clipboard { -public: enum class MimeType { StringPair, @@ -39,26 +38,26 @@ class Clipboard }; // Convenience Methods - static const QMimeData * getMimeData(); - static bool hasFormat( MimeType mT ); + const QMimeData * getMimeData(); + bool hasFormat( MimeType mT ); // Helper methods for String data - static void copyString( const QString & str, MimeType mT ); - static QString getString( MimeType mT ); + void copyString( const QString & str, MimeType mT ); + QString getString( MimeType mT ); // Helper methods for String Pair data - static void copyStringPair( const QString & key, const QString & value ); - static QString decodeKey( const QMimeData * mimeData ); - static QString decodeValue( const QMimeData * mimeData ); + void copyStringPair( const QString & key, const QString & value ); + QString decodeKey( const QMimeData * mimeData ); + QString decodeValue( const QMimeData * mimeData ); - static const char * mimeType( MimeType type ) + inline const char * mimeType( MimeType type ) { switch( type ) { - case Clipboard::MimeType::StringPair: + case MimeType::StringPair: return "application/x-lmms-stringpair"; break; - case Clipboard::MimeType::Default: + case MimeType::Default: default: return "application/x-lmms-clipboard"; break; diff --git a/plugins/Lv2Instrument/Lv2Instrument.cpp b/plugins/Lv2Instrument/Lv2Instrument.cpp index 78a89391839..1547018ea81 100644 --- a/plugins/Lv2Instrument/Lv2Instrument.cpp +++ b/plugins/Lv2Instrument/Lv2Instrument.cpp @@ -239,12 +239,15 @@ Lv2InsView::Lv2InsView(Lv2Instrument *_instrument, QWidget *_parent) : void Lv2InsView::dragEnterEvent(QDragEnterEvent *_dee) { + // For mimeType() and MimeType enum class + using namespace Clipboard; + void (QDragEnterEvent::*reaction)(void) = &QDragEnterEvent::ignore; - if (_dee->mimeData()->hasFormat( Clipboard::mimeType( Clipboard::MimeType::StringPair ))) + if (_dee->mimeData()->hasFormat( mimeType( MimeType::StringPair ))) { const QString txt = - _dee->mimeData()->data( Clipboard::mimeType( Clipboard::MimeType::StringPair ) ); + _dee->mimeData()->data( mimeType( MimeType::StringPair ) ); if (txt.section(':', 0, 0) == "pluginpresetfile") { reaction = &QDragEnterEvent::acceptProposedAction; } diff --git a/plugins/audio_file_processor/audio_file_processor.cpp b/plugins/audio_file_processor/audio_file_processor.cpp index 51aa8a1424b..5f579816e41 100644 --- a/plugins/audio_file_processor/audio_file_processor.cpp +++ b/plugins/audio_file_processor/audio_file_processor.cpp @@ -569,10 +569,13 @@ AudioFileProcessorView::~AudioFileProcessorView() void AudioFileProcessorView::dragEnterEvent( QDragEnterEvent * _dee ) { - if( _dee->mimeData()->hasFormat( Clipboard::mimeType( Clipboard::MimeType::StringPair ) ) ) + // For mimeType() and MimeType enum class + using namespace Clipboard; + + if( _dee->mimeData()->hasFormat( mimeType( MimeType::StringPair ) ) ) { QString txt = _dee->mimeData()->data( - Clipboard::mimeType( Clipboard::MimeType::StringPair ) ); + mimeType( MimeType::StringPair ) ); if( txt.section( ':', 0, 0 ) == QString( "tco_%1" ).arg( Track::SampleTrack ) ) { diff --git a/plugins/patman/patman.cpp b/plugins/patman/patman.cpp index b091c5e14ed..b694ee2a00f 100644 --- a/plugins/patman/patman.cpp +++ b/plugins/patman/patman.cpp @@ -581,10 +581,13 @@ void PatmanView::updateFilename( void ) void PatmanView::dragEnterEvent( QDragEnterEvent * _dee ) { - if( _dee->mimeData()->hasFormat( Clipboard::mimeType( Clipboard::MimeType::StringPair ) ) ) + // For mimeType() and MimeType enum class + using namespace Clipboard; + + if( _dee->mimeData()->hasFormat( mimeType( MimeType::StringPair ) ) ) { QString txt = _dee->mimeData()->data( - Clipboard::mimeType( Clipboard::MimeType::StringPair ) ); + mimeType( MimeType::StringPair ) ); if( txt.section( ':', 0, 0 ) == "samplefile" ) { _dee->acceptProposedAction(); diff --git a/plugins/vestige/vestige.cpp b/plugins/vestige/vestige.cpp index 36ad087ec4f..b2c15859464 100644 --- a/plugins/vestige/vestige.cpp +++ b/plugins/vestige/vestige.cpp @@ -834,10 +834,13 @@ void VestigeInstrumentView::noteOffAll( void ) void VestigeInstrumentView::dragEnterEvent( QDragEnterEvent * _dee ) { - if( _dee->mimeData()->hasFormat( Clipboard::mimeType( Clipboard::MimeType::StringPair ) ) ) + // For mimeType() and MimeType enum class + using namespace Clipboard; + + if( _dee->mimeData()->hasFormat( mimeType( MimeType::StringPair ) ) ) { QString txt = _dee->mimeData()->data( - Clipboard::mimeType( Clipboard::MimeType::StringPair ) ); + mimeType( MimeType::StringPair ) ); if( txt.section( ':', 0, 0 ) == "vstplugin" ) { _dee->acceptProposedAction(); @@ -1176,10 +1179,13 @@ void manageVestigeInstrumentView::syncParameterText() void manageVestigeInstrumentView::dragEnterEvent( QDragEnterEvent * _dee ) { - if( _dee->mimeData()->hasFormat( Clipboard::mimeType( Clipboard::MimeType::StringPair ) ) ) + // For mimeType() and MimeType enum class + using namespace Clipboard; + + if( _dee->mimeData()->hasFormat( mimeType( MimeType::StringPair ) ) ) { QString txt = _dee->mimeData()->data( - Clipboard::mimeType( Clipboard::MimeType::StringPair ) ); + mimeType( MimeType::StringPair ) ); if( txt.section( ':', 0, 0 ) == "vstplugin" ) { _dee->acceptProposedAction(); diff --git a/plugins/zynaddsubfx/ZynAddSubFx.cpp b/plugins/zynaddsubfx/ZynAddSubFx.cpp index 0d8956e4faf..8446d36f65b 100644 --- a/plugins/zynaddsubfx/ZynAddSubFx.cpp +++ b/plugins/zynaddsubfx/ZynAddSubFx.cpp @@ -579,10 +579,13 @@ ZynAddSubFxView::~ZynAddSubFxView() void ZynAddSubFxView::dragEnterEvent( QDragEnterEvent * _dee ) { - if( _dee->mimeData()->hasFormat( Clipboard::mimeType( Clipboard::MimeType::StringPair ) ) ) + // For mimeType() and MimeType enum class + using namespace Clipboard; + + if( _dee->mimeData()->hasFormat( mimeType( MimeType::StringPair ) ) ) { QString txt = _dee->mimeData()->data( - Clipboard::mimeType( Clipboard::MimeType::StringPair ) ); + mimeType( MimeType::StringPair ) ); if( txt.section( ':', 0, 0 ) == "pluginpresetfile" ) { _dee->acceptProposedAction(); diff --git a/src/core/Clipboard.cpp b/src/core/Clipboard.cpp index 4429a78bdef..9b7cf2e775c 100644 --- a/src/core/Clipboard.cpp +++ b/src/core/Clipboard.cpp @@ -30,62 +30,65 @@ #include "JournallingObject.h" -const QMimeData * Clipboard::getMimeData() +namespace Clipboard { - return QApplication::clipboard()->mimeData( QClipboard::Clipboard ); -} + const QMimeData * getMimeData() + { + return QApplication::clipboard()->mimeData( QClipboard::Clipboard ); + } -bool Clipboard::hasFormat( MimeType mT ) -{ - return getMimeData()->hasFormat( mimeType( mT ) ); -} + bool hasFormat( MimeType mT ) + { + return getMimeData()->hasFormat( mimeType( mT ) ); + } -void Clipboard::copyString( const QString & str, MimeType mT ) -{ - QMimeData *content = new QMimeData; + void copyString( const QString & str, MimeType mT ) + { + QMimeData *content = new QMimeData; - content->setData( mimeType( mT ), str.toUtf8() ); - QApplication::clipboard()->setMimeData( content, QClipboard::Clipboard ); -} + content->setData( mimeType( mT ), str.toUtf8() ); + QApplication::clipboard()->setMimeData( content, QClipboard::Clipboard ); + } -QString Clipboard::getString( MimeType mT ) -{ - return QString( getMimeData()->data( mimeType( mT ) ) ); -} + QString getString( MimeType mT ) + { + return QString( getMimeData()->data( mimeType( mT ) ) ); + } -void Clipboard::copyStringPair( const QString & key, const QString & value ) -{ - QString finalString = key + ":" + value; + void copyStringPair( const QString & key, const QString & value ) + { + QString finalString = key + ":" + value; - QMimeData *content = new QMimeData; - content->setData( mimeType( MimeType::StringPair ), finalString.toUtf8() ); - QApplication::clipboard()->setMimeData( content, QClipboard::Clipboard ); -} + QMimeData *content = new QMimeData; + content->setData( mimeType( MimeType::StringPair ), finalString.toUtf8() ); + QApplication::clipboard()->setMimeData( content, QClipboard::Clipboard ); + } -QString Clipboard::decodeKey( const QMimeData * mimeData ) -{ - return( QString::fromUtf8( mimeData->data( mimeType( MimeType::StringPair ) ) ).section( ':', 0, 0 ) ); -} + QString decodeKey( const QMimeData * mimeData ) + { + return( QString::fromUtf8( mimeData->data( mimeType( MimeType::StringPair ) ) ).section( ':', 0, 0 ) ); + } -QString Clipboard::decodeValue( const QMimeData * mimeData ) -{ - return( QString::fromUtf8( mimeData->data( mimeType( MimeType::StringPair ) ) ).section( ':', 1, -1 ) ); + QString decodeValue( const QMimeData * mimeData ) + { + return( QString::fromUtf8( mimeData->data( mimeType( MimeType::StringPair ) ) ).section( ':', 1, -1 ) ); + } } diff --git a/src/core/Track.cpp b/src/core/Track.cpp index 7ed832fb220..1a62d676cd7 100644 --- a/src/core/Track.cpp +++ b/src/core/Track.cpp @@ -1216,11 +1216,14 @@ void TrackContentObjectView::remove( QVector tcovs ) void TrackContentObjectView::copy( QVector tcovs ) { + // For copyStringPair() + using namespace Clipboard; + // Write the TCOs to a DataFile for copying DataFile dataFile = createTCODataFiles( tcovs ); // Copy the TCO type as a key and the TCO data file to the clipboard - Clipboard::copyStringPair( QString( "tco_%1" ).arg( m_tco->getTrack()->type() ), + copyStringPair( QString( "tco_%1" ).arg( m_tco->getTrack()->type() ), dataFile.toString() ); } @@ -1235,12 +1238,15 @@ void TrackContentObjectView::cut( QVector tcovs ) void TrackContentObjectView::paste() { + // For getMimeData() + using namespace Clipboard; + // If possible, paste the selection on the MidiTime of the selected Track and remove it MidiTime tcoPos = MidiTime( m_tco->startPosition() ); TrackContentWidget *tcw = getTrackView()->getTrackContentWidget(); - if( tcw->pasteSelection( tcoPos, Clipboard::getMimeData() ) ) + if( tcw->pasteSelection( tcoPos, getMimeData() ) ) { // If we succeed on the paste we delete the TCO we pasted on remove(); @@ -1641,9 +1647,12 @@ bool TrackContentWidget::canPasteSelection( MidiTime tcoPos, const QDropEvent* d // Overloaded method to make it possible to call this method without a Drag&Drop event bool TrackContentWidget::canPasteSelection( MidiTime tcoPos, const QMimeData* md , bool allowSameBar ) { + // For decodeKey() and decodeValue() + using namespace Clipboard; + Track * t = getTrack(); - QString type = Clipboard::decodeKey( md ); - QString value = Clipboard::decodeValue( md ); + QString type = decodeKey( md ); + QString value = decodeValue( md ); // We can only paste into tracks of the same type if( type != ( "tco_" + QString::number( t->type() ) ) || @@ -1727,14 +1736,17 @@ bool TrackContentWidget::pasteSelection( MidiTime tcoPos, QDropEvent * de ) // Overloaded method so we can call it without a Drag&Drop event bool TrackContentWidget::pasteSelection( MidiTime tcoPos, const QMimeData * md, bool skipSafetyCheck ) { + // For decodeKey() and decodeValue() + using namespace Clipboard; + // When canPasteSelection was already called before, skipSafetyCheck will skip this if( !skipSafetyCheck && canPasteSelection( tcoPos, md ) == false ) { return false; } - QString type = Clipboard::decodeKey( md ); - QString value = Clipboard::decodeValue( md ); + QString type = decodeKey( md ); + QString value = decodeValue( md ); getTrack()->addJournalCheckPoint(); @@ -1928,6 +1940,9 @@ MidiTime TrackContentWidget::endPosition( const MidiTime & posStart ) void TrackContentWidget::contextMenuEvent( QContextMenuEvent * cme ) { + // For hasFormat(), MimeType enum class and getMimeData() + using namespace Clipboard; + if( cme->modifiers() ) { return; @@ -1935,7 +1950,7 @@ void TrackContentWidget::contextMenuEvent( QContextMenuEvent * cme ) // If we don't have TCO data in the clipboard there's no need to create this menu // since "paste" is the only action at the moment. - if( ! Clipboard::hasFormat( Clipboard::MimeType::StringPair ) ) + if( ! hasFormat( MimeType::StringPair ) ) { return; } @@ -1944,20 +1959,23 @@ void TrackContentWidget::contextMenuEvent( QContextMenuEvent * cme ) QAction *pasteA = contextMenu.addAction( embed::getIconPixmap( "edit_paste" ), tr( "Paste" ), [this, cme](){ contextMenuAction( cme, Paste ); } ); // If we can't paste in the current TCW for some reason, disable the action so the user knows - pasteA->setEnabled( canPasteSelection( getPosition( cme->x() ), Clipboard::getMimeData() ) ? true : false ); + pasteA->setEnabled( canPasteSelection( getPosition( cme->x() ), getMimeData() ) ? true : false ); contextMenu.exec( QCursor::pos() ); } void TrackContentWidget::contextMenuAction( QContextMenuEvent * cme, ContextMenuAction action ) { + // For getMimeData() + using namespace Clipboard; + switch( action ) { case Paste: // Paste the selection on the MidiTime of the context menu event MidiTime tcoPos = getPosition( cme->x() ); - pasteSelection( tcoPos, Clipboard::getMimeData() ); + pasteSelection( tcoPos, getMimeData() ); break; } } diff --git a/src/gui/AutomatableModelView.cpp b/src/gui/AutomatableModelView.cpp index d1c053245de..ca8b1a015c2 100644 --- a/src/gui/AutomatableModelView.cpp +++ b/src/gui/AutomatableModelView.cpp @@ -242,7 +242,10 @@ void AutomatableModelViewSlots::unlinkAllModels() void AutomatableModelViewSlots::copyToClipboard() { - Clipboard::copyString( QString::number(m_amv->value()), Clipboard::MimeType::Default ); + // For copyString() and MimeType enum class + using namespace Clipboard; + + copyString( QString::number(m_amv->value()), MimeType::Default ); } void AutomatableModelViewSlots::pasteFromClipboard() @@ -258,6 +261,9 @@ void AutomatableModelViewSlots::pasteFromClipboard() /// Attempt to parse a float from the clipboard static float floatFromClipboard(bool* ok) { - return Clipboard::getString( Clipboard::MimeType::Default ).toFloat(ok); + // For getString() and MimeType enum class + using namespace Clipboard; + + return getString( MimeType::Default ).toFloat(ok); } diff --git a/src/gui/StringPairDrag.cpp b/src/gui/StringPairDrag.cpp index bc28a3f9dc9..b08f4adc5f6 100644 --- a/src/gui/StringPairDrag.cpp +++ b/src/gui/StringPairDrag.cpp @@ -39,6 +39,9 @@ StringPairDrag::StringPairDrag( const QString & _key, const QString & _value, const QPixmap & _icon, QWidget * _w ) : QDrag( _w ) { + // For mimeType() and MimeType enum class + using namespace Clipboard; + if( _icon.isNull() && _w ) { setPixmap( _w->grab().scaled( @@ -52,7 +55,7 @@ StringPairDrag::StringPairDrag( const QString & _key, const QString & _value, } QString txt = _key + ":" + _value; QMimeData * m = new QMimeData(); - m->setData( Clipboard::mimeType( Clipboard::MimeType::StringPair ), txt.toUtf8() ); + m->setData( mimeType( MimeType::StringPair ), txt.toUtf8() ); setMimeData( m ); exec( Qt::LinkAction, Qt::LinkAction ); } @@ -76,11 +79,14 @@ StringPairDrag::~StringPairDrag() bool StringPairDrag::processDragEnterEvent( QDragEnterEvent * _dee, const QString & _allowed_keys ) { - if( !_dee->mimeData()->hasFormat( Clipboard::mimeType( Clipboard::MimeType::StringPair ) ) ) + // For mimeType() and MimeType enum class + using namespace Clipboard; + + if( !_dee->mimeData()->hasFormat( mimeType( MimeType::StringPair ) ) ) { return( false ); } - QString txt = _dee->mimeData()->data( Clipboard::mimeType( Clipboard::MimeType::StringPair ) ); + QString txt = _dee->mimeData()->data( mimeType( MimeType::StringPair ) ); if( _allowed_keys.split( ',' ).contains( txt.section( ':', 0, 0 ) ) ) { _dee->acceptProposedAction(); diff --git a/src/gui/editors/PianoRoll.cpp b/src/gui/editors/PianoRoll.cpp index e3d0bd59a63..adfc419de85 100644 --- a/src/gui/editors/PianoRoll.cpp +++ b/src/gui/editors/PianoRoll.cpp @@ -3885,6 +3885,9 @@ void PianoRoll::updateYScroll() void PianoRoll::copyToClipboard( const NoteVector & notes ) const { + // For copyString() and MimeType enum class + using namespace Clipboard; + DataFile dataFile( DataFile::ClipboardData ); QDomElement note_list = dataFile.createElement( "note-list" ); dataFile.content().appendChild( note_list ); @@ -3897,7 +3900,7 @@ void PianoRoll::copyToClipboard( const NoteVector & notes ) const clip_note.saveState( dataFile, note_list ); } - Clipboard::copyString( dataFile.toString(), Clipboard::MimeType::Default ); + copyString( dataFile.toString(), MimeType::Default ); } @@ -3950,12 +3953,15 @@ void PianoRoll::cutSelectedNotes() void PianoRoll::pasteNotes() { + // For getString() and MimeType enum class + using namespace Clipboard; + if( ! hasValidPattern() ) { return; } - QString value = Clipboard::getString( Clipboard::MimeType::Default ); + QString value = getString( MimeType::Default ); if( ! value.isEmpty() ) {