From: Francois Cartegnie Date: Wed, 29 Sep 2010 15:47:02 +0000 (+0200) Subject: Qt: NetOpenPanel: add drop-down list X-Git-Tag: 1.2.0-pre1~5205 X-Git-Url: https://git.sesse.net/?p=vlc;a=commitdiff_plain;h=2a100fcd186304e600d6d896325855836fa899e6 Qt: NetOpenPanel: add drop-down list --- diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index 59fe5c0bbe..ae75fc6b2e 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -539,21 +539,22 @@ NetOpenPanel::NetOpenPanel( QWidget *_parent, intf_thread_t *_p_intf ) : ui.setupUi( this ); /* CONNECTs */ - CONNECT( ui.urlText, textChanged( const QString& ), this, updateMRL()); + CONNECT( ui.urlComboBox->lineEdit(), textChanged( const QString& ), this, updateMRL()); + CONNECT( ui.urlComboBox, currentIndexChanged( const QString& ), this, updateMRL()); if( var_InheritBool( p_intf, "qt-recentplay" ) ) { mrlList = new QStringListModel( getSettings()->value( "Open/netMRL" ).toStringList() ); - QCompleter *completer = new QCompleter( mrlList, this ); - ui.urlText->setCompleter( completer ); - - CONNECT( ui.urlText, editingFinished(), this, updateCompleter() ); + ui.urlComboBox->setModel( mrlList ); + ui.urlComboBox->clearEditText(); + CONNECT( ui.urlComboBox->lineEdit(), editingFinished(), this, updateModel() ); } else mrlList = NULL; - ui.urlText->setValidator( new UrlValidator( this ) ); + ui.urlComboBox->setValidator( new UrlValidator( this ) ); + ui.urlComboBox->setFocus(); } NetOpenPanel::~NetOpenPanel() @@ -601,7 +602,7 @@ void NetOpenPanel::updateMRL() { "udp", "udp" }, }; - QString url = ui.urlText->text(); + QString url = ui.urlComboBox->lineEdit()->text(); if( !url.contains( "://") ) return; /* nothing to do this far */ @@ -618,12 +619,12 @@ void NetOpenPanel::updateMRL() emit mrlUpdated( qsl, "" ); } -void NetOpenPanel::updateCompleter() +void NetOpenPanel::updateModel() { assert( mrlList ); QStringList tempL = mrlList->stringList(); - if( !tempL.contains( ui.urlText->text() ) ) - tempL.append( ui.urlText->text() ); + if( !tempL.contains( ui.urlComboBox->lineEdit()->text() ) ) + tempL.append( ui.urlComboBox->lineEdit()->text() ); mrlList->setStringList( tempL ); } diff --git a/modules/gui/qt4/components/open_panels.hpp b/modules/gui/qt4/components/open_panels.hpp index bcd09e2c4f..bef2c8c6a3 100644 --- a/modules/gui/qt4/components/open_panels.hpp +++ b/modules/gui/qt4/components/open_panels.hpp @@ -146,7 +146,7 @@ private: public slots: virtual void updateMRL(); private slots: - void updateCompleter(); + void updateModel(); }; class UrlValidator : public QValidator diff --git a/modules/gui/qt4/ui/open_net.ui b/modules/gui/qt4/ui/open_net.ui index 34b6d22dd7..91e5319864 100644 --- a/modules/gui/qt4/ui/open_net.ui +++ b/modules/gui/qt4/ui/open_net.ui @@ -32,16 +32,6 @@ Please enter a network URL: - - urlText - - - - - - - Enter the URL of the network stream here. - @@ -52,7 +42,7 @@ p, li { white-space: pre-wrap; } p { margin: 0; -qt-block-indent: 0; text-indent: 0;} body { font-family: 'sans'; font-size: 8pt; font-weight: 400; } -p > span { color: #838383; } +p > span { color: #838383; } </style></head><body> <p><span>http://www.example.com/stream.avi</span></p> <p><span>rtp://@:1234</span></p> @@ -68,6 +58,16 @@ p > span { color: #838383; } + + + + true + + + QComboBox::NoInsert + + + @@ -90,7 +90,7 @@ p > span { color: #838383; } - urlText + urlComboBox