Properly handle the case where QtWidgets is not available.

It does use a config test for now, just to make it clearer.  The Mac
backend currently requires widgets, but most of the others should work
without it (just not supporting QVideoWidget/WindowControl).

The QVideoDeviceControl interface was modified to remove the QIcon
usage - it was never implemented.

Unfortunately even the QML examples need widgets for the wrapper
application, and will need to be ported to QtGui based wrapper.

Change-Id: I8a55ad5cf09ab51749510bf16f49de0bd3f0bcdb
Reviewed-by: Ling Hu <ling.hu@nokia.com>
This commit is contained in:
Michael Goddard
2012-01-05 17:22:19 +10:00
committed by Qt by Nokia
parent bc7d964a05
commit c97f5f8c2e
45 changed files with 243 additions and 160 deletions

View File

@@ -41,9 +41,11 @@
#include <QtCore/qvariant.h>
#include <QtCore/qdebug.h>
#if defined(HAVE_WIDGETS)
#include <QtWidgets/qwidget.h>
#include <QVideoWidgetControl.h>
#endif
#include "dscameraservice.h"
#include "dscameracontrol.h"
@@ -51,7 +53,10 @@
#include "dsvideorenderer.h"
#include "dsvideodevicecontrol.h"
#include "dsimagecapturecontrol.h"
#if defined(HAVE_WIDGETS)
#include "dsvideowidgetcontrol.h"
#endif
QT_BEGIN_NAMESPACE
@@ -68,7 +73,9 @@ DSCameraService::DSCameraService(QObject *parent):
m_imageCapture = new DSImageCaptureControl(m_session);
#if defined(HAVE_WIDGETS)
m_viewFinderWidget = new DSVideoWidgetControl(m_session);
#endif
m_device = QByteArray("default");
}
@@ -79,7 +86,9 @@ DSCameraService::~DSCameraService()
delete m_videoDevice;
delete m_videoRenderer;
delete m_imageCapture;
#if defined(HAVE_WIDGETS)
delete m_viewFinderWidget;
#endif
delete m_session;
}
@@ -91,11 +100,13 @@ QMediaControl* DSCameraService::requestControl(const char *name)
if (qstrcmp(name, QCameraImageCaptureControl_iid) == 0)
return m_imageCapture;
#if defined(HAVE_WIDGETS)
if (qstrcmp(name, QVideoWidgetControl_iid) == 0) {
if (m_viewFinderWidget) {
return m_viewFinderWidget;
}
}
#endif
if(qstrcmp(name,QVideoRendererControl_iid) == 0)
return m_videoRenderer;