logplus/DataMgr/src/dataslothelper.h
2025-12-01 17:34:30 +08:00

80 lines
2.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef DATASLOTHELPER_H
#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();
//向上移动
void movedUp(QTableWidget *table);
//向下移动
void movedDow(QTableWidget *table);
private:
//获取表格行数据
QStringList tableRowData(QTableWidget* table,int row);
//拾取表格数据
void pickTableRangeData(QTableWidget* table
,QList<PinkTableData> &rangeData);
//表格数据改变 isUp 是否向上moveFixed是否到头固定模式
void tableSelectionRangeChange(QTableWidget *table,bool isUp,bool &moveFixed);
//选中移动范围
void rangeMoveRow(int &beginRow,int &endRow,int rowCount,bool isUp,bool &moveFixed);
//交换移动原始数据和移动的目标数据
void swapSelRowMoveRow(bool isUp);
//刷新移动数据
void updateMoveRowData(QTableWidget* table);
//刷新行数据
void updateRowsData(QTableWidget* table,const QList<PinkTableData> &data);
//刷新表格视图数据
void updateTableView(QTableWidget *table,const QStringList& rowsData,int row);
//分离表格数据和范围
void pinkTableDataRanges(const QList<PinkTableData> &pinkData,
QList<QTableWidgetSelectionRange> &ranges,QList< QList<QStringList> > &rowsData);
//重置数据行
void resetNewDaataRow(QList< QList<QStringList> > & restDataRow,bool isUp);
//重置选择区域
void resetRangeSelection(QTableWidget* table);
//合并单选行
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;
//源行数据
QList<PinkTableData> m_sourceRowsData;
//目标数据
QList<PinkTableData> m_descRowsData;
};
#endif // DATASLOTHELPER_H