fixed some things in gui

This commit is contained in:
Oliver Hartmann 2023-01-02 13:34:41 +01:00
parent 31ab60c910
commit 1177fcc0b7
2 changed files with 26 additions and 15 deletions

View File

@ -5,21 +5,26 @@ from src import sendkeys
def clipboard_poll(app: tk) -> None:
data.log.info('clipboard thread started')
text = None
data.log.debug('clipboard thread started')
text = None # Last clipboard entry
old_trade = None # This is the last trade, not the last clipboard entry
while True:
try:
new_text = app.clipboard_get()
except tk.TclError:
new_text = None
if new_text != text:
if text and new_text != text:
data.log.info(new_text)
text = new_text
res_prefix = data.re_clipboard_prefix.search(text)
if res_prefix:
data.log.info(f'User: {res_prefix["user"]}')
res = data.re_clipboard.search(text)
sendkeys.send_text(text)
if old_trade != text: # Don't send old trade again. Happnes sometimes if clipboard is used by other tools and restored
sendkeys.send_text(text)
old_trade = text
else:
data.log.info(f'Didn\'t send. Clipboard "{text}" already sent.')
if res:
trade = data.Trade.by_regex_result(res)
data.log.info(trade)

View File

@ -25,23 +25,27 @@ class Gui(Tk):
def add_tab(self, number: int, message: Message) -> None:
self.wm_deiconify()
tab = ttk.Frame(self.tab_control, style='BW.TLabel')
if message.user not in self.tabs:
self.tabs[message.user] = dict()
self.tabs[message.user] = {'tab': ttk.Frame(self.tab_control, style='BW.TLabel')}
tab = self.tabs[message.user]['tab']
if message.trade.item not in self.tabs[message.user]:
self.tabs[message.user][message.trade.item] = (tab, message)
ttk.Label(tab, text=message.trade.item, style='BW.TLabel').pack(anchor='e', side='left')
Label(tab, text=f'{message.trade.amount} {message.trade.currency}').pack(anchor='e', side='left')
self.add_button(tab=tab, text='Inv', callback=self.inv_callback, message=message)
self.add_button(tab=tab, text='Trade', callback=self.trade_callback, message=message)
self.add_button(tab=tab, text='Ty', callback=self.ty_callback, message=message)
self.add_button(tab=tab, text='Wait', callback=self.wait_callback, message=message)
self.add_button(tab=tab, text='X', callback=self.destroy_tab, message=message)
# Button(tab, text='Inv', command=lambda mess=message: self.inv_callback(message, tab)).pack(anchor='e', side='left')
Button(tab, text='Trade', command=lambda mess=message: self.trade_callback(message, tab)).pack(anchor='e', side='left')
Button(tab, text='Ty', command=lambda mess=message: self.ty_callback(message, tab)).pack(anchor='e', side='left')
Button(tab, text='Wait', command=lambda mess=message: self.wait_callback(message, tab)).pack(anchor='e', side='left')
Button(tab, text='X', command=lambda mess=message: self.destroy_tab(message, tab)).pack(anchor='e', side='left')
# Button(tab, text='Trade', command=lambda mess=message: self.trade_callback(message, tab)).pack(anchor='e', side='left')
# Button(tab, text='Ty', command=lambda mess=message: self.ty_callback(message, tab)).pack(anchor='e', side='left')
# Button(tab, text='Wait', command=lambda mess=message: self.wait_callback(message, tab)).pack(anchor='e', side='left')
# Button(tab, text='X', command=lambda mess=message: self.destroy_tab(message, tab)).pack(anchor='e', side='left')
self.tab_control.add(tab, text=message.user)
def add_button(tab: ttk.Frame, text: str, callback: Callable, message: Message) -> None:
Button(tab, text=text, command=lambda mess=message: callback(message, tab)).pack(anchor='e', side='left')
def add_button(self, tab: ttk.Frame, text: str, callback: Callable, message: Message) -> None:
Button(tab, text=text, command=lambda: callback(message, tab)).pack(anchor='e', side='left')
def start_move(self, event):
self.x = event.x
@ -76,9 +80,11 @@ class Gui(Tk):
def destroy_tab(self, message: Message, tab: ttk.Frame) -> None:
if message.user in self.tabs:
if message.trade.item in self.tabs[message.user]:
# Delete the item
del self.tabs[message.user][message.trade.item]
if not self.tabs[message.user]:
if len(self.tabs[message.user]) == 1:
# If no item from this user is left, then also delete the tab
del self.tabs[message.user]
tab.destroy()
tab.destroy()
if not self.tabs:
self.wm_withdraw()