static int preparedata(char *buf, long end, FILE *from) { long current = ftell(from); int diff = (int)(end - current); int amount; if(current < 0) die("ftell"); debug(4, "amount prepared to be sent: %d", copyamount(diff)); amount = fread(buf, sizeof(char), copyamount(diff), from); if(ferror(from)) die("read"); if(feof(from) || current == end) return 0; return amount; }
receivecoinsdialog::receivecoinsdialog(qwidget *parent) : qdialog(parent), ui(new ui::receivecoinsdialog), model(0) { ui->setupui(this); #ifdef q_os_mac // icons on push buttons are very uncommon on mac ui->clearbutton->seticon(qicon()); ui->receivebutton->seticon(qicon()); ui->showrequestbutton->seticon(qicon()); ui->removerequestbutton->seticon(qicon()); #else ui->clearbutton->seticon(singlecoloricon(":/icons/remove")); ui->receivebutton->seticon(singlecoloricon(":/icons/receiving_addresses")); ui->showrequestbutton->seticon(singlecoloricon(":/icons/edit")); ui->removerequestbutton->seticon(singlecoloricon(":/icons/remove")); #endif // context menu actions qaction *copylabelaction = new qaction(tr("copy label"), this); qaction *copymessageaction = new qaction(tr("copy message"), this); qaction *copyamountaction = new qaction(tr("copy amount"), this); // context menu contextmenu = new qmenu(); contextmenu->addaction(copylabelaction); contextmenu->addaction(copymessageaction); contextmenu->addaction(copyamountaction); // context menu signals connect(ui->recentrequestsview, signal(customcontextmenurequested(qpoint)), this, slot(showmenu(qpoint))); connect(copylabelaction, signal(triggered()), this, slot(copylabel())); connect(copymessageaction, signal(triggered()), this, slot(copymessage())); connect(copyamountaction, signal(triggered()), this, slot(copyamount())); connect(ui->clearbutton, signal(clicked()), this, slot(clear())); }
transactionview::transactionview(qwidget *parent) : qwidget(parent), model(0), transactionproxymodel(0), transactionview(0) { // build filter row setcontentsmargins(0,0,0,0); qhboxlayout *hlayout = new qhboxlayout(); hlayout->setcontentsmargins(0,0,0,0); #ifdef q_os_mac hlayout->setspacing(5); hlayout->addspacing(26); #else hlayout->setspacing(0); hlayout->addspacing(23); #endif watchonlywidget = new qcombobox(this); watchonlywidget->setfixedwidth(24); watchonlywidget->additem("", transactionfilterproxy::watchonlyfilter_all); watchonlywidget->additem(singlecoloricon(":/icons/eye_plus"), "", transactionfilterproxy::watchonlyfilter_yes); watchonlywidget->additem(singlecoloricon(":/icons/eye_minus"), "", transactionfilterproxy::watchonlyfilter_no); hlayout->addwidget(watchonlywidget); datewidget = new qcombobox(this); #ifdef q_os_mac datewidget->setfixedwidth(121); #else datewidget->setfixedwidth(120); #endif datewidget->additem(tr("all"), all); datewidget->additem(tr("today"), today); datewidget->additem(tr("this week"), thisweek); datewidget->additem(tr("this month"), thismonth); datewidget->additem(tr("last month"), lastmonth); datewidget->additem(tr("this year"), thisyear); datewidget->additem(tr("range..."), range); hlayout->addwidget(datewidget); typewidget = new qcombobox(this); #ifdef q_os_mac typewidget->setfixedwidth(121); #else typewidget->setfixedwidth(120); #endif typewidget->additem(tr("all"), transactionfilterproxy::all_types); typewidget->additem(tr("received with"), transactionfilterproxy::type(transactionrecord::recvwithaddress) | transactionfilterproxy::type(transactionrecord::recvfromother)); typewidget->additem(tr("sent to"), transactionfilterproxy::type(transactionrecord::sendtoaddress) | transactionfilterproxy::type(transactionrecord::sendtoother)); typewidget->additem(tr("to yourself"), transactionfilterproxy::type(transactionrecord::sendtoself)); typewidget->additem(tr("mined"), transactionfilterproxy::type(transactionrecord::generated)); typewidget->additem(tr("other"), transactionfilterproxy::type(transactionrecord::other)); hlayout->addwidget(typewidget); addresswidget = new qlineedit(this); #if qt_version >= 0x040700 addresswidget->setplaceholdertext(tr("enter address or label to search")); #endif hlayout->addwidget(addresswidget); amountwidget = new qlineedit(this); #if qt_version >= 0x040700 amountwidget->setplaceholdertext(tr("min amount")); #endif #ifdef q_os_mac amountwidget->setfixedwidth(97); #else amountwidget->setfixedwidth(100); #endif amountwidget->setvalidator(new qdoublevalidator(0, 1e20, 8, this)); hlayout->addwidget(amountwidget); qvboxlayout *vlayout = new qvboxlayout(this); vlayout->setcontentsmargins(0,0,0,0); vlayout->setspacing(0); qtableview *view = new qtableview(this); vlayout->addlayout(hlayout); vlayout->addwidget(createdaterangewidget()); vlayout->addwidget(view); vlayout->setspacing(0); int width = view->verticalscrollbar()->sizehint().width(); // cover scroll bar width with spacing #ifdef q_os_mac hlayout->addspacing(width+2); #else hlayout->addspacing(width); #endif // always show scroll bar view->setverticalscrollbarpolicy(qt::scrollbaralwayson); view->settabkeynavigation(false); view->setcontextmenupolicy(qt::customcontextmenu); view->installeventfilter(this); transactionview = view; // actions qaction *copyaddressaction = new qaction(tr("copy address"), this); qaction *copylabelaction = new qaction(tr("copy label"), this); qaction *copyamountaction = new qaction(tr("copy amount"), this); qaction *copytxidaction = new qaction(tr("copy transaction id"), this); qaction *editlabelaction = new qaction(tr("edit label"), this); qaction *showdetailsaction = new qaction(tr("show transaction details"), this); contextmenu = new qmenu(); contextmenu->addaction(copyaddressaction); contextmenu->addaction(copylabelaction); contextmenu->addaction(copyamountaction); contextmenu->addaction(copytxidaction); contextmenu->addaction(editlabelaction); contextmenu->addaction(showdetailsaction); mapperthirdpartytxurls = new qsignalmapper(this); // connect actions connect(mapperthirdpartytxurls, signal(mapped(qstring)), this, slot(openthirdpartytxurl(qstring))); connect(datewidget, signal(activated(int)), this, slot(choosedate(int))); connect(typewidget, signal(activated(int)), this, slot(choosetype(int))); connect(watchonlywidget, signal(activated(int)), this, slot(choosewatchonly(int))); connect(addresswidget, signal(textchanged(qstring)), this, slot(changedprefix(qstring))); connect(amountwidget, signal(textchanged(qstring)), this, slot(changedamount(qstring))); connect(view, signal(doubleclicked(qmodelindex)), this, signal(doubleclicked(qmodelindex))); connect(view, signal(customcontextmenurequested(qpoint)), this, slot(contextualmenu(qpoint))); connect(copyaddressaction, signal(triggered()), this, slot(copyaddress())); connect(copylabelaction, signal(triggered()), this, slot(copylabel())); connect(copyamountaction, signal(triggered()), this, slot(copyamount())); connect(copytxidaction, signal(triggered()), this, slot(copytxid())); connect(editlabelaction, signal(triggered()), this, slot(editlabel())); connect(showdetailsaction, signal(triggered()), this, slot(showdetails())); }