]> git.sesse.net Git - vlc/commitdiff
qt4: add .vlm at the end of the export file if needed.
authorRémi Duraffort <ivoire@videolan.org>
Sun, 15 Feb 2009 16:02:35 +0000 (17:02 +0100)
committerRémi Duraffort <ivoire@videolan.org>
Sun, 15 Feb 2009 16:04:45 +0000 (17:04 +0100)
modules/gui/qt4/dialogs/vlm.cpp

index b8232d3ecc470b540d5ef90a611e8af643b54d88..e9aa17109e45aa963348fc930f6b610ee1a836f1 100644 (file)
@@ -264,20 +264,35 @@ void VLMDialog::addVLMItem()
 /* TODO : VOD are not exported to the file */
 bool VLMDialog::exportVLMConf()
 {
-    QString saveVLMConfFileName = QFileDialog::getSaveFileName(
-            this, qtr( "Save VLM configuration as..." ),
-            qfu( config_GetHomeDir() ),
-            qtr( "VLM conf (*.vlm);;All (*)" ) );
-
-    if( !saveVLMConfFileName.isEmpty() )
+    QFileDialog* qfd = new QFileDialog( this, qtr( "Save VLM configuration as..." ),
+                                        qfu( config_GetHomeDir() ),
+                                        qtr( "VLM conf (*.vlm);;All (*)" ) );
+    qfd->setFileMode( QFileDialog::AnyFile );
+    qfd->setAcceptMode( QFileDialog::AcceptSave );
+    qfd->setConfirmOverwrite( true );
+
+    bool exported = false;
+    if( qfd->exec() == QDialog::Accepted )
     {
-        vlm_message_t *message;
-        QString command = "save \"" + saveVLMConfFileName + "\"";
-        vlm_ExecuteCommand( p_vlm , qtu( command ) , &message );
-        vlm_MessageDelete( message );
-        return true;
+        QString saveVLMConfFileName = qfd->selectedFiles().first();
+        QString filter = qfd->selectedFilter();
+
+        // If *.vlm is selected, add .vlm at the end if needed
+        if( filter.contains( "VLM" ) && !saveVLMConfFileName.contains( ".vlm" ) )
+            saveVLMConfFileName.append( ".vlm" );
+
+        if( !saveVLMConfFileName.isEmpty() )
+        {
+            vlm_message_t *message;
+            QString command = "save \"" + saveVLMConfFileName + "\"";
+            vlm_ExecuteCommand( p_vlm , qtu( command ) , &message );
+            vlm_MessageDelete( message );
+            exported = true;
+        }
     }
-    return false;
+
+    delete qfd;
+    return exported;
 }
 
 void VLMDialog::mediasPopulator()