[vlc-devel] commit: [Qt] Save the values saved during Toolbar edition. ( Jean-Baptiste Kempf )

git version control git at videolan.org
Tue Dec 9 20:41:29 CET 2008


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Tue Dec  9 20:39:27 2008 +0100| [7b0d97e20fbc9bfb83e601a8181c03dc24de2b2e] | committer: Jean-Baptiste Kempf 

[Qt] Save the values saved during Toolbar edition.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=7b0d97e20fbc9bfb83e601a8181c03dc24de2b2e
---

 modules/gui/qt4/components/controller.cpp |    2 +-
 modules/gui/qt4/dialogs/toolbar.cpp       |   68 +++++++++++++++++++++++++----
 modules/gui/qt4/dialogs/toolbar.hpp       |   14 ++++++
 3 files changed, 74 insertions(+), 10 deletions(-)

diff --git a/modules/gui/qt4/components/controller.cpp b/modules/gui/qt4/components/controller.cpp
index cab9566..3cd0583 100644
--- a/modules/gui/qt4/components/controller.cpp
+++ b/modules/gui/qt4/components/controller.cpp
@@ -102,7 +102,7 @@ void AbstractController::setupButton( QAbstractButton *aButton )
 void AbstractController::parseAndCreate( QString config,
                                          QBoxLayout *controlLayout )
 {
-    QStringList list = config.split( ";" ) ;
+    QStringList list = config.split( ";", QString::SkipEmptyParts ) ;
     for( int i = 0; i < list.size(); i++ )
     {
         QStringList list2 = list.at( i ).split( "-" );
diff --git a/modules/gui/qt4/dialogs/toolbar.cpp b/modules/gui/qt4/dialogs/toolbar.cpp
index 3b2434e..c2ead90 100644
--- a/modules/gui/qt4/dialogs/toolbar.cpp
+++ b/modules/gui/qt4/dialogs/toolbar.cpp
@@ -38,6 +38,7 @@
 #include <QListWidget>
 
 #include <QDragEnterEvent>
+#include <QDialogButtonBox>
 
 ToolbarEditDialog *ToolbarEditDialog::instance = NULL;
 
@@ -74,22 +75,22 @@ ToolbarEditDialog::ToolbarEditDialog( intf_thread_t *_p_intf)
     mainTboxLayout->addWidget(label, 0, 0, 1, 2);
 
     QComboBox *positionCombo = new QComboBox;
-    positionCombo->addItems( QStringList() << "Over the Video"
+    positionCombo->addItems( QStringList() << "Above the Video"
                                            << "Under the Video" );
     mainTboxLayout->addWidget( positionCombo, 0, 2, 1, 1 );
 
     QLabel *line1Label = new QLabel( "Line 1:" );
     QString line1 = getSettings()->value( "MainWindow/Controls1",
                         "64;36;37;38;65").toString();
-    DroppingController *controller1 = new DroppingController( p_intf, line1,
+    controller1 = new DroppingController( p_intf, line1,
             this );
     mainTboxLayout->addWidget( line1Label, 1, 0, 1, 1 );
     mainTboxLayout->addWidget( controller1, 1, 1, 1, 2 );
 
     QLabel *line2Label = new QLabel( "Line 2:" );
     QString line2 = getSettings()->value( "MainWindow/Controls2",
-                        "0-2;64;3;1;4;64;7;10;9;65;34-4" ).toString();
-    DroppingController *controller2 = new DroppingController( p_intf, line2,
+                        "0-2;64;3;1;4;64;7;10;9;65;34-4;" ).toString();
+    controller2 = new DroppingController( p_intf, line2,
             this );
     mainTboxLayout->addWidget( line2Label, 2, 0, 1, 1 );
     mainTboxLayout->addWidget( controller2, 2, 1, 1, 2);
@@ -98,7 +99,7 @@ ToolbarEditDialog::ToolbarEditDialog( intf_thread_t *_p_intf)
     QLabel *advLabel = new QLabel( "Advanced Widget toolbar:" );
     QString lineA = getSettings()->value( "MainWindow/AdvControl",
                         "12;11;13;14").toString();
-    DroppingController *controllerA = new DroppingController( p_intf, lineA,
+    controllerA = new DroppingController( p_intf, lineA,
             this );
     mainTboxLayout->addWidget( advLabel, 3, 0, 1, 2 );
     mainTboxLayout->addWidget( controllerA, 3, 2, 1, 1 );
@@ -109,9 +110,9 @@ ToolbarEditDialog::ToolbarEditDialog( intf_thread_t *_p_intf)
     QGroupBox *timeToolbarBox = new QGroupBox( "Time Toolbar", this );
     QGridLayout *timeTboxLayout = new QGridLayout( timeToolbarBox );
 
-    QString line = getSettings()->value( "timeWindow/InputControl",
+    QString line = getSettings()->value( "MainWindow/InputControl",
                         "5-1;33;6-1").toString();
-    DroppingController *controller = new DroppingController( p_intf, line,
+    controller = new DroppingController( p_intf, line,
             this );
     timeTboxLayout->addWidget( controller, 0, 0, 1, -1 );
 
@@ -122,14 +123,23 @@ ToolbarEditDialog::ToolbarEditDialog( intf_thread_t *_p_intf)
     QGridLayout *FSCTboxLayout = new QGridLayout( FSCToolbarBox );
 
     QString lineFSC = getSettings()->value( "MainWindow/FSCline",
-                        "0-2;64;3;1;4;64;36;64;37;64;8;65;35-4;34" ).toString();
-    DroppingController *controllerFSC = new DroppingController( p_intf,
+                       "0-2;64;3;1;4;64;36;64;37;64;8;65;35-4;34" ).toString();
+    controllerFSC = new DroppingController( p_intf,
             lineFSC, this );
     FSCTboxLayout->addWidget( controllerFSC, 0, 0, 1, -1 );
 
     mainLayout->addWidget( FSCToolbarBox, 3, 0, 1, -1 );
 
+    /* Buttons */
+    QDialogButtonBox *okCancel = new QDialogButtonBox;
+    QPushButton *okButton = new QPushButton( qtr( "Cl&ose" ), this );
+    QPushButton *cancelButton = new QPushButton( qtr( "&Cancel" ), this );
+    okCancel->addButton( okButton, QDialogButtonBox::AcceptRole );
+    okCancel->addButton( cancelButton, QDialogButtonBox::RejectRole );
 
+    BUTTONACT( okButton, close() );
+    BUTTONACT( cancelButton, cancel() );
+    mainLayout->addWidget( okCancel, 4, 2 );
 }
 
 
@@ -137,6 +147,22 @@ ToolbarEditDialog::~ToolbarEditDialog()
 {
 }
 
+void ToolbarEditDialog::close()
+{
+    msg_Dbg( p_intf, "Close and save" );
+    hide();
+    getSettings()->setValue( "MainWindow/Controls1", controller1->getValue() );
+    getSettings()->setValue( "MainWindow/Controls2", controller2->getValue() );
+    getSettings()->setValue( "MainWindow/AdcControl", controllerA->getValue() );
+    getSettings()->setValue( "MainWindow/InputControl", controller->getValue() );
+    getSettings()->setValue( "MainWindow/FSCline", controllerFSC->getValue() );
+}
+
+void ToolbarEditDialog::cancel()
+{
+    hide();
+}
+
 WidgetListing::WidgetListing( intf_thread_t *p_intf, QWidget *_parent )
               : QListWidget( _parent )
 {
@@ -332,6 +358,10 @@ void DroppingController::createAndAddWidget( QBoxLayout *controlLayout,
                                              buttonType_e i_type,
                                              int i_option )
 {
+    doubleInt *value = new doubleInt;
+    value->i_type = i_type;
+    value->i_option = i_option;
+
     /* Special case for SPACERS, who aren't QWidgets */
     if( i_type == WIDGET_SPACER || i_type == WIDGET_SPACER_EXTEND )
     {
@@ -359,6 +389,26 @@ void DroppingController::createAndAddWidget( QBoxLayout *controlLayout,
         widg->show();
         controlLayout->insertWidget( i_index, widg );
     }
+    /* QList and QBoxLayout don't act the same with insert() */
+    if( i_index < 0 ) i_index = controlLayout->count() -1 ;
+
+    widgetList.insert( i_index, value );
+}
+
+QString DroppingController::getValue()
+{
+    QString qs = "";
+
+    for( int i = 0; i < controlLayout->count(); i++ )
+    {
+        doubleInt *dI = widgetList.at( i );
+        assert( dI );
+
+        qs.append( QString::number( dI->i_type ) );
+        if( dI->i_option ) qs.append( "-" + QString::number( dI->i_option ) );
+        qs.append( ';' );
+    }
+    return qs;
 }
 
 void DroppingController::dragEnterEvent( QDragEnterEvent * event )
diff --git a/modules/gui/qt4/dialogs/toolbar.hpp b/modules/gui/qt4/dialogs/toolbar.hpp
index c567999..fafd288 100644
--- a/modules/gui/qt4/dialogs/toolbar.hpp
+++ b/modules/gui/qt4/dialogs/toolbar.hpp
@@ -31,6 +31,7 @@
 #include <QListWidget>
 
 class ToolbarEditDialog;
+class DroppingController;
 
 class WidgetListing : public QListWidget
 {
@@ -64,6 +65,12 @@ private:
     QCheckBox *flatBox, *bigBox, *shinyBox;
 
     WidgetListing *widgetListing;
+    DroppingController *controller1, *controller2, *controllerA;
+    DroppingController *controllerFSC, *controller;
+
+private slots:
+    void cancel();
+    void close();
 };
 
 class DroppingController: public AbstractController
@@ -71,6 +78,7 @@ class DroppingController: public AbstractController
     Q_OBJECT;
 public:
     DroppingController( intf_thread_t *, QString line, QWidget *parent = 0 );
+    QString getValue();
 
 protected:
     virtual void createAndAddWidget( QBoxLayout *controlLayout, int i_index,
@@ -82,7 +90,13 @@ protected:
 
     virtual void doAction( int );
 private:
+    struct doubleInt
+    {
+        int i_type;
+        int i_option;
+    };
     QRubberBand *rubberband;
+    QList <doubleInt *> widgetList;
 
     int getParentPosInLayout( QPoint point);
 




More information about the vlc-devel mailing list