]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs_provider.cpp
Qt4 - Add new icons for the playlist/shuffle/repeat.
[vlc] / modules / gui / qt4 / dialogs_provider.cpp
index 706d491f30b663d3560a79e31dd4b47b6fa0c1e3..f244eb74c53c4e70ecf90d27989351ce00c0f5bc 100644 (file)
@@ -43,6 +43,7 @@
 #include "dialogs/open.hpp"
 #include "dialogs/help.hpp"
 #include "dialogs/gototime.hpp"
+#include "dialogs/podcast_configuration.hpp"
 
 DialogsProvider* DialogsProvider::instance = NULL;
 
@@ -71,7 +72,7 @@ DialogsProvider::~DialogsProvider()
 
 void DialogsProvider::quit()
 {
-    p_intf->b_die = VLC_TRUE;
+    vlc_object_kill( p_intf );
     QApplication::quit();
 }
 
@@ -155,7 +156,7 @@ void DialogsProvider::gotoTimeDialog()
 
 void DialogsProvider::vlmDialog()
 {
-    /* FIXME */
+    /* FIXME - Implement me */
     /*  VLMDialog::getInstance( p_intf )->toggleVisible(); */
 }
 
@@ -176,19 +177,24 @@ void DialogsProvider::mediaInfoDialog()
 
 void DialogsProvider::mediaCodecDialog()
 {
-    MediaInfoDialog::getInstance( p_intf )->showTab( 1 );
+    MediaInfoDialog::getInstance( p_intf )->showTab( 2 );
 }
 
 void DialogsProvider::bookmarksDialog()
 {
-    /* FIXME */
+    /* FIXME - Implement me */
     /*  BookmarkDialog::getInstance( p_intf )->toggleVisible(); */
 }
 
 /****************************************************************************
  * All the open/add stuff
+ * Open Dialog first - Simple Open then
  ****************************************************************************/
 
+void DialogsProvider::openDialog( int i_tab )
+{
+    OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf )->showTab( i_tab );
+}
 void DialogsProvider::openDialog()
 {
     openDialog( OPEN_FILE_TAB );
@@ -209,23 +215,25 @@ void DialogsProvider::openCaptureDialog()
 {
     openDialog( OPEN_CAPTURE_TAB );
 }
-void DialogsProvider::openDialog( int i_tab )
-{
-    OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf )->showTab( i_tab );
-}
 
+/* Same as the open one, but force the enqueue */
 void DialogsProvider::PLAppendDialog()
 {
-    
-    OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf, ENQUEUE )
-        ->showTab(0);
+    OpenDialog::getInstance( p_intf->p_sys->p_mi , p_intf, ENQUEUE)->showTab(0);
 }
+
+/* Unimplemmented yet - Usefull ? */
 void DialogsProvider::MLAppendDialog()
 {
 }
 
