]> git.sesse.net Git - vlc/commitdiff
open directory and playlist
authorClément Stenac <zorglub@videolan.org>
Sun, 3 Sep 2006 16:50:22 +0000 (16:50 +0000)
committerClément Stenac <zorglub@videolan.org>
Sun, 3 Sep 2006 16:50:22 +0000 (16:50 +0000)
modules/gui/qt4/dialogs_provider.cpp
modules/gui/qt4/dialogs_provider.hpp
modules/gui/qt4/menus.cpp

index 91d3399c7730974332061b62ffae6ca698a517bc..a63e2d736207bbfddff00928c4fd48e0274060e5 100644 (file)
@@ -19,7 +19,6 @@
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/
-
 #include "qt4.hpp"
 #include <QEvent>
 #include "dialogs_provider.hpp"
@@ -218,6 +217,41 @@ void DialogsProvider::simpleOpenDialog()
     }
 }
 
+void DialogsProvider::openPlaylist()
+{
+    QStringList files = showSimpleOpen();
+    QString file;
+    for( size_t i = 0 ; i< files.size(); i++ )
+    {
+        const char * psz_utf8 = files[i].toUtf8().data();
+        /* Play the first one, parse and enqueue the other ones */
+        playlist_Import( THEPL, psz_utf8, THEPL->p_root_category, VLC_FALSE );
+    }
+}
+
+void DialogsProvider::openDirectory()
+{
+    QString dir = QFileDialog::getExistingDirectory ( 0,
+                                                     _("Open directory") );
+    const char *psz_utf8 = dir.toUtf8().data();
+    input_item_t *p_input = input_ItemNewExt( THEPL, psz_utf8, psz_utf8,
+                                               0, NULL, -1 );
+    playlist_PlaylistAddInput( THEPL, p_input,
+                               PLAYLIST_APPEND, PLAYLIST_END );
+    input_Read( THEPL, p_input, VLC_FALSE );
+}
+void DialogsProvider::openMLDirectory()
+{
+    QString dir = QFileDialog::getExistingDirectory ( 0,
+                                                     _("Open directory") );
+    const char *psz_utf8 = dir.toUtf8().data();
+    fprintf( stderr, "%s\n", psz_utf8 );
+    input_item_t *p_input = input_ItemNewExt( THEPL, psz_utf8, psz_utf8,
+                                               0, NULL, -1 );
+    playlist_MLAddInput( THEPL, p_input, PLAYLIST_APPEND, PLAYLIST_END );
+    input_Read( THEPL, p_input, VLC_FALSE );
+}
+
 QStringList DialogsProvider::showSimpleOpen()
 {
     QString FileTypes;
index ed476013c917c73c0fb93390991bda958b1bfa0c..6018313f9c55d3cb626ddce0c532a8a5682d8548 100644 (file)
@@ -82,6 +82,9 @@ public slots:
     void menuAction( QObject *);
     void menuUpdateAction( QObject *);
     void streamingDialog();
+    void openPlaylist();
+    void openDirectory();
+    void openMLDirectory();
     void quit();
 };
 
index 523fef9f5d121454486e14e662ab55ee91c42352..205135b5709234b4920f20390422b59b9f3e849d 100644 (file)
@@ -146,9 +146,11 @@ void QVLCMenu::createPlMenuBar( QMenuBar *bar, intf_thread_t *p_intf )
     subML->setTitle( qtr("Add to Media library") );
     subML->addAction( "&File...", THEDP,
                            SLOT( simpleMLAppendDialog() ) );
+    subML->addAction( "Directory", THEDP, SLOT( openMLDirectory() ));
     subML->addAction( "&Advanced add...", THEDP,
                            SLOT( MLAppendDialog() ) );
     manageMenu->addMenu( subML );
+    manageMenu->addAction( "Open playlist file", THEDP, SLOT( openPlaylist() ));
     manageMenu->addSeparator();
 
 //    manageMenu->addMenu( SDMenu( p_intf ) );