check queue WIP
This commit is contained in:
parent
d10dfc07b6
commit
a8549c838c
|
@ -165,6 +165,7 @@ else()
|
|||
add_executable(checks-parser
|
||||
${PROJECT_SOURCES}
|
||||
${SOURCES}
|
||||
widgets/checkqueuetablemodel.h widgets/checkqueuetablemodel.cpp
|
||||
)
|
||||
endif()
|
||||
|
||||
|
|
|
@ -53,6 +53,10 @@ void Check::set_operation_type(OperationType t) {
|
|||
this->operation_type = t;
|
||||
}
|
||||
|
||||
void Check::set_total(double total){
|
||||
this->total = total;
|
||||
}
|
||||
|
||||
double Check::get_total() {
|
||||
return total;
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
#ifdef BUILD_OFD_LOCAL_QR_SCAN
|
||||
# include <adjustpicturedialog.h>
|
||||
#include <checkqueuetablemodel.h>
|
||||
#endif
|
||||
|
||||
#include <outputdialog.h>
|
||||
|
@ -32,14 +33,15 @@ MainWindow::MainWindow(QWidget *parent)
|
|||
ui->setupUi(this);
|
||||
ui->stop_server_button->hide();
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout;
|
||||
|
||||
ui->checks_scroll_area->setLayout(layout);
|
||||
ui->scrollAreaWidgetContents->setLayout(layout);
|
||||
ui->checks_to_parse_label->hide();
|
||||
ui->checks_scroll_area->hide();
|
||||
ui->checkQueueTable->hide();
|
||||
|
||||
connect(this, &MainWindow::deleteCheckFromList, this, &MainWindow::deleteCheckFromListHandler);
|
||||
model = new CheckQueueTableModel(&checks, this);
|
||||
ui->checkQueueTable->setModel(model);
|
||||
|
||||
// ui->
|
||||
// connect(this, &MainWindow::deleteCheckFromList, this, &MainWindow::deleteCheckFromListHandler);
|
||||
|
||||
#ifdef BUILD_OFD_BINARYEYE_SCAN
|
||||
QObject::connect(this, &MainWindow::httpErrorOccured, this, &MainWindow::notifyHttpServerFailure);
|
||||
|
@ -195,42 +197,43 @@ void MainWindow::on_parse_email_button_clicked() {
|
|||
#endif // ifdef BUILD_EMAIL_MODE
|
||||
|
||||
void MainWindow::on_parse_button_clicked() {
|
||||
// if (checks.empty()) {
|
||||
// QMessageBox infoDialog;
|
||||
// infoDialog.setText(tr("Please, add check(s) to parse"));
|
||||
// infoDialog.setIcon(QMessageBox::Warning);
|
||||
// infoDialog.setWindowTitle(tr("No checks to parse"));
|
||||
// infoDialog.exec();
|
||||
// return;
|
||||
// }
|
||||
|
||||
if (checks.empty()) {
|
||||
QMessageBox infoDialog;
|
||||
infoDialog.setText(tr("Please, add check(s) to parse"));
|
||||
infoDialog.setIcon(QMessageBox::Warning);
|
||||
infoDialog.setWindowTitle(tr("No checks to parse"));
|
||||
infoDialog.exec();
|
||||
return;
|
||||
}
|
||||
|
||||
OutputDialog d = OutputDialog(this, &checks);
|
||||
d.exec();
|
||||
}
|
||||
|
||||
void MainWindow::deleteCheckFromListHandler(Check &check) {
|
||||
for (unsigned int i = 0; i < ui->scrollAreaWidgetContents->layout()->count(); i ++) {
|
||||
QLayoutItem *item = ui->scrollAreaWidgetContents->layout()->itemAt(i);
|
||||
QObject *child = item->widget();
|
||||
CheckListViewWidget *c = (CheckListViewWidget *)child;
|
||||
if (c->get_check() == check) {
|
||||
ui->scrollAreaWidgetContents->layout()->removeItem(item);
|
||||
delete item;
|
||||
delete child;
|
||||
ui->scrollAreaWidgetContents->layout()->update();
|
||||
ui->scrollAreaWidgetContents->update();
|
||||
// void MainWindow::deleteCheckFromListHandler(Check &check) {
|
||||
// for (unsigned int i = 0; i < ui->scrollAreaWidgetContents->layout()->count(); i ++) {
|
||||
// QLayoutItem *item = ui->scrollAreaWidgetContents->layout()->itemAt(i);
|
||||
// QObject *child = item->widget();
|
||||
// CheckListViewWidget *c = (CheckListViewWidget *)child;
|
||||
// if (c->get_check() == check) {
|
||||
// ui->scrollAreaWidgetContents->layout()->removeItem(item);
|
||||
// delete item;
|
||||
// delete child;
|
||||
// ui->scrollAreaWidgetContents->layout()->update();
|
||||
// ui->scrollAreaWidgetContents->update();
|
||||
|
||||
}
|
||||
}
|
||||
// }
|
||||
// }
|
||||
|
||||
int position = std::find(checks.begin(), checks.end(), check) - checks.begin() - 1;
|
||||
checks.erase(checks.begin() + position);
|
||||
// int position = std::find(checks.begin(), checks.end(), check) - checks.begin() - 1;
|
||||
// checks.erase(checks.begin() + position);
|
||||
|
||||
if (ui->scrollAreaWidgetContents->layout()->count() == 0) {
|
||||
ui->checks_to_parse_label->hide();
|
||||
ui->checks_scroll_area->hide();
|
||||
}
|
||||
}
|
||||
// if (ui->scrollAreaWidgetContents->layout()->count() == 0) {
|
||||
// ui->checks_to_parse_label->hide();
|
||||
// ui->checks_scroll_area->hide();
|
||||
// }
|
||||
// }
|
||||
|
||||
void MainWindow::on_add_new_check_button_clicked() {
|
||||
Check *new_check = parse_new_check();
|
||||
|
@ -240,14 +243,15 @@ void MainWindow::on_add_new_check_button_clicked() {
|
|||
|
||||
checks.push_back(*new_check);
|
||||
|
||||
CheckListViewWidget *check_list_widget = new CheckListViewWidget(this, *new_check);
|
||||
|
||||
ui->scrollAreaWidgetContents->layout()->addWidget(check_list_widget);
|
||||
unsigned int newRowIndex = checks.size();
|
||||
model->insertRow(newRowIndex, 1);
|
||||
model->setData(model->index(newRowIndex, 0), QVariant::fromValue(new_check->get_date()));
|
||||
model->setData(model->index(newRowIndex, 1), QVariant::fromValue(new_check->get_total()));
|
||||
|
||||
delete new_check;
|
||||
|
||||
if (checks.size() == 1) {
|
||||
ui->checks_scroll_area->show();
|
||||
if (checks.size() > 0) {
|
||||
ui->checkQueueTable->show();
|
||||
ui->checks_to_parse_label->show();
|
||||
}
|
||||
}
|
||||
|
@ -272,7 +276,8 @@ Check *MainWindow::parse_new_check() {
|
|||
ui->operation_type_combo_box->currentIndex() + 1,
|
||||
// In the request to ofd.ru, total is in a format with 2 last digits represent decimal part of a number.
|
||||
ui->total_spin_box->text().toDouble() * 100,
|
||||
solved_captcha);
|
||||
solved_captcha
|
||||
);
|
||||
|
||||
(*check) = parseOfdRuAnswer(check_content);
|
||||
check->set_date(ui->purchase_datetime_edit->dateTime().toString(Qt::ISODate).toStdString());
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include <QWidget>
|
||||
#include <QEvent>
|
||||
#include <thread>
|
||||
#include <checkqueuetablemodel.h>
|
||||
|
||||
#include <http_server/http_server.h>
|
||||
|
||||
|
@ -22,6 +23,7 @@ public:
|
|||
~MainWindow();
|
||||
|
||||
Check *parse_new_check();
|
||||
CheckQueueTableModel *model;
|
||||
|
||||
#ifdef BUILD_OFD_BINARYEYE_SCAN
|
||||
void startHttpServer();
|
||||
|
@ -47,7 +49,7 @@ private slots:
|
|||
void on_stop_server_button_clicked();
|
||||
|
||||
void httpNewMessageHandler(QString message);
|
||||
void deleteCheckFromListHandler(Check&);
|
||||
// void deleteCheckFromListHandler(Check&);
|
||||
#endif
|
||||
#ifdef BUILD_EMAIL_MODE
|
||||
void on_parse_email_button_clicked();
|
||||
|
|
|
@ -26,23 +26,26 @@
|
|||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="or_label_1">
|
||||
<item row="0" column="5">
|
||||
<widget class="QLabel" name="checks_to_parse_label">
|
||||
<property name="text">
|
||||
<string>Checks to parse</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="parse_email_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>or</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="datetime_label">
|
||||
<property name="text">
|
||||
<string>Date and time of purchase</string>
|
||||
<string>Parse an E-Mail</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -59,102 +62,6 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="2" colspan="3">
|
||||
<widget class="QDoubleSpinBox" name="total_spin_box">
|
||||
<property name="maximum">
|
||||
<double>4294967296.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="5">
|
||||
<widget class="QLabel" name="checks_to_parse_label">
|
||||
<property name="text">
|
||||
<string>Checks to parse</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="fi_label">
|
||||
<property name="text">
|
||||
<string>FI (Fiscal Identifier)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="4">
|
||||
<widget class="QPushButton" name="parse_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Parse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="settings_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="fn_label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>FN (Fiscal Number)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="total_label">
|
||||
<property name="text">
|
||||
<string>Total</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QPushButton" name="binary_eye_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Use your phone as a QR code scanner</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLabel" name="or_label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>or</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QPushButton" name="choose_image_button">
|
||||
<property name="sizePolicy">
|
||||
|
@ -168,42 +75,36 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="fn_line_edit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
<item row="6" column="0">
|
||||
<widget class="QLabel" name="datetime_label">
|
||||
<property name="text">
|
||||
<string>Date and time of purchase</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2" colspan="3">
|
||||
<widget class="QDateTimeEdit" name="purchase_datetime_edit"/>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="5">
|
||||
<widget class="QLabel" name="info_label">
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="or_label_1">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
<string>or</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<widget class="QPushButton" name="stop_server_button">
|
||||
<item row="9" column="4">
|
||||
<widget class="QPushButton" name="parse_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Stop server</string>
|
||||
<string>Parse</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -231,15 +132,21 @@
|
|||
</item>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="operation_type_label">
|
||||
<item row="0" column="4">
|
||||
<widget class="QPushButton" name="stop_server_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Operation type</string>
|
||||
<string>Stop server</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="parse_email_button">
|
||||
<item row="1" column="4">
|
||||
<widget class="QPushButton" name="binary_eye_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
|
@ -247,14 +154,144 @@
|
|||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Parse an E-Mail</string>
|
||||
<string>Use your phone as a QR code scanner</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0" colspan="2">
|
||||
<item row="4" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="fd_line_edit"/>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="fn_label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>FN (Fiscal Number)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="fi_line_edit"/>
|
||||
</item>
|
||||
<item row="7" column="0">
|
||||
<widget class="QLabel" name="operation_type_label">
|
||||
<property name="text">
|
||||
<string>Operation type</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="8" column="2" colspan="3">
|
||||
<widget class="QDoubleSpinBox" name="total_spin_box">
|
||||
<property name="maximum">
|
||||
<double>4294967296.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="5" rowspan="9">
|
||||
<widget class="QTableView" name="checkQueueTable">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::EditTrigger::DoubleClicked|QAbstractItemView::EditTrigger::EditKeyPressed</set>
|
||||
</property>
|
||||
<property name="tabKeyNavigation">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="dragEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="dragDropOverwriteMode">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="dragDropMode">
|
||||
<enum>QAbstractItemView::DragDropMode::InternalMove</enum>
|
||||
</property>
|
||||
<property name="defaultDropAction">
|
||||
<enum>Qt::DropAction::TargetMoveAction</enum>
|
||||
</property>
|
||||
<property name="alternatingRowColors">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::SelectionMode::SingleSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectionBehavior::SelectRows</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="5">
|
||||
<widget class="QLabel" name="info_label">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Maximum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="fi_label">
|
||||
<property name="text">
|
||||
<string>FI (Fiscal Identifier)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="6" column="2" colspan="3">
|
||||
<widget class="QDateTimeEdit" name="purchase_datetime_edit"/>
|
||||
</item>
|
||||
<item row="8" column="0">
|
||||
<widget class="QLabel" name="total_label">
|
||||
<property name="text">
|
||||
<string>Total</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QPushButton" name="settings_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QLabel" name="or_label_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>or</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="fn_line_edit">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="9" column="0">
|
||||
<widget class="QPushButton" name="clear_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
|
@ -264,36 +301,19 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="fi_line_edit"/>
|
||||
</item>
|
||||
<item row="9" column="2" colspan="2">
|
||||
<item row="9" column="1" colspan="3">
|
||||
<widget class="QPushButton" name="add_new_check_button">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Add new check</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2" colspan="3">
|
||||
<widget class="QLineEdit" name="fd_line_edit"/>
|
||||
</item>
|
||||
<item row="1" column="5" rowspan="9">
|
||||
<widget class="QScrollArea" name="checks_scroll_area">
|
||||
<property name="widgetResizable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<widget class="QWidget" name="scrollAreaWidgetContents">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>273</width>
|
||||
<height>404</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
|
|
|
@ -37,6 +37,9 @@
|
|||
</item>
|
||||
<item row="3" column="0" colspan="3">
|
||||
<widget class="QListView" name="listView">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::EditTrigger::DoubleClicked|QAbstractItemView::EditTrigger::EditKeyPressed</set>
|
||||
</property>
|
||||
<property name="dragEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int main () {
|
||||
char lowerGender;
|
||||
cin >> lowerGender;
|
||||
if ((lowerGender != 'm' && lowerGender != 'f') && (lowerGender != 'м' && lowerGender != 'ж' )) {
|
||||
cout << "хуйня" << std::endl;
|
||||
cout << (int)lowerGender << endl;
|
||||
} else {
|
||||
cout << "норм" << endl;
|
||||
}
|
||||
}
|
|
@ -70,7 +70,7 @@
|
|||
<translation type="vanished">Store type</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="95"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="107"/>
|
||||
<source>Parse</source>
|
||||
<translation>Parse</translation>
|
||||
</message>
|
||||
|
@ -113,13 +113,13 @@
|
|||
<translation type="vanished">0000000000000000</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="121"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="173"/>
|
||||
<source>FN (Fiscal Number)</source>
|
||||
<translatorcomment>FN = Фискальный Номер</translatorcomment>
|
||||
<translation>FN (Fiscal Number)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="58"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="61"/>
|
||||
<source>FD (Fiscal Document)</source>
|
||||
<translatorcomment>FD = Фискальный Документ</translatorcomment>
|
||||
<translation>FD (Fiscal Document)</translation>
|
||||
|
@ -133,93 +133,93 @@
|
|||
<translation type="obsolete">Back</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="206"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="144"/>
|
||||
<source>Stop server</source>
|
||||
<translation>Stop server</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="167"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="74"/>
|
||||
<source>Choose image on your PC</source>
|
||||
<translation>Choose image on your PC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="38"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="154"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="94"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="277"/>
|
||||
<source>or</source>
|
||||
<translation>or</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="141"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="157"/>
|
||||
<source>Use your phone as a QR code scanner</source>
|
||||
<translation>Use your phone as a QR code scanner</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="82"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="241"/>
|
||||
<source>FI (Fiscal Identifier)</source>
|
||||
<translatorcomment>FI = Фискальный Признак</translatorcomment>
|
||||
<translation>FI (Fiscal Identifier)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="273"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="313"/>
|
||||
<source>Add new check</source>
|
||||
<translation>Add new check</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="263"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="300"/>
|
||||
<source>Clear</source>
|
||||
<translation>Clear</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="45"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="81"/>
|
||||
<source>Date and time of purchase</source>
|
||||
<translation>Date and time of purchase</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="237"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="183"/>
|
||||
<source>Operation type</source>
|
||||
<translation>Operation type</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="250"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="48"/>
|
||||
<source>Parse an E-Mail</source>
|
||||
<translation>Parse an E-Mail</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="214"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="115"/>
|
||||
<source>Funds income</source>
|
||||
<translatorcomment>Приход средств</translatorcomment>
|
||||
<translation>Funds income</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="219"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="120"/>
|
||||
<source>Funds return</source>
|
||||
<translatorcomment>Возврат средств</translatorcomment>
|
||||
<translation>Funds return</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="224"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="125"/>
|
||||
<source>Funds spend</source>
|
||||
<translatorcomment>Расход средств</translatorcomment>
|
||||
<translation>Funds spend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="229"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="130"/>
|
||||
<source>Spends return</source>
|
||||
<translatorcomment>Возврат расхода</translatorcomment>
|
||||
<translation>Spends return</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="72"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="32"/>
|
||||
<source>Checks to parse</source>
|
||||
<translation>Checks to parse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="108"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="264"/>
|
||||
<source>Settings</source>
|
||||
<translation>Settings</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="128"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="251"/>
|
||||
<source>Total</source>
|
||||
<translation>Total</translation>
|
||||
</message>
|
||||
|
@ -228,75 +228,77 @@
|
|||
<translation type="vanished">checks parser</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="101"/>
|
||||
<location filename="../mainwindow.cpp" line="103"/>
|
||||
<source>QR code for binaryeye to connect</source>
|
||||
<translation>QR code for binaryeye to connect</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="102"/>
|
||||
<location filename="../mainwindow.cpp" line="104"/>
|
||||
<source>I've scanned</source>
|
||||
<translation>I've scanned</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="108"/>
|
||||
<location filename="../mainwindow.cpp" line="110"/>
|
||||
<source>Could not start http server. 10 times in a row random port was occupied. Either you should run for a lottery ticket, or the problem is in the program. If the lottery ticket wasn't lucky, please, contact the developer.</source>
|
||||
<translation>Could not start http server. 10 times in a row random port was occupied. Either you should run for a lottery ticket, or the problem is in the program. If the lottery ticket wasn't lucky, please, contact the developer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="110"/>
|
||||
<location filename="../mainwindow.cpp" line="112"/>
|
||||
<source>Could not start http server.</source>
|
||||
<translation>Could not start http server.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="154"/>
|
||||
<location filename="../mainwindow.cpp" line="156"/>
|
||||
<source>Selected image: </source>
|
||||
<translation>Selected image: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="187"/>
|
||||
<location filename="../mainwindow.cpp" line="189"/>
|
||||
<source>This feature is under development. Wait it to appear in next updates.</source>
|
||||
<translation>This feature is under development. Wait for it to appear in next updates.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="189"/>
|
||||
<location filename="../mainwindow.cpp" line="191"/>
|
||||
<source>Under development</source>
|
||||
<translation>Under development</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="203"/>
|
||||
<source>Please, add check(s) to parse</source>
|
||||
<translation type="vanished">Please, add check(s) to parse</translation>
|
||||
<translation>Please, add check(s) to parse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="205"/>
|
||||
<source>No checks to parse</source>
|
||||
<translation type="vanished">No checks to parse</translation>
|
||||
<translation>No checks to parse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="287"/>
|
||||
<location filename="../mainwindow.cpp" line="292"/>
|
||||
<source>Captcha was not solved correctly!</source>
|
||||
<translation>Captcha was not solved correctly!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="289"/>
|
||||
<location filename="../mainwindow.cpp" line="294"/>
|
||||
<source>Captcha is incorrect</source>
|
||||
<translation>Captcha is incorrect</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="294"/>
|
||||
<location filename="../mainwindow.cpp" line="299"/>
|
||||
<source>Internal server error. Please, try again later.</source>
|
||||
<translation>Internal server error. Please, try again later.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="296"/>
|
||||
<location filename="../mainwindow.cpp" line="301"/>
|
||||
<source>Internal server error</source>
|
||||
<translation>Internal server error</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="301"/>
|
||||
<location filename="../mainwindow.cpp" line="306"/>
|
||||
<source>Check not found. Please, ensure correctness of entered data.</source>
|
||||
<translation>Check not found. Please, ensure correctness of entered data.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="303"/>
|
||||
<location filename="../mainwindow.cpp" line="308"/>
|
||||
<source>Check was not found</source>
|
||||
<translation>Check was not found</translation>
|
||||
</message>
|
||||
|
@ -309,12 +311,12 @@
|
|||
<translation type="vanished">Error in parsing</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="147"/>
|
||||
<location filename="../mainwindow.cpp" line="149"/>
|
||||
<source>Please, select a picture where QR code that contains info about check is present</source>
|
||||
<translation>Please, select a picture where QR code that contains info about check is present</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="149"/>
|
||||
<location filename="../mainwindow.cpp" line="151"/>
|
||||
<source>Picture was not selected</source>
|
||||
<translation>Picture was not selected</translation>
|
||||
</message>
|
||||
|
@ -532,7 +534,7 @@
|
|||
<translation>Choose</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/outputdialog.ui" line="73"/>
|
||||
<location filename="../scenes/outputdialog.ui" line="76"/>
|
||||
<source>Print header</source>
|
||||
<translation>Print header</translation>
|
||||
</message>
|
||||
|
|
|
@ -70,7 +70,7 @@
|
|||
<translation type="vanished">Магазин</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="95"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="107"/>
|
||||
<source>Parse</source>
|
||||
<translation>Парсить</translation>
|
||||
</message>
|
||||
|
@ -113,13 +113,13 @@
|
|||
<translation type="vanished">0000000000000000</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="121"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="173"/>
|
||||
<source>FN (Fiscal Number)</source>
|
||||
<translatorcomment>Фискальный Норма</translatorcomment>
|
||||
<translation>ФН</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="58"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="61"/>
|
||||
<source>FD (Fiscal Document)</source>
|
||||
<translatorcomment>Фискальный Документ</translatorcomment>
|
||||
<translation>ФД</translation>
|
||||
|
@ -133,89 +133,89 @@
|
|||
<translation type="obsolete">Назад</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="206"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="144"/>
|
||||
<source>Stop server</source>
|
||||
<translation>Остановить сервер</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="167"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="74"/>
|
||||
<source>Choose image on your PC</source>
|
||||
<translation>Выбрать изображение на компьютере</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="38"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="154"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="94"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="277"/>
|
||||
<source>or</source>
|
||||
<translation>или</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="141"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="157"/>
|
||||
<source>Use your phone as a QR code scanner</source>
|
||||
<translation>Использовать телефон как сканнер QR</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="82"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="241"/>
|
||||
<source>FI (Fiscal Identifier)</source>
|
||||
<translatorcomment>Фискальный Признак</translatorcomment>
|
||||
<translation>ФП</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="273"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="313"/>
|
||||
<source>Add new check</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="263"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="300"/>
|
||||
<source>Clear</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="45"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="81"/>
|
||||
<source>Date and time of purchase</source>
|
||||
<translation>Дата и время покупки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="237"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="183"/>
|
||||
<source>Operation type</source>
|
||||
<translation>Тип операции</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="250"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="48"/>
|
||||
<source>Parse an E-Mail</source>
|
||||
<translation>Парсить E-Mail</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="214"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="115"/>
|
||||
<source>Funds income</source>
|
||||
<translation>Приход средств</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="219"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="120"/>
|
||||
<source>Funds return</source>
|
||||
<translation>Возврат средств</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="224"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="125"/>
|
||||
<source>Funds spend</source>
|
||||
<translation>Расход средств</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="229"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="130"/>
|
||||
<source>Spends return</source>
|
||||
<translation>Возврат расхода</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="72"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="32"/>
|
||||
<source>Checks to parse</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="108"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="264"/>
|
||||
<source>Settings</source>
|
||||
<translation>Настройки</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/mainwindow.ui" line="128"/>
|
||||
<location filename="../scenes/mainwindow.ui" line="251"/>
|
||||
<source>Total</source>
|
||||
<translation>Итого</translation>
|
||||
</message>
|
||||
|
@ -224,67 +224,77 @@
|
|||
<translation type="vanished">Парсер чеков</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="101"/>
|
||||
<location filename="../mainwindow.cpp" line="103"/>
|
||||
<source>QR code for binaryeye to connect</source>
|
||||
<translation>QR код для подключения BinaryEye</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="102"/>
|
||||
<location filename="../mainwindow.cpp" line="104"/>
|
||||
<source>I've scanned</source>
|
||||
<translation>Просканировал</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="108"/>
|
||||
<location filename="../mainwindow.cpp" line="110"/>
|
||||
<source>Could not start http server. 10 times in a row random port was occupied. Either you should run for a lottery ticket, or the problem is in the program. If the lottery ticket wasn't lucky, please, contact the developer.</source>
|
||||
<translation>Не смог поднять HTTP сервер. 10 раз подряд случайно выбранный порт был занят. Либо Вам следует бежать за лоттерейным билетом, или в программе баг. Если лотерейный билет не был выигрышным, пожалуйста, сообщите разработчику.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="110"/>
|
||||
<location filename="../mainwindow.cpp" line="112"/>
|
||||
<source>Could not start http server.</source>
|
||||
<translation>Не получилось запустить HTTP сервер.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="154"/>
|
||||
<location filename="../mainwindow.cpp" line="156"/>
|
||||
<source>Selected image: </source>
|
||||
<translation>Выбранное изображение: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="187"/>
|
||||
<location filename="../mainwindow.cpp" line="189"/>
|
||||
<source>This feature is under development. Wait it to appear in next updates.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="189"/>
|
||||
<location filename="../mainwindow.cpp" line="191"/>
|
||||
<source>Under development</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="287"/>
|
||||
<location filename="../mainwindow.cpp" line="203"/>
|
||||
<source>Please, add check(s) to parse</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="205"/>
|
||||
<source>No checks to parse</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="292"/>
|
||||
<source>Captcha was not solved correctly!</source>
|
||||
<translation>Капча была решена неверно!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="289"/>
|
||||
<location filename="../mainwindow.cpp" line="294"/>
|
||||
<source>Captcha is incorrect</source>
|
||||
<translation>Капча введена неверно</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="294"/>
|
||||
<location filename="../mainwindow.cpp" line="299"/>
|
||||
<source>Internal server error. Please, try again later.</source>
|
||||
<translation>Внутренняя ошибка сервера. Пожалуйста, попробуйте снова позже.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="296"/>
|
||||
<location filename="../mainwindow.cpp" line="301"/>
|
||||
<source>Internal server error</source>
|
||||
<translation>Внутренняя ошибка сервера</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="301"/>
|
||||
<location filename="../mainwindow.cpp" line="306"/>
|
||||
<source>Check not found. Please, ensure correctness of entered data.</source>
|
||||
<translation>Чек не найден. Пожалуйста, убедитесь в правильности введённых данных.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="303"/>
|
||||
<location filename="../mainwindow.cpp" line="308"/>
|
||||
<source>Check was not found</source>
|
||||
<translation>Чек не найден</translation>
|
||||
</message>
|
||||
|
@ -297,12 +307,12 @@
|
|||
<translation type="vanished">Ошибка в парсинге</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="147"/>
|
||||
<location filename="../mainwindow.cpp" line="149"/>
|
||||
<source>Please, select a picture where QR code that contains info about check is present</source>
|
||||
<translation>Пожалуйста, выберете изображение, содержащее QR код с информацией о чеке</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../mainwindow.cpp" line="149"/>
|
||||
<location filename="../mainwindow.cpp" line="151"/>
|
||||
<source>Picture was not selected</source>
|
||||
<translation>Изображение не было выбрано</translation>
|
||||
</message>
|
||||
|
@ -520,7 +530,7 @@
|
|||
<translation>Выбрать</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../scenes/outputdialog.ui" line="73"/>
|
||||
<location filename="../scenes/outputdialog.ui" line="76"/>
|
||||
<source>Print header</source>
|
||||
<translation>Печатать заголовок</translation>
|
||||
</message>
|
||||
|
|
|
@ -0,0 +1,94 @@
|
|||
#include "checkqueuetablemodel.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
CheckQueueTableModel::CheckQueueTableModel(std::vector<Check> *checks, QObject *parent)
|
||||
: checks(checks), QAbstractTableModel{parent}
|
||||
{}
|
||||
|
||||
int CheckQueueTableModel::rowCount(const QModelIndex &parent) const { return checks->size(); }
|
||||
int CheckQueueTableModel::columnCount(const QModelIndex &parent) const { return 3; }
|
||||
|
||||
QVariant CheckQueueTableModel::data(const QModelIndex &index, int role) const {
|
||||
if (role != Qt::DisplayRole) return QVariant();
|
||||
Check& c = (*checks).at(index.row());
|
||||
switch (index.column()) {
|
||||
case 0:
|
||||
return QVariant::fromValue(QString::fromStdString(c.get_date()));
|
||||
break;
|
||||
case 1:
|
||||
return QVariant::fromValue(c.get_total());
|
||||
break;
|
||||
case 2:
|
||||
return QVariant::fromValue(QString("кнопка"));
|
||||
break;
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
bool CheckQueueTableModel::setData(const QModelIndex &index, const QVariant &value, int role) {
|
||||
if (role == Qt::EditRole) {
|
||||
if (!checkIndex(index))
|
||||
return false;
|
||||
unsigned int row = index.row();
|
||||
switch (index.column()) {
|
||||
case 0:
|
||||
checks->at(row).set_date(value.value<std::string>());
|
||||
break;
|
||||
case 1:
|
||||
checks->at(row).set_total(value.value<double>());
|
||||
break;
|
||||
case 2:
|
||||
// delete Button
|
||||
break;
|
||||
}
|
||||
|
||||
//for presentation purposes only: build and emit a joined string
|
||||
// QString result = "dick";
|
||||
// for (int row = 0; row < checks->size(); row++) {
|
||||
// for (int col= 0; col < 3; col++)
|
||||
// result += m_gridData[row][col] + ' ';
|
||||
// }
|
||||
// emit editCompleted(result);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
QVariant CheckQueueTableModel::headerData(int section, Qt::Orientation orientation, int role) const {
|
||||
if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return tr("Date&Time");
|
||||
break;
|
||||
case 1:
|
||||
return tr("Total");
|
||||
break;
|
||||
case 2:
|
||||
return tr("Delete button");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
Qt::ItemFlags CheckQueueTableModel::flags(const QModelIndex &index) const {
|
||||
Qt::ItemFlags defaultFlags = QAbstractTableModel::flags(index);
|
||||
|
||||
if (index.isValid())
|
||||
return Qt::ItemIsDragEnabled | defaultFlags;
|
||||
else
|
||||
return Qt::ItemIsDropEnabled | defaultFlags;
|
||||
// return Qt::ItemIsSelectable | QAbstractTableModel::flags(index);
|
||||
}
|
||||
|
||||
bool CheckQueueTableModel::insertRow(int row, int count, const QModelIndex &parent) {
|
||||
beginInsertRows(QModelIndex(), row, row+count-1);
|
||||
|
||||
for (int i = 0; i < count; ++i)
|
||||
checks->emplace(checks->begin() + row, Check());
|
||||
|
||||
endInsertRows();
|
||||
return true;
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
#ifndef CHECKQUEUETABLEMODEL_H
|
||||
#define CHECKQUEUETABLEMODEL_H
|
||||
|
||||
#include <QAbstractTableModel>
|
||||
|
||||
#include <check/check.h>
|
||||
|
||||
class CheckQueueTableModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit CheckQueueTableModel(std::vector<Check> *checks, QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
|
||||
bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override;
|
||||
|
||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
||||
Qt::ItemFlags flags(const QModelIndex &index) const override;
|
||||
|
||||
bool insertRow(int row, int count, const QModelIndex &parent = QModelIndex());
|
||||
private:
|
||||
std::vector<Check> *checks;
|
||||
signals:
|
||||
void editCompleted(const QString &);
|
||||
};
|
||||
|
||||
#endif // CHECKQUEUETABLEMODEL_H
|
Loading…
Reference in New Issue