допилил ownerWidget в DataBaseLMS

This commit is contained in:
2025-08-19 16:49:45 +03:00
parent b412559483
commit 194b5129b8
7 changed files with 30 additions and 28 deletions

View File

@@ -9,9 +9,9 @@
const QString DataBaseLMS::TypeUserDBInstructor = "instructor";
const QString DataBaseLMS::TypeUserDBTrainee = "trainee";
DataBaseLMS::DataBaseLMS(QWidget *ownerWidget):
DataBaseLMS::DataBaseLMS(QWidget *ownerWidget, QObject *parent):
QObject(parent),
db(nullptr),
transactionBegined(false),
ownerWidget(ownerWidget)
{
@@ -22,6 +22,12 @@ DataBaseLMS::~DataBaseLMS()
deleteConnection();
}
void DataBaseLMS::slot_LanguageChanged(QString language)
{
qtLanguageTranslator.load(QString(QStringLiteral("translations/DataBaseLMS_")) + language, QStringLiteral("."));
QCoreApplication::installTranslator(&qtLanguageTranslator);
}
bool DataBaseLMS::createConnection()
{
dbSettings = getDataBaseSettings();
@@ -52,9 +58,6 @@ bool DataBaseLMS::createConnection()
void DataBaseLMS::deleteConnection()
{
if(transactionBegined)
QSqlDatabase::database().rollback();
if(db != nullptr)
{
if(db->isOpen())
@@ -87,7 +90,7 @@ DataBaseSettings DataBaseLMS::getDataBaseSettings()
QFile file("config/settings.xml");
if(!file.open(QIODevice::ReadOnly))
{
QMessageBox::critical(ownerWidget, "Attention!", "The file could not be opened: config/settings.xml");
QMessageBox::critical(ownerWidget, tr("Attention!"), tr("The file could not be opened:") + "config/settings.xml");
return settings;
}
QXmlStreamReader xmlReader(&file);

View File

@@ -4,6 +4,7 @@
#include <QSqlDatabase>
#include <QMutex>
#include <QWidget>
#include <QTranslator>
#include "instructor.h"
#include "trainee.h"
@@ -23,12 +24,17 @@ public:
int dbPort = 5432;
};
class DataBaseLMS
class DataBaseLMS : public QObject
{
Q_OBJECT
public:
DataBaseLMS(QWidget *ownerWidget);
DataBaseLMS(QWidget *ownerWidget, QObject *parent = nullptr);
~DataBaseLMS();
public Q_SLOTS:
void slot_LanguageChanged(QString language);
public:
static const QString TypeUserDBInstructor;
static const QString TypeUserDBTrainee;
@@ -110,9 +116,9 @@ private:
protected:
QSqlDatabase* db;
DataBaseSettings dbSettings;
QTranslator qtLanguageTranslator;
private:
bool transactionBegined;
QWidget* ownerWidget;
};

View File

@@ -6,25 +6,19 @@
#include "interfacedatabaselms.h"
InterfaceDataBaseLMS::InterfaceDataBaseLMS(QWidget *ownerWidget, QObject *parent):
QObject(parent),
DataBaseLMS(ownerWidget),
//QObject(parent),
DataBaseLMS(ownerWidget, parent),
ownerWidget(ownerWidget)
{
}
void InterfaceDataBaseLMS::slot_LanguageChanged(QString language)
{
qtLanguageTranslator.load(QString(QStringLiteral("translations/DataBaseLMS_")) + language, QStringLiteral("."));
QCoreApplication::installTranslator(&qtLanguageTranslator);
}
bool InterfaceDataBaseLMS::connectionToDB()
{
//QMutexLocker mtxLocker(&mtxAccess);
if(!createConnection())
{
QMessageBox::critical(ownerWidget, dbSettings.dbName, tr("Connection error: ") + db->lastError().text());
QMessageBox::critical(ownerWidget, dbSettings.dbName, tr("Connection error") /*+ db->lastError().text()*/);
return false;
}
else

View File

@@ -8,16 +8,13 @@
#include "DataBaseLMS_global.h"
#include "databaselms.h"
class DATABASELMS_EXPORT InterfaceDataBaseLMS : public QObject, DataBaseLMS
class DATABASELMS_EXPORT InterfaceDataBaseLMS : public /*QObject,*/ DataBaseLMS
{
Q_OBJECT
//Q_OBJECT
public:
InterfaceDataBaseLMS(QWidget *ownerWidget, QObject *parent = nullptr);
public Q_SLOTS:
void slot_LanguageChanged(QString language);
public:
//Соединение
bool connectionToDB();
@@ -103,7 +100,6 @@ public:
int changeStatusTaskAMM(int id_task, QString status);
private:
QTranslator qtLanguageTranslator;
QWidget* ownerWidget;
//QMutex mtxAccess;
};

View File

@@ -1,12 +1,14 @@
#include "providerdblms.h"
#include <QThread>
#include <QMessageBox>
ProviderDBLMS::ProviderDBLMS(QWidget *parentWidget, QObject *parent) :
QObject(parent),
dbLMS(nullptr)
dbLMS(nullptr),
parentWidget(parentWidget)
{
dbLMS = new InterfaceDataBaseLMS(/*parentWidget*/nullptr);
dbLMS = new InterfaceDataBaseLMS(parentWidget);
//ConnectionToDB();
}

View File

@@ -81,6 +81,7 @@ public:
private:
InterfaceDataBaseLMS* dbLMS;
QMutex mtxAccess;
QWidget *parentWidget;
};
#endif // PROVIDERDBLMS_H