added web service
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
#ifndef SIMPLELISTTABLECONTROLLER_H
|
||||
#define SIMPLELISTTABLECONTROLLER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QList>
|
||||
#include <QStringList>
|
||||
#include "../model/simplelisttablemodel.h"
|
||||
|
||||
class ComponentModel;
|
||||
|
||||
class SimpleListTableController : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SimpleListTableController(QObject *parent = nullptr);
|
||||
~SimpleListTableController();
|
||||
|
||||
// Получение модели для отображения в UI
|
||||
SimpleListTableModel* getTableModel() const { return m_tableModel; }
|
||||
SimpleListTableModel* getModel() const { return m_tableModel; } // Алиас для совместимости
|
||||
|
||||
// Методы для работы с компонентами
|
||||
void setComponents(const QList<ComponentModel*> &components);
|
||||
void generateTableFromComponents();
|
||||
void generateTableFromSpecificationPCB(class SpecificationPCBTableModel *specPCBModel); // Генерация из SpecificationPCB
|
||||
void updateTableFromComponents(); // Метод для обновления таблицы по кнопке
|
||||
|
||||
// Новые методы для управления строками
|
||||
void addEmptyRow();
|
||||
void addEmptyRowAt(int position);
|
||||
void insertEmptyRowAt(int position); // Вставка строки в определенную позицию
|
||||
void removeRow(int row);
|
||||
void clearTable();
|
||||
|
||||
// Метод для установки модели таблицы (для интеграции)
|
||||
void setModel(SimpleListTableModel *model);
|
||||
|
||||
// Методы для работы с настройками
|
||||
void setNameField(const QString &fieldName);
|
||||
QString getNameField() const;
|
||||
void setTechReservePercent(int percent);
|
||||
int getTechReservePercent() const;
|
||||
void setBoardsCount(int count);
|
||||
int getBoardsCount() const;
|
||||
QStringList getAvailableProperties() const;
|
||||
|
||||
private:
|
||||
QString getComponentValue(ComponentModel *component, const QString &propertyName);
|
||||
QString parseExpression(ComponentModel *component, const QString &expression);
|
||||
QStringList collectPropertyNames();
|
||||
|
||||
// Метод для разделения десигнатора на буквенную и цифровую части
|
||||
static QPair<QString, QString> splitDesignator(const QString &designator);
|
||||
|
||||
SimpleListTableModel *m_tableModel;
|
||||
QList<ComponentModel*> m_components;
|
||||
QStringList m_propertyNames;
|
||||
QString m_nameField; // Поле для наименования компонента (по умолчанию "Name")
|
||||
int m_techReservePercent; // Процент тех запаса (по умолчанию 10)
|
||||
int m_boardsCount; // Кол-во плат (по умолчанию 1)
|
||||
};
|
||||
|
||||
#endif // SIMPLELISTTABLECONTROLLER_H
|
||||
|
||||
Reference in New Issue
Block a user