X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fcomponents%2Fopen_panels.hpp;h=bef2c8c6a3ea7259bf138fb5a3a5acd9e0d528ea;hb=2a100fcd186304e600d6d896325855836fa899e6;hp=34a8c018abfb464ef632e919ce8e18ce651922e4;hpb=e123fc1efeb9cc200667a4218112539a46012fc8;p=vlc diff --git a/modules/gui/qt4/components/open_panels.hpp b/modules/gui/qt4/components/open_panels.hpp index 34a8c018ab..bef2c8c6a3 100644 --- a/modules/gui/qt4/components/open_panels.hpp +++ b/modules/gui/qt4/components/open_panels.hpp @@ -46,19 +46,6 @@ #define setSpinBoxFreq( spinbox ){ spinbox->setRange ( 0, INT_MAX ); \ spinbox->setAccelerated( true ); } -enum -{ - NO_PROTO, - HTTP_PROTO, - HTTPS_PROTO, - MMS_PROTO, - FTP_PROTO, - RTSP_PROTO, - RTP_PROTO, - UDP_PROTO, - RTMP_PROTO -}; - enum { V4L_DEVICE, @@ -75,10 +62,11 @@ class QWidget; class QLineEdit; class QString; class QStringListModel; +class QEvent; class OpenPanel: public QWidget { - Q_OBJECT; + Q_OBJECT public: OpenPanel( QWidget *p, intf_thread_t *_p_intf ) : QWidget( p ) { @@ -91,32 +79,63 @@ protected: public slots: virtual void updateMRL() = 0; signals: - void mrlUpdated( QStringList, QString ); - void methodChanged( QString method ); + void mrlUpdated( const QStringList&, const QString& ); + void methodChanged( const QString& method ); +}; + +class FileOpenBox: public QFileDialog +{ + Q_OBJECT +public: + FileOpenBox( QWidget *parent, const QString &caption, + const QString &directory, const QString &filter ): + QFileDialog( parent, caption, directory, filter ) {} +public slots: + void accept(){} + void reject(){} }; + class FileOpenPanel: public OpenPanel { - Q_OBJECT; + Q_OBJECT public: FileOpenPanel( QWidget *, intf_thread_t * ); virtual ~FileOpenPanel(); virtual void clear() ; virtual void accept() ; +protected: + bool eventFilter(QObject *obj, QEvent *event) + { + if( event->type() == QEvent::Hide || + event->type() == QEvent::HideToParent ) + { + event->accept(); + return true; + } + return false; + } + virtual void dropEvent( QDropEvent *); + virtual void dragEnterEvent( QDragEnterEvent * ); + virtual void dragMoveEvent( QDragMoveEvent * ); + virtual void dragLeaveEvent( QDragLeaveEvent * ); private: Ui::OpenFile ui; + FileOpenBox *dialogBox; + void BuildOldPanel(); public slots: virtual void updateMRL(); private slots: void browseFileSub(); void browseFile(); - void deleteFile(); + void removeFile(); + void updateButtons(); void toggleSubtitleFrame( bool ); }; class NetOpenPanel: public OpenPanel { - Q_OBJECT; + Q_OBJECT public: NetOpenPanel( QWidget *, intf_thread_t * ); virtual ~NetOpenPanel(); @@ -127,13 +146,28 @@ private: public slots: virtual void updateMRL(); private slots: - void updateProtocol( int ); - void updateCompleter(); + void updateModel(); +}; + +class UrlValidator : public QValidator +{ + Q_OBJECT +public: + UrlValidator( QObject *parent ) : QValidator( parent ) { } + void fixup( QString& ) const; + QValidator::State validate( QString&, int& ) const; }; class DiscOpenPanel: public OpenPanel { - Q_OBJECT; + Q_OBJECT + enum DiscType + { + None, + Dvd, + Vcd, + Cdda + }; public: DiscOpenPanel( QWidget *, intf_thread_t * ); virtual ~DiscOpenPanel(); @@ -142,7 +176,7 @@ public: private: Ui::OpenDisk ui; char *psz_dvddiscpath, *psz_vcddiscpath, *psz_cddadiscpath; - bool b_firstdvd, b_firstvcd, b_firstcdda; + DiscType m_discType; public slots: virtual void updateMRL() ; private slots: @@ -154,7 +188,7 @@ private slots: class CaptureOpenPanel: public OpenPanel { - Q_OBJECT; + Q_OBJECT public: CaptureOpenPanel( QWidget *, intf_thread_t * ); virtual ~CaptureOpenPanel(); @@ -166,7 +200,7 @@ private: QString advMRL; QDialog *adv; #ifdef WIN32 - QRadioButton *bdas, *bdat, *bdac, *bdaa; + QRadioButton *bdas, *bdat, *bdac, *bdaa, *bdaq; QSpinBox *bdaCard, *bdaFreq, *bdaSrate; QLabel *bdaSrateLabel, *bdaBandLabel; QComboBox *bdaBandBox; @@ -174,17 +208,18 @@ private: QLineEdit *dshowVSizeLine; #else QRadioButton *dvbs, *dvbt, *dvbc; + QLabel *dvbBandLabel, *dvbSrateLabel; QSpinBox *v4lFreq, *pvrFreq, *pvrBitr; QLineEdit *v4lVideoDevice, *v4lAudioDevice; QLineEdit *v4l2VideoDevice, *v4l2AudioDevice; QLineEdit *pvrDevice, *pvrRadioDevice; - QComboBox *v4lNormBox, *v4l2StdBox, *pvrNormBox; + QComboBox *v4lNormBox, *v4l2StdBox, *pvrNormBox, *dvbBandBox; QSpinBox *dvbCard, *dvbFreq, *dvbSrate; QSpinBox *jackChannels, *jackCaching; QCheckBox *jackPace, *jackConnect; QLineEdit *jackPortsSelected; #endif - QSpinBox *screenFPS; + QDoubleSpinBox *screenFPS; public slots: virtual void updateMRL();