diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-03-22 19:47:40 +0200 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2020-03-24 10:33:47 +0200 |
commit | 15273b38dff309af52eb0b9454ade5f5cbb18ac0 (patch) | |
tree | 14a6eacee84cbb5b367dbe36fabaa369f7d71fae /src/qcam/main_window.h | |
parent | 77ea51820acccfcd3aebe6aa27ad26af21e82a7a (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.h | 13 |
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_; }; |