Level of real terminal can be edited

The level of each real terminal who compose a physical terminal can be
edited. Several real terminal can be edited in one shot.
This commit is contained in:
joshua
2021-10-12 19:25:35 +02:00
parent 8b1f2fb0d9
commit 107d7ff806
11 changed files with 245 additions and 50 deletions

View File

@@ -22,6 +22,7 @@
#include <QObject>
#include <QPointer>
#include <QStyledItemDelegate>
#include <QPair>
#include "../terminalstrip.h"
@@ -40,14 +41,14 @@ class TerminalStripModel : public QAbstractTableModel
virtual QVariant headerData (int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
virtual Qt::ItemFlags flags (const QModelIndex &index) const override;
QVector<RealTerminalData> modifiedRealTerminalData() const;
QVector<QPair<RealTerminalData, RealTerminalData>> modifiedRealTerminalData() const;
bool isXrefCell(const QModelIndex &index, Element **element = nullptr);
QVector<PhysicalTerminalData> physicalTerminalDataForIndex(QModelIndexList index_list) const;
QVector<RealTerminalData> realTerminalDataForIndex(QModelIndexList index_list) const;
private:
void fillRealTerminalData();
void fillPhysicalTerminalData();
RealTerminalData dataAtRow(int row) const;
void replaceDataAtRow(RealTerminalData data, int row);
PhysicalTerminalData physicalDataAtIndex(int index) const;
@@ -55,7 +56,7 @@ class TerminalStripModel : public QAbstractTableModel
private:
QPointer<TerminalStrip> m_terminal_strip;
QVector<PhysicalTerminalData> m_physical_terminal_data;
QVector<PhysicalTerminalData> m_edited_terminal_data, m_original_terminal_data;
QHash<Element *, QVector<bool>> m_modified_cell;
};