void VotePage::fillCustodianTable() { QTableWidget* table = ui->custodianTable; table->setRowCount(0); int row = 0; for (CBlockIndex* pindex = lastBestBlock; pindex; pindex = pindex->pprevElected) { BOOST_FOREACH(const CCustodianVote& custodianVote, pindex->vElectedCustodian) { table->setRowCount(row + 1); QTableWidgetItem *addressItem = new QTableWidgetItem(); addressItem->setData(Qt::DisplayRole, QString::fromStdString(custodianVote.GetAddress().ToString())); table->setItem(row, 0, addressItem); QTableWidgetItem *amountItem = new QTableWidgetItem(); amountItem->setData(Qt::DisplayRole, BitcoinUnits::format(model->getOptionsModel()->getDisplayUnit(), custodianVote.nAmount)); amountItem->setData(Qt::TextAlignmentRole, QVariant(Qt::AlignRight | Qt::AlignVCenter)); table->setItem(row, 1, amountItem); QTableWidgetItem *dateItem = new QTableWidgetItem(); dateItem->setData(Qt::DisplayRole, GUIUtil::dateTimeStr(pindex->nTime)); table->setItem(row, 2, dateItem); row++; } } table->setVisible(false); table->resizeColumnsToContents(); table->setVisible(true); }
void VotePage::fillParkRateTable() { QTableWidget* table = ui->parkRateTable; std::vector<CParkRate> parkRates; BOOST_FOREACH(const CParkRateVote& parkRateResult, lastBestBlock->vParkRateResult) { if (parkRateResult.cUnit == 'B') { parkRates = parkRateResult.vParkRate; break; } } table->setRowCount(parkRates.size()); for (size_t i = 0; i < parkRates.size(); i++) { const CParkRate& parkRate = parkRates[i]; QString durationString = GUIUtil::blocksToTime(parkRate.GetDuration()); QTableWidgetItem *durationItem = new QTableWidgetItem(durationString); durationItem->setData(Qt::TextAlignmentRole, QVariant(Qt::AlignRight | Qt::AlignVCenter)); table->setItem(i, 0, durationItem); double interestRate = GUIUtil::annualInterestRatePercentage(parkRate.nRate, parkRate.GetDuration()); QString rateString = QString("%L1%").arg(interestRate, 0, 'f', 3); QTableWidgetItem *rateItem = new QTableWidgetItem(rateString); rateItem->setData(Qt::TextAlignmentRole, QVariant(Qt::AlignRight | Qt::AlignVCenter)); table->setItem(i, 1, rateItem); } table->setVisible(false); table->resizeColumnsToContents(); table->setVisible(true); }
void VotePage::updateLiquidity() { unsigned char cUnit = 'B'; LiquidityTotal total; QMap<QString, LiquidityTotal> tierMap; { LOCK(cs_mapLiquidityInfo); BOOST_FOREACH(const PAIRTYPE(const CLiquiditySource, CLiquidityInfo)& item, mapLiquidityInfo) { const CLiquidityInfo& info = item.second; if (info.cUnit == cUnit) { total += info; QString tier = QString::fromStdString(info.GetTier()); tierMap[tier] += info; } } } QTableWidget* table = ui->liquidity; table->setRowCount(0); QMap<QString, LiquidityTotal>::const_iterator it = tierMap.constBegin(); while (it != tierMap.constEnd()) { const QString& tier = it.key(); const LiquidityTotal& liquidity = it.value(); QString label; if (tier == "") label = tr("Unknown tier"); else label = tr("Tier %1").arg(tier); liquidity.AddToTable(table, label); it++; } total.AddToTable(table, tr("Total")); table->setVisible(false); table->resizeColumnToContents(0); table->setVisible(true); }
QWidget * Table::createQtWidget(Proxy *proxy, UIProxy *uiproxy, QWidget *parent) { QTableWidget *tablewidget = new TableWidget(this, parent); tablewidget->setEnabled(enabled); tablewidget->setVisible(visible); tablewidget->setStyleSheet(QString::fromStdString(style)); size_t rowcount = rows.size(), columncount = 0; for(size_t i = 0; i < rowcount; i++) columncount = std::max(columncount, rows[i].size()); tablewidget->setRowCount(rowcount); tablewidget->setColumnCount(columncount); tablewidget->horizontalHeader()->setVisible(show_horizontal_header); tablewidget->verticalHeader()->setVisible(show_vertical_header); tablewidget->setShowGrid(show_grid); QStringList qtHorizontalHeader; for(size_t i = 0; i < horizontalHeader.size(); i++) qtHorizontalHeader << QString::fromStdString(horizontalHeader[i]); tablewidget->setHorizontalHeaderLabels(qtHorizontalHeader); QStringList qtVerticalHeader; for(size_t i = 0; i < verticalHeader.size(); i++) qtVerticalHeader << QString::fromStdString(verticalHeader[i]); tablewidget->setVerticalHeaderLabels(qtVerticalHeader); if(autosize_horizontal_header) tablewidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); if(autosize_vertical_header) tablewidget->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents); if(sortable) tablewidget->setSortingEnabled(true); for(size_t row = 0; row < rowcount; row++) { for(size_t column = 0; column < rows[row].size(); column++) { TableItem &item = rows[row][column]; QTableWidgetItem *qtwitem = new QTableWidgetItem(QString::fromStdString(item.text)); if(item.editable) qtwitem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsEditable); else qtwitem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); tablewidget->setItem(row, column, qtwitem); } } tablewidget->setSelectionBehavior(selectionBehavior); tablewidget->setSelectionMode(selectionMode); QObject::connect(tablewidget, &QTableWidget::cellActivated, uiproxy, &UIProxy::onCellActivate); QObject::connect(tablewidget, &QTableWidget::cellChanged, uiproxy, &UIProxy::onCellActivate); QObject::connect(tablewidget, &QTableWidget::itemSelectionChanged, uiproxy, &UIProxy::onTableSelectionChange); setQWidget(tablewidget); setEditable(editable); setProxy(proxy); return tablewidget; }