2 #include "ui_masternodelist.h"
16 #include <QMessageBox>
17 #include <QErrorMessage>
30 ui->startButton->setEnabled(
false);
32 int columnAliasWidth = 100;
33 int columnAddressWidth = 200;
34 int columnStatusWidth = 80;
35 int columnActiveWidth = 130;
36 int columnLastSeenWidth = 130;
38 ui->tableWidgetMyMasternodes->setColumnWidth(0, columnAliasWidth);
39 ui->tableWidgetMyMasternodes->setColumnWidth(1, columnAddressWidth);
40 ui->tableWidgetMyMasternodes->setColumnWidth(3, columnStatusWidth);
41 ui->tableWidgetMyMasternodes->setColumnWidth(4, columnActiveWidth);
42 ui->tableWidgetMyMasternodes->setColumnWidth(5, columnLastSeenWidth);
44 ui->tableWidgetMyMasternodes->setContextMenuPolicy(Qt::CustomContextMenu);
46 QAction* startAliasAction =
new QAction(tr(
"Start alias"),
this);
49 connect(
ui->tableWidgetMyMasternodes, SIGNAL(customContextMenuRequested(
const QPoint&)),
this, SLOT(
showContextMenu(
const QPoint&)));
52 timer =
new QTimer(
this);
78 QTableWidgetItem* item =
ui->tableWidgetMyMasternodes->itemAt(point);
84 QWidget::resizeEvent(event);
91 std::string strStatusHtml;
92 strStatusHtml +=
"<center>Alias: " + strAlias;
95 if (mne.getAlias() == strAlias) {
102 strStatusHtml +=
"<br>Successfully started masternode.";
106 strStatusHtml +=
"<br>Failed to start masternode.<br>Error: " + strError;
111 strStatusHtml +=
"</center>";
114 msg.setText(strStatusHtml.c_str());
125 int nCountSuccessful = 0;
126 int nCountFailed = 0;
127 std::string strFailedHtml;
130 std::string strError;
134 if(!mne.castOutputIndex(nIndex))
140 if (strCommand ==
"start-missing" && pmn)
continue;
150 strFailedHtml +=
"\nFailed to start " + mne.getAlias() +
". Error: " + strError;
154 std::string returnObj;
155 returnObj =
strprintf(
"Successfully started %d masternodes, failed to start %d, total %d", nCountSuccessful, nCountFailed, nCountFailed + nCountSuccessful);
156 if (nCountFailed > 0) {
157 returnObj += strFailedHtml;
161 msg.setText(QString::fromStdString(returnObj));
171 bool fOldRowFound =
false;
174 for (
int i = 0; i <
ui->tableWidgetMyMasternodes->rowCount(); i++) {
175 if (
ui->tableWidgetMyMasternodes->item(i, 0)->text() == strAlias) {
182 if (nNewRow == 0 && !fOldRowFound) {
183 nNewRow =
ui->tableWidgetMyMasternodes->rowCount();
184 ui->tableWidgetMyMasternodes->insertRow(nNewRow);
187 QTableWidgetItem* aliasItem =
new QTableWidgetItem(strAlias);
188 QTableWidgetItem* addrItem =
new QTableWidgetItem(pmn ? QString::fromStdString(pmn->
addr.
ToString()) : strAddr);
189 QTableWidgetItem* statusItem =
new QTableWidgetItem(QString::fromStdString(pmn ? pmn->
GetStatus() :
"MISSING"));
194 ui->tableWidgetMyMasternodes->setItem(nNewRow, 0, aliasItem);
195 ui->tableWidgetMyMasternodes->setItem(nNewRow, 1, addrItem);
196 ui->tableWidgetMyMasternodes->setItem(nNewRow, 2, statusItem);
197 ui->tableWidgetMyMasternodes->setItem(nNewRow, 3, activeSecondsItem);
198 ui->tableWidgetMyMasternodes->setItem(nNewRow, 4, lastSeenItem);
199 ui->tableWidgetMyMasternodes->setItem(nNewRow, 5, pubkeyItem);
205 static int64_t nTimeMyListUpdated = 0;
211 if (nSecondsTillUpdate > 0 && !fForce)
return;
212 nTimeMyListUpdated =
GetTime();
214 ui->tableWidgetMyMasternodes->setSortingEnabled(
false);
217 if(!mne.castOutputIndex(nIndex))
224 ui->tableWidgetMyMasternodes->setSortingEnabled(
true);
231 QItemSelectionModel* selectionModel =
ui->tableWidgetMyMasternodes->selectionModel();
232 QModelIndexList selected = selectionModel->selectedRows();
234 if (selected.count() == 0)
return;
236 QModelIndex index = selected.at(0);
237 int nSelectedRow = index.row();
238 std::string strAlias =
ui->tableWidgetMyMasternodes->item(nSelectedRow, 0)->text().toStdString();
241 QMessageBox::StandardButton retval = QMessageBox::question(
this, tr(
"Confirm masternode start"),
242 tr(
"Are you sure you want to start masternode %1?").arg(QString::fromStdString(strAlias)),
243 QMessageBox::Yes | QMessageBox::Cancel,
244 QMessageBox::Cancel);
246 if (retval != QMessageBox::Yes)
return;
265 QMessageBox::StandardButton retval = QMessageBox::question(
this, tr(
"Confirm all masternodes start"),
266 tr(
"Are you sure you want to start ALL masternodes?"),
267 QMessageBox::Yes | QMessageBox::Cancel,
268 QMessageBox::Cancel);
270 if (retval != QMessageBox::Yes)
return;
289 QMessageBox::critical(
this, tr(
"Command is not available right now"),
290 tr(
"You can't use this command until masternode list is synced"));
295 QMessageBox::StandardButton retval = QMessageBox::question(
this,
296 tr(
"Confirm missing masternodes start"),
297 tr(
"Are you sure you want to start MISSING masternodes?"),
298 QMessageBox::Yes | QMessageBox::Cancel,
299 QMessageBox::Cancel);
301 if (retval != QMessageBox::Yes)
return;
319 if (
ui->tableWidgetMyMasternodes->selectedItems().count() > 0) {
320 ui->startButton->setEnabled(
true);