From 675be99999da233f983ae89e3b6144db57037073 Mon Sep 17 00:00:00 2001 From: lordmulder Date: Wed, 23 Mar 2011 23:19:31 +0100 Subject: [PATCH] Added an option to add directories recursively. --- doc/Changelog.html | 1 + etc/Translation/Blank.ts | 10 ++++- etc/Translation/LameXP_DE.ts | 16 ++++++-- etc/Translation/LameXP_ES.ts | 16 ++++++-- etc/Translation/LameXP_FR.ts | 16 ++++++-- etc/Translation/LameXP_IT.ts | 16 ++++++-- etc/Translation/LameXP_RU.ts | 16 ++++++-- etc/Translation/LameXP_UK.ts | 16 ++++++-- gui/MainWindow.ui | 15 ++++++- res/localization/LameXP_DE.qm | Bin 56063 -> 56393 bytes res/localization/LameXP_ES.qm | Bin 52136 -> 52059 bytes res/localization/LameXP_FR.qm | Bin 52850 -> 52771 bytes res/localization/LameXP_IT.qm | Bin 40418 -> 40335 bytes res/localization/LameXP_RU.qm | Bin 44314 -> 44237 bytes res/localization/LameXP_UK.qm | Bin 10197 -> 10126 bytes src/Config.h | 2 +- src/Dialog_MainWindow.cpp | 91 +++++++++++++++++++++++++++++------------- src/Dialog_MainWindow.h | 1 + 18 files changed, 161 insertions(+), 55 deletions(-) diff --git a/doc/Changelog.html b/doc/Changelog.html index 83ff214d..6a6f3763 100644 --- a/doc/Changelog.html +++ b/doc/Changelog.html @@ -11,6 +11,7 @@
  • Added an option to manually specify the number of parallel instances
  • Added an option to select a user-defined TEMP directory
  • Added an option to shutdown the computer as soon as all files are completed +
  • Added an option to add directories recursively
  • Added support for embedding cover artwork (currently works with LAME and Nero AAC only)
  • Updated Qt runtime libraries to v4.7.2
  • Updated LAME encoder to v3.99.0.15 (2011-03-22), compiled with ICL 12.0.2 diff --git a/etc/Translation/Blank.ts b/etc/Translation/Blank.ts index fa5004e9..e8f289fa 100644 --- a/etc/Translation/Blank.ts +++ b/etc/Translation/Blank.ts @@ -774,6 +774,10 @@ + Open Folder Recursively... + + + Adding file(s), please wait... @@ -818,6 +822,10 @@ + Scanning folder(s) for files, please wait... + + + Downloading WMA Decoder Setup, please wait... @@ -1058,7 +1066,7 @@ - Add folder + Add Folder diff --git a/etc/Translation/LameXP_DE.ts b/etc/Translation/LameXP_DE.ts index bf86578d..435fe940 100644 --- a/etc/Translation/LameXP_DE.ts +++ b/etc/Translation/LameXP_DE.ts @@ -663,10 +663,6 @@ Datei(en) hinzufügen - Add folder - Ordner hinzufügen - - New Folder Neuer Ordner @@ -1226,6 +1222,18 @@ Help && Support Hilfe und Support + + Open Folder Recursively... + Verzeichnis rekursiv öffnen... + + + Scanning folder(s) for files, please wait... + Durchsuche Verzeichnis(se) nach Dateien, bitte warten... + + + Add Folder + Verzeichnis hinzufügen + MetaInfo diff --git a/etc/Translation/LameXP_ES.ts b/etc/Translation/LameXP_ES.ts index 8eb73366..862c2cb4 100644 --- a/etc/Translation/LameXP_ES.ts +++ b/etc/Translation/LameXP_ES.ts @@ -762,10 +762,6 @@ Añadir archivo(s) - Add folder - Añadir carpeta - - Load Translation Cargar traducción @@ -1225,6 +1221,18 @@ Help && Support + + Open Folder Recursively... + + + + Scanning folder(s) for files, please wait... + + + + Add Folder + + MetaInfo diff --git a/etc/Translation/LameXP_FR.ts b/etc/Translation/LameXP_FR.ts index b228e53a..38a7d841 100644 --- a/etc/Translation/LameXP_FR.ts +++ b/etc/Translation/LameXP_FR.ts @@ -768,10 +768,6 @@ Votre dossier TEMP est situé ici: Ajouter fichier(s) - Add folder - Ajouter dossier - - Load Translation Charger la traduction @@ -1234,6 +1230,18 @@ Sélection automatique (par défaut) Help && Support + + Open Folder Recursively... + + + + Scanning folder(s) for files, please wait... + + + + Add Folder + + MetaInfo diff --git a/etc/Translation/LameXP_IT.ts b/etc/Translation/LameXP_IT.ts index 1082c57e..83d5e6ab 100644 --- a/etc/Translation/LameXP_IT.ts +++ b/etc/Translation/LameXP_IT.ts @@ -663,10 +663,6 @@ Aggiungi file(s) - Add folder - Aggiungi cartella - - New Folder Nuova Cartella @@ -1226,6 +1222,18 @@ Help && Support + + Open Folder Recursively... + + + + Scanning folder(s) for files, please wait... + + + + Add Folder + + MetaInfo diff --git a/etc/Translation/LameXP_RU.ts b/etc/Translation/LameXP_RU.ts index 830f433d..af492d0f 100644 --- a/etc/Translation/LameXP_RU.ts +++ b/etc/Translation/LameXP_RU.ts @@ -989,10 +989,6 @@ Добавить файлы - Add folder - Добавить папки - - Load Translation Загрузить первод @@ -1228,6 +1224,18 @@ Help && Support + + Open Folder Recursively... + + + + Scanning folder(s) for files, please wait... + + + + Add Folder + + MetaInfo diff --git a/etc/Translation/LameXP_UK.ts b/etc/Translation/LameXP_UK.ts index be483e0a..2bfe68f1 100644 --- a/etc/Translation/LameXP_UK.ts +++ b/etc/Translation/LameXP_UK.ts @@ -962,10 +962,6 @@ Додати файл(и) - Add folder - Додати теку - - Load Translation Завантажити переклад @@ -1225,6 +1221,18 @@ Help && Support + + Open Folder Recursively... + + + + Scanning folder(s) for files, please wait... + + + + Add Folder + + MetaInfo diff --git a/gui/MainWindow.ui b/gui/MainWindow.ui index 7f8b1f1f..b80d166b 100644 --- a/gui/MainWindow.ui +++ b/gui/MainWindow.ui @@ -1057,8 +1057,8 @@ 0 0 - 602 - 1088 + 604 + 1091 @@ -2716,6 +2716,7 @@ + @@ -3072,6 +3073,15 @@ Help && Support + + + + :/icons/folder_explore.png:/icons/folder_explore.png + + + Open Folder Recursively... + + @@ -3138,6 +3148,7 @@ + diff --git a/res/localization/LameXP_DE.qm b/res/localization/LameXP_DE.qm index 30f925e5abd70ffc09116f5b1105b268e66adb74..bb6a22596735391261f669af39f4ae9b18d05a14 100644 GIT binary patch delta 3406 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 delta 2962 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 delta 2356 zcmXX{2~>=G8~@GByUe^Z^S+kUS1~PGMWTp`N|Z_=Tb4G{qQ10BxR{Z$rlfMjr7ZEK zxbAgb*OI;5)CeHI8;H3G%xVR5WE$XV1apeM8;bn>u!Zz_z)rCLxeQD% z2iu(oWLrQRdlncJjzOz+z>41R2#N-*3lOxm3|RUc6P@b;LxL%S&)ETM^aydG2M4+% zWMny@@846Gvpscf6hh-y0*kT`)=&VXSRk_L5-{EukV% zvlMd^-GOPgm}m8fo(sdg)yIIWCrCIl9BM4cLazA;z-V7OKxXEAU&iujK)9LAq}~y* z8X+??wgc-DWxoF!1T5(#o5U&r+u5a2GBd*lS=HygKw!P>zjq1zumiF?Z8UA)*RuDc zP6BI-W$#lD6R2f!`x&|P)G_%)=`RAaO`eo<1}J_iPiH#-S(m)ZFPYeJk=GP<0SkxA z59!Q_RZsaZdRsdGhy0QK0vbx!Qemiy&71C4=COc&1Q3>;zU-D=b%h1qz}| zwQ`-o$5}Dwl@{o?f$9)aahRf*c?o!}SM0r0ObRzE>MjNWIXcCm)?vVgV~St9dz0!P z6-_PIf#GWuSF4mjZ*#?sY1B4s1tUwzrtb$c?6*E27;bztFmVFYt8+WC^NyL|Af=@VdQWY%sW{JLUh{gHh@LJ+ep_%vWM ztEVQcV5;lZlIqpW{@C5Xcg0L?G`Yq63RA}u(502kp^M~(=@*#O?QaOM19QQeT#@*S zX?T9k07UpOm#5MNQ=*vbiR5eVv&`+%d?4AB`8tyx9QKaw^|lBYvxv1@Lbi~3u?~Np zr%0S&oxEBA_Xq5lu5-lT9X9g~O8h$ z{Xrm&VJlx7~c7|fm@(Ml5dvNvv*(#4+a&C$y!F!}7go!2OM z)@*w~23_dMb{rxr%(3C5o4bI#8Jw*|lX+BfPD~sy-;^7EkOJ%2j|=ES7thGx#&4lO zCGO{fbu?JgMlQrqcY=&Qg`2a3D0e&0#r$LsEO6rDVrb$*j$3tzfUNi8s%l+<^dPP_ zlXBqym^&BH4hVm8jaCn7JAC3=r_cbFC%7ALWaJe+*Y-ROh_~Wi#E~cLMsZzHHozn| zUKn$dY6ss}7z=C+;|-4U$P6)|yi?_9V5S%E{^ANCjo^I(sZqurKK4dB;9S5jo-&^T zn9VOPAq`z?`6cp|z~mghWJ5eroXMBv+L8GS`5jYgl%xBf2Ta~5$5ox7UC^iu|LGkt>a8+TNsG# zJVjcf6I2J5k;ERaR5hIhjGeAJ9g;+!8!xF^KI;L8wW`}GMKpnl>P`x!z(GVPfj0^5BZ2pK4NbjOi7>jizFKwAGL#QT^~ERPAvA821Vz7^7(i5XvOVe`l| z`lYZF%D(;#xD*PN(X{QIt_n3V`v{1MP_wNs0x+XR_~H0hVA&JlOfXHBb3nMv5#mkl zLW^YxpluXxJ#7d4J_z?V(;~I65grHUk(=Fww}WZ&w3^a3&dQLh4l1PUrbVg~)Wnm; zP<6uZwy}b??1^)yC2`-ptUc`B2ag7-yqZ-lVR9O09)$C&_+R>(-n`k-nvk-FAaW za?r-@yhQR|(`FZuN~xQ)<jX?VCAt_~sh?u2I3$V=*tLtE!L+OT?-l(+uMrAMQG{5OOps=nWfP(-Y1W*(WE(3fZa2M0n3S|| z5bdgyQgY;Fvd=zgX^Arlw^ORJp~<{srNdXl$%l8OiyKyvAzn%idu)iwyV4&DkV&EG$9-Qt1^(KY6qk=uhyEk1w?xWqDMxH!k@f D2uGEE diff --git a/res/localization/LameXP_RU.qm b/res/localization/LameXP_RU.qm index 853436298b8c6accbc7a9db79096ab82897c8020..8fccb533cf34162b7e4c92f4e986c97ef8bb1e17 100644 GIT binary patch delta 2647 zcmXX|dw5Lu7F{!Q&YYPuXXZpuG%txn9z?yGB8_K+iAps{2ziVm;wEV#^=>l}Ns&ep z86o4Dhd!i}ueH}+=WJ=xetTJ4 z(#>81U=-ly1Bju((ksN*frxK`H=+SY6_8jD%;o=?Zvf^!otR;S@NWSaysHy4Y!Dj! zfMKg37V`h7aEQm|0hWspzdsGwk|1{E0`?l1lfDFA+Jm6gp8Q>qgP{`=0N<^cuxTUk zo);zt9^oZ_!+OjY*knXxKOXcSg~*UHAY)J`u07a^n_4hwZZ?q9j>#wUNuWDsocW3k z{Dv84oxnB)amU!$)Tx+dBDzlO#OywpHGc^DA+Zv(y>9a08q8k(FLsoLd3y%~ix*>w zM>;Te1D5uB8CYN82-Ebid!eR&7ARsS9^O~pw`j%=EWA;*WhsHLgC*X2aQ_{-w>+WkRo>T+T$21qpTY#7A zG?%WC_J|RhrmNJc8#L|14zata;1pgvM3 zE{WB)Moy(}iuP#+8ytC7XSmS@JBt6(xxM=gC=1g0_93nf)(y$u1-RGf!i0xp2HmuC z8an7tUEDo0@PdOF41_Gx6$^KP@VmO|reYw?T~}K_0a#U~t2;LcaNgA&=;#8>)9B7L zGy%OTl09|C=`Ki1oE=JHS%(BypRzZATXndWZ4^IH5=LweIt#r^7!KG~rknb&w z4;W7As)X?)MzCxP7=STg2u9p%0phc1nLtssUcImbD5=x?s8l2@O&=iGfVV>RgKL;J{WA6AT-nH+ zLHh7gE`OF&Z}p@SZ z3;s-28<^=W$zg|xSEa7 zTC#!j4mm9?(`Ey+TBQvIb2*k)$9mDrUM^LhcnJu8AXWDq!@YT5`p|d=@R=#?%^Ap{ zZI(W>P|IaH>A<6fz?o?ldgT4#~d0d{hCk-yy7R_IYhe-bxLg} z*3(5B^jCO3+-mUcPKwLc8iuNJJTKa}%M?TL(-Xjk+lI1@p8*R-8=OB2KyiWL%-J$P`?cX(j*nK+Fo`q%=Nnb1}}@v4V+_sx!|2hK%3wFs6LUi|iMTsf($T zd$KY26$?;!$hf|axVFvs(F#sEtjTydGMTQKU~G8uCJ^+%cyVD7Fh*-^TFAW#T5P=S zMdm5{jZY_e0u|F`v7-@)?JE!MurU}iwL?dLX5;HpnF*=|Fs=yz$vTnG}!Z9pk-e#}0XC0$*0aA@c6TUBIjN0*!!D8&AeD!Xd2g_ z3q1BG(}Y4coD^)DXQK3Ok4^J_{DBEkU|KmVko6{;@+=BRoMqZ%SJ=_^_f1vTd04Vx|xw!jG$6a^x_2X`;FT216bDA0z&Q>{SI_EY3@bWRWg+?)g3QZl+Waw9<=uQmf zJ{?p%cC=FBX2mm}W?NmT_;=i3Ak-?>!rP3n%SvS2Aeu8?iB{}HD?vk5X*O)%cgn)9@*w?5(lVnH&?rIPOl9#pYl8ojP7Y}ton)h<}lw* zAIGc)e%iXOL_O^ar!0>~(x-2auskZu z|Y*GnfG5a?f1g~ delta 2644 zcmX9=eO!%qAHL2x_sco=d9##|I%(32cbchYY0?`DMXX63QtC-kgc&DfWG!(-8L14@ z%CKjK$9uy^-in5`kIc+ld$HOxjix=U@~Cb-xV{XApA!FhCk_wnR_7Adjg}* zLoDF)sC?>=kFYJ9fe(@p z?sEdj3PHr_e!!L}L=NCWuRKJKECw=jy5hRduDI13r zUELBHLqL<&FEa@+sGCOnV=HVZ3edPL?*xkHYx=#)xGqaGV$CN&pDN90p`DdMGv&I9 z4)WK;{b~ey*ck@_BTr~H2)_{UaLul!4Zu9Brn)wa!adT|TptE(8?HIh@d}+5s<~L- z00eeuE|+V8R}{^S8157Iv7k!JwgE|ng82VLZGsdslT2I`Out3YLB&G1)@{I=WMQ1Q zKdE~pj0*?=N)HOL%ijlvKIn>DYlU=|C^BLZvKDOwDx!te=I4O-L1FDCR_b0STT8^5!k)wmVC`+;vzfH0OQ}#T6Zr>@LQO3#XuT>Nzt_eJ zb_i$PX~l)!!nvQWvX6QS7bbIqcvqnznY|TyL%3~JIPEujeU3Q##c9AfQk;|f1K>AQ zT+qg*&X_9Z_Gcv{PKvoNXu7DwVnOIR#!hkbB`2V}t5{q|$+{Fdk56GP+-mVz~^t>z_=tGjXU+SN!A2X^s!!ASwmzcx1{pV1_ST= zN}nxYvrc#{ogRA+Pz=&}%a8QrHR;kIGB#O}u1{iRt}CP)Z7N_@f9cLo860WzrJt=d znfE;DMSNf2on%=VeT=5_kh?2y(wuu_uNm}GdhmC$Pqzo0YahxZer7^rn*2s66D?mV zC*GLPx#lhBOq#`t1Ld5J^uX%|d5L-jFk^_kaeWdnX^4G|XtCXqE6xr929J_=^$cb& z)ysQy7Xgnl`9SVa3b|E2Xd=H$!sR2+(}3hu`Qi{?V6~ro=P?EHKO{Gw%HwQWEkBxB z!ClhipN`SOe$8^Lp7}Jlzk=L z>C;B#^RGHN0b-St5oOGqtek4B05&dDE=VQ>VtbuZ?-B_ZjLJ8U?*Ze#R+>C|ajeHH zcZ)dYeWR6!5v!PJr1Eq-4esHl{63IOEvvR)k)3;`>jRD4MqQvEJCOZ4)>9u=KzNB+ z_Ls7=ZIeFFWS~|@^ji#MZAZPn@-E+Q$<^bp?!@L@V3RMZDiKy zL}PD{R+?zLap)ZrXwT(+6575t9~bILqlo@&A7xuxBBF}QC|oqmD$oP6`rjXr#xZnh;7 zewfoTb9rCZ6`EzsYtwwsSErYbS#&9&=Sa?}krpR4Rke(TKNYD^rZZRWej`JK>e ze!MWBhen@NpfdK0DrJ?c{h^m*&mdu_5F`W$qj)HjPX3hOq$KxbduB+lF9v#7Fl7PdhXKoVz%dEPBM=6T01-_PMg&0G8^S~hfPQL(Rb5K1_gz+96R}(Tmgq94nn418D z&NFJN+QSty1)z0swPn$OB8%(Y=%XQUpB8CLkN|}Fcyo6Hu*Jq7l>U&43VtQ! z3?NK|Flm(!*vM6Ui6ZXeCbT*=y(IT7zPyS0rwiz=R*f;TQI&W&`?Sp)sz6 z5?U1=OkO6=DdEj2O3D}%zCH^FG%jKDD4pxaSZa*IiEU~TIIl*|}&7fq2- z=3U@S<%8_r70TB#%_ereC40}=+y^hQ+u7&BbAa-E*ursz+F7w} zV+Xa-7Q&>5qDzh>udl`X4r(X5Q(UygQpWh`qPRLe=cTsgf2$@fPz)hOXTD6P%hOR(8q3;KHpZZrWsWJI9=AHm)7c^G)H%cs^ zu~qM+ZB9+|QV)6E_aECeo&s{AGG5Sh8>%Rrdaqp}rxk1a^f4rIMmuVB(pTbj>2_Kt zak@+^MX6ra)qSMba-H|CLf-mVsxUPJaZewC delta 820 zcmXX^X-E`d7=C8<8+Y6tcRV(CJ$6^u6s_zc(>zi$rQOUUvD6Z=%nm{VK{FDM>_=(G zGWA0#6_vn5ko+TsrIuon!F>s%O=0X7y2c*R3VqkF#hAT-f;zi|jd z=KwAZ!iP72X$to3^?>du?E4=AK~@)9+g!LUq#Jo}UjzPCC>SEbz%iWC5(>Nvt!1b% zl>z!=jzL3yHJ2`^0FPF#ILipAVz~CrPP&xH%`DIq?`Upr-VC_4@TTTVz?NJ55&0LX zc)%}(UI5sz3$2m-vYlK7-cbcqJAsgRC6e34oly!oOL30seY;594NPDwzMWp#KP zsW1I9k)w>03Rilx7ePD(I zDMYiFC(;z1PORPBN%+cz!QaIOix+u*C-xLkOU7|=!R}9OuPVK~C3sqs;5J9fdo+p5 zla!iM(_Pd>>}{IQHcH)mRaxN;+3DH_okW~9+F|c*fN#;R#nEiTtYm6kCZ#Eot?4Uu z7a`dT_7L}gRQ{=zHsZ#A9FiPKq}lhm)U3}ZtzAm4$`aA&(dq3+>1jO%eXD36lXa1W zl!u(8i?&gIl2vzhn*O$QD34W^uyr}tP);fQma7~Q^ diff --git a/src/Config.h b/src/Config.h index ee77d4c7..e8b1a2f9 100644 --- a/src/Config.h +++ b/src/Config.h @@ -25,7 +25,7 @@ #define VER_LAMEXP_MAJOR 4 #define VER_LAMEXP_MINOR_HI 0 #define VER_LAMEXP_MINOR_LO 1 -#define VER_LAMEXP_BUILD 399 +#define VER_LAMEXP_BUILD 400 #define VER_LAMEXP_SUFFIX Beta-12 /* diff --git a/src/Dialog_MainWindow.cpp b/src/Dialog_MainWindow.cpp index c54843b2..77554992 100644 --- a/src/Dialog_MainWindow.cpp +++ b/src/Dialog_MainWindow.cpp @@ -256,7 +256,10 @@ MainWindow::MainWindow(FileListModel *fileListModel, AudioFileModel *metaInfo, S customParamsChanged(); //Activate file menu actions + actionOpenFolder->setData(QVariant::fromValue(false)); + actionOpenFolderRecursively->setData(QVariant::fromValue(true)); connect(actionOpenFolder, SIGNAL(triggered()), this, SLOT(openFolderActionActivated())); + connect(actionOpenFolderRecursively, SIGNAL(triggered()), this, SLOT(openFolderActionActivated())); //Activate view menu actions m_tabActionGroup = new QActionGroup(this); @@ -460,6 +463,46 @@ void MainWindow::addFiles(const QStringList &files) } /* + * Add folder to source list + */ +void MainWindow::addFolder(const QString &path, bool recursive) +{ + QFileInfoList folderInfoList; + folderInfoList << QFileInfo(path); + QStringList fileList; + + m_banner->show(tr("Scanning folder(s) for files, please wait...")); + QApplication::processEvents(); + + while(!folderInfoList.isEmpty()) + { + QDir currentDir(folderInfoList.takeFirst().canonicalFilePath()); + QFileInfoList fileInfoList = currentDir.entryInfoList(QDir::Files); + + while(!fileInfoList.isEmpty()) + { + fileList << fileInfoList.takeFirst().canonicalFilePath(); + } + + QApplication::processEvents(); + + if(recursive) + { + folderInfoList.append(currentDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot | QDir::NoSymLinks)); + QApplication::processEvents(); + } + } + + m_banner->close(); + QApplication::processEvents(); + + if(!fileList.isEmpty()) + { + addFiles(fileList); + } +} + +/* * Download and install WMA Decoder component */ bool MainWindow::installWMADecoder(void) @@ -1062,37 +1105,31 @@ void MainWindow::openFolderActionActivated(void) ABORT_IF_BUSY; QString selectedFolder; - TEMP_HIDE_DROPBOX - ( - if(lamexp_themes_enabled()) - { - selectedFolder = QFileDialog::getExistingDirectory(this, tr("Add folder"), QDesktopServices::storageLocation(QDesktopServices::MusicLocation)); - } - else - { - QFileDialog dialog(this, tr("Add folder")); - dialog.setFileMode(QFileDialog::DirectoryOnly); - dialog.setDirectory(QDesktopServices::storageLocation(QDesktopServices::MusicLocation)); - if(dialog.exec()) + if(QAction *action = dynamic_cast(QObject::sender())) + { + TEMP_HIDE_DROPBOX + ( + if(lamexp_themes_enabled()) { - selectedFolder = dialog.selectedFiles().first(); + selectedFolder = QFileDialog::getExistingDirectory(this, tr("Add Folder"), QDesktopServices::storageLocation(QDesktopServices::MusicLocation)); } - } - - if(!selectedFolder.isEmpty()) - { - QDir sourceDir(selectedFolder); - QFileInfoList fileInfoList = sourceDir.entryInfoList(QDir::Files); - QStringList fileList; - - while(!fileInfoList.isEmpty()) + else { - fileList << fileInfoList.takeFirst().canonicalFilePath(); + QFileDialog dialog(this, tr("Add Folder")); + dialog.setFileMode(QFileDialog::DirectoryOnly); + dialog.setDirectory(QDesktopServices::storageLocation(QDesktopServices::MusicLocation)); + if(dialog.exec()) + { + selectedFolder = dialog.selectedFiles().first(); + } } - - addFiles(fileList); - } - ) + + if(!selectedFolder.isEmpty()) + { + addFolder(selectedFolder, action->data().toBool()); + } + ) + } } /* diff --git a/src/Dialog_MainWindow.h b/src/Dialog_MainWindow.h index e175d15b..8638f7b4 100644 --- a/src/Dialog_MainWindow.h +++ b/src/Dialog_MainWindow.h @@ -130,6 +130,7 @@ protected: private: void addFiles(const QStringList &files); + void addFolder(const QString &path, bool recursive = false); bool installWMADecoder(void); bool checkForUpdates(void); -- 2.11.0