Files
triangles_v5/src/qt/transactionview.h
T
sami7777 20151a2248 Batch transaction notifications, add RPC console filtering, macOS autostart
Prevent UI freezes during sync by batching wallet transaction notifications
with a 250ms debounce timer and full-refresh fallback for large batches.
Disable dynamic sorting and view updates on overview/transaction pages while
syncing. Add request/reply/error filter checkboxes to the RPC console with
in-memory message store. Implement macOS LaunchAgents-based autostart.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 17:51:13 -07:00

96 lines
2.0 KiB
C++

#ifndef TRANSACTIONVIEW_H
#define TRANSACTIONVIEW_H
#include <QWidget>
class WalletModel;
class TransactionFilterProxy;
namespace Ui {
class TransactionsPage;
}
QT_BEGIN_NAMESPACE
class QTableView;
class QComboBox;
class QLineEdit;
class QModelIndex;
class QMenu;
class QFrame;
class QDateTimeEdit;
QT_END_NAMESPACE
/** Widget showing the transaction list for a wallet, including a filter row.
Using the filter row, the user can view or export a subset of the transactions.
*/
class TransactionView : public QWidget
{
Q_OBJECT
public:
explicit TransactionView(QWidget *parent = 0);
~TransactionView();
void setModel(WalletModel *model);
// Date ranges for filter
enum DateEnum
{
All,
Today,
ThisWeek,
ThisMonth,
LastMonth,
ThisYear,
Range
};
private:
WalletModel *model;
TransactionFilterProxy *transactionProxyModel;
Ui::TransactionsPage *ui;
QTableView *transactionView;
bool transactionsSortOrderDown;
bool walletTransactionSyncing;
int transactionSortColumn;
Qt::SortOrder transactionSortOrder;
QComboBox *dateWidget;
QComboBox *typeWidget;
QLineEdit *addressWidget;
QLineEdit *amountWidget;
QMenu *contextMenu;
QFrame *dateRangeWidget;
QDateTimeEdit *dateFrom;
QDateTimeEdit *dateTo;
QWidget *createDateRangeWidget();
private slots:
void contextualMenu(const QPoint &);
void dateRangeChanged();
void showDetails();
void copyAddress();
void editLabel();
void copyLabel();
void copyAmount();
void copyTxID();
void setTransactionSyncState(bool syncing);
signals:
void doubleClicked(const QModelIndex&);
public slots:
void chooseDate(int idx);
void chooseType(int idx);
void changedPrefix(const QString &prefix);
void changedAmount(const QString &amount);
void exportClicked();
void focusTransaction(const QModelIndex&);
};
#endif // TRANSACTIONVIEW_H