Compare commits
No commits in common. "d13f9d2824ad22e4fda94dc3fd6eab6607d2968d" and "ad895abd355ed57436f97317230f59ba0748a603" have entirely different histories.
d13f9d2824
...
ad895abd35
31 changed files with 81 additions and 152 deletions
6
.gitmodules
vendored
6
.gitmodules
vendored
|
@ -1,9 +1,9 @@
|
||||||
[submodule "3rdparty/nlohmann_json"]
|
[submodule "3rdparty/nlohmann_json"]
|
||||||
path = subprojects/nlohmann_json
|
path = 3rdparty/nlohmann_json
|
||||||
url = https://github.com/nlohmann/json.git
|
url = https://github.com/nlohmann/json.git
|
||||||
[submodule "3rdparty/singleapplication"]
|
[submodule "3rdparty/singleapplication"]
|
||||||
path = subprojects/singleapplication/singleapplication.git
|
path = 3rdparty/singleapplication
|
||||||
url = https://github.com/itay-grudev/SingleApplication.git
|
url = https://github.com/itay-grudev/SingleApplication.git
|
||||||
[submodule "3rdparty/csv-parser"]
|
[submodule "3rdparty/csv-parser"]
|
||||||
path = subprojects/csv-parser
|
path = 3rdparty/csv-parser
|
||||||
url = https://github.com/vincentlaucsb/csv-parser.git
|
url = https://github.com/vincentlaucsb/csv-parser.git
|
||||||
|
|
0
subprojects/csv-parser → 3rdparty/csv-parser
vendored
0
subprojects/csv-parser → 3rdparty/csv-parser
vendored
19
meson.build
19
meson.build
|
@ -1,20 +1,3 @@
|
||||||
project('kima2', 'cpp', default_options : ['cpp_std=c++17'], version : '1.6.0')
|
project('kima2', 'cpp')
|
||||||
|
|
||||||
conf_data = configuration_data()
|
|
||||||
conf_data.set('PROJECT_VERSION', '"' + meson.project_version() + '"')
|
|
||||||
configure_file(output : 'config.h',
|
|
||||||
configuration : conf_data)
|
|
||||||
configuration_inc = include_directories('.')
|
|
||||||
|
|
||||||
cmake = import('cmake')
|
|
||||||
|
|
||||||
#csv = cmake.subproject('csv-parser')
|
|
||||||
#csv_lib = csv.dependency('csv')
|
|
||||||
nlohmann = cmake.subproject('nlohmann_json', cmake_options : ['-DJSON_BuildTests=OFF', '-DCMAKE_BUILD_TYPE=Release'])
|
|
||||||
nlohmann_lib = nlohmann.dependency('nlohmann_json')
|
|
||||||
|
|
||||||
singleapp_proj = subproject('singleapplication')
|
|
||||||
singleapp_lib = singleapp_proj.get_variable('singleapp_lib')
|
|
||||||
singleapp_dep = singleapp_proj.get_variable('singleapp_dep')
|
|
||||||
|
|
||||||
subdir('src')
|
subdir('src')
|
||||||
|
|
|
@ -29,11 +29,11 @@ set(CORE_SOURCES
|
||||||
add_library(core STATIC ${CORE_SOURCES})
|
add_library(core STATIC ${CORE_SOURCES})
|
||||||
target_include_directories(core PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/csv-parser/include)
|
target_include_directories(core PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/csv-parser/include)
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
target_link_libraries(core PRIVATE Boost::boost Boost::date_time sqlite3 nlohmann_json::nlohmann_json ${XLNT_LIBRARY} csv)
|
target_link_libraries(core PRIVATE printer Boost::boost Boost::date_time sqlite3 nlohmann_json::nlohmann_json ${XLNT_LIBRARY} csv)
|
||||||
target_link_libraries(core PRIVATE bcrypt)
|
target_link_libraries(core PRIVATE bcrypt)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(core PRIVATE Boost::boost Boost::date_time sqlite3 nlohmann_json::nlohmann_json ${XLNT_LIBRARIES} csv)
|
target_link_libraries(core PRIVATE printer Boost::boost Boost::date_time sqlite3 nlohmann_json::nlohmann_json ${XLNT_LIBRARIES} csv)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#target_include_directories(core PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/csv-parser)
|
#target_include_directories(core PRIVATE ${PROJECT_SOURCE_DIR}/3rdparty/csv-parser)
|
||||||
target_include_directories(core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
|
target_include_directories(core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include "../../subprojects/csv-parser/single_include/csv.hpp"
|
#include <csv.hpp>
|
||||||
//#include <csv.hpp>
|
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,4 @@ src = ['database.cpp', 'entity.cpp', 'entityint.cpp', 'entityuuid.cpp',
|
||||||
'seller.cpp', 'article.cpp', 'sale.cpp', 'marketplace.cpp',
|
'seller.cpp', 'article.cpp', 'sale.cpp', 'marketplace.cpp',
|
||||||
'excelreader.cpp', 'csvreader.cpp', 'jsonutil.cpp', 'utils.cpp']
|
'excelreader.cpp', 'csvreader.cpp', 'jsonutil.cpp', 'utils.cpp']
|
||||||
|
|
||||||
core_inc = include_directories('..')
|
core_lib = static_library('core', src, dependencies :[boost, xlnt, sqlite])
|
||||||
|
|
||||||
core_lib = static_library('core', src, dependencies :[boost, xlnt, sqlite, nlohmann_lib])
|
|
||||||
|
|
||||||
core_dep = declare_dependency(link_with : core_lib, include_directories : core_inc)
|
|
||||||
|
|
|
@ -21,6 +21,31 @@ std::string formatCentAsEuroString(const int cent, int width)
|
||||||
return currStream.str();
|
return currStream.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::optional<PrinterDevice> convertToPosPrinterDevice(const std::string& device,
|
||||||
|
const std::string& endpoint)
|
||||||
|
{
|
||||||
|
if (device.empty()) {
|
||||||
|
return std::nullopt;
|
||||||
|
}
|
||||||
|
|
||||||
|
PrinterDevice printerDevice;
|
||||||
|
std::string delimiter = ":";
|
||||||
|
try {
|
||||||
|
printerDevice.idVendor = std::stoi(device.substr(0, device.find(delimiter)), 0, 16);
|
||||||
|
printerDevice.idProduct = std::stoi(device.substr(device.find(delimiter) + 1), 0, 16);
|
||||||
|
if (endpoint.empty()) {
|
||||||
|
printerDevice.endpoint = 0x03;
|
||||||
|
} else {
|
||||||
|
printerDevice.endpoint = std::stoi(endpoint, 0, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
throw ex;
|
||||||
|
}
|
||||||
|
|
||||||
|
return printerDevice;
|
||||||
|
}
|
||||||
|
|
||||||
std::string& ltrim(std::string& str, const std::string& chars)
|
std::string& ltrim(std::string& str, const std::string& chars)
|
||||||
{
|
{
|
||||||
str.erase(0, str.find_first_not_of(chars));
|
str.erase(0, str.find_first_not_of(chars));
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
#ifndef CORE_UTILS_H
|
#ifndef UTILS_H
|
||||||
#define CORE_UTILS_H
|
#define UTILS_H
|
||||||
|
|
||||||
|
#include "posprinter.h"
|
||||||
|
|
||||||
#include <locale>
|
#include <locale>
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
std::string formatCentAsEuroString(const int cent, int width = 10);
|
std::string formatCentAsEuroString(const int cent, int width = 10);
|
||||||
|
std::optional<PrinterDevice> convertToPosPrinterDevice(const std::string& vendor,
|
||||||
|
const std::string& endpoint);
|
||||||
std::string& ltrim(std::string& str, const std::string& chars = "\t\n\v\f\r ");
|
std::string& ltrim(std::string& str, const std::string& chars = "\t\n\v\f\r ");
|
||||||
std::string& rtrim(std::string& str, const std::string& chars = "\t\n\v\f\r ");
|
std::string& rtrim(std::string& str, const std::string& chars = "\t\n\v\f\r ");
|
||||||
std::string& trim(std::string& str, const std::string& chars = "\t\n\v\f\r ");
|
std::string& trim(std::string& str, const std::string& chars = "\t\n\v\f\r ");
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef BASKET_MODEL_H
|
#ifndef BASKET_MODEL_H
|
||||||
#define BASKET_MODEL_H
|
#define BASKET_MODEL_H
|
||||||
|
|
||||||
#include <core/marketplace.h>
|
#include <marketplace.h>
|
||||||
|
|
||||||
#include <QAbstractTableModel>
|
#include <QAbstractTableModel>
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,19 @@
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
|
|
||||||
#include "basketmodel.h"
|
#include "basketmodel.h"
|
||||||
#include <config.h>
|
#include "config.h"
|
||||||
|
#include "jsonutil.h"
|
||||||
#include "pricedialog.h"
|
#include "pricedialog.h"
|
||||||
#include "reportdialog.h"
|
#include "reportdialog.h"
|
||||||
#include "salemodel.h"
|
#include "salemodel.h"
|
||||||
#include "sellerdialog.h"
|
#include "sellerdialog.h"
|
||||||
#include "settingsdialog.h"
|
#include "settingsdialog.h"
|
||||||
|
|
||||||
#include <core/csvreader.h>
|
#include <utils.h>
|
||||||
#include <core/excelreader.h>
|
|
||||||
#include <core/jsonutil.h>
|
#include <csvreader.h>
|
||||||
#include <core/utils.h>
|
#include <excelreader.h>
|
||||||
#include <printer/posprinter.h>
|
#include <posprinter.h>
|
||||||
#include <printer/utils.h>
|
|
||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
|
|
||||||
#include <core/marketplace.h>
|
#include <marketplace.h>
|
||||||
|
|
||||||
#include <QMainWindow>
|
#include <QMainWindow>
|
||||||
#include <QtGui/QCloseEvent>
|
#include <QtGui/QCloseEvent>
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
qt5 = import('qt5')
|
qt5 = import('qt5')
|
||||||
qt5_dep = dependency('qt5', modules: ['Core', 'Gui', 'PrintSupport', 'Network'])
|
qt5_dep = dependency('qt5', modules: ['Core', 'Gui', 'PrintSupport'])
|
||||||
|
|
||||||
thread_dep = dependency('threads')
|
|
||||||
|
|
||||||
|
|
||||||
src = ['kima2.cpp', 'mainwindow.cpp', 'sellerdialog.cpp', 'sellermodel.cpp',
|
src = ['kima2.cpp', 'mainwindow.cpp', 'sellerdialog.cpp', 'sellermodel.cpp',
|
||||||
'pricedialog.cpp', 'basketmodel.cpp', 'salemodel.cpp', 'reportdialog.cpp',
|
'pricedialog.cpp', 'basketmodel.cpp', 'salemodel.cpp', 'reportdialog.cpp',
|
||||||
|
@ -10,12 +7,9 @@ src = ['kima2.cpp', 'mainwindow.cpp', 'sellerdialog.cpp', 'sellermodel.cpp',
|
||||||
|
|
||||||
ui = ['mainwindow.ui', 'sellerdialog.ui', 'pricedialog.ui', 'reportdialog.ui', 'settingsdialog.ui']
|
ui = ['mainwindow.ui', 'sellerdialog.ui', 'pricedialog.ui', 'reportdialog.ui', 'settingsdialog.ui']
|
||||||
|
|
||||||
processed = qt5.preprocess(moc_headers : ['basketmodel.h', 'mainwindow.h', 'pricedialog.h',
|
processed = qt5.preprocess(moc_headers : ['basketmodel.h', 'mainwindow.h', 'pricedialog.h', 'reportdialog.h', 'sellerdialog.h', 'settingsdialog.h'],
|
||||||
'reportdialog.h', 'sellerdialog.h', 'settingsdialog.h',
|
|
||||||
'sellermodel.h', 'salemodel.h'],
|
|
||||||
ui_files : ui,
|
ui_files : ui,
|
||||||
qresources : '../../kima2.qrc',
|
qresources : '../../kima2.qrc',
|
||||||
dependencies: qt5_dep)
|
dependencies: qt5_dep)
|
||||||
|
|
||||||
kima2 = executable('kima2', sources : [src, processed], dependencies : [qt5_dep, singleapp_dep, core_dep, printer_dep, thread_dep],
|
kima2 = executable('kima2', sources : [src, processed], dependencies : qt5_dep)
|
||||||
include_directories : [configuration_inc])
|
|
||||||
|
|
|
@ -2,9 +2,8 @@
|
||||||
|
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
|
|
||||||
#include <core/utils.h>
|
#include <posprinter.h>
|
||||||
#include <printer/posprinter.h>
|
#include <utils.h>
|
||||||
#include <printer/utils.h>
|
|
||||||
|
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
#include "reportmodel.h"
|
#include "reportmodel.h"
|
||||||
|
|
||||||
#include <core/marketplace.h>
|
#include <marketplace.h>
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef REPORT_MODEL_H
|
#ifndef REPORT_MODEL_H
|
||||||
#define REPORT_MODEL_H
|
#define REPORT_MODEL_H
|
||||||
|
|
||||||
#include <core/marketplace.h>
|
#include <marketplace.h>
|
||||||
|
|
||||||
#include <QAbstractTableModel>
|
#include <QAbstractTableModel>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "salemodel.h"
|
#include "salemodel.h"
|
||||||
|
|
||||||
#include <core/article.h>
|
#include <article.h>
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef SALEMODEL_H
|
#ifndef SALEMODEL_H
|
||||||
#define SALEMODEL_H
|
#define SALEMODEL_H
|
||||||
|
|
||||||
#include <core/marketplace.h>
|
#include <marketplace.h>
|
||||||
|
|
||||||
#include <QAbstractItemModel>
|
#include <QAbstractItemModel>
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef SELLER_MODEL_H
|
#ifndef SELLER_MODEL_H
|
||||||
#define SELLER_MODEL_H
|
#define SELLER_MODEL_H
|
||||||
|
|
||||||
#include <core/marketplace.h>
|
#include <marketplace.h>
|
||||||
|
|
||||||
#include <QAbstractTableModel>
|
#include <QAbstractTableModel>
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,9 @@
|
||||||
|
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
|
|
||||||
#include <core/database.h>
|
#include <database.h>
|
||||||
#include <printer/posprinter.h>
|
#include <posprinter.h>
|
||||||
#include <printer/utils.h>
|
#include <utils.h>
|
||||||
#include <core/utils.h>
|
|
||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
|
@ -3,14 +3,12 @@
|
||||||
|
|
||||||
#include "ui_settingsdialog.h"
|
#include "ui_settingsdialog.h"
|
||||||
|
|
||||||
#include <core/marketplace.h>
|
#include <marketplace.h>
|
||||||
|
|
||||||
#include <QDialog>
|
#include <QDialog>
|
||||||
|
|
||||||
class SettingsDialog : public QDialog
|
class SettingsDialog : public QDialog
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SettingsDialog(QWidget* parent = nullptr,
|
SettingsDialog(QWidget* parent = nullptr,
|
||||||
Qt::WindowFlags f = Qt::WindowTitleHint | Qt::WindowSystemMenuHint);
|
Qt::WindowFlags f = Qt::WindowTitleHint | Qt::WindowSystemMenuHint);
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
printer = dependency('printer_dep', fallback : ['printer', 'printer_dep'])
|
||||||
|
|
||||||
subdir('core')
|
subdir('core')
|
||||||
subdir('printer')
|
subdir('printer')
|
||||||
subdir('gui')
|
subdir('gui')
|
||||||
|
|
|
@ -11,7 +11,6 @@ endif()
|
||||||
|
|
||||||
set(PRINTER_SOURCES
|
set(PRINTER_SOURCES
|
||||||
posprinter.cpp
|
posprinter.cpp
|
||||||
utils.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(printer STATIC ${PRINTER_SOURCES})
|
add_library(printer STATIC ${PRINTER_SOURCES})
|
||||||
|
@ -20,4 +19,4 @@ if(WIN32)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(printer core ${LibUSB_LIBRARIES})
|
target_link_libraries(printer core ${LibUSB_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
target_include_directories(printer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/..)
|
target_include_directories(printer PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
libusb = dependency('libusb-1.0')
|
libusb = dependency('libusb-1.0')
|
||||||
|
|
||||||
src = ['posprinter.cpp', 'utils.cpp']
|
src = ['posprinter.cpp']
|
||||||
|
|
||||||
printer_inc = include_directories('..')
|
printer_lib = static_library('printer', src, dependencies: [libusb])
|
||||||
|
|
||||||
printer_lib = static_library('printer', src, dependencies: [libusb, core_dep])
|
|
||||||
|
|
||||||
printer_dep = declare_dependency(link_with : printer_lib, include_directories : printer_inc)
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#include "posprinter.h"
|
#include "posprinter.h"
|
||||||
|
|
||||||
#include <core/marketplace.h>
|
#include <marketplace.h>
|
||||||
|
|
||||||
#include <boost/date_time/posix_time/posix_time.hpp>
|
#include <boost/date_time/posix_time/posix_time.hpp>
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#ifndef POS_PRINTER_H
|
#ifndef POS_PRINTER_H
|
||||||
#define POS_PRINTER_H
|
#define POS_PRINTER_H
|
||||||
|
|
||||||
#include <core/sale.h>
|
#include <sale.h>
|
||||||
#include <core/seller.h>
|
#include <seller.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
#include "utils.h"
|
|
||||||
|
|
||||||
std::optional<PrinterDevice> convertToPosPrinterDevice(const std::string& device,
|
|
||||||
const std::string& endpoint)
|
|
||||||
{
|
|
||||||
if (device.empty()) {
|
|
||||||
return std::nullopt;
|
|
||||||
}
|
|
||||||
|
|
||||||
PrinterDevice printerDevice;
|
|
||||||
std::string delimiter = ":";
|
|
||||||
try {
|
|
||||||
printerDevice.idVendor = std::stoi(device.substr(0, device.find(delimiter)), 0, 16);
|
|
||||||
printerDevice.idProduct = std::stoi(device.substr(device.find(delimiter) + 1), 0, 16);
|
|
||||||
if (endpoint.empty()) {
|
|
||||||
printerDevice.endpoint = 0x03;
|
|
||||||
} else {
|
|
||||||
printerDevice.endpoint = std::stoi(endpoint, 0, 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
} catch (std::exception& ex) {
|
|
||||||
throw ex;
|
|
||||||
}
|
|
||||||
|
|
||||||
return printerDevice;
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
#ifndef PRINTER_UTILS_H
|
|
||||||
#define PRINTER_UTILS_H
|
|
||||||
|
|
||||||
#include "posprinter.h"
|
|
||||||
|
|
||||||
#include <optional>
|
|
||||||
#include <string>
|
|
||||||
|
|
||||||
std::optional<PrinterDevice> convertToPosPrinterDevice(const std::string& vendor,
|
|
||||||
const std::string& endpoint);
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -1,27 +0,0 @@
|
||||||
project('singleapplication')
|
|
||||||
|
|
||||||
qt5 = import('qt5')
|
|
||||||
dep_qt5 = dependency('qt5', modules: ['Core', 'Widgets', 'Network'])
|
|
||||||
|
|
||||||
singleapp_inc = include_directories('singleapplication.git')
|
|
||||||
|
|
||||||
singleapp_moc = qt5.preprocess(
|
|
||||||
moc_headers: ['singleapplication.git/singleapplication.h', 'singleapplication.git/singleapplication_p.h'],
|
|
||||||
moc_extra_arguments: ['-DQAPPLICATION_CLASS=QApplication'],
|
|
||||||
dependencies: dep_qt5
|
|
||||||
)
|
|
||||||
|
|
||||||
singleapp_lib = static_library('SingleApplication',
|
|
||||||
['singleapplication.git/singleapplication.cpp', 'singleapplication.git/singleapplication_p.cpp', singleapp_moc],
|
|
||||||
include_directories: singleapp_inc,
|
|
||||||
cpp_args : '-DQAPPLICATION_CLASS=QApplication',
|
|
||||||
dependencies: dep_qt5
|
|
||||||
)
|
|
||||||
|
|
||||||
singleapp_dep = declare_dependency(
|
|
||||||
include_directories: singleapp_inc,
|
|
||||||
link_with: singleapp_lib
|
|
||||||
)
|
|
||||||
|
|
||||||
# On windows, SingleApplication needs to be linked against advapi32. This is
|
|
||||||
# done by adding 'advapi32' to cpp_winlibs, where it should be by default.
|
|
Loading…
Reference in a new issue