]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/dialogs/vlm.cpp
Qt4 - track destroying of VLM dialog because vlm object is NOT destroyed on exit.
[vlc] / modules / gui / qt4 / dialogs / vlm.cpp
index 97b12f44590e05f14c062e0d23531a8ad0b6dca1..56307333afb9ea2e332cb6355aff5092189a8906 100644 (file)
@@ -2,7 +2,7 @@
  * vlm.cpp : VLM Management
  ****************************************************************************
  * Copyright © 2008 the VideoLAN team
- * $Id: sout.cpp 21875 2007-09-08 16:01:33Z jb $
+ * $Id$
  *
  * Authors: Jean-Baptiste Kempf <jb@videolan.org>
  *          Jean-François Massol <jf.massol -at- gmail.com>
@@ -130,6 +130,9 @@ VLMDialog::VLMDialog( QWidget *parent, intf_thread_t *_p_intf ) : QVLCDialog( pa
         new QSpacerItem( 10, 10, QSizePolicy::Minimum, QSizePolicy::Expanding);
     vlmItemLayout->addItem( spacer );
 
+    QPushButton *importButton = new QPushButton( qtr(  "Import" ) );
+    ui.buttonBox->addButton( importButton, QDialogButtonBox::ActionRole );
+
     QPushButton *exportButton = new QPushButton( qtr( "Export" ) );
     ui.buttonBox->addButton( exportButton, QDialogButtonBox::ActionRole );
 
@@ -149,6 +152,7 @@ VLMDialog::VLMDialog( QWidget *parent, intf_thread_t *_p_intf ) : QVLCDialog( pa
 
     BUTTONACT( closeButton, close() );
     BUTTONACT( exportButton, exportVLMConf() );
+    BUTTONACT( importButton, importVLMConf() );
     BUTTONACT( ui.addButton, addVLMItem() );
     BUTTONACT( ui.clearButton, clearWidgets() );
     BUTTONACT( ui.saveButton, saveModifications() );
@@ -160,6 +164,7 @@ VLMDialog::~VLMDialog()
 {
    /* FIXME :you have to destroy vlm here to close
     * but we shouldn't destroy vlm here in case somebody else wants it */
+    msg_Dbg( p_intf, "Destroying VLM Dialog" );
     if( p_vlm )
         vlm_Delete( p_vlm );
 }
@@ -270,9 +275,23 @@ bool VLMDialog::exportVLMConf()
     return false;
 }
 
-// TODO : import configuration file
+
 bool VLMDialog::importVLMConf()
 {
+    QString openVLMConfFileName = QFileDialog::getOpenFileName(
+            this, qtr( "Choose a VLM configuration file to open..." ),
+            qfu( p_intf->p_libvlc->psz_homedir ),
+            qtr( "VLM conf (*.vlm) ;; All (*.*)" ) );
+
+    if( !openVLMConfFileName.isEmpty() )
+    {
+        vlm_message_t *message;
+        QString command = "load \"" + openVLMConfFileName + "\"";
+        vlm_ExecuteCommand( p_vlm, qtu( command ) , &message );
+        vlm_MessageDelete( message );
+        return true;
+    }
+    return false;
 }
 
 void VLMDialog::clearWidgets()
@@ -292,7 +311,7 @@ void VLMDialog::clearWidgets()
 
 void VLMDialog::selectInput()
 {
-    OpenDialog *o = OpenDialog::getInstance( this, p_intf, 0, true );
+    OpenDialog *o = OpenDialog::getInstance( this, p_intf, SELECT, true );
     o->exec();
     ui.inputLedit->setText( o->getMRL() );
 }