MCPcopy Create free account
hub / github.com/cc20110101/RedisView / del

Method del

src/RedisView/AppView/DataView.cpp:386–444  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

384}
385
386void DataView::del() {
387
388 if(_type != KEY_STRING &&
389 _type != KEY_HASH &&
390 _type != KEY_SET &&
391 _type != KEY_ZSET &&
392 _type != KEY_LIST)
393 return;
394
395 if(_itemTableModel->rowCount() <= 0) {
396 QMessageBox::critical(this, tr("错误"), tr("无数据行需要删除!"));
397 return;
398 }
399
400 // 通过_view去获取被选中的部分的数据model
401 QItemSelectionModel *selectModel = _tableView->selectionModel();
402 // 通过选中的数据结构,获取这些格子的ModelIndex
403 QModelIndexList selectList = selectModel->selectedIndexes();
404 QVector<ValueTableItem *> delRow;
405
406 if(selectList.size() <= 0) {
407 QMessageBox::critical(this, tr("提示"), tr("请先选择要删除的行!"));
408 return;
409 }
410 // 遍历这些格子,获取格子所在行,因为可能存在相同的行,所以要去重
411 for(int i = 0; i < selectList.size(); ++i) {
412 QModelIndex index = selectList.at(i);
413 _tableSubItem = _itemTableModel->item(index.row());
414 if(delRow.contains(_tableSubItem))
415 continue;
416 delRow << _tableSubItem;
417 }
418
419 while(delRow.size() > 0) {
420 _tableSubItem = delRow.at(0);
421
422 _cmdMsg.init();
423 _cmdMsg._dbIndex = _dbIndex;
424 _cmdMsg._clientIndex = _clientIndex;
425 if(_type == KEY_HASH) {
426 _cmdMsg._key = _key;
427 _cmdMsg._type = _type;
428 _cmdMsg._filed = _tableSubItem->text();
429 _cmdMsg._operate = OPERATION_DELETE;
430 if(_vCmdMsg.contains(_cmdMsg)) {
431 _vCmdMsg.removeAll(_cmdMsg);
432 }
433 } else if(_type == KEY_SET || _type == KEY_ZSET) {
434 _cmdMsg._key = _key;
435 _cmdMsg._type = _type;
436 _cmdMsg._value = _tableSubItem->text();
437 _cmdMsg._operate = OPERATION_DELETE;
438 }
439 _vCmdMsg << _cmdMsg;
440
441 delRow.removeAll(_tableSubItem);
442 _itemTableModel->removeItem(_tableSubItem);
443 }

Callers 3

deleteDataMethod · 0.45
doDelKeyWorkMethod · 0.45
doBatchDelKeyWorkMethod · 0.45

Calls 5

itemMethod · 0.80
rowCountMethod · 0.45
initMethod · 0.45
textMethod · 0.45
removeItemMethod · 0.45

Tested by

no test coverage detected