6 #include "ui_mnselectiondialog.h"
16 this->setStyleSheet(parent->styleSheet());
32 ui->treeWidget->header()->setStretchLastSection(
true);
33 ui->treeWidget->header()->setSectionResizeMode(1, QHeaderView::Stretch);
34 ui->treeWidget->setRootIsDecorated(
false);
35 ui->treeWidget->setFocusPolicy(Qt::NoFocus);
36 ui->treeWidget->model()->setHeaderData(
COLUMN_NAME, Qt::Horizontal, Qt::AlignLeft , Qt::TextAlignmentRole);
37 ui->treeWidget->model()->setHeaderData(
COLUMN_VOTE, Qt::Horizontal, Qt::AlignHCenter , Qt::TextAlignmentRole);
38 ui->treeWidget->model()->setHeaderData(
COLUMN_STATUS, Qt::Horizontal, Qt::AlignHCenter , Qt::TextAlignmentRole);
40 connect(
ui->btnEsc, &QPushButton::clicked,
this, &MnSelectionDialog::close);
41 connect(
ui->btnCancel, &QPushButton::clicked,
this, &MnSelectionDialog::close);
42 connect(
ui->btnSave, &QPushButton::clicked,
this, &MnSelectionDialog::accept);
55 for (
const auto& vote : _votes) {
56 votes.emplace(vote.mnAlias, vote);
62 explicit MnInfo(
const QString& _alias,
63 const QString& _status) :
alias(_alias),
status(_status) {}
74 if (mnInfo.
alias.isEmpty())
return;
79 ui->labelAmountOfVotes->setText(QString::number((
int)
selectedMnList.size()));
81 }
else if (item->isDisabled()) {
86 ui->labelAmountOfVotes->setText(QString::number((
int)
selectedMnList.size()));
94 const bool fSelectAll =
ui->btnSelectAll->isChecked();
95 Qt::CheckState wantedState = fSelectAll ? Qt::Checked : Qt::Unchecked;
96 ui->treeWidget->setEnabled(
false);
97 for (
int i = 0; i <
ui->treeWidget->topLevelItemCount(); i++)
100 ui->treeWidget->setEnabled(
true);
105 ui->btnSelectAll->setText(fSelectAll ? tr(
"Unselect All") : tr(
"Select All"));
110 ui->treeWidget->clear();
111 ui->treeWidget->setEnabled(
false);
112 QFlags<Qt::ItemFlag> flgCheckbox = Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable;
113 QFlags<Qt::ItemFlag> flgTristate = Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable | Qt::ItemIsTristate;
119 auto it =
votes.find(alias.toStdString());
120 if (it !=
votes.end()) { ptrVoteInfo = &it->second; }
121 appendItem(flgCheckbox, flgTristate, alias, status, ptrVoteInfo);
129 ui->treeWidget->setEnabled(
true);
133 QFlags<Qt::ItemFlag> flgTristate,
134 const QString& mnName,
135 const QString& mnStatus,
138 QTreeWidgetItem* itemOutput =
new QTreeWidgetItem(
ui->treeWidget);
139 itemOutput->setFlags(flgCheckbox);
144 itemOutput->setTextAlignment(
COLUMN_STATUS, Qt::AlignHCenter);
145 itemOutput->setTextAlignment(
COLUMN_VOTE, Qt::AlignHCenter);
148 itemOutput->setToolTip(
COLUMN_VOTE, tr(
"The direction of the already broadcasted vote"));
151 itemOutput->setToolTip(
COLUMN_VOTE, tr(
"No vote has been emitted from this Masternode"));
160 if (mnStatus !=
"ENABLED") {
161 itemOutput->setDisabled(
true);
166 itemOutput->setDisabled(
true);
167 QString disabledTooltip{tr(
"Time between votes is too soon, have to wait %1 minutes to change your vote").arg(
minVoteUpdateTimeInSecs/60)};
169 itemOutput->setToolTip(
COLUMN_NAME, disabledTooltip);
int rowCount(const QModelIndex &parent=QModelIndex()) const override
QModelIndex index(int row, int column, const QModelIndex &parent) const override
@ ALIAS
User specified MN alias.
MnInfo(const QString &_alias, const QString &_status)
int colCheckBoxWidth_treeMode
int minVoteUpdateTimeInSecs
std::vector< std::string > selectedMnList
void viewItemChanged(QTreeWidgetItem *, int)
std::vector< std::string > getSelectedMnAlias()
MnSelectionDialog(QWidget *parent)
void appendItem(QFlags< Qt::ItemFlag > flgCheckbox, QFlags< Qt::ItemFlag > flgTristate, const QString &mnName, const QString &mnStats, VoteInfo *ptrVoteInfo)
Ui::MnSelectionDialog * ui
std::map< std::string, VoteInfo > votes
void setMnVoters(const std::vector< VoteInfo > &_votes)
void setModel(MNModel *_mnModel, int minVoteUpdateTimeInSecs)
void setCssProperty(std::initializer_list< QWidget * > args, const QString &value)
int64_t GetAdjustedTime()