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
+38
View File
@@ -0,0 +1,38 @@
cmake_minimum_required(VERSION 3.24)
project(prodejna)
include(../3rdparty/QxOrm/QxOrm.cmake)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
find_package(Qt6 COMPONENTS
Core
Gui
Widgets
Sql
REQUIRED)
include_directories(../core)
add_executable(prodejna
main.cpp
appRc.qrc
application.cpp
application.h
logindialog.cpp
logindialog.h
logindialog.ui
mainwindow.cpp
mainwindow.h
mainwindow.ui)
target_link_libraries(prodejna
Qt::Core
Qt::Gui
Qt::Widgets
Qt::Sql
core
)
-92
View File
@@ -1,92 +0,0 @@
#-------------------------------------------------
#
# Project created by QtCreator 2015-10-28T15:23:55
#
#-------------------------------------------------
QT += core gui sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = prodejna
TEMPLATE = app
DEFINES += _GLIBCXX_USE_CXX11_ABI=1
CONFIG += c++11
include(../config_odb.pri)
win32 {
INCLUDEPATH += $$ODB_INCLUDE_PREFIX/libodb-2.4.0
INCLUDEPATH += $$ODB_INCLUDE_PREFIX/libodb-qt-2.4.0
INCLUDEPATH += $$ODB_INCLUDE_PREFIX/libodb-sqlite-2.4.0
INCLUDEPATH += $$ODB_INCLUDE_PREFIX/sqlite
RC_FILE = shop.rc
}
SOURCES += main.cpp\
mainwindow.cpp \
logindialog.cpp \
application.cpp
HEADERS += mainwindow.h \
logindialog.h \
application.h
FORMS += mainwindow.ui \
logindialog.ui
unix{
ARCH_TYPE = unix
macx{
ARCH_TYPE = macx
}
linux{
!contains(QT_ARCH, x86_64){
ARCH_TYPE = linux32
}else{
ARCH_TYPE = linux64
}
}
}
unix {
QMAKE_CXXFLAGS += -Wno-unknown-pragmas
CONFIG(debug, debug|release) {
LIBS += -L$$PWD/../../LimeReport/build/$${QT_VERSION}/$${ARCH_TYPE}/debug/lib/ -llimereport -lQtZint
#QMAKE_CXXFLAGS += -Wl,-rpath-link,$$PWD/../../LimeReport/build/$${QT_VERSION}/$${ARCH_TYPE}/debug/lib/
} else {
LIBS += -L$$PWD/../../LimeReport/build/$${QT_VERSION}/$${ARCH_TYPE}/release/lib/ -llimereport -lQtZint
#QMAKE_CXXFLAGS += -Wl,-rpath-link,$$PWD/../../LimeReport/build/$${QT_VERSION}/$${ARCH_TYPE}/release/lib/
}
}
win32 {
QMAKE_CXXFLAGS += -wd4995 -wd4068
}
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../core/release/ -lcore
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../core/debug/ -lcore
else:unix: LIBS += -L$$OUT_PWD/../core/ -lcore
INCLUDEPATH += $$PWD/../core
DEPENDPATH += $$PWD/../core
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
else:unix: LIBS += -L$$OUT_PWD/../qdecimal/lib/ -lqdecimal -ldecnumber
INCLUDEPATH += $$PWD/../qdecimal/src
INCLUDEPATH += $$PWD/../qdecimal/decnumber
RESOURCES += \
appRc.qrc
TRANSLATIONS = translations/prodejna_cs_CZ.ts
DISTFILES += \
shop.rc
+5 -2
View File
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>408</width>
<height>220</height>
<width>427</width>
<height>260</height>
</rect>
</property>
<property name="windowTitle">
@@ -64,6 +64,9 @@
<item>
<widget class="QWidget" name="widget_2" native="true">
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::ExpandingFieldsGrow</enum>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
+10 -6
View File
@@ -1,6 +1,7 @@
#include "mainwindow.h"
#include <QApplication>
#include <QDesktopWidget>
//#include <QDesktopWidget>
#include <QSharedPointer>
#include <QTranslator>
#include <QLibraryInfo>
#include <QMessageBox>
@@ -17,7 +18,7 @@ int main(int argc, char *argv[])
if (!a.lock())
{
QMessageBox::warning(NULL, "Prodejna is running", "Prodejna is allready running. Only one instance can be started.");
QMessageBox::warning(nullptr, "Prodejna is running", "Prodejna is allready running. Only one instance can be started.");
return -42;
}
@@ -34,16 +35,19 @@ int main(int argc, char *argv[])
#endif
QTranslator qtTranslator;
qtTranslator.load("qt_" + QLocale::system().name(),
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
if (qtTranslator.load("qt_" + QLocale::system().name(),
QLibraryInfo::path(QLibraryInfo::TranslationsPath))) {
qDebug() << "Cannot load translation";
}
a.installTranslator(&qtTranslator);
QTranslator myappTranslator;
myappTranslator.load(":/translations/prodejna_" + QLocale::system().name());
if (myappTranslator.load(":/translations/prodejna_" + QLocale::system().name())) {
qDebug() << "Cannot load translation";
}
a.installTranslator(&myappTranslator);
MainWindow w;
w.move(QApplication::desktop()->screen()->rect().center() - w.rect().center());
w.showMaximized();
return a.exec();
+12 -12
View File
@@ -8,6 +8,7 @@
#include <QVBoxLayout>
#include <QFileDialog>
#include <QDebug>
#include <QMessageBox>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
@@ -61,11 +62,7 @@ MainWindow::MainWindow(QWidget *parent) :
}
((QVBoxLayout*)ui->navigation->layout())->addStretch(1);
if (Context::instance().db() != NULL)
{
ui->navigation->setEnabled(true);
}
ui->navigation->setEnabled(true);
}
MainWindow::~MainWindow()
@@ -89,7 +86,7 @@ void MainWindow::openPlugin()
void MainWindow::on_actionOpen_database_triggered()
{
closaAllTabs();
closeAllTabs();
closeDashboard();
QString dbFile = QFileDialog::getOpenFileName(this, "Open Database", "", "Database Files (*.db)");
@@ -116,7 +113,7 @@ void MainWindow::on_tabWidget_tabCloseRequested(int index)
void MainWindow::on_actionLogin_triggered()
{
closaAllTabs();
closeAllTabs();
closeDashboard();
QSharedPointer<User> u;
@@ -128,7 +125,7 @@ void MainWindow::on_actionLogin_triggered()
void MainWindow::showEvent(QShowEvent *evt)
{
QWidget::showEvent(evt);
if (Context::instance().db() != NULL && Context::instance().currentUser().data() == NULL)
if (Context::instance().dbOpened() && Context::instance().currentUser().data() == nullptr)
{
m_loginDialog->show();
}
@@ -150,7 +147,7 @@ void MainWindow::on_actionPost_register_triggered()
{
IPlugin *plugZipCodes = Context::instance().plugin("POSTREGISTER");
if (plugZipCodes != NULL)
if (plugZipCodes != nullptr)
{
openPlugin(plugZipCodes);
}
@@ -160,6 +157,9 @@ void MainWindow::openPlugin(IPlugin *plugin)
{
ui->tabWidget->setVisible(true);
ui->dashboard->setVisible(false);
#ifdef Q_OS_MAC
ui->tabWidget->setStyleSheet("QTabBar::tab { width: 150px; }");
#endif
for (int i = 0; i < ui->tabWidget->count(); i++) {
if (ui->tabWidget->widget(i)->objectName() == plugin->pluginId()) {
@@ -168,7 +168,7 @@ void MainWindow::openPlugin(IPlugin *plugin)
}
}
if (plugin->ui() != NULL)
if (plugin->ui() != nullptr)
{
ui->tabWidget->addTab(plugin->ui(), plugin->pluginIcon(), plugin->pluginName());
ui->tabWidget->widget(ui->tabWidget->count() - 1)->setObjectName(plugin->pluginId());
@@ -180,7 +180,7 @@ void MainWindow::on_actionCountry_register_triggered()
{
IPlugin *plugCountryReg = Context::instance().plugin("COUNTRYREGISTER");
if (plugCountryReg != NULL)
if (plugCountryReg != nullptr)
{
openPlugin(plugCountryReg);
}
@@ -236,7 +236,7 @@ void MainWindow::refreshDashboard()
}
}
void MainWindow::closaAllTabs()
void MainWindow::closeAllTabs()
{
ui->tabWidget->setVisible(false);
ui->dashboard->setVisible(true);
+2 -2
View File
@@ -53,11 +53,11 @@ private:
void closeDashboard();
void openDashboard();
void refreshDashboard();
void closaAllTabs();
void closeAllTabs();
// QWidget interface
protected:
void showEvent(QShowEvent *evt);
void showEvent(QShowEvent *evt) override;
void closeEvent(QCloseEvent *evt) override;
};
+1 -1
View File
@@ -137,7 +137,7 @@
<x>0</x>
<y>0</y>
<width>1000</width>
<height>20</height>
<height>42</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
+6 -1
View File
@@ -16,6 +16,7 @@
}
#navigation QToolButton {
background-color: dimgray;
color: white;
font-weight: bold;
min-width: 90px;
@@ -23,5 +24,9 @@
}
#dashboard {
background-color: qlineargradient(spread:pad, x1:0.507, y1:1, x2:0.518, y2:0.291, stop:0 rgba(83, 145, 169, 255), stop:1 rgba(255, 255, 255, 255));
background-color: qlineargradient(spread:pad, x1:0.507, y1:1, x2:0.518, y2:0.291, stop:0 rgba(83, 145, 169, 255), stop:1 rgba(255, 255, 255, 255));;
}
#dashboard QLabel {
color: black;
}