rework ui, add text from email scene

This commit is contained in:
leca 2025-03-09 21:23:36 +03:00
parent 4f75e88b69
commit cb3d6c2a3f
19 changed files with 1194 additions and 437 deletions

View File

@ -8,7 +8,7 @@ set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC OFF)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOUIC_SEARCH_PATHS Designer)
set(CMAKE_AUTOUIC_SEARCH_PATHS scenes)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@ -17,39 +17,34 @@ find_package(Qt5Core REQUIRED)
find_package(Qt5 REQUIRED COMPONENTS LinguistTools)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(Qt5UiTools REQUIRED)
set(PROJECT_SOURCES
main.cpp
mainwindow.cpp
mainwindow.h
mainwindow.ui
mainwindow.h mainwindow.cpp scenes/mainwindow.ui
goods/goods.h goods/goods.cpp
check/check.h check/check.cpp
parser/parser.h parser/parser.cpp
parser/module.h parser/module.cpp
outputdialog.h outputdialog.cpp outputdialog.ui
output/output_options.h output/output_options.cpp
utils/utils.h utils/utils.cpp
image/checkimage.h image/checkimage.cpp
net/net.h net/net.cpp
settings/settings.h settings/settings.cpp
settingsdialog.h settingsdialog.cpp settingsdialog.ui
adjustpicturedialog.h adjustpicturedialog.cpp adjustpicturedialog.ui
image_redactor/imageredactor.h image_redactor/imageredactor.cpp
solvecaptchadialog.h solvecaptchadialog.cpp solvecaptchadialog.ui
exceptions/ofdrequestexception.h exceptions/ofdrequestexception.cpp
emailtextscene.h emailtextscene.cpp scenes/emailtextscene.ui
ocrscene.h ocrscene.cpp scenes/ocrscene.ui
)
set(TRANSLATION_SOURCES
main.cpp
mainwindow.cpp mainwindow.h mainwindow.ui
outputdialog.cpp outputdialog.h outputdialog.ui
settingsdialog.cpp settingsdialog.h settingsdialog.ui
solvecaptchadialog.cpp solvecaptchadialog.h solvecaptchadialog.ui
adjustpicturedialog.cpp adjustpicturedialog.h adjustpicturedialog.ui
mainwindow.cpp mainwindow.h scenes/mainwindow.ui
emailtextscene.cpp emailtextscene.h scenes/emailtextscene.ui
ocrscene.cpp ocrscene.h scenes/ocrscene.ui
)
set(TS_FILES
@ -72,9 +67,16 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/assets DESTINATION ${CMAKE_CURRENT_BINARY_
qt5_add_resources(MEDIAQRC ${CMAKE_CURRENT_BINARY_DIR}/media.qrc)
add_custom_target(mediaresource ALL DEPENDS ${MEDIAQRC})
#Scenes QRC
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/scenes.qrc ${CMAKE_CURRENT_BINARY_DIR}/scenes.qrc COPYONLY)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/scenes DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
qt5_add_resources(SCENESQRC ${CMAKE_CURRENT_BINARY_DIR}/scenes.qrc)
add_custom_target(scenessource ALL DEPENDS ${SCENESQRC})
set(SOURCES "")
list(APPEND SOURCES ${MEDIAQRC})
list(APPEND SOURCES ${SCENESQRC})
if (BUILD_TRANSLATIONS)
list(APPEND SOURCES ${TRANSLATIONQRC})
@ -92,7 +94,7 @@ else()
)
endif()
target_link_libraries(checks-parser PRIVATE Qt5::Widgets)
target_link_libraries(checks-parser PRIVATE Qt5::Widgets Qt5::UiTools)
target_include_directories(checks-parser PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/image_redactor)
@ -113,7 +115,6 @@ install(TARGETS checks-parser
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(WIN32)
#????
set(OpenCV_DIR /usr/local/lib/cmake/opencv4)

View File

@ -108,14 +108,6 @@
x="49.959942"
y="161.32069"
ry="0.60356212" />
<rect
style="fill:#ffffff;stroke:#000000;stroke-width:0;stroke-dasharray:none"
id="rect4"
width="51.475063"
height="18.145884"
x="122.20698"
y="56.289276"
ry="0.92581046" />
</g>
<path
id="rect5"

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -0,0 +1,219 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="182.87955mm"
height="144.54501mm"
viewBox="0 0 182.87955 144.54501"
version="1.1"
id="svg1"
xml:space="preserve"
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
sodipodi:docname="using_binary_eye.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
inkscape:zoom="0.5052024"
inkscape:cx="555.22302"
inkscape:cy="211.7963"
inkscape:window-width="1920"
inkscape:window-height="1029"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="1"
inkscape:current-layer="g3" /><defs
id="defs1"><marker
style="overflow:visible"
id="ArrowWide"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid"><path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path1" /></marker><marker
style="overflow:visible"
id="marker13"
refX="0"
refY="0"
orient="auto-start-reverse"
inkscape:stockid="Wide arrow"
markerWidth="1"
markerHeight="1"
viewBox="0 0 1 1"
inkscape:isstock="true"
inkscape:collect="always"
preserveAspectRatio="xMidYMid"><path
style="fill:none;stroke:context-stroke;stroke-width:1;stroke-linecap:butt"
d="M 3,-3 0,0 3,3"
transform="rotate(180,0.125,0)"
sodipodi:nodetypes="ccc"
id="path13" /></marker></defs><g
inkscape:label="Phone"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-25.853363,-48.893891)"><rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
id="rect1"
width="57.029922"
height="97.02494"
x="26.353363"
y="95.913963"
rx="7.7330093"
ry="7.3138995"
inkscape:label="border" /><g
id="g1837"
inkscape:label="binary eye logo"
transform="translate(-69.392567,-90.079408)"><circle
r="23.283333"
cy="234.73807"
cx="123.78944"
id="circle-1"
style="fill:#a6c45f;fill-opacity:1;stroke:none;stroke-width:1.05833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><circle
style="fill:#b6d46f;fill-opacity:1;stroke:none;stroke-width:1.05833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle-2"
cx="123.78944"
cy="234.20889"
r="23.283333" /><path
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:0.12549;fill-rule:nonzero;stroke:none;stroke-width:2.27733;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
d="m 124.32389,217.397 c -4.43071,0 -8.86142,1.68857 -12.2391,5.06624 -6.7556,6.75587 -6.7556,17.72311 0,24.47872 l 10.48915,10.48941 c 0.40454,0.0307 0.80989,0.0511 1.21549,0.0609 12.85901,0 23.28333,-10.42432 23.28333,-23.28333 -0.003,-0.42731 -0.0185,-0.85461 -0.0455,-1.28112 l -10.46453,-10.46453 c -3.37767,-3.37767 -7.80838,-5.06624 -12.23883,-5.06624 z"
id="path-1" /><circle
r="17.155054"
cy="234.55074"
cx="124.12916"
id="circle-3"
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.05833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><path
d="m 136.31216,234.55073 c 0,2.98132 -1.07077,5.71262 -2.84903,7.83008 v -15.66016 c 1.77826,2.11746 2.84903,4.84875 2.84903,7.83008 z m -12.183,12.183 c -0.34925,0 -0.69506,-0.0148 -1.0369,-0.0434 v -24.27922 c 0.34184,-0.0286 0.68765,-0.0434 1.0369,-0.0434 0.34925,0 0.69506,0.0148 1.0369,0.0434 v 24.27922 c -0.34184,0.0286 -0.68765,0.0434 -1.0369,0.0434 z m -12.18301,-12.183 c 0,-2.98133 1.07077,-5.71262 2.84904,-7.83008 v 15.66016 c -1.77827,-2.11746 -2.84904,-4.84876 -2.84904,-7.83008 z m 17.36858,11.02757 c -0.6612,0.31141 -1.35494,0.56515 -2.0746,0.75459 v -23.56432 c 0.71966,0.18944 1.4134,0.44317 2.0746,0.75459 z m -8.29707,0.75459 c -1.51898,-0.40005 -2.92206,-1.08612 -4.14788,-1.99708 v -19.57017 c 1.22582,-0.91096 2.6289,-1.59702 4.14788,-1.99707 z"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.05833;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="circle-6" /></g></g><g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="QR code"
transform="translate(-30.254583,-85.236427)"><rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
id="rect1837"
width="14.072319"
height="14.072319"
x="42.246078"
y="85.736427"
rx="0"
ry="0" /><rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.484034;stroke-opacity:1"
id="rect1838"
width="6.8114772"
height="6.8114772"
x="45.876503"
y="89.366852"
rx="0"
ry="0" /><rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
id="rect1839"
width="14.072319"
height="14.072319"
x="62.243584"
y="85.736427"
rx="0"
ry="0" /><rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.484034;stroke-opacity:1"
id="rect1840"
width="6.8114772"
height="6.8114772"
x="65.874008"
y="89.366852"
rx="0"
ry="0" /><rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1;stroke-opacity:1"
id="rect1841"
width="14.072319"
height="14.072319"
x="42.246078"
y="105.54877"
rx="0"
ry="0" /><rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.484034;stroke-opacity:1"
id="rect1842"
width="6.8114772"
height="6.8114772"
x="45.876503"
y="109.17919"
rx="0"
ry="0" /><rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.484034;stroke-opacity:1"
id="rect1844"
width="6.8114772"
height="6.8114772"
x="61.846733"
y="105.52224"
rx="0"
ry="0" /><rect
style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.484034;stroke-opacity:1"
id="rect1845"
width="6.8114772"
height="6.8114772"
x="69.130707"
y="112.81159"
rx="0"
ry="0" /><g
id="g3"
inkscape:label="laptop"
transform="translate(82.762838,125.57409)"><rect
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:4;stroke-dasharray:none;stroke-opacity:1"
id="rect1-6"
width="83.00206"
height="51.927536"
x="43.381889"
y="35.094681"
ry="2.8804462" /><rect
style="fill:#ffffff;stroke:#000000;stroke-width:4;stroke-dasharray:none"
id="rect2"
width="85.730049"
height="4.8142142"
x="42.641239"
y="93.605896"
ry="2.4071071" /><rect
style="fill:#ffffff;stroke:#000000;stroke-width:0;stroke-dasharray:none"
id="rect3"
width="8.389514"
height="1.2071242"
x="81.12114"
y="86.429092"
ry="0.60356212" /><g
id="g1"
transform="translate(27.69601,-81.170421)"><text
xml:space="preserve"
style="font-size:11.8523px;text-align:start;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-dasharray:none"
x="18.578594"
y="144.58119"
id="text15"><tspan
sodipodi:role="line"
id="tspan15"
style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1;stroke-dasharray:none"
x="18.578594"
y="144.58119">Checks parser</tspan></text></g><g
id="g13"
inkscape:label="two arrows"
transform="rotate(30,151.73824,-82.354999)"><path
style="fill:#ffffff;stroke:#000000;stroke-width:1.5;stroke-dasharray:none;marker-start:url(#ArrowWide)"
d="m 100.17269,112.57855 25.9227,-13.146507 z"
id="path10" /><path
style="fill:#ffffff;stroke:#000000;stroke-width:1.5;stroke-dasharray:none;marker-end:url(#marker13)"
d="m 128.92299,105.88982 -25.9227,13.14651 z"
id="path10-5" /></g></g></g></svg>

