start implementing outgoing trades
This commit is contained in:
@@ -4,7 +4,7 @@ from src.data import log
|
||||
from src.data import Message, compile_regex
|
||||
from src.pyside6.trade_widget import TradeCollection
|
||||
from PySide6 import QtCore
|
||||
from PySide6.QtWidgets import QApplication, QMainWindow, QTabWidget, QSizePolicy, QWidget
|
||||
from PySide6.QtWidgets import QApplication, QMainWindow, QTabWidget, QSizePolicy
|
||||
import qdarktheme
|
||||
|
||||
|
||||
@@ -17,7 +17,8 @@ class ResizingTabWidget(QTabWidget):
|
||||
self.setSizePolicy(QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Minimum)
|
||||
self.setGeometry(0, 0, 20, 20)
|
||||
|
||||
self.trade_collections = {}
|
||||
self.trade_in_collections = {}
|
||||
self.trade_out_collections = {}
|
||||
self.setTabsClosable(True)
|
||||
self.tabCloseRequested.connect(self.del_tab)
|
||||
|
||||
@@ -38,16 +39,29 @@ class ResizingTabWidget(QTabWidget):
|
||||
self.adjustSize()
|
||||
self.main_window.updateSizes()
|
||||
|
||||
def new_trade(self, message: Message):
|
||||
def new_in_trade(self, message: Message):
|
||||
if message.trade:
|
||||
unique_item = message.trade.unique_item()
|
||||
if unique_item in self.trade_collections:
|
||||
self.trade_collections[unique_item].add_trade(message)
|
||||
if unique_item in self.trade_in_collections:
|
||||
self.trade_in_collections[unique_item].add_trade(message)
|
||||
else:
|
||||
collection = TradeCollection(message, self)
|
||||
collection.setParent(self)
|
||||
self.addTab(collection, message.trade.item)
|
||||
self.trade_collections[message.trade.unique_item()] = collection
|
||||
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.main_window.show()
|
||||
|
||||
@@ -56,14 +70,14 @@ class ResizingTabWidget(QTabWidget):
|
||||
def del_tab(self, index: int):
|
||||
collection = self.widget(index)
|
||||
assert isinstance(collection, TradeCollection)
|
||||
self.trade_collections[collection.unique_item].deleteLater()
|
||||
del self.trade_collections[collection.unique_item]
|
||||
if not self.trade_collections:
|
||||
self.trade_in_collections[collection.unique_item].deleteLater()
|
||||
del self.trade_in_collections[collection.unique_item]
|
||||
if not self.trade_in_collections:
|
||||
self.main_window.hide()
|
||||
|
||||
def del_collection(self, unique_item: str):
|
||||
del self.trade_collections[unique_item]
|
||||
if not self.trade_collections:
|
||||
del self.trade_in_collections[unique_item]
|
||||
if not self.trade_in_collections:
|
||||
self.main_window.hide()
|
||||
|
||||
|
||||
@@ -90,8 +104,12 @@ class MainWindow(QMainWindow):
|
||||
self.resize(self.tab_widget.minimumSizeHint())
|
||||
|
||||
@QtCore.Slot()
|
||||
def new_trade(self, message: Message):
|
||||
self.tab_widget.new_trade(message)
|
||||
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 start_app():
|
||||
@@ -124,8 +142,8 @@ if __name__ == "__main__":
|
||||
assert message2
|
||||
assert message3
|
||||
app, window = start_app()
|
||||
window.new_trade(message)
|
||||
window.new_trade(message)
|
||||
window.new_trade(message2)
|
||||
window.new_trade(message3)
|
||||
window.new_in_trade(message)
|
||||
window.new_in_trade(message)
|
||||
window.new_in_trade(message2)
|
||||
window.new_in_trade(message3)
|
||||
app.exec()
|
||||
|
||||
Reference in New Issue
Block a user