| 579 | } |
| 580 | |
| 581 | void CoinControlDialog::updateView() |
| 582 | { |
| 583 | if (!model || !model->getOptionsModel() || !model->getAddressTableModel()) |
| 584 | return; |
| 585 | |
| 586 | bool treeMode = ui->radioTreeMode->isChecked(); |
| 587 | |
| 588 | ui->treeWidget->clear(); |
| 589 | ui->treeWidget->setEnabled(false); // performance, otherwise updateLabels would be called for every checked checkbox |
| 590 | ui->treeWidget->setAlternatingRowColors(!treeMode); |
| 591 | QFlags<Qt::ItemFlag> flgCheckbox = Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable; |
| 592 | QFlags<Qt::ItemFlag> flgTristate = Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsTristate; |
| 593 | |
| 594 | int nDisplayUnit = model->getOptionsModel()->getDisplayUnit(); |
| 595 | |
| 596 | for (const auto& coins : model->wallet().listCoins()) { |
| 597 | CCoinControlWidgetItem* itemWalletAddress{nullptr}; |
| 598 | QString sWalletAddress = QString::fromStdString(EncodeDestination(coins.first)); |
| 599 | QString sWalletLabel = model->getAddressTableModel()->labelForAddress(sWalletAddress); |
| 600 | if (sWalletLabel.isEmpty()) |
| 601 | sWalletLabel = tr("(no label)"); |
| 602 | |
| 603 | if (treeMode) |
| 604 | { |
| 605 | // wallet address |
| 606 | itemWalletAddress = new CCoinControlWidgetItem(ui->treeWidget); |
| 607 | |
| 608 | itemWalletAddress->setFlags(flgTristate); |
| 609 | itemWalletAddress->setCheckState(COLUMN_CHECKBOX, Qt::Unchecked); |
| 610 | |
| 611 | // label |
| 612 | itemWalletAddress->setText(COLUMN_LABEL, sWalletLabel); |
| 613 | |
| 614 | // address |
| 615 | itemWalletAddress->setText(COLUMN_ADDRESS, sWalletAddress); |
| 616 | } |
| 617 | |
| 618 | CAmount nSum = 0; |
| 619 | int nChildren = 0; |
| 620 | for (const auto& outpair : coins.second) { |
| 621 | const COutPoint& output = std::get<0>(outpair); |
| 622 | const interfaces::WalletTxOut& out = std::get<1>(outpair); |
| 623 | nSum += out.txout.nValue.GetAmount(); |
| 624 | nChildren++; |
| 625 | |
| 626 | CCoinControlWidgetItem *itemOutput; |
| 627 | if (treeMode) itemOutput = new CCoinControlWidgetItem(itemWalletAddress); |
| 628 | else itemOutput = new CCoinControlWidgetItem(ui->treeWidget); |
| 629 | itemOutput->setFlags(flgCheckbox); |
| 630 | itemOutput->setCheckState(COLUMN_CHECKBOX,Qt::Unchecked); |
| 631 | |
| 632 | // address |
| 633 | CTxDestination outputAddress; |
| 634 | QString sAddress = ""; |
| 635 | if(ExtractDestination(out.txout.scriptPubKey, outputAddress)) |
| 636 | { |
| 637 | sAddress = QString::fromStdString(EncodeDestination(outputAddress)); |
| 638 |
nothing calls this directly
no test coverage detected