80 lines
2.1 KiB
C
80 lines
2.1 KiB
C
|
|
#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();
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
|
|||
|
|
void movedUp(QTableWidget *table);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>
|
|||
|
|
void movedDow(QTableWidget *table);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
QStringList tableRowData(QTableWidget* table,int row);
|
|||
|
|
//ʰȡ<CAB0><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void pickTableRangeData(QTableWidget* table
|
|||
|
|
,QList<PinkTableData> &rangeData);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݸı<DDB8> isUp <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ϣ<EFBFBD>moveFixed<65>Ƿ<EFBFBD><C7B7><EFBFBD>ͷ<EFBFBD>̶<EFBFBD>ģʽ
|
|||
|
|
void tableSelectionRangeChange(QTableWidget *table,bool isUp,bool &moveFixed);
|
|||
|
|
//ѡ<><D1A1><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>Χ
|
|||
|
|
void rangeMoveRow(int &beginRow,int &endRow,int rowCount,bool isUp,bool &moveFixed);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>ԭʼ<D4AD><CABC><EFBFBD>ݺ<EFBFBD><DDBA>ƶ<EFBFBD><C6B6><EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void swapSelRowMoveRow(bool isUp);
|
|||
|
|
//ˢ<><CBA2><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void updateMoveRowData(QTableWidget* table);
|
|||
|
|
//ˢ<><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void updateRowsData(QTableWidget* table,const QList<PinkTableData> &data);
|
|||
|
|
//ˢ<>±<EFBFBD><C2B1><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD>
|
|||
|
|
void updateTableView(QTableWidget *table,const QStringList& rowsData,int row);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݺͷ<DDBA>Χ
|
|||
|
|
void pinkTableDataRanges(const QList<PinkTableData> &pinkData,
|
|||
|
|
QList<QTableWidgetSelectionRange> &ranges,QList< QList<QStringList> > &rowsData);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void resetNewDaataRow(QList< QList<QStringList> > & restDataRow,bool isUp);
|
|||
|
|
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void resetRangeSelection(QTableWidget* table);
|
|||
|
|
//<2F>ϲ<EFBFBD><CFB2><EFBFBD>ѡ<EFBFBD><D1A1>
|
|||
|
|
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;
|
|||
|
|
//Դ<><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
QList<PinkTableData> m_sourceRowsData;
|
|||
|
|
//Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
QList<PinkTableData> m_descRowsData;
|
|||
|
|
|
|||
|
|
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif // DATASLOTHELPER_H
|