// Copyright (c) 2011-2015 The Cryptonote developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include #include #include "MainWindow.h" #include "SortedTransactionsModel.h" #include "TransactionsFrame.h" #include "TransactionDetailsDialog.h" #include "TransactionsListModel.h" #include "TransactionsModel.h" #include "ui_transactionsframe.h" namespace WalletGui { TransactionsFrame::TransactionsFrame(QWidget* _parent) : QFrame(_parent), m_ui(new Ui::TransactionsFrame), m_transactionsModel(new TransactionsListModel) { m_ui->setupUi(this); m_ui->m_transactionsView->setModel(m_transactionsModel.data()); m_ui->m_transactionsView->header()->setSectionResizeMode(TransactionsModel::COLUMN_STATE, QHeaderView::Fixed); m_ui->m_transactionsView->header()->resizeSection(TransactionsModel::COLUMN_STATE, 25); m_ui->m_transactionsView->header()->resizeSection(TransactionsModel::COLUMN_DATE, 140); m_ui->m_transactionsView->header()->resizeSection(TransactionsModel::COLUMN_ADDRESS, 400); } TransactionsFrame::~TransactionsFrame() { } void TransactionsFrame::scrollToTransaction(const QModelIndex& _index) { QModelIndex sortedModelIndex = SortedTransactionsModel::instance().mapFromSource(_index); QModelIndex index = static_cast(m_ui->m_transactionsView->model())->mapFromSource(sortedModelIndex); m_ui->m_transactionsView->scrollTo(index); m_ui->m_transactionsView->setFocus(); m_ui->m_transactionsView->setCurrentIndex(index); } void TransactionsFrame::exportToCsv() { QString file = QFileDialog::getSaveFileName(&MainWindow::instance(), tr("Select CSV file"), QDir::homePath(), "CSV (*.csv)"); if (!file.isEmpty()) { QByteArray csv = TransactionsModel::instance().toCsv(); QFile f(file); if (f.open(QIODevice::WriteOnly | QIODevice::Truncate)) { f.write(csv); f.close(); } } } void TransactionsFrame::showTransactionDetails(const QModelIndex& _index) { if (!_index.isValid()) { return; } TransactionDetailsDialog dlg(_index, &MainWindow::instance()); dlg.exec(); } }