@@ -88,9 +88,9 @@ void cMpvFilebrowser::ShowDirectory(string Path)
8888 MenuTitle += " (" + Path .substr (rootDir .size () + 1 , string ::npos ) + ")" ;
8989 SetTitle (MenuTitle .c_str ());
9090#ifdef USE_DISC
91- SetHelp (tr ("Disc" ), Directories .size () ? tr ("PlayDir" ) : NULL , tr ("Shuffle " ), NULL );
91+ SetHelp (tr ("Disc" ), Directories .size () ? tr ("PlayDir" ) : NULL , tr ("Remove " ), tr ( "Shuffle" ) );
9292#else
93- SetHelp (NULL , Directories .size () ? tr ("PlayDir" ) : NULL , tr ("Shuffle " ), NULL );
93+ SetHelp (NULL , Directories .size () ? tr ("PlayDir" ) : NULL , tr ("Remove " ), tr ( "Shuffle" ) );
9494#endif
9595 Display ();
9696}
@@ -134,19 +134,23 @@ int cMpvFilebrowser::PlayListCreate(string Path, FILE *fdPl)
134134
135135 if (!PlayDirectories .size () && !PlayFiles .size ()) return -1 ;
136136
137- sort (PlayDirectories .begin (), PlayDirectories .end ());
138- sort (PlayFiles .begin (), PlayFiles .end ());
139-
140- for (unsigned int i = 0 ; i < PlayDirectories .size (); i ++ )
137+ if (fdPl )
141138 {
142- string Filedir = Path + "/" + PlayDirectories [i ];
143- PlayListCreate (Filedir , fdPl );
144- }
145139
146- for (unsigned int i = 0 ; i < PlayFiles .size (); i ++ )
147- {
148- string Filename = Path + "/" + PlayFiles [i ];
149- fprintf (fdPl , "%s\n" , Filename .c_str ());
140+ sort (PlayDirectories .begin (), PlayDirectories .end ());
141+ sort (PlayFiles .begin (), PlayFiles .end ());
142+
143+ for (unsigned int i = 0 ; i < PlayDirectories .size (); i ++ )
144+ {
145+ string Filedir = Path + "/" + PlayDirectories [i ];
146+ PlayListCreate (Filedir , fdPl );
147+ }
148+
149+ for (unsigned int i = 0 ; i < PlayFiles .size (); i ++ )
150+ {
151+ string Filename = Path + "/" + PlayFiles [i ];
152+ fprintf (fdPl , "%s\n" , Filename .c_str ());
153+ }
150154 }
151155 return 0 ;
152156}
@@ -204,9 +208,9 @@ eOSState cMpvFilebrowser::ProcessKey(eKeys Key)
204208 if (!item ) break ;
205209 currentItem = item -> Text ();
206210#ifdef USE_DISC
207- SetHelp (tr ("Disc" ), item -> IsDirectory () ? tr ("PlayDir" ) : NULL , tr ("Shuffle " ), NULL );
211+ SetHelp (tr ("Disc" ), item -> IsDirectory () ? tr ("PlayDir" ) : NULL , tr ("Remove " ), tr ( "Shuffle" ) );
208212#else
209- SetHelp (NULL , item -> IsDirectory () ? tr ("PlayDir" ) : NULL , tr ("Shuffle " ), NULL );
213+ SetHelp (NULL , item -> IsDirectory () ? tr ("PlayDir" ) : NULL , tr ("Remove " ), tr ( "Shuffle" ) );
210214#endif
211215 return State ;
212216
@@ -215,7 +219,7 @@ eOSState cMpvFilebrowser::ProcessKey(eKeys Key)
215219 return osEnd ;
216220 break ;
217221
218- case kYellow :
222+ case kBlue :
219223 item = (cMpvFilebrowserMenuItem * ) Get (Current ());
220224 if (!item ) break ;
221225 newPath = item -> Path () + "/" + item -> Text ();
@@ -257,6 +261,46 @@ eOSState cMpvFilebrowser::ProcessKey(eKeys Key)
257261 }
258262 break ;
259263
264+ case kYellow :
265+ item = (cMpvFilebrowserMenuItem * ) Get (Current ());
266+ if (!item ) break ;
267+ newPath = item -> Path () + "/" + item -> Text ();
268+ if (item -> IsDirectory ())
269+ {
270+ int res ;
271+ res = PlayListCreate (newPath , NULL );
272+ if (res != -1 )
273+ {
274+ Skins .Message (mtError , tr ("Not empty directory, can't remove!" ));
275+ }
276+ else
277+ {
278+ if (Skins .Message (mtWarning , tr ("Remove empty directory?" ), 5 ) == kOk )
279+ {
280+ res = rmdir (newPath .c_str ());
281+ if (res )
282+ {
283+ Skins .Message (mtError , tr ("Unable to remove directory!" ));
284+ }
285+ }
286+ }
287+ ShowDirectory (currentDir );
288+ }
289+ else
290+ {
291+ if (Skins .Message (mtWarning , tr ("Remove file?" ), 5 ) == kOk )
292+ {
293+ int res ;
294+ res = remove (newPath .c_str ());
295+ if (res )
296+ {
297+ Skins .Message (mtError , tr ("Unable to remove file!" ));
298+ }
299+ }
300+ }
301+ return osContinue ;
302+ break ;
303+
260304 default :
261305 break ;
262306 }
0 commit comments