def __init__(self): QDialog.__init__(self) # set up ui self.__ui = Ui_Preferences() self.__ui.setupUi(self) # improve ui on mac if utilities.platform_is_mac(): self.__adjust_for_mac() # connect ui signals to logic self.__ui.lineEditKey.textChanged.connect( self.__slot_validate_credentials) self.__ui.lineEditSecret.textChanged.connect( self.__slot_validate_credentials) # initialize config parser self.configparser = RawConfigParser() # __load or (if non-existent) create config file if path.isfile(self.__FILENAME): self.__load() else: self.__init_with_defaults() self.__save() self.set_fiat_currencies([])
def __init__(self, preferences, market): QMainWindow.__init__(self) self.preferences = preferences self.market = market # set up main window self.ui = Ui_MainWindow() self.ui.setupUi(self) # improve ui on mac if utilities.platform_is_mac(): self.adjust_for_mac() # connect market signals to our logic self.market.signal_log.connect(self.slot_log) self.market.signal_wallet.connect(self.display_wallet) self.market.signal_orderlag.connect(self.display_orderlag) self.market.signal_userorder.connect(self.display_userorder) # connect ui signals to our logic self.ui.pushButtonGo.released.connect(self.execute_trade) self.ui.tableAsk.clicked.connect(self.slot_update_price_from_asks) self.ui.tableBid.clicked.connect(self.slot_update_price_from_bids) self.ui.pushButtonCancel.released.connect(self.cancel_order) self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected) self.ui.pushButtonWalletA.released.connect(self.set_trade_size_from_wallet) self.ui.pushButtonWalletB.released.connect(self.set_trade_total_from_wallet) self.ui.pushButtonSize.released.connect(self.recalculate_size) self.ui.pushButtonPrice.released.connect(self.update_price_best) self.ui.pushButtonTotal.released.connect(self.recalculate_total) self.ui.actionPreferences_2.triggered.connect(self.show_preferences) # initialize and connect bid / ask table models self.modelAsk = ModelAsk(self, self.market, preferences) self.ui.tableAsk.setModel(self.modelAsk) self.modelBid = ModelBid(self, self.market, preferences) self.ui.tableBid.setModel(self.modelBid) # associate log channels with their check boxes self.logchannels = [ [self.ui.checkBoxLogTicker, "tick"], [self.ui.checkBoxLogTrade, "TRADE"], [self.ui.checkBoxLogDepth, "depth"], ] # resets dynamic ui elements self.reset() # activate market self.market.start() # show main window self.adjustSize() self.show() self.raise_()
def __init__(self): QDialog.__init__(self) # set up ui self.__ui = Ui_Preferences() self.__ui.setupUi(self) # improve ui on mac if utilities.platform_is_mac(): self.__adjust_for_mac() # connect ui signals to logic self.__ui.lineEditKey.textChanged.connect( self.__slot_validate_credentials) self.__ui.lineEditSecret.textChanged.connect( self.__slot_validate_credentials) # initialize config parser self.__configparser = RawConfigParser({ 'grouping': '0.0', 'currency_{}'.format(Preferences.CURRENCY_INDEX_BASE): 'BTC', 'currency_{}'.format(Preferences.CURRENCY_INDEX_QUOTE): 'USD', 'orders_column_{}'.format(Preferences.ORDERS_COLUMN_PRICE): 'True', 'orders_column_{}'.format(Preferences.ORDERS_COLUMN_SIZE): 'True', 'orders_column_{}'.format(Preferences.ORDERS_COLUMN_QUOTE): 'False', # @IgnorePep8 'orders_column_{}'.format(Preferences.ORDERS_COLUMN_TOTAL_SIZE): 'True', 'orders_column_{}'.format(Preferences.ORDERS_COLUMN_TOTAL_QUOTE): 'False', # @IgnorePep8 'key': '', 'secret': '', 'proposed_pips': '0' }) # load config file (if exists) if path.isfile(self.__FILENAME): self.__load() else: self.__configparser.add_section(self.__SECTION_GLOBAL) self.__save() self.set_fiat_currencies([])
def __init__(self): QDialog.__init__(self) # set up ui self.__ui = Ui_Preferences() self.__ui.setupUi(self) # improve ui on mac if utilities.platform_is_mac(): self.__adjust_for_mac() # connect ui signals to logic self.__ui.lineEditPassword.textChanged.connect( self.__slot_password_changed) self.__ui.lineEditKey.textChanged.connect( self.__slot_validate_key) self.__ui.lineEditSecret.textChanged.connect( self.__slot_validate_secret) self.__ui.buttonBox.button(QDialogButtonBox.Apply).released.connect( self.__slot_validate_credentials) self.do_configfile()
def __init__(self, preferences, market): QMainWindow.__init__(self) self.preferences = preferences self.market = market # set up main window self.ui = Ui_MainWindow() self.ui.setupUi(self) # improve ui on mac if utilities.platform_is_mac(): self.adjust_for_mac() # connect market signals to our logic self.market.signal_log.connect(self.slot_log) self.market.signal_wallet.connect(self.display_wallet) self.market.signal_orderlag.connect(self.display_orderlag) self.market.signal_userorder.connect(self.display_userorder) self.market.signal_ticker.connect(self.update_titlebar) # connect ui signals to our logic self.ui.pushButtonGo.released.connect(self.execute_trade) self.ui.tableAsk.clicked.connect(self.update_edit_from_ask_book) self.ui.tableBid.clicked.connect(self.update_edit_from_bid_book) self.ui.pushButtonCancel.released.connect(self.cancel_order) #enable clicking of OrderID links in the Trading textBrowser self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected) self.ui.pushButtonWalletA.released.connect( self.set_trade_size_from_wallet) self.ui.pushButtonWalletB.released.connect( self.set_trade_total_from_wallet) self.ui.pushButtonSize.released.connect(self.recalculate_size) self.ui.pushButtonPrice.released.connect(self.update_edit_on_button) self.ui.pushButtonTotal.released.connect(self.recalculate_total) self.ui.actionPreferences_2.triggered.connect(self.show_preferences) # associate log channels with their check boxes self.logchannels = [ [self.ui.checkBoxLogTicker, 'tick'], [self.ui.checkBoxLogTrade, 'trade'], [self.ui.checkBoxLogDepth, 'depth'], ] #connect the channel checkboxes to the handler that persists the #settings to the config file for x in self.logchannels: x[0].clicked.connect(self.set_ignorechan) #read the config file and re-apply previous settings self.get_ignorechan() # activate market self.market.start() # initialize and connect bid / ask table models self.modelAsk = ModelAsk(self, self.market, preferences) self.ui.tableAsk.setModel(self.modelAsk) self.modelBid = ModelBid(self, self.market, preferences) self.ui.tableBid.setModel(self.modelBid) #User Orders TAB self.modelOwns = ModelOwns(self, self.market, preferences) self.ui.tableUserOrders.setModel(self.modelOwns) self.ui.tableUserOrders.resizeColumnsToContents() self.ui.tableUserOrders.clicked.connect(self.userorder_selected) #create the stop orders TAB. self.modelStops = ModelStops(self, self.market) self.ui.tableStopOrders.setModel(self.modelStops) self.ui.tableStopOrders.resizeColumnsToContents() #add stop orders into the stop database self.ui.pushButton1StopAdd.released.connect(self.add_stopOrder) #on click, put Stop Order ID into the cancel button box. self.ui.tableStopOrders.clicked.connect(self.stopOrder_selected) #remove a stop order self.ui.pushButtonStopRemove.released.connect(self.remove_stopOrder) #activate the stop loss bot with the checkbox. self.ui.checkBoxActivateStopLossBot.clicked.connect( self.stopbot_act_deact) #for stuff in the Ticker TAB self.ui.pushButtonRefreshTicker.released.connect( self.refresh_and_display_ticker) self.ui.checkBoxAutoRefreshTicker.clicked.connect( self.autorefresh_ticker_selected) #populate the ticker tab fields. self.display_ticker() # show main window self.adjustSize() self.show() self.raise_()
def __init__(self, preferences, market): QMainWindow.__init__(self) self.preferences = preferences self.market = market # set up main window self.ui = Ui_MainWindow() self.ui.setupUi(self) # improve ui on mac if utilities.platform_is_mac(): self.adjust_for_mac() # connect market signals to our logic self.market.signal_log.connect(self.slot_log) self.market.signal_wallet.connect(self.display_wallet) self.market.signal_orderlag.connect(self.display_orderlag) self.market.signal_userorder.connect(self.display_userorder) self.market.signal_ticker.connect(self.update_titlebar) # connect ui signals to our logic self.ui.pushButtonGo.released.connect(self.execute_trade) self.ui.tableAsk.clicked.connect(self.update_edit_from_ask_book) self.ui.tableBid.clicked.connect(self.update_edit_from_bid_book) self.ui.pushButtonCancel.released.connect(self.cancel_order) #enable clicking of OrderID links in the Trading textBrowser self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected) self.ui.pushButtonWalletA.released.connect(self.set_trade_size_from_wallet) self.ui.pushButtonWalletB.released.connect(self.set_trade_total_from_wallet) self.ui.pushButtonSize.released.connect(self.recalculate_size) self.ui.pushButtonPrice.released.connect(self.update_edit_on_button) self.ui.pushButtonTotal.released.connect(self.recalculate_total) self.ui.actionPreferences_2.triggered.connect(self.show_preferences) # associate log channels with their check boxes self.logchannels = [ [self.ui.checkBoxLogTicker, 'tick'], [self.ui.checkBoxLogTrade, 'trade'], [self.ui.checkBoxLogDepth, 'depth'], ] #connect the channel checkboxes to the handler that persists the #settings to the config file for x in self.logchannels: x[0].clicked.connect(self.set_ignorechan) #read the config file and re-apply previous settings self.get_ignorechan() # activate market self.market.start() # initialize and connect bid / ask table models self.modelAsk = ModelAsk(self, self.market, preferences) self.ui.tableAsk.setModel(self.modelAsk) self.modelBid = ModelBid(self, self.market, preferences) self.ui.tableBid.setModel(self.modelBid) #User Orders TAB self.modelOwns = ModelOwns(self, self.market, preferences) self.ui.tableUserOrders.setModel(self.modelOwns) self.ui.tableUserOrders.resizeColumnsToContents() self.ui.tableUserOrders.clicked.connect(self.userorder_selected) #create the stop orders TAB. self.modelStops = ModelStops(self, self.market) self.ui.tableStopOrders.setModel(self.modelStops) self.ui.tableStopOrders.resizeColumnsToContents() #add stop orders into the stop database self.ui.pushButton1StopAdd.released.connect(self.add_stopOrder) #on click, put Stop Order ID into the cancel button box. self.ui.tableStopOrders.clicked.connect(self.stopOrder_selected) #remove a stop order self.ui.pushButtonStopRemove.released.connect(self.remove_stopOrder) #activate the stop loss bot with the checkbox. self.ui.checkBoxActivateStopLossBot.clicked.connect(self.stopbot_act_deact) #for stuff in the Ticker TAB self.ui.pushButtonRefreshTicker.released.connect(self.refresh_and_display_ticker) self.ui.checkBoxAutoRefreshTicker.clicked.connect(self.autorefresh_ticker_selected) #populate the ticker tab fields. self.display_ticker() # show main window self.adjustSize() self.show() self.raise_()
def __init__(self, preferences, market): QMainWindow.__init__(self) self.preferences = preferences self.market = market # set up main window self.ui = Ui_MainWindow() self.ui.setupUi(self) # improve ui on mac if utilities.platform_is_mac(): self.adjust_for_mac() # connect market signals to our logic self.market.signal_log.connect(self.slot_log) self.market.signal_wallet.connect(self.display_wallet) self.market.signal_orderlag.connect(self.display_orderlag) self.market.signal_userorder.connect(self.display_userorder) self.market.signal_ticker.connect(self.update_ticker) # connect ui signals to our logic self.ui.pushButtonGo.released.connect(self.execute_trade) self.ui.tableAsk.clicked.connect(self.slot_update_price_from_asks) self.ui.tableBid.clicked.connect(self.slot_update_price_from_bids) self.ui.pushButtonCancel.released.connect(self.cancel_order) self.ui.textBrowserStatus.anchorClicked.connect(self.order_selected) self.ui.pushButtonSize.released.connect(self.recalculate_size) self.ui.pushButtonPrice.released.connect(self.update_price_best) self.ui.pushButtonTotal.released.connect(self.recalculate_total) self.ui.actionPreferences_2.triggered.connect(self.show_preferences) # associate log channels with their check boxes self.logchannels = [ [self.ui.checkBoxLogTicker, "tick"], [self.ui.checkBoxLogTrade, "TRADE"], [self.ui.checkBoxLogDepth, "depth"], ] # set correct resizing for the bid and ask tables self.ui.tableAsk.horizontalHeader().setResizeMode(QHeaderView.Stretch) self.ui.tableBid.horizontalHeader().setResizeMode(QHeaderView.Stretch) # set up info table self.info = Info(self, self.preferences, self.ui.tableInfo.clicked) self.ui.tableInfo.setModel(self.info) self.ui.tableInfo.horizontalHeader().setResizeMode(QHeaderView.Stretch) # connect to signals from info table self.info.signal_base_balance_clicked.connect(self.set_trade_size_from_wallet) self.info.signal_quote_balance_clicked.connect(self.set_trade_total_from_wallet) # initializes dynamic ui elements self.init() # activate market self.market.start() # show main window self.adjustSize() self.show() self.raise_()