89 lines
3.2 KiB
Python
89 lines
3.2 KiB
Python
from PySide6.QtWidgets import QPushButton, QHBoxLayout, QVBoxLayout, QWidget, QLabel
|
|
from src.data import Message
|
|
from src import sendkeys
|
|
|
|
|
|
class TradeWidget(QWidget):
|
|
"""docstring for TradeWidget."""
|
|
|
|
def __init__(self,
|
|
message: Message,
|
|
parent):
|
|
super(TradeWidget, self).__init__(parent=parent)
|
|
self.message = message
|
|
self.parent = parent
|
|
|
|
self.main_layout = QHBoxLayout()
|
|
self.setLayout(self.main_layout)
|
|
self.label_user = QLabel(message.user)
|
|
self.label_item = QLabel(message.trade.item)
|
|
self.label_price = QLabel(f'{message.trade.amount} {message.trade.currency}')
|
|
|
|
self.inv_button = QPushButton('inv')
|
|
self.trade_button = QPushButton('trade')
|
|
self.thank_button = QPushButton('ty')
|
|
self.wait_button = QPushButton('wait')
|
|
self.del_button = QPushButton('X')
|
|
|
|
self.inv_button.clicked.connect(self.inv_callback)
|
|
self.trade_button.clicked.connect(self.trade_callback)
|
|
self.thank_button.clicked.connect(self.thank_callback)
|
|
self.wait_button.clicked.connect(self.wait_callback)
|
|
self.del_button.clicked.connect(self.delete_callback)
|
|
|
|
self.main_layout.addWidget(self.label_user)
|
|
self.main_layout.addWidget(self.label_item)
|
|
self.main_layout.addWidget(self.label_price)
|
|
self.main_layout.addWidget(self.inv_button)
|
|
self.main_layout.addWidget(self.trade_button)
|
|
self.main_layout.addWidget(self.thank_button)
|
|
self.main_layout.addWidget(self.wait_button)
|
|
self.main_layout.addWidget(self.del_button)
|
|
|
|
def inv_callback(self):
|
|
sendkeys.invite(message=self.message)
|
|
sendkeys.send_to_format(type='pickup', message=self.message)
|
|
|
|
def thank_callback(self):
|
|
sendkeys.send_to_format(type='ty', message=self.message)
|
|
sendkeys.kick(message=self.message)
|
|
self.delete_callback()
|
|
|
|
def trade_callback(self):
|
|
sendkeys.trade(message=self.message)
|
|
|
|
def wait_callback(self):
|
|
sendkeys.send_to_format(type='wait', message=self.message)
|
|
|
|
def delete_callback(self):
|
|
self.deleteLater()
|
|
self.parent.del_trade(self.message)
|
|
|
|
|
|
class TradeCollection(QWidget):
|
|
"""docstring for TradeCollection."""
|
|
|
|
def __init__(self,
|
|
message: Message,
|
|
parent):
|
|
super(TradeCollection, self).__init__()
|
|
self.parent = parent
|
|
self.main_layout = QVBoxLayout()
|
|
self.setLayout(self.main_layout)
|
|
trade = TradeWidget(message, self)
|
|
self.main_layout.addWidget(trade)
|
|
self.trades = {message.trade.__hash__: trade}
|
|
|
|
def add_trade(self, message: Message) -> None:
|
|
if message.trade.__hash__ in self.trades:
|
|
return
|
|
trade = TradeWidget(message, self)
|
|
self.main_layout.addWidget(trade)
|
|
self.trades[message.trade.__hash__] = trade
|
|
|
|
def del_trade(self, message: Message):
|
|
del self.trades[message.trade.__hash__]
|
|
if not self.trades:
|
|
self.parent.del_collection(message.trade.unique_item())
|
|
self.deleteLater()
|