working out trades
This commit is contained in:
parent
fd14e4578d
commit
4b85bc5b18
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M6 42v-3h4V9q0-1.2.9-2.1.9-.9 2.1-.9h22q1.2 0 2.1.9.9.9.9 2.1v30h4v3Zm29-3V9H13v30Zm-6.65-13.45q.7 0 1.2-.5t.5-1.2q0-.7-.5-1.2t-1.2-.5q-.7 0-1.2.5t-.5 1.2q0 .7.5 1.2t1.2.5ZM13 9v30V9Z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path fill="#eda65a" d="M6 42v-3h4V9q0-1.2.9-2.1.9-.9 2.1-.9h22q1.2 0 2.1.9.9.9.9 2.1v30h4v3Zm29-3V9H13v30Zm-6.65-13.45q.7 0 1.2-.5t.5-1.2q0-.7-.5-1.2t-1.2-.5q-.7 0-1.2.5t-.5 1.2q0 .7.5 1.2t1.2.5ZM13 9v30V9Z"/></svg>
|
||||
|
Before Width: | Height: | Size: 264 B After Width: | Height: | Size: 281 B |
@ -1 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path d="M11 39h7.5V26.5h11V39H37V19.5L24 9.75 11 19.5Zm-3 3V18L24 6l16 12v24H26.5V29.5h-5V42Zm16-17.65Z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path fill="#eda65a" d="M11 39h7.5V26.5h11V39H37V19.5L24 9.75 11 19.5Zm-3 3V18L24 6l16 12v24H26.5V29.5h-5V42Zm16-17.65Z"/></svg>
|
||||
|
Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 193 B |
1
icons/material_leave.svg
Normal file
1
icons/material_leave.svg
Normal file
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48"><path fill="#eda65a" d="M9 42q-1.2 0-2.1-.9Q6 40.2 6 39V9q0-1.2.9-2.1Q7.8 6 9 6h14.55v3H9v30h14.55v3Zm24.3-9.25-2.15-2.15 5.1-5.1h-17.5v-3h17.4l-5.1-5.1 2.15-2.15 8.8 8.8Z"/></svg>
|
After Width: | Height: | Size: 245 B |
12
src/data.py
12
src/data.py
@ -95,9 +95,6 @@ class Trade():
|
||||
and self.col == __o.col
|
||||
and self.league == __o.league)
|
||||
|
||||
def unique_item(self) -> str:
|
||||
return f'{self.item}-{self.tab}-{self.row}/{self.col}-{self.league}'
|
||||
|
||||
|
||||
class Message():
|
||||
def __init__(self,
|
||||
@ -152,3 +149,12 @@ class Message():
|
||||
def unique_trade(self) -> int:
|
||||
assert self.trade
|
||||
return hash((self.user, self.trade.__hash__()))
|
||||
|
||||
def unique_user_item(self) -> int:
|
||||
assert self.trade
|
||||
if self.to_from == 'From':
|
||||
# Item in my stash.
|
||||
return hash((self.trade.item, self.trade.tab, self.trade.row, self.trade.col, self.trade.league))
|
||||
else:
|
||||
# Item in a stash from another char
|
||||
return hash((self.trade.item, self.trade.league))
|
||||
|
@ -39,29 +39,16 @@ class ResizingTabWidget(QTabWidget):
|
||||
self.adjustSize()
|
||||
self.main_window.updateSizes()
|
||||
|
||||
def new_in_trade(self, message: Message):
|
||||
def new_trade(self, message: Message):
|
||||
if message.trade:
|
||||
unique_item = message.trade.unique_item()
|
||||
unique_item = message.unique_user_item()
|
||||
if unique_item in self.trade_in_collections:
|
||||
self.trade_in_collections[unique_item].add_trade(message)
|
||||
else:
|
||||
collection = TradeCollection(message, self)
|
||||
collection = TradeCollection(self, unique_item)
|
||||
collection.add_trade(message)
|
||||
self.addTab(collection, message.trade.item)
|
||||
self.trade_in_collections[message.trade.unique_item()] = collection
|
||||
|
||||
self.main_window.show()
|
||||
|
||||
self.main_window.updateSizes()
|
||||
|
||||
def new_out_trade(self, message: Message):
|
||||
if message.trade:
|
||||
unique_item = message.trade.unique_item()
|
||||
if unique_item in self.trade_out_collections:
|
||||
self.trade_out_collections[unique_item].add_trade(message)
|
||||
else:
|
||||
collection = TradeCollection(message, self)
|
||||
self.addTab(collection, message.trade.item)
|
||||
self.trade_out_collections[message.trade.unique_item()] = collection
|
||||
self.trade_in_collections[unique_item] = collection
|
||||
|
||||
self.main_window.show()
|
||||
|
||||
@ -70,13 +57,13 @@ class ResizingTabWidget(QTabWidget):
|
||||
def del_tab(self, index: int):
|
||||
collection = self.widget(index)
|
||||
assert isinstance(collection, TradeCollection)
|
||||
self.trade_in_collections[collection.unique_item].deleteLater()
|
||||
del self.trade_in_collections[collection.unique_item]
|
||||
self.trade_in_collections[collection.unique_user_item].deleteLater()
|
||||
del self.trade_in_collections[collection.unique_user_item]
|
||||
if not self.trade_in_collections:
|
||||
self.main_window.hide()
|
||||
|
||||
def del_collection(self, unique_item: str):
|
||||
del self.trade_in_collections[unique_item]
|
||||
def del_collection(self, unique_user_item: str):
|
||||
del self.trade_in_collections[unique_user_item]
|
||||
if not self.trade_in_collections:
|
||||
self.main_window.hide()
|
||||
|
||||
@ -104,12 +91,8 @@ class MainWindow(QMainWindow):
|
||||
self.resize(self.tab_widget.minimumSizeHint())
|
||||
|
||||
@QtCore.Slot()
|
||||
def new_in_trade(self, message: Message):
|
||||
self.tab_widget.new_in_trade(message)
|
||||
|
||||
@QtCore.Slot()
|
||||
def new_out_trade(self, message: Message):
|
||||
self.tab_widget.new_out_trade(message)
|
||||
def new_trade(self, message: Message):
|
||||
self.tab_widget.new_trade(message)
|
||||
|
||||
|
||||
def start_app():
|
||||
|
@ -127,12 +127,11 @@ class TradeCollection(QWidget):
|
||||
One tab corresponds to a unique item."""
|
||||
|
||||
def __init__(self,
|
||||
message: Message,
|
||||
parent):
|
||||
parent,
|
||||
unique_user_item: int):
|
||||
super(TradeCollection, self).__init__(parent)
|
||||
self.parent = parent
|
||||
assert message.trade
|
||||
self.unique_item = message.trade.unique_item()
|
||||
self.unique_user_item = unique_user_item
|
||||
self.setSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
||||
self.setGeometry(0, 0, 20, 20)
|
||||
self.main_layout = QVBoxLayout()
|
||||
@ -140,9 +139,7 @@ class TradeCollection(QWidget):
|
||||
self.main_layout.setContentsMargins(0, 0, 0, 0)
|
||||
self.setContentsMargins(0, 0, 0, 0)
|
||||
self.setLayout(self.main_layout)
|
||||
trade = Trade_In_Widget(message, self)
|
||||
self.main_layout.addWidget(trade)
|
||||
self.trades = {message.unique_trade(): trade}
|
||||
self.trades = {}
|
||||
|
||||
def childEvent(self, event: QtCore.QChildEvent) -> None:
|
||||
if event.removed() or event.added():
|
||||
@ -154,7 +151,11 @@ class TradeCollection(QWidget):
|
||||
assert message.trade
|
||||
if message.unique_trade() in self.trades:
|
||||
return
|
||||
trade = Trade_In_Widget(message, self)
|
||||
if message.to_from == 'From':
|
||||
trade = Trade_In_Widget(message, self)
|
||||
else:
|
||||
trade = Trade_Out_Widget(message, self)
|
||||
|
||||
self.main_layout.addWidget(trade)
|
||||
self.trades[message.unique_trade()] = trade
|
||||
|
||||
@ -162,5 +163,5 @@ class TradeCollection(QWidget):
|
||||
assert message.trade
|
||||
del self.trades[message.unique_trade()]
|
||||
if not self.trades:
|
||||
self.parent.del_collection(self.unique_item)
|
||||
self.parent.del_collection(self.unique_user_item)
|
||||
self.deleteLater()
|
||||
|
@ -8,13 +8,12 @@ from src.pyside6.gui_pyside6 import MainWindow
|
||||
|
||||
|
||||
class Log_Reader(QtCore.QObject):
|
||||
new_in_trade_signal = QtCore.Signal(Message)
|
||||
new_trade_signal = QtCore.Signal(Message)
|
||||
new_out_trade_signal = QtCore.Signal(Message)
|
||||
|
||||
def __init__(self, window: MainWindow):
|
||||
super().__init__()
|
||||
self.new_in_trade_signal.connect(window.new_in_trade, QtCore.Qt.QueuedConnection)
|
||||
self.new_out_trade_signal.connect(window.new_out_trade, QtCore.Qt.QueuedConnection)
|
||||
self.new_trade_signal.connect(window.new_trade, QtCore.Qt.QueuedConnection)
|
||||
|
||||
def read_log(self, logfile: str) -> None:
|
||||
try:
|
||||
@ -24,13 +23,7 @@ class Log_Reader(QtCore.QObject):
|
||||
message = Message.from_text(line)
|
||||
log.debug(message)
|
||||
if message and message.trade:
|
||||
if message.to_from == 'From':
|
||||
log.debug(message.trade)
|
||||
# app.add_tab(30, message)
|
||||
self.new_in_trade_signal.emit(message)
|
||||
if message.to_from == 'To':
|
||||
log.debug(message.trade)
|
||||
self.new_out_trade_signal.emit(message)
|
||||
self.new_trade_signal.emit(message)
|
||||
except IOError:
|
||||
log.error(f'Error opening log file {logfile}.')
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user