Files
qt-migration-legatus/qt6-after/qt6-migrated-legatus/Lts/Tools/DBUpdate/db_update.h
T
torsten d5c13033e2 Session 022: Migrate Lts/Tools (72 submodules) to Qt6
- Copied complete Lts/Tools directory from qt5-before to qt6-after
- Updated 32 CMakeLists.txt files (Qt5:: → Qt6::)
- Tools subdirectory already included in parent Lts/CMakeLists.txt
- All 72 tool submodules now present in qt6-migrated-legatus
- Includes: Adler, ArAssets, ConfigX, DBAdministration, DBUpdate,
  DdsView, InfrastructureManagement, and 67 more tools
- C++17 standard (RTI 7.7.0 compatibility maintained)
- Tests deferred until final validation phase

Migration progress:
✅ Lts/Application (68 files)
✅ Lts/DDS (verified Qt6-ready)
✅ Lts/Plugins (60 submodules, verified)
✅ Lts/Projects (5 submodules, verified)
✅ Lts/Proxies (13 submodules, verified)
✅ Lts/Services (47 submodules, verified)
✅ Lts/Tools (72 submodules, copied + CMake updated)
✅ Lts/Viewer (LtsFileDialog, LtsReportDisplay, SituationMap)
🟡 TetraIF (partial)
🟡 Z (partial: nglwidgets, QtSingleApplication, qsql_informix, WMS_Interface)
2026-08-25 14:07:20 +02:00

118 lines
2.9 KiB
C++
Executable File

/**
* @RDE_HEADER@
* DBUpdate
* $Id$
* $HeadURL$
* $Author$
* Created by Iuliana Ojog, 2021-02-17
*/
#pragma once
#include <QMainWindow>
#include <QStandardItemModel>
#include <QtCore/QVector>
#include <QSqlDatabase>
#include <QProcess>
#include "logger.h"
#include "global_updates_model.h"
#include "exercises_model.h"
#include "show_history.h"
namespace Ui {
class DBUpdate;
}
namespace DBUpdate
{
struct Update
{
QString filename;
QString info;
QString project;
QString version;
QString date;
QString global_schemas;
QString exercise_schemas;
QString global_sql;
QString exercise_sql;
QString generated_sql;
QString generated_file;
};
class DBUpdate : public QMainWindow
{
friend class DBUpdateRun;
Q_OBJECT
public:
explicit DBUpdate(QWidget *parent = nullptr);
~DBUpdate();
bool init();
private slots:
void onClosedClicked();
void onUpdateLoad();
void onUpdateRun();
void onShowLogFile();
void onClearLogFile();
void onShowGlobalHistory(const QModelIndex &idx);
void onShowExerciseHistory(const QModelIndex &idx);
void onLoadSQL();
void onBackupDB();
private:
void enaDisa();
bool parseUpdateFile(const QString &fileName, bool showUi = true);
void saveUpdateSql();
private:
Ui::DBUpdate *m_ui;
QSqlDatabase m_db;
Update m_update;
bool m_showUi {true};
GlobalUpdatesModel *m_globalUpdatesModel{nullptr};
GlobalUpdatesProxyModel *m_globalUpdatesProxyModel{nullptr};
ExercisesModel *m_exercisesModel{nullptr};
ExercisesProxyModel *m_exercisesProxyModel{nullptr};
ShowHistory *m_showHistory{nullptr};
QString m_sql;
static QString m_defaultPath;
LOGGER_T m_logger;
};
class DBUpdateRun : public QObject
{
Q_OBJECT
public:
explicit DBUpdateRun(const QString &updateFile, bool generateOnly, bool withBackup, QObject *parent = nullptr);
~DBUpdateRun();
bool init();
bool runUpdate();
bool runPgDump(const QString &dumpFile, const QString &dbHost, const QString &dbName);
Q_SIGNALS:
void runSqlFailed();
void runSqlFinished();
void runPgDumpFailed();
void runPgDumpFinished();
private:
void onPsqlFinished(int exitCode, QProcess::ExitStatus exitStatus);
void onPgDumpFinished(int exitCode, QProcess::ExitStatus exitStatus);
bool parseUpdateFile();
void generateSql();
bool runPsql();
QString executablePath(const QString &program);
void handleProcInit(const QString &program, const QStringList &args);
void handleProcFinished(int exitCode, QProcess::ExitStatus exitStatus);
void onErrorOccured(QProcess::ProcessError error);
private:
QSqlDatabase m_db;
Update m_update;
bool m_generateOnly;
bool m_withBackup;
GlobalUpdatesModel *m_globalUpdatesModel{nullptr};
ExercisesModel *m_exercisesModel{nullptr};
QProcess *m_proc;
LOGGER_T m_logger;
};
} // namespace DBUpdate