After

Width:  |  Height:  |  Size: 9.9 KiB

14
emailtextscene.cpp Normal file
View File

@ -0,0 +1,14 @@
#include "emailtextscene.h"
#include "ui_emailtextscene.h"
EmailTextScene::EmailTextScene(QWidget *parent)
: QWidget(parent)
, ui(new Ui::EmailTextScene)
{
ui->setupUi(this);
}
EmailTextScene::~EmailTextScene()
{
delete ui;
}

22
emailtextscene.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef EMAILTEXTSCENE_H
#define EMAILTEXTSCENE_H
#include <QWidget>
namespace Ui {
class EmailTextScene;
}
class EmailTextScene : public QWidget
{
Q_OBJECT
public:
explicit EmailTextScene(QWidget *parent = nullptr);
~EmailTextScene();
private:
Ui::EmailTextScene *ui;
};
#endif // EMAILTEXTSCENE_H

107
main.cpp
View File

@ -14,16 +14,118 @@
#endif
#include <QDateTime>
#include <QFile>
#include <QStackedLayout>
#include <QTextStream>
#include <QTranslator>
#include <qpushbutton.h>
#include <parser/parser.h>
static QWidget *loadUI(QWidget *parent, std::string filename) {
QUiLoader loader;
QFile file(QString::fromStdString(filename));
file.open(QIODevice::ReadOnly);
return loader.load(&file, parent);
}
int main(int argc, char *argv[]) {
QDateTime datetime = QDateTime::fromString("20171112T153500", "yyyyMMddThhmmss");
std::cout << datetime.toString().toStdString() << std::endl;
QUiLoader loader;
QApplication app(argc, argv);
QWidget *window = new QWidget();
QStackedLayout *sceneLayout = new QStackedLayout;
// Main Window setup
QWidget *mainwindowscene = loadUI(window, ":/scenes/scenes/mainwindow.ui");
// Main Window buttons setup
QPushButton *text_from_email_button = ((MainWindow *)mainwindowscene)->findChild<QPushButton *>("text_from_email_button");
QPushButton *ocr_button = ((MainWindow *)mainwindowscene)->findChild<QPushButton *>("ocr_button");
QPushButton *ofd_button = ((MainWindow *)mainwindowscene)->findChild<QPushButton *>("ofd_button");
QObject::connect(text_from_email_button, &QPushButton::clicked, [&]() {
// Text from email scene
sceneLayout->setCurrentIndex(1);
});
QObject::connect(ocr_button, &QPushButton::clicked, [&]() {
// OCR scene
sceneLayout->setCurrentIndex(2);
});
QObject::connect(ofd_button, &QPushButton::clicked, [&]() {
// OCR scene
sceneLayout->setCurrentIndex(3);
});
// Text from email setup
QWidget *emailtextscene = loadUI(window, ":/scenes/scenes/emailtextscene.ui");
//OCR scene
QWidget *ocrscene = loadUI(window, ":/scenes/scenes/ocrscene.ui");
sceneLayout->addWidget(mainwindowscene);
sceneLayout->addWidget(emailtextscene);
sceneLayout->addWidget(ocrscene);
//Setting all back buttons
for (uint32_t sceneIndex = 0; sceneIndex < sceneLayout->count(); sceneIndex ++) {
auto scene = sceneLayout->widget(sceneIndex);
QPushButton *back_button = scene->findChild<QPushButton *>("back_button");
if (back_button == nullptr) continue;
QObject::connect(back_button, &QPushButton::clicked, [&]() {
sceneLayout->setCurrentIndex(0);
});
}
window->setLayout(sceneLayout);
window->show();
app.exec();
return 0;
// QApplication app(argc, argv);
// QWidget *window = new QWidget;
// QStackedLayout *stackedLayout = new QStackedLayout;
// QWidget *scene1 = new QWidget;
// QWidget *scene2 = new QWidget;
// // Add some widgets to each scene
// QPushButton *button1 = new QPushButton("Switch to Scene 2");
// scene1->setLayout(new QVBoxLayout);
// scene1->layout()->addWidget(button1);
// QPushButton *button2 = new QPushButton("Switch to Scene 1");
// scene2->setLayout(new QVBoxLayout);
// scene2->layout()->addWidget(button2);
// // Add the scenes to the stacked layout
// stackedLayout->addWidget(scene1);
// stackedLayout->addWidget(scene2);
// // Set the layout of the window
// window->setLayout(stackedLayout);
// // Connect the buttons to switch scenes
// QObject::connect(button1, &QPushButton::clicked, [&]() {
// stackedLayout->setCurrentIndex(1);
// });
// QObject::connect(button2, &QPushButton::clicked, [&]() {
// stackedLayout->setCurrentIndex(0);
// });
// window->show();
// app.exec();
// return 0;
curl_global_init(CURL_GLOBAL_ALL);
std::string program_data_path = get_path_relative_to_home(".local/share/checks_parser");
@ -68,7 +170,6 @@ int main(int argc, char *argv[]) {
a.installTranslator(&translator);
MainWindow w;
// MainWindow w;
w.update();
w.show();

View File

@ -10,4 +10,3 @@ MainWindow::MainWindow(QWidget *parent)
MainWindow::~MainWindow() {
delete ui;
}

View File

@ -3,6 +3,7 @@
#include <QWidget>
#include <qevent.h>
#include <QtUiTools/quiloader.h>
namespace Ui {
class MainWindow;
@ -15,9 +16,10 @@ class MainWindow : public QWidget
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
private slots:
private:
};
#endif // MAINWINDOW_H

View File

@ -1,124 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QWidget" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1039</width>
<height>693</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>971</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="build/Desktop-Debug/media.qrc">
<normaloff>:/icons/assets/icons/OFD.svg</normaloff>:/icons/assets/icons/OFD.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>128</width>
<height>128</height>
</size>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QPushButton" name="pushButton_4">
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="pushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Text from E-Mail</string>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="build/Desktop-Debug/media.qrc">
<normaloff>:/icons/assets/icons/email-text.svg</normaloff>:/icons/assets/icons/email-text.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>128</width>
<height>128</height>
</size>
</property>
<property name="autoRepeat">
<bool>false</bool>
</property>
<property name="autoExclusive">
<bool>false</bool>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
<property name="default">
<bool>false</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="pushButton_3">
<property name="toolTip">
<string>Optical Character Recognition</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="build/Desktop-Debug/media.qrc">
<normaloff>:/icons/assets/icons/OCR.svg</normaloff>:/icons/assets/icons/OCR.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>128</width>
<height>128</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
<resources>
<include location="build/Desktop-Debug/media.qrc"/>
<include location="build/Desktop-Debug/media.qrc"/>
</resources>
<connections/>
</ui>

View File

@ -1,57 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>817</width>
<height>659</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QWidget" name="gridLayoutWidget">
<property name="geometry">
<rect>
<x>0</x>
<y>-10</y>
<width>821</width>
<height>621</height>
</rect>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QPushButton" name="preferencesButton">
<property name="text">
<string>Preferences</string>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>817</width>
<height>33</height>
</rect>
</property>
<widget class="QMenu" name="menuchecks_parser">
<property name="title">
<string>checks parser</string>
</property>
</widget>
<addaction name="menuchecks_parser"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

401
mainwindow_old.ui Normal file
View File

@ -0,0 +1,401 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>817</width>
<height>659</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QComboBox" name="storeType">
<property name="geometry">
<rect>
<x>90</x>
<y>10</y>
<width>211</width>
<height>31</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="storeTypeLabel">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Store type</string>
</property>
</widget>
<widget class="QPushButton" name="parseButton">
<property name="geometry">
<rect>
<x>30</x>
<y>560</y>
<width>80</width>
<height>26</height>
</rect>
</property>
<property name="text">
<string>Parse</string>
</property>
</widget>
<widget class="QPushButton" name="preferencesButton">
<property name="geometry">
<rect>
<x>730</x>
<y>0</y>
<width>81</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Preferences</string>
</property>
</widget>
<widget class="QTabWidget" name="tabWidget">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>801</width>
<height>511</height>
</rect>
</property>
<property name="currentIndex">
<number>2</number>
</property>
<widget class="QWidget" name="Text">
<attribute name="title">
<string>Text</string>
</attribute>
<widget class="QLabel" name="checkContentLabel">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>101</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Check content</string>
</property>
</widget>
<widget class="QPlainTextEdit" name="checkContent">
<property name="geometry">
<rect>
<x>0</x>
<y>30</y>
<width>611</width>
<height>441</height>
</rect>
</property>
</widget>
</widget>
<widget class="QWidget" name="OCR">
<attribute name="title">
<string>OCR</string>
</attribute>
<widget class="QPushButton" name="chooseImageButton_ocr">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>80</width>
<height>26</height>
</rect>
</property>
<property name="text">
<string>Choose</string>
</property>
</widget>
<widget class="QPlainTextEdit" name="checkContentFromImage">
<property name="geometry">
<rect>
<x>0</x>
<y>60</y>
<width>511</width>
<height>401</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="pathLabel_ocr">
<property name="geometry">
<rect>
<x>100</x>
<y>0</y>
<width>381</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Path to image: </string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>0</x>
<y>30</y>
<width>571</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Here is recognised check text. Please, edit it if something's wrong:</string>
</property>
</widget>
<widget class="QLabel" name="picture_ocr">
<property name="geometry">
<rect>
<x>490</x>
<y>10</y>
<width>291</width>
<height>421</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
</widget>
<widget class="QWidget" name="OFD">
<attribute name="title">
<string>OFD</string>
</attribute>
<widget class="QLabel" name="picture_ofd">
<property name="geometry">
<rect>
<x>490</x>
<y>10</y>
<width>291</width>
<height>421</height>
</rect>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QLabel" name="pathLabel_ofd">
<property name="geometry">
<rect>
<x>100</x>
<y>0</y>
<width>381</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Path to image: </string>
</property>
</widget>
<widget class="QPushButton" name="chooseImageButton_ofd">
<property name="geometry">
<rect>
<x>10</x>
<y>0</y>
<width>80</width>
<height>26</height>
</rect>
</property>
<property name="text">
<string>Choose</string>
</property>
</widget>
<widget class="QLineEdit" name="fn_edit">
<property name="geometry">
<rect>
<x>180</x>
<y>50</y>
<width>261</width>
<height>26</height>
</rect>
</property>
<property name="inputMask">
<string>0000000000000000</string>
</property>
</widget>
<widget class="QLabel" name="fn_label">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>161</width>
<height>21</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>FN (Fiscal Number)</string>
</property>
</widget>
<widget class="QLabel" name="fd_label">
<property name="geometry">
<rect>
<x>10</x>
<y>90</y>
<width>161</width>
<height>21</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>FD (Fiscal Document)</string>
</property>
</widget>
<widget class="QLineEdit" name="fd_edit">
<property name="geometry">
<rect>
<x>180</x>
<y>90</y>
<width>261</width>
<height>26</height>
</rect>
</property>
<property name="inputMask">
<string>0000000000</string>
</property>
</widget>
<widget class="QLabel" name="fi_label">
<property name="geometry">
<rect>
<x>10</x>
<y>130</y>
<width>161</width>
<height>21</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>FI (Fiscal Identifier)</string>
</property>
</widget>
<widget class="QLineEdit" name="fi_edit">
<property name="geometry">
<rect>
<x>180</x>
<y>130</y>
<width>261</width>
<height>26</height>
</rect>
</property>
<property name="inputMask">
<string>0000000000</string>
</property>
</widget>
<widget class="QDateTimeEdit" name="dateTimeEdit">
<property name="geometry">
<rect>
<x>10</x>
<y>170</y>
<width>194</width>
<height>27</height>
</rect>
</property>
</widget>
<widget class="QComboBox" name="fundIncomeCombo">
<property name="geometry">
<rect>
<x>10</x>
<y>210</y>
<width>191</width>
<height>26</height>
</rect>
</property>
<item>
<property name="text">
<string>Funds income</string>
</property>
</item>
<item>
<property name="text">
<string>Funds return</string>
</property>
</item>
<item>
<property name="text">
<string>Funds spend</string>
</property>
</item>
<item>
<property name="text">
<string>Spends return</string>
</property>
</item>
</widget>
<widget class="QLineEdit" name="total_edit">
<property name="geometry">
<rect>
<x>90</x>
<y>250</y>
<width>113</width>
<height>26</height>
</rect>
</property>
<property name="inputMask">
<string/>
</property>
</widget>
<widget class="QLabel" name="total_label">
<property name="geometry">
<rect>
<x>10</x>
<y>250</y>
<width>66</width>
<height>18</height>
</rect>
</property>
<property name="text">
<string>Total</string>
</property>
</widget>
</widget>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>817</width>
<height>23</height>
</rect>
</property>
<widget class="QMenu" name="menuchecks_parser">
<property name="title">
<string>checks parser</string>
</property>
</widget>
<addaction name="menuchecks_parser"/>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>

12
ocrscene.cpp Normal file
View File

@ -0,0 +1,12 @@
#include "ocrscene.h"
#include "ui_ocrscene.h"
OCRScene::OCRScene(QWidget *parent)
: QWidget(parent)
, ui(new Ui::OCRScene) {
ui->setupUi(this);
}
OCRScene::~OCRScene() {
delete ui;
}

22
ocrscene.h Normal file
View File

@ -0,0 +1,22 @@
#ifndef OCRSCENE_H
#define OCRSCENE_H
#include <QWidget>
namespace Ui {
class OCRScene;
}
class OCRScene : public QWidget
{
Q_OBJECT
public:
explicit OCRScene(QWidget *parent = nullptr);
~OCRScene();
private:
Ui::OCRScene *ui;
};
#endif // OCRSCENE_H

7
scenes.qrc Normal file
View File

@ -0,0 +1,7 @@
<RCC>
<qresource prefix="/scenes">
<file>scenes/emailtextscene.ui</file>
<file>scenes/ocrscene.ui</file>
<file>scenes/mainwindow.ui</file>
</qresource>
</RCC>

60
scenes/emailtextscene.ui Normal file
View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>EmailTextScene</class>
<widget class="QWidget" name="EmailTextScene">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>927</width>
<height>603</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="1">
<widget class="QTextEdit" name="check_content"/>
</item>
<item row="1" column="1">
<widget class="QLabel" name="check_content_label">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Minimum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Check content</string>
</property>
<property name="alignment">
<set>Qt::AlignmentFlag::AlignCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QPushButton" name="parse_button">
<property name="text">
<string>Parse</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="back_button">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Back</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

121
scenes/mainwindow.ui Normal file
View File

@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QWidget" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>1039</width>
<height>693</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Maximum">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>971</width>
<height>0</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="0">
<layout class="QGridLayout" name="root_layout">
<property name="verticalSpacing">
<number>6</number>
</property>
<item row="0" column="1">
<widget class="QPushButton" name="ocr_button">
<property name="toolTip">
<string>Optical Character Recognition</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>:/icons/assets/icons/OCR.svg</normaloff>:/icons/assets/icons/OCR.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>128</width>
<height>128</height>
</size>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QPushButton" name="text_from_email_button">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="toolTip">
<string>Text from E-Mail</string>
</property>
<property name="autoFillBackground">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>:/icons/assets/icons/email-text.svg</normaloff>:/icons/assets/icons/email-text.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>128</width>
<height>128</height>
</size>
</property>
<property name="autoRepeat">
<bool>false</bool>
</property>
<property name="autoExclusive">
<bool>false</bool>
</property>
<property name="autoDefault">
<bool>false</bool>
</property>
<property name="default">
<bool>false</bool>
</property>
<property name="flat">
<bool>false</bool>
</property>
</widget>
</item>
<item row="1" column="0" colspan="2">
<widget class="QPushButton" name="ofd_button">
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>:/icons/assets/icons/OFD.svg</normaloff>:/icons/assets/icons/OFD.svg</iconset>
</property>
<property name="iconSize">
<size>
<width>128</width>
<height>128</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

19
scenes/ocrscene.ui Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>OCRScene</class>
<widget class="QWidget" name="OCRScene">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -4,24 +4,43 @@
<context>
<name>AdjustPictureDialog</name>
<message>
<location filename="../adjustpicturedialog.ui" line="14"/>
<source>Dialog</source>
<translation>Dialog</translation>
<translation type="vanished">Dialog</translation>
</message>
<message>
<location filename="../adjustpicturedialog.ui" line="58"/>
<source>Please, zoom to qr code and adjust contrast so that qr code looks sharp</source>
<translation>Please, zoom to qr code and adjust contrast so that qr code looks sharp</translation>
<translation type="vanished">Please, zoom to qr code and adjust contrast so that qr code looks sharp</translation>
</message>
<message>
<location filename="../adjustpicturedialog.cpp" line="39"/>
<source>QR code was not detected on that image. Please edit it again or enter data manually</source>
<translation>QR code was not detected on that image. Please edit it again or enter data manually</translation>
<translation type="vanished">QR code was not detected on that image. Please edit it again or enter data manually</translation>
</message>
<message>
<location filename="../adjustpicturedialog.cpp" line="41"/>
<source>No QR code</source>
<translation>No QR code</translation>
<translation type="vanished">No QR code</translation>
</message>
</context>
<context>
<name>EmailTextScene</name>
<message>
<location filename="../scenes/emailtextscene.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../scenes/emailtextscene.ui" line="29"/>
<source>Check content</source>
<translation type="unfinished">Check content</translation>
</message>
<message>
<location filename="../scenes/emailtextscene.ui" line="39"/>
<source>Parse</source>
<translation type="unfinished">Parse</translation>
</message>
<message>
<location filename="../scenes/emailtextscene.ui" line="52"/>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -164,277 +183,231 @@
<translation type="vanished">Please, select a picture to scan</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="26"/>
<location filename="../scenes/mainwindow.ui" line="26"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="49"/>
<source>PushButton</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="100"/>
<location filename="../scenes/mainwindow.ui" line="37"/>
<source>Optical Character Recognition</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="62"/>
<location filename="../scenes/mainwindow.ui" line="63"/>
<source>Text from E-Mail</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OCRScene</name>
<message>
<location filename="../scenes/ocrscene.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OutputDialog</name>
<message>
<location filename="../outputdialog.ui" line="14"/>
<source>Dialog</source>
<translation>Dialog</translation>
<translation type="vanished">Dialog</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="42"/>
<source>Path to export: </source>
<translation>Path to export: </translation>
<translation type="vanished">Path to export: </translation>
</message>
<message>
<location filename="../outputdialog.ui" line="55"/>
<source>Choose</source>
<translation>Choose</translation>
<translation type="vanished">Choose</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="68"/>
<source>Print header</source>
<translation>Print header</translation>
<translation type="vanished">Print header</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="82"/>
<source>Goods name</source>
<translation>Goods name</translation>
<translation type="vanished">Goods name</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="87"/>
<source>Goods price</source>
<translation>Goods price</translation>
<translation type="vanished">Goods price</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="92"/>
<source>Goods quantity</source>
<translation>Goods quality</translation>
<translation type="vanished">Goods quality</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="97"/>
<source>Goods net weight</source>
<translation>Goods net weight</translation>
<translation type="vanished">Goods net weight</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="102"/>
<source>Goods total</source>
<translation>Goods total</translation>
<translation type="vanished">Goods total</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="107"/>
<source>position</source>
<translation>position</translation>
<translation type="vanished">position</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="112"/>
<source>name</source>
<translation>name</translation>
<translation type="vanished">name</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="117"/>
<source>1</source>
<translation>1</translation>
<translation type="vanished">1</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="122"/>
<source>Name</source>
<translation>Name</translation>
<translation type="vanished">Name</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="127"/>
<source>2</source>
<translation>2</translation>
<translation type="vanished">2</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="132"/>
<source>Price</source>
<translation>Price</translation>
<translation type="vanished">Price</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="137"/>
<source>3</source>
<translation>3</translation>
<translation type="vanished">3</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="142"/>
<source>Quantity</source>
<translation>Quantity</translation>
<translation type="vanished">Quantity</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="147"/>
<source>4</source>
<translation>4</translation>
<translation type="vanished">4</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="152"/>
<source>Net weight</source>
<translation>Net Weight</translation>
<translation type="vanished">Net Weight</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="157"/>
<source>5</source>
<translation>5</translation>
<translation type="vanished">5</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="162"/>
<source>Total price</source>
<translation>Total price</translation>
<translation type="vanished">Total price</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="176"/>
<source>Print total</source>
<translation>Print total</translation>
<translation type="vanished">Print total</translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="../settingsdialog.cpp" line="149"/>
<source>You need to restart program to apply language changes</source>
<translation>You need to restart program to apply language changes</translation>
<translation type="vanished">You need to restart program to apply language changes</translation>
</message>
<message>
<location filename="../settingsdialog.cpp" line="151"/>
<source>Restart required</source>
<translation>Restart required</translation>
<translation type="vanished">Restart required</translation>
</message>
</context>
<context>
<name>SolveCaptchaDialog</name>
<message>
<location filename="../solvecaptchadialog.ui" line="14"/>
<source>Dialog</source>
<translation>Dialog</translation>
<translation type="vanished">Dialog</translation>
</message>
<message>
<location filename="../solvecaptchadialog.cpp" line="23"/>
<source>Please, enter a valid captcha</source>
<translation>Please, enter a valid captcha</translation>
<translation type="vanished">Please, enter a valid captcha</translation>
</message>
<message>
<location filename="../solvecaptchadialog.cpp" line="25"/>
<source>No captcha</source>
<translation>No captcha</translation>
<translation type="vanished">No captcha</translation>
</message>
</context>
<context>
<name>settingsdialog</name>
<message>
<location filename="../settingsdialog.ui" line="14"/>
<source>Dialog</source>
<translation>Dialog</translation>
<translation type="vanished">Dialog</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="182"/>
<source>Goods name position</source>
<translation>Goods name position</translation>
<translation type="vanished">Goods name position</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="234"/>
<source>Goods price per unit alias</source>
<translation>Goods price per unit alias</translation>
<translation type="vanished">Goods price per unit alias</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="248"/>
<source>TextLabel</source>
<translation>Language</translation>
<translation type="vanished">Language</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="256"/>
<source>en_US</source>
<translation>en_US</translation>
<translation type="vanished">en_US</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="261"/>
<source>ru_RU</source>
<translation>ru_RU</translation>
<translation type="vanished">ru_RU</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="224"/>
<location filename="../settingsdialog.ui" line="241"/>
<source>Choose</source>
<translation>Choose</translation>
<translation type="vanished">Choose</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="107"/>
<source>Print header</source>
<translation>Print header</translation>
<translation type="vanished">Print header</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="150"/>
<source>Goods net weight alias</source>
<translation>Goods net weight alias</translation>
<translation type="vanished">Goods net weight alias</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="83"/>
<source>Stores modules url</source>
<translation>Stores modules url</translation>
<translation type="vanished">Stores modules url</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="163"/>
<source>Goods total alias</source>
<translation>Goods total alias</translation>
<translation type="vanished">Goods total alias</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="196"/>
<source>Goods name alias</source>
<translation>Goods name alias</translation>
<translation type="vanished">Goods name alias</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="120"/>
<source>Goods quantity alias</source>
<translation>Goods quantity alias</translation>
<translation type="vanished">Goods quantity alias</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="210"/>
<source>Stores modules directory</source>
<translation>Stores modules directory</translation>
<translation type="vanished">Stores modules directory</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="127"/>
<source>OFD modules directory</source>
<translation>OFD modules directory</translation>
<translation type="vanished">OFD modules directory</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="203"/>
<source>Goods price per unit position</source>
<translation>Goods price per unit position</translation>
<translation type="vanished">Goods price per unit position</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="73"/>
<source>Goods net weight position</source>
<translation>Goods net weight position</translation>
<translation type="vanished">Goods net weight position</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="100"/>
<source>OFD modules url</source>
<translation>OFD modules url</translation>
<translation type="vanished">OFD modules url</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="217"/>
<source>Goods total position</source>
<translation>Goods total position</translation>
<translation type="vanished">Goods total position</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="90"/>
<source>Goods quantity position</source>
<translation>Goods quantity position</translation>
<translation type="vanished">Goods quantity position</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="137"/>
<source>Print total</source>
<translation>Print total</translation>
<translation type="vanished">Print total</translation>
</message>
</context>
</TS>

View File

@ -4,24 +4,43 @@
<context>
<name>AdjustPictureDialog</name>
<message>
<location filename="../adjustpicturedialog.ui" line="14"/>
<source>Dialog</source>
<translation>Диалог</translation>
<translation type="vanished">Диалог</translation>
</message>
<message>
<location filename="../adjustpicturedialog.ui" line="58"/>
<source>Please, zoom to qr code and adjust contrast so that qr code looks sharp</source>
<translation>Пожалуйста, приблизьте QR код и настройте контраст, чтобы он читался</translation>
<translation type="vanished">Пожалуйста, приблизьте QR код и настройте контраст, чтобы он читался</translation>
</message>
<message>
<location filename="../adjustpicturedialog.cpp" line="39"/>
<source>QR code was not detected on that image. Please edit it again or enter data manually</source>
<translation>QR код не найден на этом изображении. Пожалуйста, попытайтесь снова или введите данные вручную</translation>
<translation type="vanished">QR код не найден на этом изображении. Пожалуйста, попытайтесь снова или введите данные вручную</translation>
</message>
<message>
<location filename="../adjustpicturedialog.cpp" line="41"/>
<source>No QR code</source>
<translation>QR код не найден</translation>
<translation type="vanished">QR код не найден</translation>
</message>
</context>
<context>
<name>EmailTextScene</name>
<message>
<location filename="../scenes/emailtextscene.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../scenes/emailtextscene.ui" line="29"/>
<source>Check content</source>
<translation type="unfinished">Контент чека</translation>
</message>
<message>
<location filename="../scenes/emailtextscene.ui" line="39"/>
<source>Parse</source>
<translation type="unfinished">Парсить</translation>
</message>
<message>
<location filename="../scenes/emailtextscene.ui" line="52"/>
<source>Back</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@ -164,277 +183,231 @@
<translation type="vanished">Пожалуйста, выберете изображение для сканирования</translation>
</message>
<message>
<location filename="../mainwindow.ui" line="26"/>
<location filename="../scenes/mainwindow.ui" line="26"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="49"/>
<source>PushButton</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="100"/>
<location filename="../scenes/mainwindow.ui" line="37"/>
<source>Optical Character Recognition</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../mainwindow.ui" line="62"/>
<location filename="../scenes/mainwindow.ui" line="63"/>
<source>Text from E-Mail</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OCRScene</name>
<message>
<location filename="../scenes/ocrscene.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>OutputDialog</name>
<message>
<location filename="../outputdialog.ui" line="14"/>
<source>Dialog</source>
<translation>Диалог</translation>
<translation type="vanished">Диалог</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="42"/>
<source>Path to export: </source>
<translation>Путь для экспорта: </translation>
<translation type="vanished">Путь для экспорта: </translation>
</message>
<message>
<location filename="../outputdialog.ui" line="55"/>
<source>Choose</source>
<translation>Выбрать</translation>
<translation type="vanished">Выбрать</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="68"/>
<source>Print header</source>
<translation>Печатать заголовок</translation>
<translation type="vanished">Печатать заголовок</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="82"/>
<source>Goods name</source>
<translation>Имя товара</translation>
<translation type="vanished">Имя товара</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="87"/>
<source>Goods price</source>
<translation>Цена товара</translation>
<translation type="vanished">Цена товара</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="92"/>
<source>Goods quantity</source>
<translation>Количество товара</translation>
<translation type="vanished">Количество товара</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="97"/>
<source>Goods net weight</source>
<translation>Масса нетто товара</translation>
<translation type="vanished">Масса нетто товара</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="102"/>
<source>Goods total</source>
<translation>Всего за товар</translation>
<translation type="vanished">Всего за товар</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="107"/>
<source>position</source>
<translation>позиция</translation>
<translation type="vanished">позиция</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="112"/>
<source>name</source>
<translation>алиас</translation>
<translation type="vanished">алиас</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="117"/>
<source>1</source>
<translation>1</translation>
<translation type="vanished">1</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="122"/>
<source>Name</source>
<translation>Имя</translation>
<translation type="vanished">Имя</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="127"/>
<source>2</source>
<translation>2</translation>
<translation type="vanished">2</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="132"/>
<source>Price</source>
<translation>Цена</translation>
<translation type="vanished">Цена</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="137"/>
<source>3</source>
<translation>3</translation>
<translation type="vanished">3</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="142"/>
<source>Quantity</source>
<translation>Количество</translation>
<translation type="vanished">Количество</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="147"/>
<source>4</source>
<translation>4</translation>
<translation type="vanished">4</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="152"/>
<source>Net weight</source>
<translation>Масса нетто</translation>
<translation type="vanished">Масса нетто</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="157"/>
<source>5</source>
<translation>5</translation>
<translation type="vanished">5</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="162"/>
<source>Total price</source>
<translation>Всего</translation>
<translation type="vanished">Всего</translation>
</message>
<message>
<location filename="../outputdialog.ui" line="176"/>
<source>Print total</source>
<translation>Печатать Итого</translation>
<translation type="vanished">Печатать Итого</translation>
</message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="../settingsdialog.cpp" line="149"/>
<source>You need to restart program to apply language changes</source>
<translation>Требуется перезагрузить программу, чтобы применить изменения языка</translation>
<translation type="vanished">Требуется перезагрузить программу, чтобы применить изменения языка</translation>
</message>
<message>
<location filename="../settingsdialog.cpp" line="151"/>
<source>Restart required</source>
<translation>Требуется перезагрузка</translation>
<translation type="vanished">Требуется перезагрузка</translation>
</message>
</context>
<context>
<name>SolveCaptchaDialog</name>
<message>
<location filename="../solvecaptchadialog.ui" line="14"/>
<source>Dialog</source>
<translation>Диалог</translation>
<translation type="vanished">Диалог</translation>
</message>
<message>
<location filename="../solvecaptchadialog.cpp" line="23"/>
<source>Please, enter a valid captcha</source>
<translation>Пожалуйста, введите верную капчу</translation>
<translation type="vanished">Пожалуйста, введите верную капчу</translation>
</message>
<message>
<location filename="../solvecaptchadialog.cpp" line="25"/>
<source>No captcha</source>
<translation>Нет капчи</translation>
<translation type="vanished">Нет капчи</translation>
</message>
</context>
<context>
<name>settingsdialog</name>
<message>
<location filename="../settingsdialog.ui" line="14"/>
<source>Dialog</source>
<translation>Диалог</translation>
<translation type="vanished">Диалог</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="182"/>
<source>Goods name position</source>
<translation>Позиция имени товара</translation>
<translation type="vanished">Позиция имени товара</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="234"/>
<source>Goods price per unit alias</source>
<translation>Алиас цены товара</translation>
<translation type="vanished">Алиас цены товара</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="248"/>
<source>TextLabel</source>
<translation>Язык</translation>
<translation type="vanished">Язык</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="256"/>
<source>en_US</source>
<translation>en_US</translation>
<translation type="vanished">en_US</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="261"/>
<source>ru_RU</source>
<translation>ru_RU</translation>
<translation type="vanished">ru_RU</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="224"/>
<location filename="../settingsdialog.ui" line="241"/>
<source>Choose</source>
<translation>Выбрать</translation>
<translation type="vanished">Выбрать</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="107"/>
<source>Print header</source>
<translation>Печатать заголовок</translation>
<translation type="vanished">Печатать заголовок</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="150"/>
<source>Goods net weight alias</source>
<translation>Алиас массы нетто товара</translation>
<translation type="vanished">Алиас массы нетто товара</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="83"/>
<source>Stores modules url</source>
<translation>URL модулей магазина</translation>
<translation type="vanished">URL модулей магазина</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="163"/>
<source>Goods total alias</source>
<translation>Алиас всего за продукт</translation>
<translation type="vanished">Алиас всего за продукт</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="196"/>
<source>Goods name alias</source>
<translation>Алиас имени товара</translation>
<translation type="vanished">Алиас имени товара</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="120"/>
<source>Goods quantity alias</source>
<translation>Алиас количества товара</translation>
<translation type="vanished">Алиас количества товара</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="210"/>
<source>Stores modules directory</source>
<translation>Директория модулей магазина</translation>
<translation type="vanished">Директория модулей магазина</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="127"/>
<source>OFD modules directory</source>
<translation>Директория модулей ОФД</translation>
<translation type="vanished">Директория модулей ОФД</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="203"/>
<source>Goods price per unit position</source>
<translation>Позиция центы товара</translation>
<translation type="vanished">Позиция центы товара</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="73"/>
<source>Goods net weight position</source>
<translation>Позиция массы нетто товара</translation>
<translation type="vanished">Позиция массы нетто товара</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="100"/>
<source>OFD modules url</source>
<translation>URL модулей ОФД</translation>
<translation type="vanished">URL модулей ОФД</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="217"/>
<source>Goods total position</source>
<translation>Позиция всего за товар</translation>
<translation type="vanished">Позиция всего за товар</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="90"/>
<source>Goods quantity position</source>
<translation>Позиция количества товара</translation>
<translation type="vanished">Позиция количества товара</translation>
</message>
<message>
<location filename="../settingsdialog.ui" line="137"/>
<source>Print total</source>
<translation>Печатать Итого</translation>
<translation type="vanished">Печатать Итого</translation>
</message>
</context>
</TS>