logplus/DataMgr/src/dataslothelper.h

80 lines
2.2 KiB
C
Raw Normal View History

2025-12-01 17:34:30 +08:00
#ifndef DATASLOTHELPER_H
2025-11-26 12:54:49 +08:00
#define DATASLOTHELPER_H
#include <QObject>
#include <QTableWidget>
class PinkTableData
{
public:
explicit PinkTableData();
PinkTableData(const QTableWidgetSelectionRange &range,const QList<QStringList> &rowdata);
PinkTableData( const PinkTableData & other);
~PinkTableData();
PinkTableData operator =(const PinkTableData &other);
QTableWidgetSelectionRange m_Range;
QList<QStringList> m_rowData;
};
class DataSlotHelper : public QObject
{
Q_OBJECT
public:
~DataSlotHelper();
static DataSlotHelper *instance();
2025-12-01 17:34:30 +08:00
//向上移动
2025-11-26 12:54:49 +08:00
void movedUp(QTableWidget *table);
2025-12-01 17:34:30 +08:00
//向下移动
2025-11-26 12:54:49 +08:00
void movedDow(QTableWidget *table);
private:
2025-12-01 17:34:30 +08:00
//获取表格行数据
2025-11-26 12:54:49 +08:00
QStringList tableRowData(QTableWidget* table,int row);
2025-12-01 17:34:30 +08:00
//拾取表格数据
2025-11-26 12:54:49 +08:00
void pickTableRangeData(QTableWidget* table
,QList<PinkTableData> &rangeData);
2025-12-01 17:34:30 +08:00
//表格数据改变 isUp 是否向上moveFixed是否到头固定模式
2025-11-26 12:54:49 +08:00
void tableSelectionRangeChange(QTableWidget *table,bool isUp,bool &moveFixed);
2025-12-01 17:34:30 +08:00
//选中移动范围
2025-11-26 12:54:49 +08:00
void rangeMoveRow(int &beginRow,int &endRow,int rowCount,bool isUp,bool &moveFixed);
2025-12-01 17:34:30 +08:00
//交换移动原始数据和移动的目标数据
2025-11-26 12:54:49 +08:00
void swapSelRowMoveRow(bool isUp);
2025-12-01 17:34:30 +08:00
//刷新移动数据
2025-11-26 12:54:49 +08:00
void updateMoveRowData(QTableWidget* table);
2025-12-01 17:34:30 +08:00
//刷新行数据
2025-11-26 12:54:49 +08:00
void updateRowsData(QTableWidget* table,const QList<PinkTableData> &data);
2025-12-01 17:34:30 +08:00
//刷新表格视图数据
2025-11-26 12:54:49 +08:00
void updateTableView(QTableWidget *table,const QStringList& rowsData,int row);
2025-12-01 17:34:30 +08:00
//分离表格数据和范围
2025-11-26 12:54:49 +08:00
void pinkTableDataRanges(const QList<PinkTableData> &pinkData,
QList<QTableWidgetSelectionRange> &ranges,QList< QList<QStringList> > &rowsData);
2025-12-01 17:34:30 +08:00
//重置数据行
2025-11-26 12:54:49 +08:00
void resetNewDaataRow(QList< QList<QStringList> > & restDataRow,bool isUp);
2025-12-01 17:34:30 +08:00
//重置选择区域
2025-11-26 12:54:49 +08:00
void resetRangeSelection(QTableWidget* table);
2025-12-01 17:34:30 +08:00
//合并单选行
2025-11-26 12:54:49 +08:00
void megerRange(QList<QTableWidgetSelectionRange> &rangeLst,const QList<QTableWidgetSelectionRange> &selRanges);
private:
explicit DataSlotHelper(QObject *parent=NULL);
class GC{
public:
~GC();
};
private:
static DataSlotHelper *p_helper;
GC m_gc;
2025-12-01 17:34:30 +08:00
//源行数据
2025-11-26 12:54:49 +08:00
QList<PinkTableData> m_sourceRowsData;
2025-12-01 17:34:30 +08:00
//目标数据
2025-11-26 12:54:49 +08:00
QList<PinkTableData> m_descRowsData;
};
#endif // DATASLOTHELPER_H