refactor: move ModelUtils into Utils

This commit is contained in:
tobtoht 2023-03-28 22:42:12 +02:00
parent 8fd583a649
commit 0abd323bbb
No known key found for this signature in database
GPG key ID: E45B10DD027D2472
21 changed files with 86 additions and 114 deletions

View file

@ -9,8 +9,8 @@
#include "dialog/ContactsDialog.h"
#include "libwalletqt/AddressBook.h"
#include "libwalletqt/WalletManager.h"
#include "model/ModelUtils.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
ContactsWidget::ContactsWidget(Wallet *wallet, QWidget *parent)
: QWidget(parent)
@ -85,12 +85,12 @@ void ContactsWidget::focusSearchbar() {
void ContactsWidget::copyAddress() {
QModelIndex index = ui->contacts->currentIndex();
ModelUtils::copyColumn(&index, AddressBookModel::Address);
Utils::copyColumn(&index, AddressBookModel::Address);
}
void ContactsWidget::copyName() {
QModelIndex index = ui->contacts->currentIndex();
ModelUtils::copyColumn(&index, AddressBookModel::Description);
Utils::copyColumn(&index, AddressBookModel::Description);
}
void ContactsWidget::payTo() {

View file

@ -9,8 +9,8 @@
#include "dialog/PaymentRequestDialog.h"
#include "dialog/QrCodeDialog.h"
#include "model/ModelUtils.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
ReceiveWidget::ReceiveWidget(Wallet *wallet, QWidget *parent)
: QWidget(parent)
@ -74,12 +74,12 @@ void ReceiveWidget::focusSearchbar() {
void ReceiveWidget::copyAddress() {
QModelIndex index = ui->addresses->currentIndex();
ModelUtils::copyColumn(&index, SubaddressModel::Address);
Utils::copyColumn(&index, SubaddressModel::Address);
}
void ReceiveWidget::copyLabel() {
QModelIndex index = ui->addresses->currentIndex();
ModelUtils::copyColumn(&index, SubaddressModel::Label);
Utils::copyColumn(&index, SubaddressModel::Label);
}
void ReceiveWidget::editLabel() {

View file

@ -8,7 +8,6 @@
#include "libwalletqt/SubaddressAccount.h"
#include "libwalletqt/WalletManager.h"
#include "model/ModelUtils.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
@ -23,7 +22,7 @@ AccountSwitcherDialog::AccountSwitcherDialog(Wallet *wallet, QWidget *parent)
m_proxyModel->setSourceModel(m_model);
ui->label_totalBalance->setFont(ModelUtils::getMonospaceFont());
ui->label_totalBalance->setFont(Utils::getMonospaceFont());
this->setWindowModality(Qt::WindowModal);

View file

@ -5,7 +5,7 @@
#include "ui_BalanceDialog.h"
#include "libwalletqt/WalletManager.h"
#include "model/ModelUtils.h"
#include "utils/Utils.h"
BalanceDialog::BalanceDialog(QWidget *parent, Wallet *wallet)
: WindowModalDialog(parent)
@ -17,13 +17,13 @@ BalanceDialog::BalanceDialog(QWidget *parent, Wallet *wallet)
"This will take 20 minutes on average.");
ui->label_unconfirmed->setText(WalletManager::displayAmount(wallet->balance() - wallet->unlockedBalance()));
ui->label_unconfirmed->setFont(ModelUtils::getMonospaceFont());
ui->label_unconfirmed->setFont(Utils::getMonospaceFont());
ui->label_spendable->setText(WalletManager::displayAmount(wallet->unlockedBalance()));
ui->label_spendable->setFont(ModelUtils::getMonospaceFont());
ui->label_spendable->setFont(Utils::getMonospaceFont());
ui->label_total->setText(WalletManager::displayAmount(wallet->balance()));
ui->label_total->setFont(ModelUtils::getMonospaceFont());
ui->label_total->setFont(Utils::getMonospaceFont());
this->adjustSize();
}

View file

@ -4,7 +4,6 @@
#include "OutputInfoDialog.h"
#include "ui_OutputInfoDialog.h"
#include "model/ModelUtils.h"
#include "utils/Utils.h"
OutputInfoDialog::OutputInfoDialog(CoinsInfo *cInfo, QWidget *parent)
@ -13,7 +12,7 @@ OutputInfoDialog::OutputInfoDialog(CoinsInfo *cInfo, QWidget *parent)
{
ui->setupUi(this);
QFont font = ModelUtils::getMonospaceFont();
QFont font = Utils::getMonospaceFont();
ui->label_pubKey->setFont(font);
ui->label_keyImage->setFont(font);
ui->label_txid->setFont(font);

View file

@ -12,7 +12,6 @@
#include "libwalletqt/Input.h"
#include "libwalletqt/Transfer.h"
#include "libwalletqt/WalletManager.h"
#include "model/ModelUtils.h"
#include "qrcode/QrCode.h"
#include "utils/AppData.h"
#include "utils/config.h"
@ -46,12 +45,12 @@ TxConfAdvDialog::TxConfAdvDialog(Wallet *wallet, const QString &description, QWi
connect(ui->btn_send, &QPushButton::clicked, this, &TxConfAdvDialog::broadcastTransaction);
connect(ui->btn_close, &QPushButton::clicked, this, &TxConfAdvDialog::closeDialog);
ui->amount->setFont(ModelUtils::getMonospaceFont());
ui->fee->setFont(ModelUtils::getMonospaceFont());
ui->total->setFont(ModelUtils::getMonospaceFont());
ui->amount->setFont(Utils::getMonospaceFont());
ui->fee->setFont(Utils::getMonospaceFont());
ui->total->setFont(Utils::getMonospaceFont());
ui->inputs->setFont(ModelUtils::getMonospaceFont());
ui->outputs->setFont(ModelUtils::getMonospaceFont());
ui->inputs->setFont(Utils::getMonospaceFont());
ui->outputs->setFont(Utils::getMonospaceFont());
this->adjustSize();
}

View file

@ -7,11 +7,11 @@
#include <QMessageBox>
#include "constants.h"
#include "model/ModelUtils.h"
#include "TxConfAdvDialog.h"
#include "utils/AppData.h"
#include "utils/ColorScheme.h"
#include "utils/config.h"
#include "utils/Utils.h"
TxConfDialog::TxConfDialog(Wallet *wallet, PendingTransaction *tx, const QString &address, const QString &description, QWidget *parent)
: WindowModalDialog(parent)
@ -46,9 +46,9 @@ TxConfDialog::TxConfDialog(Wallet *wallet, PendingTransaction *tx, const QString
int maxLengthFiat = Utils::maxLength(amounts_fiat);
std::for_each(amounts_fiat.begin(), amounts_fiat.end(), [maxLengthFiat](QString& amount){amount = amount.rightJustified(maxLengthFiat, ' ');});
ui->label_amount->setFont(ModelUtils::getMonospaceFont());
ui->label_fee->setFont(ModelUtils::getMonospaceFont());
ui->label_total->setFont(ModelUtils::getMonospaceFont());
ui->label_amount->setFont(Utils::getMonospaceFont());
ui->label_fee->setFont(Utils::getMonospaceFont());
ui->label_total->setFont(Utils::getMonospaceFont());
ui->label_amount->setText(QString("%1 (%2 %3)").arg(amounts[0], amounts_fiat[0], preferredCur));
ui->label_fee->setText(QString("%1 (%2 %3)").arg(amounts[1], amounts_fiat[1], preferredCur));
@ -57,8 +57,8 @@ TxConfDialog::TxConfDialog(Wallet *wallet, PendingTransaction *tx, const QString
auto subaddressIndex = m_wallet->subaddressIndex(address);
QString addressExtra;
ui->label_address->setText(ModelUtils::displayAddress(address, 2));
ui->label_address->setFont(ModelUtils::getMonospaceFont());
ui->label_address->setText(Utils::displayAddress(address, 2));
ui->label_address->setFont(Utils::getMonospaceFont());
ui->label_address->setToolTip(address);
if (subaddressIndex.isValid()) {

View file

@ -14,9 +14,8 @@
#include "libwalletqt/TransactionHistory.h"
#include "libwalletqt/Transfer.h"
#include "libwalletqt/WalletManager.h"
#include "model/ModelUtils.h"
#include "Utils.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
TxInfoDialog::TxInfoDialog(Wallet *wallet, TransactionInfo *txInfo, QWidget *parent)
: QDialog(parent)

View file

@ -7,7 +7,6 @@
#include <QMessageBox>
#include "libwalletqt/WalletManager.h"
#include "model/ModelUtils.h"
#include "utils/Utils.h"
VerifyProofDialog::VerifyProofDialog(Wallet *wallet, QWidget *parent)
@ -58,7 +57,7 @@ VerifyProofDialog::VerifyProofDialog(Wallet *wallet, QWidget *parent)
connect(m_wallet, &Wallet::transactionProofVerified, this, &VerifyProofDialog::onTxProofVerified);
connect(m_wallet, &Wallet::spendProofVerified, this, &VerifyProofDialog::onSpendProofVerified);
ui->input_formattedProof->setFont(ModelUtils::getMonospaceFont());
ui->input_formattedProof->setFont(Utils::getMonospaceFont());
}
void VerifyProofDialog::checkProof() {

View file

@ -6,7 +6,7 @@
#include <QRadioButton>
#include "model/ModelUtils.h"
#include "utils/Utils.h"
WalletCacheDebugDialog::WalletCacheDebugDialog(Wallet *wallet, QWidget *parent)
: WindowModalDialog(parent)
@ -15,7 +15,7 @@ WalletCacheDebugDialog::WalletCacheDebugDialog(Wallet *wallet, QWidget *parent)
{
ui->setupUi(this);
ui->output->setFont(ModelUtils::getMonospaceFont());
ui->output->setFont(Utils::getMonospaceFont());
connect(ui->m_blockchain, &QRadioButton::pressed, [this]{
this->setOutput(m_wallet->printBlockchain());

View file

@ -3,9 +3,8 @@
#include "AddressBookModel.h"
#include "AddressBook.h"
#include "ModelUtils.h"
#include "utils/Utils.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
AddressBookModel::AddressBookModel(QObject *parent, AddressBook *addressBook)
: QAbstractTableModel(parent)
@ -78,7 +77,7 @@ QVariant AddressBookModel::data(const QModelIndex &index, int role) const
{
QString address = row.address();
if (!m_showFullAddresses && role != Qt::UserRole) {
address = ModelUtils::displayAddress(address);
address = Utils::displayAddress(address);
}
result = address;
break;
@ -93,7 +92,7 @@ QVariant AddressBookModel::data(const QModelIndex &index, int role) const
else if (role == Qt::FontRole) {
switch (index.column()) {
case Address:
result = ModelUtils::getMonospaceFont();
result = Utils::getMonospaceFont();
}
}
else if (role == Qt::DecorationRole) {

View file

@ -4,10 +4,10 @@
#include "CoinsModel.h"
#include "CoinsInfo.h"
#include "Coins.h"
#include "ModelUtils.h"
#include "constants.h"
#include "utils/ColorScheme.h"
#include "utils/Icons.h"
#include "utils/Utils.h"
#include "libwalletqt/WalletManager.h"
#include <QBrush>
@ -104,7 +104,7 @@ QVariant CoinsModel::data(const QModelIndex &index, int role) const
case PubKey:
case TxID:
case Address:
result = ModelUtils::getMonospaceFont();
result = Utils::getMonospaceFont();
}
}
else if (role == Qt::ToolTipRole) {
@ -224,7 +224,7 @@ QVariant CoinsModel::parseTransactionInfo(const CoinsInfo &cInfo, int column, in
case BlockHeight:
return cInfo.blockHeight();
case Address:
return ModelUtils::displayAddress(cInfo.address(), 1, "");
return Utils::displayAddress(cInfo.address(), 1, "");
case Label: {
if (!cInfo.description().isEmpty())
return cInfo.description();

View file

@ -1,42 +0,0 @@
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2023 The Monero Project
#include "ModelUtils.h"
#include <QDebug>
#include <QClipboard>
#include <QApplication>
#include <QFont>
#include <QFontDatabase>
#include <QFontInfo>
QString ModelUtils::displayAddress(const QString& address, int sections, const QString& sep) {
QStringList list;
if (sections < 1) sections = 1;
for (int i = 0; i < sections; i += 1) {
list << address.mid(i*5, 5);
}
list << ""; // utf-8 Horizontal Ellipsis
for (int i = sections; i > 0; i -= 1) {
list << address.mid(address.length() - i * 5, 5);
}
return list.join(sep);
}
void ModelUtils::copyColumn(QModelIndex *index, int column) {
QString string(index->model()->data(index->siblingAtColumn(column), Qt::UserRole).toString());
QClipboard * clipboard = QApplication::clipboard();
if (!clipboard) {
qWarning() << "Unable to access clipboard";
return;
}
clipboard->setText(string);
}
QFont ModelUtils::getMonospaceFont()
{
if (QFontInfo(QApplication::font()).fixedPitch()) {
return QApplication::font();
}
return QFontDatabase::systemFont(QFontDatabase::FixedFont);
}

View file

@ -1,18 +0,0 @@
// SPDX-License-Identifier: BSD-3-Clause
// SPDX-FileCopyrightText: 2020-2023 The Monero Project
#ifndef FEATHER_MODELUTILS_H
#define FEATHER_MODELUTILS_H
#include <QString>
#include <QModelIndex>
class ModelUtils {
public:
static QString displayAddress(const QString& address, int sections = 3, const QString & sep = " ");
static void copyColumn(QModelIndex * index, int column);
static QFont getMonospaceFont();
};
#endif //FEATHER_MODELUTILS_H

View file

@ -4,9 +4,8 @@
#include "SubaddressAccountModel.h"
#include "SubaddressAccount.h"
#include <QDebug>
#include <QFont>
#include "ModelUtils.h"
#include "utils/Utils.h"
SubaddressAccountModel::SubaddressAccountModel(QObject *parent, SubaddressAccount *subaddressAccount)
: QAbstractTableModel(parent)
@ -54,7 +53,7 @@ QVariant SubaddressAccountModel::data(const QModelIndex &index, int role) const
}
else if (role == Qt::FontRole) {
if (index.column() == Column::Balance || index.column() == Column::UnlockedBalance) {
result = ModelUtils::getMonospaceFont();
result = Utils::getMonospaceFont();
}
}
else if (role == Qt::TextAlignmentRole) {

View file

@ -3,13 +3,14 @@
#include "SubaddressModel.h"
#include "Subaddress.h"
#include "ModelUtils.h"
#include "utils/ColorScheme.h"
#include <QPoint>
#include <QColor>
#include <QBrush>
#include "utils/ColorScheme.h"
#include "utils/Utils.h"
SubaddressModel::SubaddressModel(QObject *parent, Subaddress *subaddress)
: QAbstractTableModel(parent)
, m_subaddress(subaddress)
@ -69,7 +70,7 @@ QVariant SubaddressModel::data(const QModelIndex &index, int role) const
switch(index.column()) {
case Address:
{
result = ModelUtils::getMonospaceFont();
result = Utils::getMonospaceFont();
}
}
}
@ -104,7 +105,7 @@ QVariant SubaddressModel::parseSubaddressRow(const Monero::SubaddressRow &subadd
{
QString address = QString::fromStdString(subaddress.getAddress());
if (!m_showFullAddresses && role != Qt::UserRole) {
address = ModelUtils::displayAddress(address);
address = Utils::displayAddress(address);
}
return address;
}

View file

@ -3,7 +3,7 @@
#include "SubaddressView.h"
#include "model/ModelUtils.h"
#include "utils/Utils.h"
SubaddressView::SubaddressView(QWidget *parent) : QTreeView(parent) {
@ -15,7 +15,7 @@ void SubaddressView::keyPressEvent(QKeyEvent *event){
if(!selectedIndexes().isEmpty()){
if(event->matches(QKeySequence::Copy)){
QModelIndex index = this->currentIndex();
ModelUtils::copyColumn(&index, index.column());
Utils::copyColumn(&index, index.column());
}
else
QTreeView::keyPressEvent(event);

View file

@ -9,7 +9,7 @@
#include "utils/ColorScheme.h"
#include "utils/Icons.h"
#include "utils/AppData.h"
#include "ModelUtils.h"
#include "utils/Utils.h"
TransactionHistoryModel::TransactionHistoryModel(QObject *parent)
: QAbstractTableModel(parent),
@ -127,7 +127,7 @@ QVariant TransactionHistoryModel::data(const QModelIndex &index, int role) const
switch(index.column()) {
case Column::TxID:
{
result = ModelUtils::getMonospaceFont();
result = Utils::getMonospaceFont();
}
}
}
@ -163,7 +163,7 @@ QVariant TransactionHistoryModel::parseTransactionInfo(const TransactionInfo &tI
return amount;
}
case Column::TxID: {
return ModelUtils::displayAddress(tInfo.hash(), 1);
return Utils::displayAddress(tInfo.hash(), 1);
}
case Column::FiatAmount:
{

View file

@ -6,6 +6,7 @@
#include <QClipboard>
#include <QDesktopServices>
#include <QPushButton>
#include <QFontDatabase>
#include "constants.h"
#include "networktype.h"
@ -229,6 +230,16 @@ QString copyFromClipboard() {
return clipboard->text();
}
void copyColumn(QModelIndex *index, int column) {
QString string(index->model()->data(index->siblingAtColumn(column), Qt::UserRole).toString());
QClipboard * clipboard = QApplication::clipboard();
if (!clipboard) {
qWarning() << "Unable to access clipboard";
return;
}
clipboard->setText(string);
}
QString xdgDesktopEntry(){
return QString(
"[Desktop Entry]\n"
@ -507,6 +518,19 @@ void desktopNotify(const QString &title, const QString &message, int duration) {
}
}
QString displayAddress(const QString& address, int sections, const QString& sep) {
QStringList list;
if (sections < 1) sections = 1;
for (int i = 0; i < sections; i += 1) {
list << address.mid(i*5, 5);
}
list << ""; // utf-8 Horizontal Ellipsis
for (int i = sections; i > 0; i -= 1) {
list << address.mid(address.length() - i * 5, 5);
}
return list.join(sep);
}
QTextCharFormat addressTextFormat(const SubaddressIndex &index, quint64 amount) {
QTextCharFormat rec;
if (index.isPrimary()) {
@ -566,6 +590,14 @@ QString getAccountName() {
return accountName;
}
QFont getMonospaceFont()
{
if (QFontInfo(QApplication::font()).fixedPitch()) {
return QApplication::font();
}
return QFontDatabase::systemFont(QFontDatabase::FixedFont);
}
QFont relativeFont(int delta) {
auto font = QApplication::font();
font.setPointSize(font.pointSize() + delta);

View file

@ -36,6 +36,7 @@ namespace Utils
void copyToClipboard(const QString &string);
QString copyFromClipboard();
void copyColumn(QModelIndex * index, int column);
QString xdgDesktopEntry();
bool xdgDesktopEntryWrite(const QString &path);
@ -60,11 +61,16 @@ namespace Utils
void externalLinkWarning(QWidget *parent, const QString &url);
void desktopNotify(const QString &title, const QString &message, int duration);
QString displayAddress(const QString& address, int sections = 3, const QString & sep = " ");
QTextCharFormat addressTextFormat(const SubaddressIndex &index, quint64 amount);
QFont getMonospaceFont();
QFont relativeFont(int delta);
void applicationLogHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg);
QString barrayToString(const QByteArray &data);
QString getAccountName();
QFont relativeFont(int delta);
bool isLocalUrl(const QUrl &url);

View file

@ -11,12 +11,12 @@
#include <QtGlobal>
#include "libwalletqt/WalletManager.h"
#include "model/ModelUtils.h"
#include "qrcode_utils/QrCodeUtils.h"
#include "utils/Utils.h"
PayToEdit::PayToEdit(QWidget *parent) : QPlainTextEdit(parent)
{
this->setFont(ModelUtils::getMonospaceFont());
this->setFont(Utils::getMonospaceFont());
connect(this->document(), &QTextDocument::contentsChanged, this, &PayToEdit::updateSize);
connect(this, &QPlainTextEdit::textChanged, this, &PayToEdit::checkText);