SQLDROP TABLE *
C++ (Qt)//--->>>-----
C++ (Qt)//---<<<-----
void Table::sort(TableSort tableSort){ QTableWidgetSelectionRange range = tableSort.getRange(); QList<int> rowsOrColumns; //TODO: can we do it without QList to get higher speed? if (tableSort.getSortDirection() == TableSort::SortRows) for (int i=range.topRow(); i<=range.bottomRow(); i++) rowsOrColumns.append(i); else for (int j=range.leftColumn(); j<=range.rightColumn(); j++) rowsOrColumns.append(j); tableSort.setTable(this); qStableSort(rowsOrColumns.begin(), rowsOrColumns.end(), tableSort); QTableWidgetItem *cells[range.rowCount()][range.columnCount()]; for (int i=0; i<range.rowCount(); i++) for (int j=0; j<range.columnCount(); j++) cells[i][j] = takeItem(i+range.topRow(), j+range.leftColumn()); if (tableSort.getSortDirection() == TableSort::SortRows) { for (int i=0; i<range.rowCount(); i++) for (int j=0; j<range.columnCount(); j++) setItem(i+range.topRow(), j+range.leftColumn(), cells[ rowsOrColumns[i]-range.topRow() ][j]); } else { for (int i=0; i<range.rowCount(); i++) for (int j=0; j<range.columnCount(); j++) setItem(i+range.topRow(), j+range.leftColumn(), cells[i][rowsOrColumns[j]-range.leftColumn()]); }}
QVector<QVector< QTableWidgetItem *>> cells; cells.resize(range.rowCount()); for(int i=0;i<range.rowCount();i++) cells[i].resize(range.columnCount());