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
+114
View File
@@ -0,0 +1,114 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "../controller/maincontroller.h"
#include "editpdfwidget.h"
#include "previewpdfwidget.h"
#include "importeddataview.h"
#include <QHBoxLayout>
#include <QMenuBar>
#include <QMessageBox>
#include <QToolBar>
#include <QDockWidget>
#include <QStatusBar>
#include <QProgressBar>
#include <QAction>
#include <QTimer>
class VedomostTableModel;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(MainController* controller,QWidget *parent = nullptr);
~MainWindow();
// Метод для открытия проекта по пути (используется из командной строки)
void openProjectFile(const QString &filePath);
protected:
void closeEvent(QCloseEvent *event) override;
private:
void setUp();
void setWidgets();
void setUpLayout();
void setUpConnections();
void updateWindowTitle();
bool askForSave();
void disableInterfaceExceptProjectActions();
void enableInterface();
void updateStatusBar();
void updateViewMenuState();
MainController* m_controller;
QString m_currentProjectPath;
EditPDFWidget* m_editWidget;
PreviewPdfWidget* m_pdfWidget;
ImportedDataView* m_dataView;
QDockWidget *m_dataPanelDockWidget;
QDockWidget *m_pdfPanelDockWidget;
QToolBar *m_toolBar;
QToolBar *m_toolBar2;
QWidget *m_centralWidget;
QStatusBar *m_statusBar;
QMenuBar *m_menuBar;
QMenu *m_fileMenu;
QMenu *m_exportMenu;
QMenu *m_viewMenu;
QMenu *m_helpMenu;
// Элементы для асинхронного парсинга
QProgressBar *m_progressBar;
QAction *m_cancelParsingAction;
bool m_isParsing;
private slots:
void onHelpAbout();
void onHelpManual();
void onFileNew();
void onFileOpen();
bool onFileSave();
void onFileSaveAs();
void onFileImportAltium();
void onProjectSettings();
void onFileExit();
void onExportSpecification();
void onExportPerechen();
void onExportPurchaseList();
void onExportSpecificationPcb();
void onExportAll();
void onExportSpecificationToCsv();
void onExportPerechenToCsv();
void onExportPurchaseListToCsv();
void onExportSpecificationPcbToCsv();
void onUndo();
void onRedo();
// Слоты для управления видом
void onViewDataPanel();
void onViewPdfPreview();
void onViewResetLayout();
// Слоты для асинхронного парсинга
void onParsingStarted();
void onParsingFinished(bool success);
void onParsingProgress(int percentage);
void onParsingError(const QString &error);
// Метод для получения модели перечня элементов (для экспорта)
PerechenTableModel* getPerechenTableModel() const;
};
#endif // MAINWINDOW_H