ccs: add MAGIC monero fund

This commit is contained in:
tobtoht
2023-11-25 14:28:06 +01:00
parent 6225e0e389
commit a09b15f79e
9 changed files with 49 additions and 40 deletions
+8 -6
View File
@@ -9,12 +9,14 @@
struct CCSEntry {
CCSEntry()= default;;
QString title = "";
QString date = "";
QString address = "";
QString author = "";
QString state = "";
QString url = "";
QString title;
QString date;
QString address;
QString author;
QString state;
QString url;
QString organizer;
QString currency;
double target_amount = 0;
double raised_amount = 0;
double percentage_funded = 0;
+7 -3
View File
@@ -54,10 +54,12 @@ QVariant CCSModel::data(const QModelIndex &index, int role) const
switch(index.column()) {
case Title:
return entry->title;
case Organizer:
return entry->organizer;
case Author:
return entry->author;
return QString("%1 ").arg(entry->author);
case Progress:
return QString("%1/%2 XMR").arg(entry->raised_amount).arg(entry->target_amount);
return QString("%1/%2 %3").arg(QString::number(entry->raised_amount), QString::number(entry->target_amount), entry->currency);
default:
return QVariant();
}
@@ -74,7 +76,9 @@ QVariant CCSModel::headerData(int section, Qt::Orientation orientation, int role
{
switch(section) {
case Title:
return QString("Community Crowdfunding Proposal");
return QString("Proposal");
case Organizer:
return QString("Organizer");
case Author:
return QString("Author");
case Progress:
+1
View File
@@ -17,6 +17,7 @@ public:
enum ModelColumn
{
Title = 0,
Organizer,
Author,
Progress,
COUNT
+10 -17
View File
@@ -18,16 +18,17 @@ CCSWidget::CCSWidget(QWidget *parent)
, m_contextMenu(new QMenu(this))
{
ui->setupUi(this);
ui->tableView->setModel(m_model);
this->setupTable();
ui->treeView->setModel(m_model);
m_contextMenu->addAction("View proposal", this, &CCSWidget::linkClicked);
m_contextMenu->addAction("Donate", this, &CCSWidget::donateClicked);
connect(ui->tableView, &QHeaderView::customContextMenuRequested, this, &CCSWidget::showContextMenu);
connect(ui->tableView, &QTableView::doubleClicked, this, &CCSWidget::linkClicked);
connect(ui->treeView, &QHeaderView::customContextMenuRequested, this, &CCSWidget::showContextMenu);
connect(ui->treeView, &QTreeView::doubleClicked, this, &CCSWidget::linkClicked);
ui->tableView->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->treeView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->treeView->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
ui->treeView->header()->setSectionResizeMode(CCSModel::Title, QHeaderView::Stretch);
}
CCSModel* CCSWidget::model() {
@@ -35,7 +36,7 @@ CCSModel* CCSWidget::model() {
}
void CCSWidget::linkClicked() {
QModelIndex index = ui->tableView->currentIndex();
QModelIndex index = ui->treeView->currentIndex();
auto entry = m_model->entry(index.row());
if (entry) {
@@ -44,28 +45,20 @@ void CCSWidget::linkClicked() {
}
void CCSWidget::donateClicked() {
QModelIndex index = ui->tableView->currentIndex();
QModelIndex index = ui->treeView->currentIndex();
auto entry = m_model->entry(index.row());
if (entry)
emit selected(*entry);
}
void CCSWidget::setupTable() {
ui->tableView->verticalHeader()->setVisible(false);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
ui->tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch);
ui->tableView->setColumnWidth(2, 160);
}
void CCSWidget::showContextMenu(const QPoint &pos) {
QModelIndex index = ui->tableView->indexAt(pos);
QModelIndex index = ui->treeView->indexAt(pos);
if (!index.isValid()) {
return;
}
m_contextMenu->exec(ui->tableView->viewport()->mapToGlobal(pos));
m_contextMenu->exec(ui->treeView->viewport()->mapToGlobal(pos));
}
CCSWidget::~CCSWidget() = default;
-1
View File
@@ -36,7 +36,6 @@ private slots:
void linkClicked();
private:
void setupTable();
void showContextMenu(const QPoint &pos);
QScopedPointer<Ui::CSSWidget> ui;
+5 -8
View File
@@ -30,20 +30,17 @@
<number>0</number>
</property>
<item>
<widget class="QTableView" name="tableView">
<widget class="QTreeView" name="treeView">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="sortingEnabled">
<property name="rootIsDecorated">
<bool>false</bool>
</property>
<attribute name="horizontalHeaderStretchLastSection">
<attribute name="headerStretchLastSection">
<bool>false</bool>
</attribute>
</widget>