Commit d43b6be0 authored by François Cartegnie's avatar François Cartegnie 🤞

Qt: v4l2 control: drop v4l2.ui. auto-detect instance.

parent eb4d5bcf
......@@ -69,7 +69,6 @@ nodist_SOURCES_qt4 = \
util/qvlcapp.moc.cpp \
resources.cpp \
ui/equalizer.h \
ui/v4l2.h \
ui/video_effects.h \
ui/open_file.h \
ui/open_disk.h \
......@@ -344,7 +343,6 @@ noinst_HEADERS = \
EXTRA_DIST += \
vlc.qrc \
ui/equalizer.ui \
ui/v4l2.ui \
ui/video_effects.ui \
ui/open_file.ui \
ui/open_disk.ui \
......
......@@ -35,6 +35,7 @@
#include <QGridLayout>
#include <QSignalMapper>
#include <QComboBox>
#include <QTimer>
#include "components/extended_panels.hpp"
#include "dialogs/preferences.hpp"
......@@ -633,13 +634,16 @@ void ExtVideo::gotoConf( QObject* src )
**********************************************************************/
ExtV4l2::ExtV4l2( intf_thread_t *_p_intf, QWidget *_parent )
: QWidget( _parent ), p_intf( _p_intf )
: QWidget( _parent ), p_intf( _p_intf ), box( NULL )
{
ui.setupUi( this );
BUTTONACT( ui.refresh, Refresh() );
box = NULL;
QVBoxLayout *layout = new QVBoxLayout( this );
help = new QLabel( qtr("No v4l2 instance found.\n"
"Please check that the device has been opened with VLC and is playing.\n\n"
"Controls will automatically appear here.")
, this );
help->setAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
layout->addWidget( help );
setLayout( layout );
}
void ExtV4l2::showEvent( QShowEvent *event )
......@@ -651,10 +655,10 @@ void ExtV4l2::showEvent( QShowEvent *event )
void ExtV4l2::Refresh( void )
{
vlc_object_t *p_obj = (vlc_object_t*)vlc_object_find_name( p_intf, "v4l2", FIND_ANYWHERE );
ui.help->hide();
help->hide();
if( box )
{
ui.vboxLayout->removeWidget( box );
layout()->removeWidget( box );
delete box;
box = NULL;
}
......@@ -666,13 +670,13 @@ void ExtV4l2::Refresh( void )
if( i_ret < 0 )
{
msg_Err( p_intf, "Oops, v4l2 object doesn't have a 'controls' variable." );
ui.help->show();
help->show();
vlc_object_release( p_obj );
return;
}
box = new QGroupBox( this );
ui.vboxLayout->addWidget( box );
layout()->addWidget( box );
QVBoxLayout *layout = new QVBoxLayout( box );
box->setLayout( layout );
......@@ -780,7 +784,9 @@ void ExtV4l2::Refresh( void )
else
{
msg_Dbg( p_intf, "Couldn't find v4l2 instance" );
ui.help->show();
help->show();
if ( isVisible() )
QTimer::singleShot( 2000, this, SLOT(Refresh()) );
}
}
......
......@@ -33,7 +33,6 @@
#include "ui/equalizer.h"
#include "ui/video_effects.h"
#include "ui/v4l2.h"
#include <QTabWidget>
......@@ -75,8 +74,8 @@ public:
private:
intf_thread_t *p_intf;
Ui::ExtV4l2Widget ui;
QGroupBox *box;
QLabel *help;
private slots:
void Refresh( void );
......
<ui version="4.0" >
<class>ExtV4l2Widget</class>
<widget class="QWidget" name="ExtV4l2Widget" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>405</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle" >
<string>Form</string>
</property>
<layout class="QVBoxLayout" >
<item>
<widget class="QPushButton" name="refresh" >
<property name="text" >
<string>Refresh</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="help" >
<property name="text" >
<string>No v4l2 instance found. Press the refresh button to try again.</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment