@ -33,6 +33,7 @@
# include <QScrollBar>
# include <QScrollBar>
# include <QSignalMapper>
# include <QSignalMapper>
# include <QTableView>
# include <QTableView>
# include <QTimer>
# include <QUrl>
# include <QUrl>
# include <QVBoxLayout>
# include <QVBoxLayout>
@ -112,6 +113,17 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
amountWidget - > setValidator ( new QDoubleValidator ( 0 , 1e20 , 8 , this ) ) ;
amountWidget - > setValidator ( new QDoubleValidator ( 0 , 1e20 , 8 , this ) ) ;
hlayout - > addWidget ( amountWidget ) ;
hlayout - > addWidget ( amountWidget ) ;
// Delay before filtering transactions in ms
static const int input_filter_delay = 200 ;
QTimer * amount_typing_delay = new QTimer ( this ) ;
amount_typing_delay - > setSingleShot ( true ) ;
amount_typing_delay - > setInterval ( input_filter_delay ) ;
QTimer * prefix_typing_delay = new QTimer ( this ) ;
prefix_typing_delay - > setSingleShot ( true ) ;
prefix_typing_delay - > setInterval ( input_filter_delay ) ;
QVBoxLayout * vlayout = new QVBoxLayout ( this ) ;
QVBoxLayout * vlayout = new QVBoxLayout ( this ) ;
vlayout - > setContentsMargins ( 0 , 0 , 0 , 0 ) ;
vlayout - > setContentsMargins ( 0 , 0 , 0 , 0 ) ;
vlayout - > setSpacing ( 0 ) ;
vlayout - > setSpacing ( 0 ) ;
@ -173,8 +185,10 @@ TransactionView::TransactionView(const PlatformStyle *platformStyle, QWidget *pa
connect ( dateWidget , SIGNAL ( activated ( int ) ) , this , SLOT ( chooseDate ( int ) ) ) ;
connect ( dateWidget , SIGNAL ( activated ( int ) ) , this , SLOT ( chooseDate ( int ) ) ) ;
connect ( typeWidget , SIGNAL ( activated ( int ) ) , this , SLOT ( chooseType ( int ) ) ) ;
connect ( typeWidget , SIGNAL ( activated ( int ) ) , this , SLOT ( chooseType ( int ) ) ) ;
connect ( watchOnlyWidget , SIGNAL ( activated ( int ) ) , this , SLOT ( chooseWatchonly ( int ) ) ) ;
connect ( watchOnlyWidget , SIGNAL ( activated ( int ) ) , this , SLOT ( chooseWatchonly ( int ) ) ) ;
connect ( addressWidget , SIGNAL ( textChanged ( QString ) ) , this , SLOT ( changedPrefix ( QString ) ) ) ;
connect ( amountWidget , SIGNAL ( textChanged ( QString ) ) , amount_typing_delay , SLOT ( start ( ) ) ) ;
connect ( amountWidget , SIGNAL ( textChanged ( QString ) ) , this , SLOT ( changedAmount ( QString ) ) ) ;
connect ( amount_typing_delay , SIGNAL ( timeout ( ) ) , this , SLOT ( changedAmount ( ) ) ) ;
connect ( addressWidget , SIGNAL ( textChanged ( QString ) ) , prefix_typing_delay , SLOT ( start ( ) ) ) ;
connect ( prefix_typing_delay , SIGNAL ( timeout ( ) ) , this , SLOT ( changedPrefix ( ) ) ) ;
connect ( view , SIGNAL ( doubleClicked ( QModelIndex ) ) , this , SIGNAL ( doubleClicked ( QModelIndex ) ) ) ;
connect ( view , SIGNAL ( doubleClicked ( QModelIndex ) ) , this , SIGNAL ( doubleClicked ( QModelIndex ) ) ) ;
connect ( view , SIGNAL ( customContextMenuRequested ( QPoint ) ) , this , SLOT ( contextualMenu ( QPoint ) ) ) ;
connect ( view , SIGNAL ( customContextMenuRequested ( QPoint ) ) , this , SLOT ( contextualMenu ( QPoint ) ) ) ;
@ -312,20 +326,19 @@ void TransactionView::chooseWatchonly(int idx)
( TransactionFilterProxy : : WatchOnlyFilter ) watchOnlyWidget - > itemData ( idx ) . toInt ( ) ) ;
( TransactionFilterProxy : : WatchOnlyFilter ) watchOnlyWidget - > itemData ( idx ) . toInt ( ) ) ;
}
}
void TransactionView : : changedPrefix ( const QString & prefix )
void TransactionView : : changedPrefix ( )
{
{
if ( ! transactionProxyModel )
if ( ! transactionProxyModel )
return ;
return ;
transactionProxyModel - > setAddressPrefix ( prefix ) ;
transactionProxyModel - > setAddressPrefix ( addressWidget - > text ( ) ) ;
}
}
void TransactionView : : changedAmount ( const QString & amount )
void TransactionView : : changedAmount ( )
{
{
if ( ! transactionProxyModel )
if ( ! transactionProxyModel )
return ;
return ;
CAmount amount_parsed = 0 ;
CAmount amount_parsed = 0 ;
if ( BitcoinUnits : : parse ( model - > getOptionsModel ( ) - > getDisplayUnit ( ) , amount , & amount_parsed ) )
if ( BitcoinUnits : : parse ( model - > getOptionsModel ( ) - > getDisplayUnit ( ) , amountWidget - > text ( ) , & amount_parsed ) ) {
{
transactionProxyModel - > setMinAmount ( amount_parsed ) ;
transactionProxyModel - > setMinAmount ( amount_parsed ) ;
}
}
else
else