summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/app/xineEngine.cpp38
1 files changed, 31 insertions, 7 deletions
diff --git a/src/app/xineEngine.cpp b/src/app/xineEngine.cpp
index 3ae7220..6132f4a 100644
--- a/src/app/xineEngine.cpp
+++ b/src/app/xineEngine.cpp
@@ -902,13 +902,37 @@ VideoWindow::fileFilter() const
{
char *supportedExtensions = xine_get_file_extensions( m_xine );
- TQString filter( "*." );
- filter.append( supportedExtensions );
- filter.remove( "txt" );
- filter.remove( "png" );
- filter.replace( ' ', " *." );
-
- std::free( supportedExtensions );
+ TQString filter("*.");
+ filter.append(supportedExtensions);
+
+ // Remove protocols
+ filter.remove(" dvb://");
+ filter.remove(" dvbc://");
+ filter.remove(" dvbs://");
+ filter.remove(" dvbt://");
+ filter.remove(" vcd:/");
+ filter.remove(" vdr:/");
+ filter.remove(" netvdr:/");
+ filter.remove(" dvd:/");
+ filter.remove(" pvr:/");
+ filter.remove(" slave://");
+ filter.remove(" cdda:/");
+
+ // Remove image files
+ filter.remove(" bmp");
+ filter.remove(" gif");
+ filter.remove(" jpg");
+ filter.remove(" jpeg");
+ filter.remove(" png");
+
+ // Remove misc. files
+ filter.remove(" txt");
+
+ // Remove spaces (prevent multiple *.)
+ filter.replace(" ", " ");
+ filter.replace(' ', " *.");
+
+ std::free(supportedExtensions);
return filter;
}