-/**** Simple open ****/
-QStringList DialogsProvider::showSimpleOpen( QString help, int filters,
+/**
+ * Simple open
+ * Not used anymore. Let the code until we are sure we don't want it
+ * Two opens make it confusing for the user.
+ ***/
+QStringList DialogsProvider::showSimpleOpen( QString help,
+                                             int filters,
                                              QString path )
 {
     QString fileTypes = "";
@@ -284,6 +292,37 @@ void DialogsProvider::simpleOpenDialog()
     addFromSimple( true, true );
 }
 
+/* Directory */
+
+/**
+ * Open a directory,
+ * pl helps you to choose from playlist or media library,
+ * go to start or enqueue
+ **/
+static void openDirectory( intf_thread_t* p_intf, bool pl, bool go )
+{
+    QString dir = QFileDialog::getExistingDirectory ( 0, qtr("Open directory") );
+    if (!dir.isEmpty()) {
+        input_item_t *p_input = input_ItemNewExt( THEPL, qtu(dir), NULL,
+                                               0, NULL, -1 );
+
+        playlist_AddInput( THEPL, p_input,
+                       go ? ( PLAYLIST_APPEND | PLAYLIST_GO ) : PLAYLIST_APPEND,
+                       PLAYLIST_END, pl, VLC_FALSE );
+        input_Read( THEPL, p_input, VLC_FALSE );
+    }
+}
+
+void DialogsProvider::PLAppendDir()
+{
+    openDirectory( p_intf, true, false );
+}
+
+void DialogsProvider::MLAppendDir()
+{
+    openDirectory( p_intf, false , false );
+}
+
 /****************
  * Playlist     *
  ****************/
@@ -312,8 +351,9 @@ void DialogsProvider::savePlaylist()
     {
         if( qfd->selectedFiles().count() > 0 )
         {
-            char *psz_module, *psz_m3u = "export-m3u",
-                 *psz_xspf = "export-xspf";
+            static const char psz_xspf[] = "export-xspf",
+                              psz_m3u[] = "esport-m3u";
+            const char *psz_module;
 
             QString file = qfd->selectedFiles().first();
             QString filter = qfd->selectedFilter();
@@ -339,44 +379,23 @@ void DialogsProvider::savePlaylist()
     delete qfd;
 }
 
-static void openDirectory( intf_thread_t* p_intf, bool pl, bool go )
-{
-    QString dir = QFileDialog::getExistingDirectory ( 0,
-                                                     _("Open directory") );
-    input_item_t *p_input = input_ItemNewExt( THEPL, qtu(dir), NULL,
-                                               0, NULL, -1 );
-    playlist_AddInput( THEPL, p_input,
-                       go ? ( PLAYLIST_APPEND | PLAYLIST_GO ) : PLAYLIST_APPEND,
-                       PLAYLIST_END, pl, VLC_FALSE );
-    input_Read( THEPL, p_input, VLC_FALSE );
-}
-
-void DialogsProvider::PLAppendDir()
-{
-    openDirectory( p_intf, true, false );
-}
-
-void DialogsProvider::MLAppendDir()
-{
-    openDirectory( p_intf, false , false );
-}
-
 
 /****************************************************************************
  * Sout emulation
  ****************************************************************************/
 
+//FIXME !!
 void DialogsProvider::streamingDialog( QString mrl, bool b_transcode_only )
 {
     SoutDialog *s = new SoutDialog( p_intf->p_sys->p_mi, p_intf,
                                                     b_transcode_only );
     if( s->exec() == QDialog::Accepted )
     {
-        msg_Err(p_intf, "mrl %s\n", qta(s->mrl));
+        msg_Err( p_intf, "mrl %s\n", qta( s->getMrl() ) );
         /* Just do it */
-        int i_len = strlen( qtu(s->mrl) ) + 10;
+        int i_len = strlen( qtu( s->getMrl() ) ) + 10;
         char *psz_option = (char*)malloc(i_len);
-        snprintf( psz_option, i_len - 1, ":sout=%s", qtu(s->mrl));
+        snprintf( psz_option, i_len - 1, "%s", qtu( s->getMrl() ) );
 
         playlist_AddExt( THEPL, qtu( mrl ), "Streaming",
                          PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END,
@@ -406,7 +425,7 @@ void DialogsProvider::streamingDialog()
         if( s->exec() == QDialog::Accepted )
         {
             msg_Err(p_intf, "mrl %s\n", qta(s->mrl));
-            /* Just do it  
+            /* Just do it
             int i_len = strlen( qtu(s->mrl) ) + 10;
             char *psz_option = (char*)malloc(i_len);
             snprintf( psz_option, i_len - 1, ":sout=%s", qtu(s->mrl));
@@ -444,11 +463,9 @@ void DialogsProvider::SDMenuAction( QString data )
         playlist_ServicesDiscoveryAdd( THEPL, psz_sd );
     else
         playlist_ServicesDiscoveryRemove( THEPL, psz_sd );
-
     free( psz_sd );
 }
 
-
 void DialogsProvider::doInteraction( intf_dialog_args_t *p_arg )
 {
     InteractionDialog *qdialog;
@@ -481,9 +498,10 @@ void DialogsProvider::doInteraction( intf_dialog_args_t *p_arg )
     }
 }
 
-void DialogsProvider::hideMenus()
+void DialogsProvider::podcastConfigureDialog()
 {
-    /* TODO */
+    PodcastConfigurationDialog c( p_intf );
+    c.exec();
 }
 
 void DialogsProvider::switchToSkins()