@ -20,6 +20,7 @@
# include <QComboBox>
# include <QComboBox>
# include <QDateTimeEdit>
# include <QDateTimeEdit>
# include <QDesktopServices>
# include <QDoubleValidator>
# include <QDoubleValidator>
# include <QHBoxLayout>
# include <QHBoxLayout>
# include <QHeaderView>
# include <QHeaderView>
@ -28,7 +29,9 @@
# include <QMenu>
# include <QMenu>
# include <QPoint>
# include <QPoint>
# include <QScrollBar>
# include <QScrollBar>
# include <QSignalMapper>
# include <QTableView>
# include <QTableView>
# include <QUrl>
# include <QVBoxLayout>
# include <QVBoxLayout>
TransactionView : : TransactionView ( QWidget * parent ) :
TransactionView : : TransactionView ( QWidget * parent ) :
@ -138,7 +141,11 @@ TransactionView::TransactionView(QWidget *parent) :
contextMenu - > addAction ( editLabelAction ) ;
contextMenu - > addAction ( editLabelAction ) ;
contextMenu - > addAction ( showDetailsAction ) ;
contextMenu - > addAction ( showDetailsAction ) ;
mapperThirdPartyTxUrls = new QSignalMapper ( this ) ;
// Connect actions
// Connect actions
connect ( mapperThirdPartyTxUrls , SIGNAL ( mapped ( QString ) ) , this , SLOT ( openThirdPartyTxUrl ( QString ) ) ) ;
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 ( addressWidget , SIGNAL ( textChanged ( QString ) ) , this , SLOT ( changedPrefix ( QString ) ) ) ;
connect ( addressWidget , SIGNAL ( textChanged ( QString ) ) , this , SLOT ( changedPrefix ( QString ) ) ) ;
@ -183,6 +190,25 @@ void TransactionView::setModel(WalletModel *model)
transactionView - > setColumnWidth ( TransactionTableModel : : Amount , AMOUNT_MINIMUM_COLUMN_WIDTH ) ;
transactionView - > setColumnWidth ( TransactionTableModel : : Amount , AMOUNT_MINIMUM_COLUMN_WIDTH ) ;
columnResizingFixer = new GUIUtil : : TableViewLastColumnResizingFixer ( transactionView , AMOUNT_MINIMUM_COLUMN_WIDTH , MINIMUM_COLUMN_WIDTH ) ;
columnResizingFixer = new GUIUtil : : TableViewLastColumnResizingFixer ( transactionView , AMOUNT_MINIMUM_COLUMN_WIDTH , MINIMUM_COLUMN_WIDTH ) ;
if ( model - > getOptionsModel ( ) )
{
// Add third party transaction URLs to context menu
QStringList listUrls = model - > getOptionsModel ( ) - > getThirdPartyTxUrls ( ) . split ( " | " , QString : : SkipEmptyParts ) ;
for ( int i = 0 ; i < listUrls . size ( ) ; + + i )
{
QString host = QUrl ( listUrls [ i ] . trimmed ( ) , QUrl : : StrictMode ) . host ( ) ;
if ( ! host . isEmpty ( ) )
{
QAction * thirdPartyTxUrlAction = new QAction ( host , this ) ; // use host as menu item label
if ( i = = 0 )
contextMenu - > addSeparator ( ) ;
contextMenu - > addAction ( thirdPartyTxUrlAction ) ;
connect ( thirdPartyTxUrlAction , SIGNAL ( triggered ( ) ) , mapperThirdPartyTxUrls , SLOT ( map ( ) ) ) ;
mapperThirdPartyTxUrls - > setMapping ( thirdPartyTxUrlAction , listUrls [ i ] . trimmed ( ) ) ;
}
}
}
}
}
}
}
@ -383,6 +409,15 @@ void TransactionView::showDetails()
}
}
}
}
void TransactionView : : openThirdPartyTxUrl ( QString url )
{
if ( ! transactionView | | ! transactionView - > selectionModel ( ) )
return ;
QModelIndexList selection = transactionView - > selectionModel ( ) - > selectedRows ( 0 ) ;
if ( ! selection . isEmpty ( ) )
QDesktopServices : : openUrl ( QUrl : : fromUserInput ( url . replace ( " %s " , selection . at ( 0 ) . data ( TransactionTableModel : : TxHashRole ) . toString ( ) ) ) ) ;
}
QWidget * TransactionView : : createDateRangeWidget ( )
QWidget * TransactionView : : createDateRangeWidget ( )
{
{
dateRangeWidget = new QFrame ( ) ;
dateRangeWidget = new QFrame ( ) ;