#include "tablewidgetmovable.hpp" #include #include #include #include #include TableWidgetMovable::TableWidgetMovable(QWidget *parent) : QTableWidget(parent) { } // TOOD: fix None of these works. WIP // void TableWidgetMovable::dropEvent(QDropEvent *event) { // std::cout << event->type() << std::endl; // if(event->source() == this && event->type() == QEvent::Type::Drop) { // int oldRow = this->selectedItems()[0]->row(); // int oldColumn = this->selectedItems()[0]->column(); // int newRow = this->indexAt(event->pos()).row(); // int newColumn = this->indexAt(event->pos()).column(); // auto oldCell = this->cellWidget(oldRow, oldColumn); // auto newCell = this->cellWidget(newRow, newColumn); // this->removeCellWidget(oldRow, oldColumn); // this->removeCellWidget(newRow, newColumn); // this->setCellWidget(newRow, newColumn, oldCell); // this->setCellWidget(oldRow, oldColumn, newCell); // event->accept(); // } // } // void TableWidgetMovable::dropEvent(QDropEvent *event) { // std::cout << event->type() << std::endl; // if(event->source() == this && event->type() == QEvent::Type::Drop) { // int oldRow = this->selectedItems()[0]->row(); // int oldColumn = this->selectedItems()[0]->column(); // int newRow = this->indexAt(event->pos()).row(); // int newColumn = this->indexAt(event->pos()).column(); // std::cout << oldRow << " " << oldColumn<< " " << newRow << " " << newColumn << std::endl; // QTableWidgetItem *from = this->itemAt(oldColumn, oldRow), *to = this->itemAt(newColumn, newRow); // // QList selectedItems = this->selectedItems(); // if(newRow == -1) { // std::cout << newRow << std::endl; // // newRow = this->rowCount(); // return; // } // // QTableWidgetItem bufferTo, bufferFrom; // QTableWidgetItem *bufferTo = new QTableWidgetItem("123"), *bufferFrom = new QTableWidgetItem("321"); // std::cout << to->text().toStdString() << " " << from->text().toStdString() << std::endl; // *bufferTo = *to; // *bufferFrom = *from; // // this->setItem(newRow, newColumn, nullptr); // // this->setItem(oldRow, oldColumn, nullptr); // this->takeItem(newRow, newColumn); // this->takeItem(oldRow, oldColumn); // this->setItem(newRow, newColumn, from); // // this->setItem(oldRow, oldColumn, to); // // *to = *from; // // *from = buffer; // return; // // int i; // // for(i = 0; i < selectedItems.length()/this->columnCount(); i++) // // this->insertRow(newRow); // // int currentOldRow = -1; // // int currentNewRow = newRow-1; // // QList deleteRows; // // foreach(selectedItem, selectedItems) { // // int column = selectedItem->column(); // // if(selectedItem->row() != currentOldRow) { // // currentOldRow = selectedItem->row(); // // deleteRows.append(currentOldRow); // // currentNewRow++; // // } // // this->takeItem(currentOldRow, column); // // this->setItem(currentNewRow, column, selectedItem); // // } // // for(i = deleteRows.count()-1; i>=0; i--) // // this->removeRow(deleteRows.at(i)); // } // }