def __init__(self, parent): QtGui.QDialog.__init__(self, parent) uic.loadUi(uic.getUiPath('addassetdialog.ui'), self) for wname in ['edtMoniker', 'edtColorDesc', 'edtUnit']: getattr(self, wname).focusInEvent = \ lambda e, name=wname: getattr(self, name).setStyleSheet('')
def __init__(self): QtGui.QMainWindow.__init__(self) uic.loadUi(uic.getUiPath('ngccc.ui'), self) self.overviewpage = OverviewPage(self) self.stackedWidget.addWidget(self.overviewpage) self.sendcoinspage = SendcoinsPage(self) self.stackedWidget.addWidget(self.sendcoinspage) self.assetspage = AssetsPage(self) self.stackedWidget.addWidget(self.assetspage) self.receivepage = ReceivePage(self) self.stackedWidget.addWidget(self.receivepage) self.historypage = HistoryPage(self) self.stackedWidget.addWidget(self.historypage) self.tradepage = TradePage(self) self.stackedWidget.addWidget(self.tradepage) self.bindActions() self.gotoOverviewPage() self.utxo_timer = QtCore.QTimer() self.utxo_timer.timeout.connect(self.update_utxo_fetcher) self.utxo_timer.start(2500) wallet.async_utxo_fetcher.start_thread() self._sys_excepthook = sys.excepthook sys.excepthook = self.excepthook self.connectionStatus = ConnectionStatus("Status: Unknown") self.statusBar().addWidget(self.connectionStatus)
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('assetspage.ui'), self) self.model = AssetTableModel(self) self.proxyModel = AssetProxyModel(self) self.proxyModel.setSourceModel(self.model) self.proxyModel.setDynamicSortFilter(True) self.proxyModel.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModel.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tableView.setModel(self.proxyModel) self.tableView.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tableView.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tableView.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.tableView.horizontalHeader().setResizeMode( 2, QtGui.QHeaderView.ResizeToContents) self.btnAddNewAsset.clicked.connect(self.btnAddNewAssetClicked) self.btnAddExistingAsset.clicked.connect( self.btnAddExistingAssetClicked) self.btnImportAssetFromJSON.clicked.connect( self.btnImportAssetFromJSONClicked)
def __init__(self, moniker, parent): QtGui.QDialog.__init__(self, parent) uic.loadUi(uic.getUiPath('newaddressdialog.ui'), self) monikers = wallet.get_all_monikers() self.cbMoniker.addItems(monikers) if moniker in monikers: self.cbMoniker.setCurrentIndex(monikers.index(moniker))
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('sendcoinspage.ui'), self) self.btnAddRecipient.clicked.connect(self.btnAddRecipientClicked) self.btnClearAll.clicked.connect(self.btnClearAllClicked) self.btnSend.clicked.connect(self.btnSendClicked) self.btnAddRecipientClicked()
def __init__(self): QtGui.QWidget.__init__(self) uic.loadUi(uic.getUiPath('sendcoinspage.ui'), self) self.btn_send.clicked.connect(self.on_btnSend) self.edt_address.returnPressed.connect(self.on_btnSend) self.edt_amount.editingFinished.connect( lambda: self.on_btnSend() if self.edt_amount.hasFocus() else 0) self.cb_monikers.currentIndexChanged.connect( self.updateAvailableBalance)
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('tradepage.ui'), self) wallet.p2ptrade_init() self.timer = QtCore.QTimer() self.timer.timeout.connect(self.update_offers) self.timer.start(2500) self.modelBuy = OffersTableModel(self) self.proxyModelBuy = OffersProxyModel(self) self.proxyModelBuy.setSourceModel(self.modelBuy) self.proxyModelBuy.setDynamicSortFilter(True) self.proxyModelBuy.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelBuy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvBuy.setModel(self.proxyModelBuy) self.tvBuy.hideColumn(3) self.tvBuy.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvBuy.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tvBuy.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.modelSell = OffersTableModel(self) self.proxyModelSell = OffersProxyModel(self) self.proxyModelSell.setSourceModel(self.modelSell) self.proxyModelSell.setDynamicSortFilter(True) self.proxyModelSell.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelSell.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvSell.setModel(self.proxyModelSell) self.tvSell.hideColumn(3) self.tvSell.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvSell.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tvSell.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.cbMoniker.currentIndexChanged.connect(self.cbMonikerIndexChanged) for wname in ['edtBuyQuantity', 'edtBuyPrice', 'edtSellQuantity', 'edtSellPrice']: getattr(self, wname).focusInEvent = \ lambda e, name=wname: getattr(self, name).setStyleSheet('') self.edtBuyQuantity.textChanged.connect(self.lblBuyTotalChange) self.edtBuyPrice.textChanged.connect(self.lblBuyTotalChange) self.btnBuy.clicked.connect(self.btnBuyClicked) self.tvBuy.doubleClicked.connect(self.tvBuyDoubleClicked) self.edtSellQuantity.textChanged.connect(self.lblSellTotalChange) self.edtSellPrice.textChanged.connect(self.lblSellTotalChange) self.btnSell.clicked.connect(self.btnSellClicked) self.tvSell.doubleClicked.connect(self.tvSellDoubleClicked)
def __init__(self, page): QtGui.QFrame.__init__(self) uic.loadUi(uic.getUiPath('sendcoinsentry.ui'), self) self.page = page self.edtAddress.focusInEvent = lambda *args: self.edtAddress.setStyleSheet('') self.edtAmount.focusInEvent = lambda *args: self.edtAmount.setStyleSheet('') self.cbMoniker.activated.connect(self.updateAvailableBalance) self.btnPaste.clicked.connect(self.btnPasteClicked) self.btnDelete.clicked.connect(self.btnDeleteClicked) self.update()
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('historypage.ui'), self) self.model = HistoryTableModel(self) self.tableView.setModel(self.model) self.tableView.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) for i in range(4): self.tableView.horizontalHeader().setResizeMode( i + 1, QtGui.QHeaderView.ResizeToContents)
def __init__(self): QtGui.QMainWindow.__init__(self) uic.loadUi(uic.getUiPath('ngccc.ui'), self) self.overviewpage = OverviewPage() self.stackedWidget.addWidget(self.overviewpage) self.sendcoinspage = SendcoinsPage() self.stackedWidget.addWidget(self.sendcoinspage) self.receivepage = ReceivePage() self.stackedWidget.addWidget(self.receivepage) self.bindActions() self.gotoOverviewPage()
def __init__(self, parent, data=None): QtGui.QDialog.__init__(self, parent) uic.loadUi(uic.getUiPath('addassetdialog.ui'), self) for wname in ['edtMoniker', 'edtColorDesc', 'edtUnit']: def clearBackground(event, wname=wname): getattr(self, wname).setStyleSheet('') QtGui.QLineEdit.focusInEvent(getattr(self, wname), event) getattr(self, wname).focusInEvent = clearBackground data = data or {} self.edtMoniker.setText(data.get('moniker', '')) self.edtColorDesc.setText(data.get('color_desc', '')) self.edtUnit.setText(data.get('unit', '')) self.btnBox.setFocus()
def __init__(self, parent): QtGui.QDialog.__init__(self, parent) uic.loadUi(uic.getUiPath('issuedialog.ui'), self) self.cbScheme.addItem('obc') for wname in ['edtMoniker', 'edtUnits', 'edtAtoms']: getattr(self, wname).focusInEvent = \ lambda e, name=wname: getattr(self, name).setStyleSheet('') self.edtUnits.textChanged.connect(self.changeTotalBTC) self.edtAtoms.textChanged.connect(self.changeTotalBTC) self.availableBTC = wallet.get_balance('bitcoin') self.lblTotalBTC.setToolTip('Available: %s bitcoin' % \ wallet.get_asset_definition('bitcoin').format_value(self.availableBTC))
def __init__(self, page): QtGui.QFrame.__init__(self) uic.loadUi(uic.getUiPath('sendcoinsentry.ui'), self) self.page = page for wname in ['edtAddress', 'edtAmount']: def clearBackground(event, wname=wname): widget = getattr(self, wname) widget.setStyleSheet('') widget.__class__.focusInEvent(widget, event) getattr(self, wname).focusInEvent = clearBackground self.cbMoniker.activated.connect(self.updateAvailableBalance) self.btnPaste.clicked.connect(self.btnPasteClicked) self.btnDelete.clicked.connect(self.btnDeleteClicked) self.update()
def __init__(self): QtGui.QMainWindow.__init__(self) uic.loadUi(uic.getUiPath('ngccc.ui'), self) self.overviewpage = OverviewPage(self) self.stackedWidget.addWidget(self.overviewpage) self.sendcoinspage = SendcoinsPage(self) self.stackedWidget.addWidget(self.sendcoinspage) self.assetspage = AssetsPage(self) self.stackedWidget.addWidget(self.assetspage) self.receivepage = ReceivePage(self) self.stackedWidget.addWidget(self.receivepage) self.tradepage = TradePage(self) self.stackedWidget.addWidget(self.tradepage) self.bindActions() self.gotoOverviewPage()
def __init__(self, parent): QtGui.QDialog.__init__(self, parent) uic.loadUi(uic.getUiPath('issuedialog.ui'), self) self.cbScheme.addItem('obc') for wname in ['edtMoniker', 'edtUnits', 'edtAtoms']: def clearBackground(event, wname=wname): getattr(self, wname).setStyleSheet('') QtGui.QLineEdit.focusInEvent(getattr(self, wname), event) getattr(self, wname).focusInEvent = clearBackground self.edtUnits.textChanged.connect(self.changeTotalBTC) self.edtAtoms.textChanged.connect(self.changeTotalBTC) self.availableBTC = wallet.get_balance('bitcoin') self.lblTotalBTC.setToolTip('Available: %s bitcoin' % \ wallet.get_asset_definition('bitcoin').format_value(self.availableBTC))
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath("assetspage.ui"), self) self.model = AssetTableModel(self) self.proxyModel = AssetProxyModel(self) self.proxyModel.setSourceModel(self.model) self.proxyModel.setDynamicSortFilter(True) self.proxyModel.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModel.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tableView.setModel(self.proxyModel) self.tableView.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tableView.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.tableView.horizontalHeader().setResizeMode(1, QtGui.QHeaderView.ResizeToContents) self.tableView.horizontalHeader().setResizeMode(2, QtGui.QHeaderView.ResizeToContents) self.btnAddNewAsset.clicked.connect(self.btnAddNewAssetClicked) self.btnAddExistingAsset.clicked.connect(self.btnAddExistingAssetClicked) self.btnImportAssetFromJSON.clicked.connect(self.btnImportAssetFromJSONClicked)
def __init__(self, parent): QtGui.QDialog.__init__(self, parent) uic.loadUi(uic.getUiPath("issuedialog.ui"), self) self.cbScheme.addItem("obc") for wname in ["edtMoniker", "edtUnits", "edtAtoms"]: def clearBackground(event, wname=wname): getattr(self, wname).setStyleSheet("") QtGui.QLineEdit.focusInEvent(getattr(self, wname), event) getattr(self, wname).focusInEvent = clearBackground self.edtUnits.textChanged.connect(self.changeTotalBTC) self.edtAtoms.textChanged.connect(self.changeTotalBTC) self.availableBTC = wallet.get_balance("bitcoin") self.lblTotalBTC.setToolTip( "Available: %s bitcoin" % wallet.get_asset_definition("bitcoin").format_value(self.availableBTC) )
def __init__(self): QtGui.QWidget.__init__(self) uic.loadUi(uic.getUiPath('receivepage.ui'), self) self.model = AddressTableModel(self) self.proxyModel = QtGui.QSortFilterProxyModel(self) self.proxyModel.setSourceModel(self.model) self.proxyModel.setDynamicSortFilter(True) self.proxyModel.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModel.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tableView.setModel(self.proxyModel) self.tableView.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tableView.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tableView.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.chk_onlyBitcoin.stateChanged.connect(self.on_chkOnlyBitcoin) self.btn_copy.clicked.connect(self.on_btnCopy) self.tableView.selectionModel().selectionChanged.connect( self.on_tableViewSelect)
def __init__(self): signal.signal(signal.SIGINT, signal.SIG_DFL) self.app = QtGui.QApplication([]) QtGui.QMainWindow.__init__(self) uic.loadUi(uic.getUiPath('ngcccbase.ui'), self) self.overviewpage = OverviewPage() self.stackedWidget.addWidget(self.overviewpage) self.bindOverviewPage() self.sendcoinspage = SendcoinsPage() self.stackedWidget.addWidget(self.sendcoinspage) self.bindSendcoinsPage() self.bindActions() self.move(QtGui.QApplication.desktop().screen().rect().center() - self.rect().center()) self.show() self.wallet = PersistentWallet() self.walletController = WalletController(self.wallet.get_model()) self.gotoOverviewPage() sys.exit(self.app.exec_())
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('receivepage.ui'), self) self.model = AddressTableModel(self) self.proxyModel = AddressProxyModel(self) self.proxyModel.setSourceModel(self.model) self.proxyModel.setDynamicSortFilter(True) self.proxyModel.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModel.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tableView.setModel(self.proxyModel) self.tableView.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tableView.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tableView.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.cbMoniker.activated.connect( lambda *args: self.setMonikerFilter(self.cbMoniker.currentText())) self.btnNew.clicked.connect(self.btnNewClicked) self.btnCopy.clicked.connect(self.btnCopyClicked) self.tableView.selectionModel().selectionChanged.connect( self.tableViewSelectionChanged)
def __init__(self): QtGui.QWidget.__init__(self) uic.loadUi(uic.getUiPath('overviewpage.ui'), self)
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('tradepage.ui'), self) wallet.p2ptrade_init() self.timer = QtCore.QTimer() self.timer.timeout.connect(self.update_agent) self.timer.start(2500) self.modelBuy = OffersTableModel(self) self.proxyModelBuy = OffersProxyModel(self) self.proxyModelBuy.setSourceModel(self.modelBuy) self.proxyModelBuy.setDynamicSortFilter(True) self.proxyModelBuy.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelBuy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvBuy.setModel(self.proxyModelBuy) self.tvBuy.hideColumn(3) self.tvBuy.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvBuy.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.tvBuy.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.modelSell = OffersTableModel(self) self.proxyModelSell = OffersProxyModel(self) self.proxyModelSell.setSourceModel(self.modelSell) self.proxyModelSell.setDynamicSortFilter(True) self.proxyModelSell.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelSell.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvSell.setModel(self.proxyModelSell) self.tvSell.hideColumn(3) self.tvSell.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvSell.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.tvSell.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.cbMoniker.currentIndexChanged.connect(self.cbMonikerIndexChanged) for wname in [ 'edtBuyQuantity', 'edtBuyPrice', 'edtSellQuantity', 'edtSellPrice' ]: def clearBackground(event, wname=wname): getattr(self, wname).setStyleSheet('') QtGui.QLineEdit.focusInEvent(getattr(self, wname), event) getattr(self, wname).focusInEvent = clearBackground self.edtBuyQuantity.textChanged.connect(self.lblBuyTotalChange) self.edtBuyPrice.textChanged.connect(self.lblBuyTotalChange) self.btnBuy.clicked.connect(self.btnBuyClicked) self.tvBuy.doubleClicked.connect(self.tvBuyDoubleClicked) self.edtSellQuantity.textChanged.connect(self.lblSellTotalChange) self.edtSellPrice.textChanged.connect(self.lblSellTotalChange) self.btnSell.clicked.connect(self.btnSellClicked) self.tvSell.doubleClicked.connect(self.tvSellDoubleClicked) self.need_update_offers = False def set_need_update_offers(data): self.need_update_offers = True wallet.p2p_agent.set_event_handler('offers_updated', set_need_update_offers)
def __init__(self): QtGui.QWidget.__init__(self) uic.loadUi(uic.getUiPath('overviewpage.ui'), self) self.cb_monikers.currentIndexChanged.connect(self.updateWallet)
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('tradepage.ui'), self) wallet.p2ptrade_init() self.timer = QtCore.QTimer() self.timer.timeout.connect(self.update_agent) self.timer.start(2500) self.modelBuy = OffersTableModel(self) self.proxyModelBuy = OffersProxyModel(self) self.proxyModelBuy.setSourceModel(self.modelBuy) self.proxyModelBuy.setDynamicSortFilter(True) self.proxyModelBuy.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelBuy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvBuy.setModel(self.proxyModelBuy) self.tvBuy.hideColumn(3) self.tvBuy.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvBuy.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tvBuy.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.modelSell = OffersTableModel(self) self.proxyModelSell = OffersProxyModel(self) self.proxyModelSell.setSourceModel(self.modelSell) self.proxyModelSell.setDynamicSortFilter(True) self.proxyModelSell.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelSell.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvSell.setModel(self.proxyModelSell) self.tvSell.hideColumn(3) self.tvSell.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvSell.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tvSell.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.cbMoniker.currentIndexChanged.connect(self.cbMonikerIndexChanged) for wname in ['edtBuyQuantity', 'edtBuyPrice', 'edtSellQuantity', 'edtSellPrice']: def clearBackground(event, wname=wname): getattr(self, wname).setStyleSheet('') QtGui.QLineEdit.focusInEvent(getattr(self, wname), event) getattr(self, wname).focusInEvent = clearBackground self.edtBuyQuantity.textChanged.connect(self.lblBuyTotalChange) self.edtBuyPrice.textChanged.connect(self.lblBuyTotalChange) self.btnBuy.clicked.connect(self.btnBuyClicked) self.tvBuy.doubleClicked.connect(self.tvBuyDoubleClicked) self.edtSellQuantity.textChanged.connect(self.lblSellTotalChange) self.edtSellPrice.textChanged.connect(self.lblSellTotalChange) self.btnSell.clicked.connect(self.btnSellClicked) self.tvSell.doubleClicked.connect(self.tvSellDoubleClicked) self.need_update_offers = False def set_need_update_offers(data): self.need_update_offers = True wallet.p2p_agent.set_event_handler('offers_updated', set_need_update_offers) def information_about_offer(offer, action='Create'): A, B = offer.get_data()['A'], offer.get_data()['B'] bitcoin = wallet.get_asset_definition('bitcoin') sell_offer = B['color_spec'] == '' asset = wallet.get_asset_definition_by_color_set( (A if sell_offer else B)['color_spec']) value = (A if sell_offer else B)['value'] total = (B if sell_offer else A)['value'] text = '{action} {type} offer {value} {moniker} for {price} btc. (Total: {total} btc)'.format(**{ 'action': action, 'type': 'sell' if sell_offer else 'buy', 'value': asset.format_value(value), 'moniker': asset.get_monikers()[0], 'price': bitcoin.format_value(total*asset.unit/value), 'total': bitcoin.format_value(total), }) QtGui.QMessageBox.information(self, '{action} offer'.format(action=action), text, QtGui.QMessageBox.Yes) wallet.p2p_agent.set_event_handler('register_my_offer', lambda offer: information_about_offer(offer, 'Create')) wallet.p2p_agent.set_event_handler('cancel_my_offer', lambda offer: information_about_offer(offer, 'Cancel'))
def __init__(self): QtGui.QWidget.__init__(self) uic.loadUi(uic.getUiPath('sendcoins.ui'), self)
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('tradepage.ui'), self) self.logger = logging.getLogger('ngcccbase.ui.trade') wallet.p2ptrade_init() self.timer = QtCore.QTimer() self.timer.timeout.connect(self.update_agent) self.timer.start(2500) self.modelBuy = OffersTableModel(self) self.proxyModelBuy = OffersProxyModel(self) self.proxyModelBuy.setSourceModel(self.modelBuy) self.proxyModelBuy.setDynamicSortFilter(True) self.proxyModelBuy.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelBuy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvBuy.setModel(self.proxyModelBuy) self.tvBuy.hideColumn(3) self.tvBuy.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvBuy.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tvBuy.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.modelSell = OffersTableModel(self) self.proxyModelSell = OffersProxyModel(self) self.proxyModelSell.setSourceModel(self.modelSell) self.proxyModelSell.setDynamicSortFilter(True) self.proxyModelSell.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelSell.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvSell.setModel(self.proxyModelSell) self.tvSell.hideColumn(3) self.tvSell.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvSell.horizontalHeader().setResizeMode( 0, QtGui.QHeaderView.Stretch) self.tvSell.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.cbMoniker.currentIndexChanged.connect(self.update_balance) for wname in ['edtBuyQuantity', 'edtBuyPrice', 'edtSellQuantity', 'edtSellPrice']: def clearBackground(event, wname=wname): getattr(self, wname).setStyleSheet('') QtGui.QLineEdit.focusInEvent(getattr(self, wname), event) getattr(self, wname).focusInEvent = clearBackground self.edtBuyQuantity.textChanged.connect(self.lblBuyTotalChange) self.edtBuyPrice.textChanged.connect(self.lblBuyTotalChange) self.btnBuy.clicked.connect(self.btnBuyClicked) self.tvBuy.doubleClicked.connect(self.tvBuyDoubleClicked) self.edtSellQuantity.textChanged.connect(self.lblSellTotalChange) self.edtSellPrice.textChanged.connect(self.lblSellTotalChange) self.btnSell.clicked.connect(self.btnSellClicked) self.tvSell.doubleClicked.connect(self.tvSellDoubleClicked) self.need_update_offers = False def set_need_update_offers(data): self.need_update_offers = True wallet.p2p_agent.set_event_handler('offers_updated', set_need_update_offers) def information_about_offer(offer, action, buysell_text): A, B = offer.get_data()['A'], offer.get_data()['B'] bitcoin = wallet.get_asset_definition('bitcoin') sell_offer = B['color_spec'] == '' asset = wallet.get_asset_definition_by_color_set( (A if sell_offer else B)['color_spec']) value = (A if sell_offer else B)['value'] total = (B if sell_offer else A)['value'] if not value: return # division by zero text = '{action} {type} {value} {moniker} @{price} btc ea. (Total: {total} btc)'.format(**{ 'action': action, 'type': buysell_text[sell_offer], 'value': asset.format_value(value), 'moniker': asset.get_monikers()[0], 'price': bitcoin.format_value(total*asset.unit/value), 'total': bitcoin.format_value(total), }) self.add_log_entry(text) wallet.p2p_agent.set_event_handler( 'register_my_offer', lambda offer: information_about_offer(offer, 'Created', ("bid", "ask"))) wallet.p2p_agent.set_event_handler( 'cancel_my_offer', lambda offer: information_about_offer(offer, 'Canceled', ("bid", "ask"))) wallet.p2p_agent.set_event_handler( 'make_ep', lambda ep: information_about_offer(ep.my_offer, 'In progress', ('buying', 'selling'))) wallet.p2p_agent.set_event_handler( 'accept_ep', lambda eps: information_about_offer(eps[1].my_offer, 'In progress', ('buying', 'selling'))) def on_trade_complete(ep): information_about_offer(ep.my_offer, 'Trade complete:', ('bought', 'sold')) self.update_balance() wallet.p2p_agent.set_event_handler('trade_complete', on_trade_complete)
def __init__(self, parent): QtGui.QWidget.__init__(self, parent) uic.loadUi(uic.getUiPath('tradepage.ui'), self) wallet.p2ptrade_init() self.timer = QtCore.QTimer() self.timer.timeout.connect(self.update_agent) self.timer.start(2500) self.modelBuy = OffersTableModel(self) self.proxyModelBuy = OffersProxyModel(self) self.proxyModelBuy.setSourceModel(self.modelBuy) self.proxyModelBuy.setDynamicSortFilter(True) self.proxyModelBuy.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelBuy.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvBuy.setModel(self.proxyModelBuy) self.tvBuy.hideColumn(3) self.tvBuy.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvBuy.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.tvBuy.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.modelSell = OffersTableModel(self) self.proxyModelSell = OffersProxyModel(self) self.proxyModelSell.setSourceModel(self.modelSell) self.proxyModelSell.setDynamicSortFilter(True) self.proxyModelSell.setSortCaseSensitivity(QtCore.Qt.CaseInsensitive) self.proxyModelSell.setFilterCaseSensitivity(QtCore.Qt.CaseInsensitive) self.tvSell.setModel(self.proxyModelSell) self.tvSell.hideColumn(3) self.tvSell.sortByColumn(0, QtCore.Qt.AscendingOrder) self.tvSell.horizontalHeader().setResizeMode(0, QtGui.QHeaderView.Stretch) self.tvSell.horizontalHeader().setResizeMode( 1, QtGui.QHeaderView.ResizeToContents) self.cbMoniker.currentIndexChanged.connect(self.cbMonikerIndexChanged) for wname in [ 'edtBuyQuantity', 'edtBuyPrice', 'edtSellQuantity', 'edtSellPrice' ]: def clearBackground(event, wname=wname): getattr(self, wname).setStyleSheet('') QtGui.QLineEdit.focusInEvent(getattr(self, wname), event) getattr(self, wname).focusInEvent = clearBackground self.edtBuyQuantity.textChanged.connect(self.lblBuyTotalChange) self.edtBuyPrice.textChanged.connect(self.lblBuyTotalChange) self.btnBuy.clicked.connect(self.btnBuyClicked) self.tvBuy.doubleClicked.connect(self.tvBuyDoubleClicked) self.edtSellQuantity.textChanged.connect(self.lblSellTotalChange) self.edtSellPrice.textChanged.connect(self.lblSellTotalChange) self.btnSell.clicked.connect(self.btnSellClicked) self.tvSell.doubleClicked.connect(self.tvSellDoubleClicked) self.need_update_offers = False def set_need_update_offers(data): self.need_update_offers = True wallet.p2p_agent.set_event_handler('offers_updated', set_need_update_offers) def information_about_offer(offer, action='Create'): A, B = offer.get_data()['A'], offer.get_data()['B'] bitcoin = wallet.get_asset_definition('bitcoin') sell_offer = B['color_spec'] == '' asset = wallet.get_asset_definition_by_color_set( (A if sell_offer else B)['color_spec']) value = (A if sell_offer else B)['value'] total = (B if sell_offer else A)['value'] text = '{action} {type} offer {value} {moniker} for {price} btc. (Total: {total} btc)'.format( **{ 'action': action, 'type': 'sell' if sell_offer else 'buy', 'value': asset.format_value(value), 'moniker': asset.get_monikers()[0], 'price': bitcoin.format_value(total * asset.unit / value), 'total': bitcoin.format_value(total), }) QtGui.QMessageBox.information( self, '{action} offer'.format(action=action), text, QtGui.QMessageBox.Yes) wallet.p2p_agent.set_event_handler( 'register_my_offer', lambda offer: information_about_offer(offer, 'Create')) wallet.p2p_agent.set_event_handler( 'cancel_my_offer', lambda offer: information_about_offer(offer, 'Cancel'))