From 71f6b1b205870bb793a1b052d2e2bc2d5718cc8d Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Wed, 21 May 2014 16:39:02 -0400 Subject: [PATCH] Drag-and-drop support for VST, SF2 --- data/themes/default/soundfont_file.png | Bin 0 -> 1162 bytes data/themes/default/vst_plugin_file.png | Bin 0 -> 1228 bytes include/file_browser.h | 2 ++ src/gui/TrackContainerView.cpp | 6 ++-- src/gui/file_browser.cpp | 35 +++++++++++++++++++----- 5 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 data/themes/default/soundfont_file.png create mode 100644 data/themes/default/vst_plugin_file.png diff --git a/data/themes/default/soundfont_file.png b/data/themes/default/soundfont_file.png new file mode 100644 index 0000000000000000000000000000000000000000..e5fb2a2cce4b661440f0498cb272cdd0be5c3645 GIT binary patch literal 1162 zcmV;51aPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01e3i01e3jueHZa00007bV*G`2i^r0 z4jK)Q#Z*oJ00at2L_t(o!^M})Z&gJYho6}_pZCN7QlLNu%2yXIB#~%zgF92g0@xTe z8pDRf2r;^G=hDO|iGP7gbfF6*(YPQnQ364N8jwg@5tRxpV6njQ-t#r*jEgzFZ6%b` zrYV!Wxw&)incp+N_nmiggfWJN8gI6?eyynnr_X)R`Ay9BjAQ|aD}=w(>*bBsR`!P* z0od)Yi53mOL3)vJi2Q(M!kwIcaksxlEDC@xr0|7Agg%Z`jWiY%AVA^^1%Zojokq_r za1BUWD1`4JLVxiA0u-*02;YOieGm=^0wj12LaD_E@Q^6iLHI6s51*ynJmv zfja;MQ$-|q|67lol#YggoepfYY8$Ntdr zXa5|pviEE^7IUnddyFGXo^n#kgFVuJdz-V=X}vPoQjhi{dzLsr0AP}gXdZyEAlmY(qo=A_}{gj44Y*Wgzr%A0MD+OP{~v{O?r% z+H4qOs4(*bIP}nC@AS!V&l9h`9I8iF+H)QHHvGEBw^NMNHs_P+-_VPgh%s>j&uF13T;=>C8e2%0}gW6s)0?eP-?2HIm(JkfyoNUHR#F;>vBrG ztX;@8R0iF^gS%=Vr&=dBuAU)kEjCuXu6~o{Rw&n)Lf2qL_j@@ujzm;*cECfP*56;4 zAxvegwP}utJ6!;i71KZp3sPDKE=~N6#$1HiEAcLX*c4x$7{8o!Cv<7;O)^Y7tv?e? zJGDSHL^n051vypR%wwa6fva<^fg>l2n`QdRF=KOW#mTi5k2}!Gpp)78G_OIXV&tdu z{8c8^ovIiHhK^>VrZK?#onJ2}rW}0t!to+Mc4nsallHe$D>ls)(gKrYB&UDja5_?4 zsgjQ>%os2->jieNSF;1H&3gmnXD zAFfsDr){H$fWt?#(b0JU0PG7lY>9;PVIKdy3C z-_j?Go5V){c)d)ISC~7%=fK6;?7uHS{chI^h1wMgwQsrb`a+>rRPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01e3i01e3jueHZa00007bV*G`2i^r0 z4=*Z-JV~Sg00c})L_t(o!^M|NXkAqlhX1u6=bU?P(&QS`8dLJnY8+Gt)>6ShsROmp zQYuJ`LPZHE2-T@La3ms#AmU8%0UapCNkzd~s>M2JO$&v*n%0)2A#Kw_yK%LAnk8~0@?#9 zKT|+Rkd#}XfKu=!K`RN8dXoW^1}P0G2wD&z#3q+ODv;FBf;C(%KffrB4lEshcIyW)bJITr?YoZdKlWDcKxYAszC?o- z@MN~a)G-_bp%&QtXd|9H^0I$<>IKZk764!!uOFbW=fzL`9i2yC?|V1b)fB*2gis0O zv_zmXfKp-lQpPzf|>0WD~u z(`#xo!&X%>&cQMR&aG<<54H3jk)2IGd`a+CW-5Ua2z3S{Xkm5MF=ETGoJFlP)-l+o z^#hR9hqgV_t7~pn8!1^em&iDzHcJ#&@76Jl%lg7Nm)#j)YwPa;PUDWp3pvQDlhveV zW<(~Fv}_z=!$_<{VzY#c!4m5b-yR2qaP=#o{eK3pUPrCO%nasiwUKd{Pb?~_MPwZ! z;}F{gkl1ntVHw5Yi(qR<0B~IZwlsU@?zuCS+UL||tE!|Hr8G-kOdU#zMP%IlSPYU_ zhuO>L5?h`h0x(`@56E9;2m0-)OXFOtZ!JMNT~MHG9LlL%0#S>J^M4?oyyi@CW(dF_ zuP~1f0F-Zz{Ac6J!Qs#P(%(n#E|Gpdu_z`E#nhpaT2xG?%HrfVul$S2U%yG?+vDHE z*;@c^thj|Q2N$$;zbd@or$-K+!0}_pRabKW>#|WRrw$d9!IV;qx!7Q2x`G?0zc#a% z&my@ydCFFbg8+VH=81Iy0D#xr`h>_ed?$1HeXR#xL*r9>RZCktx|#x%Qj5{48I;DZ zpg4Td%ntO!l;$oZ)01c6>>Plf0gUh}c1Ww)B@u-p$RCn^?rqid@J<=zwzK2r>en+a zDo&aCnTd4%-lb~dAprdVrg#lrOl$G$>e(&?@Em|P04)Ft00=-Cz@2Ig0JxP+@7j*t qRL}9e3POuaOaX|NZVC0B_x}eT;#Ue`c^eb}0000In literal 0 HcmV?d00001 diff --git a/include/file_browser.h b/include/file_browser.h index d3aa501bf..3679b45a5 100644 --- a/include/file_browser.h +++ b/include/file_browser.h @@ -224,6 +224,8 @@ private: static QPixmap * s_projectFilePixmap; static QPixmap * s_presetFilePixmap; static QPixmap * s_sampleFilePixmap; + static QPixmap * s_soundfontFilePixmap; + static QPixmap * s_vstPluginFilePixmap; static QPixmap * s_midiFilePixmap; static QPixmap * s_flpFilePixmap; static QPixmap * s_unknownFilePixmap; diff --git a/src/gui/TrackContainerView.cpp b/src/gui/TrackContainerView.cpp index a55ca4b50..8590d9585 100644 --- a/src/gui/TrackContainerView.cpp +++ b/src/gui/TrackContainerView.cpp @@ -312,7 +312,8 @@ void TrackContainerView::dragEnterEvent( QDragEnterEvent * _dee ) { stringPairDrag::processDragEnterEvent( _dee, QString( "presetfile,pluginpresetfile,samplefile,instrument," - "importedproject,track_%1,track_%2" ). + "importedproject,soundfontfile,vstpluginfile," + "track_%1,track_%2" ). arg( track::InstrumentTrack ). arg( track::SampleTrack ) ); } @@ -334,7 +335,8 @@ void TrackContainerView::dropEvent( QDropEvent * _de ) //it->toggledInstrumentTrackButton( true ); _de->accept(); } - else if( type == "samplefile" || type == "pluginpresetfile" ) + else if( type == "samplefile" || type == "pluginpresetfile" + || type == "soundfontfile" || type == "vstpluginfile") { InstrumentTrack * it = dynamic_cast( track::create( track::InstrumentTrack, diff --git a/src/gui/file_browser.cpp b/src/gui/file_browser.cpp index d49d4c04f..87714ea89 100644 --- a/src/gui/file_browser.cpp +++ b/src/gui/file_browser.cpp @@ -484,7 +484,14 @@ void fileBrowserTreeWidget::mouseMoveEvent( QMouseEvent * _me ) new stringPairDrag( "samplefile", f->fullName(), embed::getIconPixmap( "sample_file" ), this ); break; - + case fileItem::SoundFontFile: + new stringPairDrag( "soundfontfile", f->fullName(), + embed::getIconPixmap( "soundfont_file" ), this ); + break; + case fileItem::VstPluginFile: + new stringPairDrag( "vstpluginfile", f->fullName(), + embed::getIconPixmap( "vst_plugin_file" ), this ); + break; case fileItem::MidiFile: // don't allow dragging FLP-files as FLP import filter clears project // without asking @@ -493,11 +500,6 @@ void fileBrowserTreeWidget::mouseMoveEvent( QMouseEvent * _me ) embed::getIconPixmap( "midi_file" ), this ); break; - case fileItem::VstPluginFile: - new stringPairDrag( "vstplugin", f->fullName(), - embed::getIconPixmap( "sample_file" ), this ); - break; - default: break; } @@ -857,6 +859,8 @@ bool directory::addItems( const QString & _path ) QPixmap * fileItem::s_projectFilePixmap = NULL; QPixmap * fileItem::s_presetFilePixmap = NULL; QPixmap * fileItem::s_sampleFilePixmap = NULL; +QPixmap * fileItem::s_soundfontFilePixmap = NULL; +QPixmap * fileItem::s_vstPluginFilePixmap = NULL; QPixmap * fileItem::s_midiFilePixmap = NULL; QPixmap * fileItem::s_flpFilePixmap = NULL; QPixmap * fileItem::s_unknownFilePixmap = NULL; @@ -905,6 +909,18 @@ void fileItem::initPixmaps( void ) "sample_file", 16, 16 ) ); } + if ( s_soundfontFilePixmap == NULL ) + { + s_soundfontFilePixmap = new QPixmap( embed::getIconPixmap( + "soundfont_file", 16, 16 ) ); + } + + if ( s_vstPluginFilePixmap == NULL ) + { + s_vstPluginFilePixmap = new QPixmap( embed::getIconPixmap( + "vst_plugin_file", 16, 16 ) ); + } + if( s_midiFilePixmap == NULL ) { s_midiFilePixmap = new QPixmap( embed::getIconPixmap( @@ -931,8 +947,13 @@ void fileItem::initPixmaps( void ) case PresetFile: setIcon( 0, *s_presetFilePixmap ); break; + case SoundFontFile: + setIcon( 0, *s_soundfontFilePixmap ); + break; + case VstPluginFile: + setIcon( 0, *s_vstPluginFilePixmap ); + break; case SampleFile: - case SoundFontFile: // TODO case PatchFile: // TODO setIcon( 0, *s_sampleFilePixmap ); break;