mirror of
				https://git.wownero.com/wowlet/wowlet.git
				synced 2024-08-15 01:03:14 +00:00 
			
		
		
		
	remove xmrtowidget
This commit is contained in:
		
							parent
							
								
									3f83d74bac
								
							
						
					
					
						commit
						21fe180a84
					
				
					 1 changed files with 0 additions and 193 deletions
				
			
		| 
						 | 
				
			
			@ -1,193 +0,0 @@
 | 
			
		|||
// SPDX-License-Identifier: BSD-3-Clause
 | 
			
		||||
// Copyright (c) 2020-2021, The Monero Project.
 | 
			
		||||
 | 
			
		||||
#include "xmrtowidget.h"
 | 
			
		||||
#include "ui_xmrtowidget.h"
 | 
			
		||||
#include "dialog/xmrtoinfodialog.h"
 | 
			
		||||
#include "mainwindow.h"
 | 
			
		||||
#include "globals.h"
 | 
			
		||||
 | 
			
		||||
#include <QMessageBox>
 | 
			
		||||
 | 
			
		||||
XMRToWidget::XMRToWidget(QWidget *parent) :
 | 
			
		||||
        QWidget(parent),
 | 
			
		||||
        ui(new Ui::XMRToWidget)
 | 
			
		||||
{
 | 
			
		||||
    ui->setupUi(this);
 | 
			
		||||
    m_ctx = MainWindow::getContext();
 | 
			
		||||
 | 
			
		||||
    QString amount_rx = R"(^\d*\.\d*$)";
 | 
			
		||||
    QRegExp rx;
 | 
			
		||||
    rx.setPattern(amount_rx);
 | 
			
		||||
    QValidator *validator =  new QRegExpValidator(rx, this);
 | 
			
		||||
    ui->lineAmount->setValidator(validator);
 | 
			
		||||
 | 
			
		||||
    // xmrto logo (c) binaryFate et. al. :-D
 | 
			
		||||
    QPixmap p(":assets/images/xmrto_big.png");
 | 
			
		||||
    ui->logo->setPixmap(p.scaled(112, 32, Qt::KeepAspectRatio, Qt::SmoothTransformation));
 | 
			
		||||
 | 
			
		||||
    ui->ratesLayout->hide();
 | 
			
		||||
 | 
			
		||||
    // context menu
 | 
			
		||||
    m_contextMenu = new QMenu();
 | 
			
		||||
    m_showDetailsAction = m_contextMenu->addAction("Details");
 | 
			
		||||
    m_viewOnXmrToAction = m_contextMenu->addAction("View order on XMR.to");
 | 
			
		||||
    m_viewOnXmrToAction->setIcon(QIcon(":/assets/images/xmrto.png"));
 | 
			
		||||
    connect(m_showDetailsAction, &QAction::triggered, this, &XMRToWidget::showInfoDialog);
 | 
			
		||||
    connect(m_viewOnXmrToAction, &QAction::triggered, [&](){
 | 
			
		||||
        QModelIndex index = ui->historyTable->currentIndex();
 | 
			
		||||
        XmrToOrder *order = this->tableModel->orders->at(index.row());
 | 
			
		||||
        emit viewOrder(order->uuid);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    // connects
 | 
			
		||||
    connect(ui->btnGetRates, &QPushButton::pressed, this, &XMRToWidget::onGetRates);
 | 
			
		||||
    connect(ui->lineAmount, &QLineEdit::textChanged, this, &XMRToWidget::updateConversionLabel);
 | 
			
		||||
    connect(ui->comboBox_currency, &QComboBox::currentTextChanged, this, &XMRToWidget::updateConversionLabel);
 | 
			
		||||
    connect(ui->torCheckBox, &QCheckBox::stateChanged, this, &XMRToWidget::onTorCheckBoxToggled);
 | 
			
		||||
    connect(ui->btnCreate, &QPushButton::clicked, this, &XMRToWidget::onCreateOrder);
 | 
			
		||||
 | 
			
		||||
    ui->historyTable->header()->setStretchLastSection(true);
 | 
			
		||||
    ui->historyTable->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
 | 
			
		||||
    ui->historyTable->setSelectionBehavior(QAbstractItemView::SelectRows);
 | 
			
		||||
    ui->historyTable->setContextMenuPolicy(Qt::CustomContextMenu);
 | 
			
		||||
    connect(ui->historyTable, &QTreeView::customContextMenuRequested, [&](const QPoint & point){
 | 
			
		||||
        QModelIndex index = ui->historyTable->indexAt(point);
 | 
			
		||||
        if (index.isValid()) {
 | 
			
		||||
            m_contextMenu->popup(ui->historyTable->viewport()->mapToGlobal(point));
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    if (m_ctx->isTails || m_ctx->isWhonix) {
 | 
			
		||||
        ui->torCheckBox->setDisabled(true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    connect(ui->historyTable, &QTreeView::doubleClicked, this, &XMRToWidget::showInfoDialog);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::setHistoryModel(XmrToModel *model) {
 | 
			
		||||
    this->tableModel = model;
 | 
			
		||||
    this->ui->historyTable->setModel(model);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onBalanceUpdated(quint64 balance, quint64 spendable) {
 | 
			
		||||
    this->m_unlockedBalance = spendable / globals::cdiv;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onWalletClosed() {
 | 
			
		||||
    ui->lineAddress->clear();
 | 
			
		||||
    ui->lineAmount->clear();
 | 
			
		||||
    ui->xmrLabelEstimate->setText("0.00 XMR");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onCreateOrder() {
 | 
			
		||||
    // @TODO: regex verify
 | 
			
		||||
 | 
			
		||||
    auto amount = ui->lineAmount->text();
 | 
			
		||||
    if(amount.isEmpty()) {
 | 
			
		||||
        QMessageBox::warning(this, "Cannot create XMR.To order", "Invalid amount");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    double amount_num = amount.toDouble();
 | 
			
		||||
    QString amount_cur = (ui->comboBox_currency->currentIndex() == curr::BTC) ? "BTC" : "XMR";
 | 
			
		||||
    double amount_xmr = amount_num;
 | 
			
		||||
    if (ui->comboBox_currency->currentIndex() == curr::BTC) {
 | 
			
		||||
        amount_xmr = AppContext::prices->convert("BTC", "XMR", amount_num);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    auto available = m_unlockedBalance;
 | 
			
		||||
    if(amount_xmr > available){
 | 
			
		||||
        QMessageBox::warning(this, "Cannot create XMR.To order", "Not enough Wownero to create order.");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    ui->btnGetRates->setEnabled(false);
 | 
			
		||||
    ui->btnCreate->setEnabled(false);
 | 
			
		||||
 | 
			
		||||
    auto btc_address = ui->lineAddress->text();
 | 
			
		||||
    emit createOrder(amount_num, amount_cur, btc_address);
 | 
			
		||||
 | 
			
		||||
    QTimer::singleShot(2000, [=] {
 | 
			
		||||
        ui->lineAmount->clear();
 | 
			
		||||
        ui->lineAddress->clear();
 | 
			
		||||
        ui->btnGetRates->setEnabled(true);
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onTorCheckBoxToggled(int state) {
 | 
			
		||||
    ui->btnGetRates->setEnabled(true);
 | 
			
		||||
    ui->btnCreate->setEnabled(false);
 | 
			
		||||
    emit networkChanged(!state);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::updateConversionLabel() {
 | 
			
		||||
    QString amount = ui->lineAmount->text();
 | 
			
		||||
 | 
			
		||||
    int curIndex = ui->comboBox_currency->currentIndex();
 | 
			
		||||
    QString symbolFrom = (curIndex == curr::XMR) ? "XMR" : "BTC";
 | 
			
		||||
    QString symbolTo = (curIndex == curr::XMR) ? "BTC" : "XMR";
 | 
			
		||||
 | 
			
		||||
    if(amount.isEmpty()) {
 | 
			
		||||
        ui->xmrLabelEstimate->setText(QString("0.00 %1").arg(symbolTo));
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    auto amount_num = amount.toDouble();
 | 
			
		||||
    auto amount_converted = AppContext::prices->convert(symbolFrom, symbolTo, amount_num);
 | 
			
		||||
    auto amount_converted_str = QString::number(amount_converted, 'f', 2);
 | 
			
		||||
 | 
			
		||||
    auto fiat_cur = config()->get(Config::preferredFiatCurrency).toString();
 | 
			
		||||
    auto amount_fiat = AppContext::prices->convert(symbolFrom, fiat_cur, amount_num);
 | 
			
		||||
    auto amount_fiat_str = QString::number(amount_fiat, 'f', 2);
 | 
			
		||||
 | 
			
		||||
    ui->xmrLabelEstimate->setText(QString("%1 %2, %3 %4").arg(amount_converted_str, symbolTo, amount_fiat_str, fiat_cur));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onGetRates() {
 | 
			
		||||
    ui->btnGetRates->setEnabled(false);
 | 
			
		||||
    ui->btnCreate->setEnabled(false);
 | 
			
		||||
    emit getRates();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onConnectionError(QString msg) {
 | 
			
		||||
    ui->btnGetRates->setEnabled(true);
 | 
			
		||||
    ui->btnCreate->setEnabled(false);
 | 
			
		||||
    msg = QString("%1\n\n%2").arg(msg).arg(m_regionBlockMessage);
 | 
			
		||||
    QMessageBox::warning(this, "XMR.To Connection Error", msg);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onConnectionSuccess() {
 | 
			
		||||
    ui->btnGetRates->setEnabled(true);
 | 
			
		||||
    ui->btnCreate->setEnabled(true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onRatesUpdated(XmrToRates rates) {
 | 
			
		||||
    ui->label_rate->setText(QString("%1 BTC").arg(QString::number(rates.price)));
 | 
			
		||||
    ui->label_minimum->setText(QString("%1 BTC").arg(QString::number(rates.lower_limit)));
 | 
			
		||||
    ui->label_maximum->setText(QString("%1 BTC").arg(QString::number(rates.upper_limit)));
 | 
			
		||||
 | 
			
		||||
    if(!m_ratesDisplayed) {
 | 
			
		||||
        ui->ratesLayout->setVisible(true);
 | 
			
		||||
        m_ratesDisplayed = true;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onInitiateTransaction() {
 | 
			
		||||
    ui->btnCreate->setEnabled(false);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::onEndTransaction() {
 | 
			
		||||
    ui->btnCreate->setEnabled(true);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void XMRToWidget::showInfoDialog() {
 | 
			
		||||
    QModelIndex index = ui->historyTable->currentIndex();
 | 
			
		||||
    XmrToOrder *order = this->tableModel->orders->at(index.row());
 | 
			
		||||
    auto *dialog = new XmrToInfoDialog(order, this);
 | 
			
		||||
    dialog->exec();
 | 
			
		||||
    dialog->deleteLater();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
XMRToWidget::~XMRToWidget() {
 | 
			
		||||
    delete ui;
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue