Add copyright/license stuff.
[toast/barcode2cash.git] / qtapp / barcode2cash / mainwindow.h
1 /*
2  * Copyright (C) 2017 Philipp Spitzer, gregor herrmann
3  *
4  * This file is part of barcode2cash.
5  *
6  * ConfClerk is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License as published by the Free
8  * Software Foundation, either version 2 of the License, or (at your option)
9  * any later version.
10  *
11  * ConfClerk is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14  * more details.
15  *
16  * You should have received a copy of the GNU General Public License along with
17  * ConfClerk.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 #ifndef MAINWINDOW_H
21 #define MAINWINDOW_H
22
23 #include <QMainWindow>
24 #include <QCameraInfo>
25 #include <QCameraImageCapture>
26 #include <QCameraViewfinder>
27 #include <QDateTime>
28
29
30 namespace Ui {
31 class MainWindow;
32 }
33
34
35 using CurrencyCent = signed long;
36
37
38 struct RksvParts {
39     QString rlat;
40     QString device_id;
41     QString receipt_id;
42     QDateTime date_time;
43     static constexpr int cash_count = 5;
44     CurrencyCent cash[cash_count];
45     QString counter;
46     QString cert_serial;
47     QString sig_prev;
48     QString sig;
49 };
50
51
52 class MainWindow : public QMainWindow
53 {
54     Q_OBJECT
55
56 public:
57     explicit MainWindow(QWidget *parent = 0);
58     ~MainWindow();
59
60 private:
61     Ui::MainWindow *ui;
62
63     QCamera* camera = nullptr;
64     QCameraImageCapture* imageCapture = nullptr;
65     void updateRksv(const RksvParts& rksv);
66
67 public slots:
68     void updateCameraInfo();
69     void capture();
70     void showCaptureSuccess(int id, QString fileName);
71     void showCaptureError(int id, QCameraImageCapture::Error error, QString errorString);
72     void analyze();
73
74 };
75
76 #endif // MAINWINDOW_H