| 419 | } |
| 420 | |
| 421 | void |
| 422 | KnobGuiTable::onRemoveButtonClicked() |
| 423 | { |
| 424 | KnobTablePtr knob = std::dynamic_pointer_cast<KnobTable>( getKnob() ); |
| 425 | |
| 426 | assert(knob); |
| 427 | QModelIndexList selection = _imp->table->selectionModel()->selectedRows(); |
| 428 | |
| 429 | if (selection.size() < 1) { |
| 430 | return; |
| 431 | } |
| 432 | |
| 433 | |
| 434 | for (int i = 0; i < selection.size(); ++i) { |
| 435 | QStringList removedRow; |
| 436 | if ( (selection[0].row() >= 0) && ( selection[0].row() < (int)_imp->items.size() ) ) { |
| 437 | Row& r = _imp->items[selection[0].row()]; |
| 438 | for (std::size_t i = 0; i < r.items.size(); ++i) { |
| 439 | removedRow.push_back( r.items[i]->text() ); |
| 440 | } |
| 441 | _imp->items.erase( _imp->items.begin() + selection[0].row() ); |
| 442 | } |
| 443 | |
| 444 | entryRemoved(removedRow); |
| 445 | } |
| 446 | |
| 447 | _imp->model->removeRows( selection.front().row(), selection.size() ); |
| 448 | |
| 449 | |
| 450 | std::string oldTable = knob->getValue(); |
| 451 | std::string newTable = _imp->encodeTable(knob); |
| 452 | pushUndoCommand( new KnobUndoCommand<std::string>( shared_from_this(), oldTable, newTable) ); |
| 453 | } |
| 454 | |
| 455 | void |
| 456 | KnobGuiTable::updateGUI(int /*dimension*/) |
nothing calls this directly
no test coverage detected