Build system changed to Cmake, ORM changed to QxORM, Qt6 compatibility.

This commit is contained in:
2023-04-28 22:25:29 +02:00
parent 30e6180c82
commit d699ce79f7
481 changed files with 2310 additions and 130206 deletions
+62
View File
@@ -0,0 +1,62 @@
cmake_minimum_required(VERSION 3.24)
project(commodity)
include(../3rdparty/QxOrm/QxOrm.cmake)
set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ../plugins)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
find_package(Qt6 COMPONENTS
Core
Gui
Widgets
REQUIRED)
add_library(commodity SHARED
commodity.cpp
commodity.h
commodity_global.h
commodityform.cpp
commodityform.h
commodityform.ui
commoditygrid.cpp
commoditygrid.h
commodityrc.qrc
commodityservice.cpp
commodityservice.h
commoditysettingsform.cpp
commoditysettingsform.h
commoditysettingsform.ui
commoditytablemodel.cpp
commoditytablemodel.h
data/commodity-data.h
data/commoditydata.cpp
data/commoditydata.h
data/commoditytypedata.cpp
data/commoditytypedata.h
settings/commoditysettings.cpp
settings/commoditysettings.h
)
target_compile_definitions(commodity PRIVATE -DCOMMODITY_LIBRARY)
include_directories(../core)
include_directories(../shop)
target_link_libraries(commodity
Qt::Core
Qt::Gui
Qt::Widgets
qdecimal
decnumber
QxOrm
core
shop
)
install(TARGETS commodity
LIBRARY DESTINATION ../plugins)
+2 -9
View File
@@ -5,18 +5,11 @@
#include "commoditysettingsform.h"
#include "commodityservice.h"
Commodity::Commodity()
{
}
void Commodity::initServiceUi()
{
CommodityGrid *grid = new CommodityGrid();
CommodityForm *form = new CommodityForm();
m_service = new CommodityService();
m_ui = grid;
((CommodityGrid *) m_ui)->setForm(form);
m_ui = new CommodityGrid();
((CommodityGrid *) m_ui)->setForm(new CommodityForm());
m_settingsUi = new CommoditySettingsForm();
}
+3 -3
View File
@@ -14,15 +14,15 @@ class COMMODITYSHARED_EXPORT Commodity : public QObject, IMetaDataPlugin
Q_INTERFACES(IPlugin)
public:
Commodity();
Commodity() = default;
protected:
void initServiceUi() Q_DECL_OVERRIDE;
// IPlugin interface
public:
virtual QIcon pluginIcon();
QTranslator *translator();
QIcon pluginIcon() override;
QTranslator *translator() override;
};
+1 -1
View File
@@ -29,7 +29,7 @@ CREATE TABLE \"CommodityData\" (
DEFERRABLE INITIALLY DEFERRED);"
],
"dependencies" : [],
"dependencies" : [ "SHOP" ],
"translations" : {
"CZ" : {
"name" : "Název",
-61
View File
@@ -1,61 +0,0 @@
#-------------------------------------------------
#
# Project created by QtCreator 2016-02-09T21:26:14
#
#-------------------------------------------------
QT += widgets sql
QT -= gui
TARGET = commodity
TEMPLATE = lib
DEFINES += COMMODITY_LIBRARY
SOURCES += commodity.cpp \
data/commoditydata.cpp \
data/commoditytypedata.cpp \
commoditytablemodel.cpp \
commodityform.cpp \
commoditygrid.cpp \
commoditysettingsform.cpp \
commodityservice.cpp \
settings/commoditysettings.cpp
HEADERS += commodity.h\
commodity_global.h \
data/commoditydata.h \
data/commoditytypedata.h \
data/commodity-data.h \
commoditytablemodel.h \
commodityform.h \
commoditygrid.h \
commoditysettingsform.h \
commodityservice.h \
settings/commoditysettings.h
include(../config_plugin.pri)
ODB_FILES = commodity/data/commodity-data.h
H_DIR = $$PWD/data/*.h
ODB_OTHER_INCLUDES = -I $$PWD/../shop
include(../odb.pri)
OTHER_FILES += \
commodity.json
FORMS += \
commodityform.ui \
commoditysettingsform.ui
RESOURCES += \
commodityrc.qrc
TRANSLATIONS = translations/commodity_cs_CZ.ts
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lshop
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../plugins/ -lshop
else:unix: LIBS += -L$$OUT_PWD/../plugins/ -lshop
INCLUDEPATH += $$PWD/../shop
DEPENDPATH += $$PWD/../shop
+8
View File
@@ -10,3 +10,11 @@
#endif
#endif // COMMODITY_GLOBAL_H
#ifdef COMMODITY_LIBRARY
#define QX_REGISTER_HPP_COMM QX_REGISTER_HPP_EXPORT_DLL
#define QX_REGISTER_CPP_COMM QX_REGISTER_CPP_EXPORT_DLL
#else // COMMODITY_LIBRARY
#define QX_REGISTER_HPP_COMM QX_REGISTER_HPP_IMPORT_DLL
#define QX_REGISTER_CPP_COMM QX_REGISTER_CPP_IMPORT_DLL
#endif
+1 -1
View File
@@ -2,12 +2,12 @@
#include "ui_commodityform.h"
#include <combodata.h>
#include <settingsservice.h>
#include <settings/commoditysettings.h>
#include <helper.h>
#include <QSharedPointer>
#include <QList>
#include "data/commoditytypedata.h"
#include "settings/commoditysettings.h"
CommodityForm::CommodityForm(QWidget *parent) :
AutoForm<CommodityData>(parent),
+4 -5
View File
@@ -4,7 +4,6 @@
#include <QWidget>
#include <autoform.h>
#include "data/commoditydata.h"
#include "commodity-odb.hxx"
namespace Ui {
class CommodityForm;
@@ -15,8 +14,8 @@ class CommodityForm : public AutoForm<CommodityData>
Q_OBJECT
public:
explicit CommodityForm(QWidget *parent = 0);
~CommodityForm();
explicit CommodityForm(QWidget *parent = nullptr);
~CommodityForm() override;
private:
Ui::CommodityForm *ui;
@@ -25,8 +24,8 @@ private:
// FormBinder interface
protected:
void registerCombos();
void onShow();
void registerCombos() override;
void onShow() override;
private slots:
void on_code_textChanged(const QString &text);
};
+3
View File
@@ -14,6 +14,9 @@
<string>Form</string>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
+2 -2
View File
@@ -3,13 +3,13 @@
#include <core.h>
#include "data/commoditydata.h"
#include "commodity-odb.hxx"
class CommodityGrid : public GridForm<CommodityData>
{
Q_OBJECT
public:
CommodityGrid(QWidget *parent = NULL);
explicit CommodityGrid(QWidget *parent = nullptr);
};
#endif // COMMODITYGRID_H
+6 -13
View File
@@ -1,18 +1,11 @@
#include "commodityservice.h"
#include "commodity-odb.hxx"
CommodityService::CommodityService()
QList<QSharedPointer<IShopItem> > CommodityService::shopItems()
{
}
QList<QSharedPointer<ShopItem> > CommodityService::shopItems()
{
QList<QSharedPointer<ShopItem> > ret;
QList<QSharedPointer<IShopItem> > ret;
foreach (QSharedPointer<CommodityData> data, all()) {
ret.append(qSharedPointerDynamicCast<ShopItem, CommodityData>(data));
ret.append(qSharedPointerDynamicCast<IShopItem, CommodityData>(data));
}
return ret;
@@ -30,15 +23,15 @@ void CommodityService::addedToVoucher(int itemId, int countAdded)
update(commodity);
}
ShopItemPtr CommodityService::shopItem(int itemId)
IShopItemPtr CommodityService::shopItem(int itemId)
{
CommodityDataPtr item = this->loadById(itemId);
return qSharedPointerDynamicCast<ShopItem, CommodityData>(item);
return qSharedPointerDynamicCast<IShopItem, CommodityData>(item);
}
ISeller *CommodityService::seller()
{
return NULL;
return nullptr;
}
QString CommodityService::defaultSort()
+3 -3
View File
@@ -8,13 +8,13 @@
class CommodityService : public Service<CommodityData>, public ISellableService
{
public:
CommodityService();
CommodityService() = default;
// ISellableService interface
public:
QList<ShopItemPtr> shopItems() override;
QList<IShopItemPtr> shopItems() override;
void addedToVoucher(int itemId, int countAdded) override;
virtual ShopItemPtr shopItem(int itemId) override;
IShopItemPtr shopItem(int itemId) override;
ISeller *seller() override;
QString defaultSort() override;
};
+1 -1
View File
@@ -1,8 +1,8 @@
#include "commoditysettingsform.h"
#include "ui_commoditysettingsform.h"
#include <QHeaderView>
#include <service.h>
#include <settingsservice.h>
#include "commodity-odb.hxx"
CommoditySettingsForm::CommoditySettingsForm(QWidget *parent) :
FormBinder<CommoditySettings>(parent),
+4 -4
View File
@@ -16,8 +16,8 @@ class CommoditySettingsForm : public FormBinder<CommoditySettings>
Q_OBJECT
public:
explicit CommoditySettingsForm(QWidget *parent = 0);
~CommoditySettingsForm();
explicit CommoditySettingsForm(QWidget *parent = nullptr);
~CommoditySettingsForm() override;
private:
Ui::CommoditySettingsForm *ui;
@@ -26,10 +26,10 @@ private:
// IForm interface
public:
void loadEntity();
void loadEntity() override;
public slots:
bool saveRecord();
bool saveRecord() override;
private slots:
void on_addCommodityType_clicked();
void on_delCommodityType_clicked();
+1 -1
View File
@@ -7,7 +7,7 @@ class CommodityTableModel : public AutoTableModel<CommodityData>
{
Q_OBJECT
public:
CommodityTableModel(QObject *parent= NULL);
explicit CommodityTableModel(QObject *parent= nullptr);
};
#endif // COMMODITYTABLEMODEL_H
+29 -4
View File
@@ -1,22 +1,40 @@
#include "commoditydata.h"
#include <define.h>
QX_REGISTER_CPP_COMM(CommodityData)
namespace qx {
template<> void register_class(QxClass<CommodityData>& t) {
t.setName("CommodityData");
t.id(&CommodityData::m_id, "id");
t.data(&CommodityData::m_name, "name");
t.data(&CommodityData::m_shortName, "shortName");
t.data(&CommodityData::m_code, "code");
t.data(&CommodityData::m_price, "price");
t.data(&CommodityData::m_vat, "vat");
t.data(&CommodityData::m_count, "count");
t.relationManyToOne(&CommodityData::m_type, "type");
}
}
CommodityData::CommodityData(QObject *parent)
:ShopItem(parent)
:IShopItem(parent)
{
m_count = 0;
m_price = 0;
m_vat = Enums::NONE;
}
int CommodityData::id()
long CommodityData::id()
{
return m_id;
}
void CommodityData::setId(int id)
void CommodityData::setId(long id)
{
m_id = id;
}
QString CommodityData::name()
{
return m_name;
@@ -26,6 +44,7 @@ void CommodityData::setName(const QString &name)
{
m_name = name;
}
QString CommodityData::shortName()
{
return m_shortName;
@@ -35,6 +54,7 @@ void CommodityData::setShortName(const QString &shortName)
{
m_shortName = shortName;
}
QString CommodityData::code() const
{
return m_code;
@@ -44,6 +64,7 @@ void CommodityData::setCode(const QString &code)
{
m_code = code;
}
QSharedPointer<QObject> CommodityData::type() const
{
return m_type;
@@ -51,7 +72,7 @@ QSharedPointer<QObject> CommodityData::type() const
void CommodityData::setType(const QSharedPointer<QObject> &type)
{
if (qobject_cast<CommodityTypeData*>(type.data()) != NULL) {
if (qobject_cast<CommodityTypeData*>(type.data()) != nullptr) {
m_type = qSharedPointerDynamicCast<CommodityTypeData, QObject>(type);
}
}
@@ -98,6 +119,10 @@ QString CommodityData::pluginId()
return "COMMODITY";
}
QStringList CommodityData::eagerLoad() {
return { "type" };
}
+14 -8
View File
@@ -3,17 +3,20 @@
#include <QObject>
#include <QString>
#include <odb/core.hxx>
#include "commoditytypedata.h"
#include <shopitem.h>
#include <QDecDouble.hh>
#include <QSharedDataPointer>
#include <enums.h>
#include "../commodity_global.h"
#pragma db object
class CommodityData : public ShopItem
class CommodityData : public IShopItem
{
Q_OBJECT
QX_REGISTER_FRIEND_CLASS(CommodityData)
Q_PROPERTY(QString code READ code WRITE setCode)
Q_PROPERTY(QString name READ name WRITE setName)
Q_PROPERTY(QString shortName READ shortName WRITE setShortName)
@@ -23,10 +26,10 @@ class CommodityData : public ShopItem
Q_PROPERTY(int count READ count WRITE setCount)
public:
CommodityData(QObject *parent = 0);
explicit CommodityData(QObject *parent = nullptr);
int id() override;
void setId(int id);
long id() override;
void setId(long id);
QString name() override;
void setName(const QString &name);
@@ -49,10 +52,10 @@ public:
int count() const;
void setCount(int count);
Q_INVOKABLE QStringList eagerLoad();
private:
friend class odb::access;
#pragma db id auto
int m_id;
long m_id{0};
QString m_name;
QString m_shortName;
QString m_code;
@@ -66,8 +69,11 @@ public:
QDecDouble unitPrice() override;
Enums::VatType vatType() override;
QString pluginId() override;
};
typedef QSharedPointer<CommodityData> CommodityDataPtr;
QX_REGISTER_HPP_COMM(CommodityData, IShopItem, 0)
#endif // COMMODITYDATA_H
+14 -3
View File
@@ -1,19 +1,30 @@
#include "commoditytypedata.h"
QX_REGISTER_CPP_COMM(CommodityTypeData)
namespace qx {
template<> void register_class(QxClass<CommodityTypeData>& t) {
t.setName("CommodityTypeData");
t.id(&CommodityTypeData::m_id, "id");
t.data(&CommodityTypeData::m_name, "name");
}
}
CommodityTypeData::CommodityTypeData(QObject *parent)
:ComboItem(parent)
{
m_id = 0;
}
int CommodityTypeData::id() const
long CommodityTypeData::id() const
{
return m_id;
}
void CommodityTypeData::setId(int id)
void CommodityTypeData::setId(long id)
{
m_id = id;
}
QString CommodityTypeData::name() const
{
return m_name;
@@ -28,7 +39,7 @@ bool CommodityTypeData::eq(ComboItem *other)
{
CommodityTypeData* ct = qobject_cast<CommodityTypeData *> (other);
return ct != NULL && this->id() == ct->id() ;
return ct != nullptr && this->id() == ct->id() ;
}
QString CommodityTypeData::toString()
+11 -10
View File
@@ -3,34 +3,35 @@
#include <QObject>
#include <QString>
#include <odb/core.hxx>
#include <data/comboitem.h>
#include "../commodity_global.h"
#pragma db object
class CommodityTypeData :public ComboItem
{
Q_OBJECT
QX_REGISTER_FRIEND_CLASS(CommodityTypeData)
Q_PROPERTY(QString name READ name WRITE setName)
public:
CommodityTypeData(QObject *parent = 0);
explicit CommodityTypeData(QObject *parent = nullptr);
int id() const;
void setId(int id);
long id() const;
void setId(long id);
QString name() const;
void setName(const QString &name);
private:
friend class odb::access;
#pragma db id auto
int m_id;
long m_id{0};
QString m_name;
// ComboItem interface
public:
bool eq(ComboItem *other);
QString toString();
bool eq(ComboItem *other) override;
QString toString() override;
};
QX_REGISTER_HPP_COMM(CommodityTypeData, ComboItem, 0)
#endif // COMMODITYTYPEDATA_H