full-featured moving and deleting from the queue completed
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
#include <net/net.h>
|
||||
#include <utils/utils.h>
|
||||
#include <exceptions/ofdrequestexception.h>
|
||||
#include <checklistviewwidget.h>
|
||||
|
||||
#ifdef BUILD_OFD_BINARYEYE_SCAN
|
||||
# include <qrencode.h>
|
||||
@@ -33,17 +32,17 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
ui->setupUi(this);
|
||||
ui->stop_server_button->hide();
|
||||
|
||||
|
||||
ui->checks_to_parse_label->hide();
|
||||
ui->checkQueueTable->hide();
|
||||
ui->deleteSelectedButton->hide();
|
||||
ui->parse_button->hide();
|
||||
|
||||
model = new CheckQueueTableModel(&checks, this);
|
||||
ui->checkQueueTable->setModel(model);
|
||||
ui->checkQueueTable->viewport()->setAcceptDrops(true);
|
||||
ui->checkQueueTable->setDragDropMode(QAbstractItemView::DragDrop);
|
||||
|
||||
// ui->
|
||||
// connect(this, &MainWindow::deleteCheckFromList, this, &MainWindow::deleteCheckFromListHandler);
|
||||
ui->checkQueueTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
|
||||
|
||||
#ifdef BUILD_OFD_BINARYEYE_SCAN
|
||||
QObject::connect(this, &MainWindow::httpErrorOccured, this, &MainWindow::notifyHttpServerFailure);
|
||||
@@ -139,7 +138,6 @@ void MainWindow::httpNewMessageHandler(QString message) {
|
||||
emit onDataDecode(paramsMap);
|
||||
}
|
||||
|
||||
|
||||
#endif //ifdef BUILD_OFD_BINARYEYE_SCAN
|
||||
|
||||
#ifdef BUILD_OFD_LOCAL_QR_SCAN
|
||||
@@ -195,7 +193,6 @@ void MainWindow::on_parse_email_button_clicked() {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
#endif // ifdef BUILD_EMAIL_MODE
|
||||
|
||||
void MainWindow::on_parse_button_clicked() {
|
||||
@@ -213,30 +210,6 @@ void MainWindow::on_parse_button_clicked() {
|
||||
d.exec();
|
||||
}
|
||||
|
||||
// void MainWindow::deleteCheckFromListHandler(Check &check) {
|
||||
// for (unsigned int i = 0; i < ui->scrollAreaWidgetContents->layout()->count(); i ++) {
|
||||
// QLayoutItem *item = ui->scrollAreaWidgetContents->layout()->itemAt(i);
|
||||
// QObject *child = item->widget();
|
||||
// CheckListViewWidget *c = (CheckListViewWidget *)child;
|
||||
// if (c->get_check() == check) {
|
||||
// ui->scrollAreaWidgetContents->layout()->removeItem(item);
|
||||
// delete item;
|
||||
// delete child;
|
||||
// ui->scrollAreaWidgetContents->layout()->update();
|
||||
// ui->scrollAreaWidgetContents->update();
|
||||
|
||||
// }
|
||||
// }
|
||||
|
||||
// int position = std::find(checks.begin(), checks.end(), check) - checks.begin() - 1;
|
||||
// checks.erase(checks.begin() + position);
|
||||
|
||||
// if (ui->scrollAreaWidgetContents->layout()->count() == 0) {
|
||||
// ui->checks_to_parse_label->hide();
|
||||
// ui->checks_scroll_area->hide();
|
||||
// }
|
||||
// }
|
||||
|
||||
void MainWindow::on_add_new_check_button_clicked() {
|
||||
Check *new_check = new Check();/* parse_new_check();
|
||||
if (new_check == nullptr) {
|
||||
@@ -257,6 +230,8 @@ void MainWindow::on_add_new_check_button_clicked() {
|
||||
if (checks.size() > 0) {
|
||||
ui->checkQueueTable->show();
|
||||
ui->checks_to_parse_label->show();
|
||||
ui->deleteSelectedButton->show();
|
||||
ui->parse_button->show();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -321,3 +296,24 @@ Check *MainWindow::parse_new_check() {
|
||||
MainWindow::~MainWindow() {
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void MainWindow::on_deleteSelectedButton_clicked() {
|
||||
QItemSelectionModel *select = ui->checkQueueTable->selectionModel();
|
||||
std::vector<unsigned int> to_delete_positions = {};
|
||||
for (auto &row : select->selectedIndexes()) {
|
||||
if (row.column() != 0) continue;
|
||||
to_delete_positions.push_back(row.row());
|
||||
// model->removeRows(row.row(), 1);
|
||||
// checks.erase(std::next(checks.begin() + row.row()));
|
||||
// std::cout << row.data().toString().toStdString() << std::endl;
|
||||
}
|
||||
std::sort(to_delete_positions.begin(), to_delete_positions.end(), std::greater<unsigned int>());
|
||||
for (unsigned int position : to_delete_positions) {
|
||||
model->removeRows(position, 1);
|
||||
// checks.erase(checks.begin() + position);
|
||||
// emit model->dataChanged(model->index(position, 0), model->index(position, 1));
|
||||
}
|
||||
emit model->dataChanged(model->index(checks.size(), 0), model->index(checks.size() + to_delete_positions.size(), 1));
|
||||
ui->checkQueueTable->clearSelection();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user