diff options
author | Lars Knoll <lars.knoll@qt.io> | 2021-02-10 15:09:49 +0100 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2021-02-12 15:38:24 +0000 |
commit | 3c59ba2b3ce96f578b2d677ecc1fbf7da0b2e27f (patch) | |
tree | 8bf1df70cb5e264a5674d0eb513841d8dec12251 /examples/multimediawidgets | |
parent | 1920146be1193a1136bd279f8036778e8c9c4083 (diff) |
Remove camera locking API
QCamera::lock()/unlock() is something that's not needed
these days anymore. cameras will automatically focus anyway,
there's no real reason to lock the focus (or other properties)
to some specific value in 99% of the cases.
Plus it wasn't supported on Linux or macOS/iOS anyway.
Change-Id: I437d29cbb768da3ece42eea8d753eeafa0c534ae
Reviewed-by: Doris Verria <doris.verria@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'examples/multimediawidgets')
-rw-r--r-- | examples/multimediawidgets/camera/camera.cpp | 55 | ||||
-rw-r--r-- | examples/multimediawidgets/camera/camera.h | 2 | ||||
-rw-r--r-- | examples/multimediawidgets/camera/camera.ui | 239 |
3 files changed, 108 insertions, 188 deletions
diff --git a/examples/multimediawidgets/camera/camera.cpp b/examples/multimediawidgets/camera/camera.cpp index f5d507d46..33e596768 100644 --- a/examples/multimediawidgets/camera/camera.cpp +++ b/examples/multimediawidgets/camera/camera.cpp @@ -123,7 +123,6 @@ void Camera::setCamera(const QCameraInfo &cameraInfo) m_camera->setViewfinder(ui->viewfinder); updateCameraState(m_camera->state()); - updateLockStatus(m_camera->lockStatus(), QCamera::UserRequest); updateRecorderState(m_mediaRecorder->state()); connect(m_imageCapture, &QCameraImageCapture::readyForCaptureChanged, this, &Camera::readyForCapture); @@ -132,9 +131,6 @@ void Camera::setCamera(const QCameraInfo &cameraInfo) connect(m_imageCapture, QOverload<int, QCameraImageCapture::Error, const QString &>::of(&QCameraImageCapture::error), this, &Camera::displayCaptureError); - connect(m_camera.data(), QOverload<QCamera::LockStatus, QCamera::LockChangeReason>::of(&QCamera::lockStatusChanged), - this, &Camera::updateLockStatus); - ui->captureWidget->setTabEnabled(0, (m_camera->isCaptureModeSupported(QCamera::CaptureStillImage))); ui->captureWidget->setTabEnabled(1, (m_camera->isCaptureModeSupported(QCamera::CaptureVideo))); @@ -150,7 +146,6 @@ void Camera::keyPressEvent(QKeyEvent * event) switch (event->key()) { case Qt::Key_CameraFocus: displayViewfinder(); - m_camera->searchAndLock(); event->accept(); break; case Qt::Key_Camera: @@ -171,16 +166,7 @@ void Camera::keyPressEvent(QKeyEvent * event) void Camera::keyReleaseEvent(QKeyEvent *event) { - if (event->isAutoRepeat()) - return; - - switch (event->key()) { - case Qt::Key_CameraFocus: - m_camera->unlock(); - break; - default: - QMainWindow::keyReleaseEvent(event); - } + QMainWindow::keyReleaseEvent(event); } void Camera::updateRecordTime() @@ -268,45 +254,6 @@ void Camera::setMuted(bool muted) m_mediaRecorder->setMuted(muted); } -void Camera::toggleLock() -{ - switch (m_camera->lockStatus()) { - case QCamera::Searching: - case QCamera::Locked: - m_camera->unlock(); - break; - case QCamera::Unlocked: - m_camera->searchAndLock(); - } -} - -void Camera::updateLockStatus(QCamera::LockStatus status, QCamera::LockChangeReason reason) -{ - QColor indicationColor = Qt::black; - - switch (status) { - case QCamera::Searching: - indicationColor = Qt::yellow; - ui->statusbar->showMessage(tr("Focusing...")); - ui->lockButton->setText(tr("Focusing...")); - break; - case QCamera::Locked: - indicationColor = Qt::darkGreen; - ui->lockButton->setText(tr("Unlock")); - ui->statusbar->showMessage(tr("Focused"), 2000); - break; - case QCamera::Unlocked: - indicationColor = reason == QCamera::LockFailed ? Qt::red : Qt::black; - ui->lockButton->setText(tr("Focus")); - if (reason == QCamera::LockFailed) - ui->statusbar->showMessage(tr("Focus Failed"), 2000); - } - - QPalette palette = ui->lockButton->palette(); - palette.setColor(QPalette::ButtonText, indicationColor); - ui->lockButton->setPalette(palette); -} - void Camera::takeImage() { m_isCapturingImage = true; diff --git a/examples/multimediawidgets/camera/camera.h b/examples/multimediawidgets/camera/camera.h index a59aad28b..5ccac9165 100644 --- a/examples/multimediawidgets/camera/camera.h +++ b/examples/multimediawidgets/camera/camera.h @@ -81,7 +81,6 @@ private slots: void stop(); void setMuted(bool); - void toggleLock(); void takeImage(); void displayCaptureError(int, QCameraImageCapture::Error, const QString &errorString); @@ -102,7 +101,6 @@ private slots: void updateRecordTime(); void processCapturedImage(int requestId, const QImage &img); - void updateLockStatus(QCamera::LockStatus, QCamera::LockChangeReason); void displayViewfinder(); void displayCapturedImage(); diff --git a/examples/multimediawidgets/camera/camera.ui b/examples/multimediawidgets/camera/camera.ui index 3e660527b..ba82ba623 100644 --- a/examples/multimediawidgets/camera/camera.ui +++ b/examples/multimediawidgets/camera/camera.ui @@ -15,118 +15,7 @@ </property> <widget class="QWidget" name="centralwidget"> <layout class="QGridLayout" name="gridLayout_3"> - <item row="0" column="0" rowspan="3"> - <widget class="QStackedWidget" name="stackedWidget"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> - <horstretch>1</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="palette"> - <palette> - <active> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>145</red> - <green>145</green> - <blue>145</blue> - </color> - </brush> - </colorrole> - </active> - <inactive> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>255</red> - <green>255</green> - <blue>255</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>145</red> - <green>145</green> - <blue>145</blue> - </color> - </brush> - </colorrole> - </inactive> - <disabled> - <colorrole role="Base"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>145</red> - <green>145</green> - <blue>145</blue> - </color> - </brush> - </colorrole> - <colorrole role="Window"> - <brush brushstyle="SolidPattern"> - <color alpha="255"> - <red>145</red> - <green>145</green> - <blue>145</blue> - </color> - </brush> - </colorrole> - </disabled> - </palette> - </property> - <property name="currentIndex"> - <number>0</number> - </property> - <widget class="QWidget" name="viewfinderPage"> - <layout class="QGridLayout" name="gridLayout_5"> - <item row="0" column="0"> - <widget class="QVideoWidget" name="viewfinder" native="true"/> - </item> - </layout> - </widget> - <widget class="QWidget" name="previewPage"> - <layout class="QGridLayout" name="gridLayout_4"> - <item row="0" column="0"> - <widget class="QLabel" name="lastImagePreviewLabel"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="frameShape"> - <enum>QFrame::Box</enum> - </property> - <property name="text"> - <string/> - </property> - </widget> - </item> - </layout> - </widget> - </widget> - </item> <item row="1" column="1" colspan="2"> - <widget class="QPushButton" name="lockButton"> - <property name="text"> - <string>Focus</string> - </property> - </widget> - </item> - <item row="2" column="1" colspan="2"> <widget class="QTabWidget" name="captureWidget"> <property name="currentIndex"> <number>0</number> @@ -145,7 +34,7 @@ <string>Capture Photo</string> </property> <property name="icon"> - <iconset resource="camera.qrc"> + <iconset> <normaloff>:/images/shutter.svg</normaloff>:/images/shutter.svg</iconset> </property> </widget> @@ -244,6 +133,110 @@ </widget> </widget> </item> + <item row="0" column="0" rowspan="2"> + <widget class="QStackedWidget" name="stackedWidget"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> + <horstretch>1</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="palette"> + <palette> + <active> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>145</red> + <green>145</green> + <blue>145</blue> + </color> + </brush> + </colorrole> + </active> + <inactive> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>145</red> + <green>145</green> + <blue>145</blue> + </color> + </brush> + </colorrole> + </inactive> + <disabled> + <colorrole role="Base"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>145</red> + <green>145</green> + <blue>145</blue> + </color> + </brush> + </colorrole> + <colorrole role="Window"> + <brush brushstyle="SolidPattern"> + <color alpha="255"> + <red>145</red> + <green>145</green> + <blue>145</blue> + </color> + </brush> + </colorrole> + </disabled> + </palette> + </property> + <property name="currentIndex"> + <number>0</number> + </property> + <widget class="QWidget" name="viewfinderPage"> + <layout class="QGridLayout" name="gridLayout_5"> + <item row="0" column="0"> + <widget class="QVideoWidget" name="viewfinder" native="true"/> + </item> + </layout> + </widget> + <widget class="QWidget" name="previewPage"> + <layout class="QGridLayout" name="gridLayout_4"> + <item row="0" column="0"> + <widget class="QLabel" name="lastImagePreviewLabel"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="MinimumExpanding"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="frameShape"> + <enum>QFrame::Box</enum> + </property> + <property name="text"> + <string/> + </property> + </widget> + </item> + </layout> + </widget> + </widget> + </item> </layout> </widget> <widget class="QMenuBar" name="menubar"> @@ -252,7 +245,7 @@ <x>0</x> <y>0</y> <width>668</width> - <height>21</height> + <height>28</height> </rect> </property> <widget class="QMenu" name="menuFile"> @@ -304,9 +297,7 @@ <container>1</container> </customwidget> </customwidgets> - <resources> - <include location="camera.qrc"/> - </resources> + <resources/> <connections> <connection> <sender>recordButton</sender> @@ -389,22 +380,6 @@ </hints> </connection> <connection> - <sender>lockButton</sender> - <signal>clicked()</signal> - <receiver>Camera</receiver> - <slot>toggleLock()</slot> - <hints> - <hint type="sourcelabel"> - <x>658</x> - <y>75</y> - </hint> - <hint type="destinationlabel"> - <x>453</x> - <y>119</y> - </hint> - </hints> - </connection> - <connection> <sender>muteButton</sender> <signal>toggled(bool)</signal> <receiver>Camera</receiver> |