Add initial project structure with essential files including .gitignore, application resources, and various model and view components for the application. Implemented asynchronous parsing support and database structure checks.

This commit is contained in:
2025-12-08 15:21:18 +03:00
parent 4f8c90c15b
commit 3467003721
110 changed files with 35406 additions and 0 deletions
+92
View File
@@ -0,0 +1,92 @@
#ifndef PROJECTSETTINGSMODEL_H
#define PROJECTSETTINGSMODEL_H
#include <QObject>
#include <QString>
#include <QStringList>
#include <QMap>
class ProjectSettingsModel : public QObject
{
Q_OBJECT
Q_PROPERTY(QString currentVariant READ currentVariant WRITE setCurrentVariant NOTIFY currentVariantChanged FINAL)
Q_PROPERTY(QStringList columnMappings READ columnMappings WRITE setColumnMappings NOTIFY columnMappingsChanged FINAL)
Q_PROPERTY(QStringList availableVariants READ availableVariants WRITE setAvailableVariants NOTIFY availableVariantsChanged FINAL)
Q_PROPERTY(QStringList availableProperties READ availableProperties WRITE setAvailableProperties NOTIFY availablePropertiesChanged FINAL)
public:
explicit ProjectSettingsModel(QObject *parent = nullptr);
// Текущий вариант исполнения
QString currentVariant() const;
void setCurrentVariant(const QString &newCurrentVariant);
// Настройки столбцов
QStringList columnMappings() const;
void setColumnMappings(const QStringList &newColumnMappings);
// Доступные варианты
QStringList availableVariants() const;
void setAvailableVariants(const QStringList &newAvailableVariants);
// Доступные свойства компонентов
QStringList availableProperties() const;
void setAvailableProperties(const QStringList &newAvailableProperties);
// Методы для работы с настройками
void resetToDefaults();
bool isModified() const;
void setModified(bool modified);
// Методы для работы с настройками маппинга для разных типов документов
void setColumnMapping(const QString &documentType, int columnIndex, const QString &propertyName);
QString getColumnMapping(const QString &documentType, int columnIndex) const;
QStringList getColumnMappings(const QString &documentType) const;
void clearColumnMappings(const QString &documentType);
// Методы для работы с размером шрифта для разных типов документов
void setFontSize(const QString &documentType, int fontSize);
int getFontSize(const QString &documentType) const;
// Методы для работы с поджимом по ширине
void setFontStretch(const QString &documentType, int stretch);
int getFontStretch(const QString &documentType) const;
// Метод для установки контроллера БД
void setDatabaseController(class DataBaseController *controller);
signals:
void currentVariantChanged();
void columnMappingsChanged();
void availableVariantsChanged();
void availablePropertiesChanged();
void settingsModified();
private:
QString m_currentVariant;
QStringList m_columnMappings;
QStringList m_availableVariants;
QStringList m_availableProperties;
bool m_isModified;
// Хранилище настроек маппинга для разных типов документов
// Ключ: "documentType_columnIndex", Значение: "propertyName"
QMap<QString, QString> m_columnMappingSettings;
// Хранилище размеров шрифта для разных типов документов
// Ключ: "documentType", Значение: размер шрифта (по умолчанию 12)
QMap<QString, int> m_fontSizes;
// Хранилище поджима по ширине для разных типов документов
// Ключ: "documentType", Значение: поджим (100 = нормальный, по умолчанию 100)
QMap<QString, int> m_fontStretches;
// Контроллер БД для сохранения настроек
class DataBaseController *m_databaseController;
// Статические константы для значений по умолчанию
static const QStringList DEFAULT_COLUMN_MAPPINGS;
static const QString DEFAULT_VARIANT;
};
#endif // PROJECTSETTINGSMODEL_H