summaryrefslogtreecommitdiff
path: root/src/qcam/main_window.h
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-22 19:47:40 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2020-03-24 10:33:47 +0200
commit15273b38dff309af52eb0b9454ade5f5cbb18ac0 (patch)
tree14a6eacee84cbb5b367dbe36fabaa369f7d71fae /src/qcam/main_window.h
parent77ea51820acccfcd3aebe6aa27ad26af21e82a7a (diff)
qcam: main_window: Replace start and stop actions with a toggle action
The main window toolbar contains a start button and a stop button. This allows starting an already started camera (which is currently not handled and results in an error) or stopping an already stopped camera. Replace the two actions with a single start/stop toggle action, preventing UI misuse and reducing confusion. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/qcam/main_window.h')
-rw-r--r--src/qcam/main_window.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h
index c623120d..34a090cc 100644
--- a/src/qcam/main_window.h
+++ b/src/qcam/main_window.h
@@ -10,6 +10,7 @@
#include <memory>
#include <QElapsedTimer>
+#include <QIcon>
#include <QMainWindow>
#include <QMutex>
#include <QObject>
@@ -26,6 +27,7 @@
using namespace libcamera;
+class QAction;
class ViewFinder;
enum {
@@ -49,9 +51,7 @@ private Q_SLOTS:
void updateTitle();
void switchCamera(int index);
-
- int startCapture();
- void stopCapture();
+ void toggleCapture(bool start);
void saveImageAs();
@@ -60,11 +60,17 @@ private:
std::string chooseCamera();
int openCamera();
+ int startCapture();
+ void stopCapture();
+
void requestComplete(Request *request);
void processCapture();
int display(FrameBuffer *buffer);
void queueRequest(FrameBuffer *buffer);
+ QIcon iconPlay_;
+ QIcon iconStop_;
+
QString title_;
QTimer titleTimer_;
@@ -87,6 +93,7 @@ private:
QQueue<FrameBuffer *> doneQueue_;
QToolBar *toolbar_;
+ QAction *startStopAction_;
ViewFinder *viewfinder_;
std::map<int, std::pair<void *, unsigned int>> mappedBuffers_;
};