File size: 2,736 Bytes
c99df4c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
from PyQt6.QtWidgets import (
    QWidget, QVBoxLayout, QLabel, QLineEdit, QDateEdit, 
    QPushButton, QGroupBox, QFormLayout, QDoubleSpinBox
)
from PyQt6.QtCore import QDate, pyqtSignal

class ControlPanel(QWidget):
    # Signals to notify Main Window
    # Adjusted to include multiplier
    start_signal = pyqtSignal(str, object, float) # symbol, date, multiplier
    stop_signal = pyqtSignal()

    def __init__(self, parent=None):
        super().__init__(parent)
        self.init_ui()

    def init_ui(self):
        layout = QVBoxLayout()

        # Group: Settings
        group = QGroupBox("Settings")
        form = QFormLayout()

        self.symbol_input = QLineEdit("XAUUSD")
        
        self.date_input = QDateEdit()
        self.date_input.setDate(QDate.currentDate())
        self.date_input.setCalendarPopup(True)

        self.multiplier_input = QDoubleSpinBox()
        self.multiplier_input.setRange(0.1, 100.0)
        self.multiplier_input.setDecimals(2)
        self.multiplier_input.setValue(2.0)
        self.multiplier_input.setSingleStep(0.5)

        form.addRow("Symbol:", self.symbol_input)
        form.addRow("Date:", self.date_input)
        form.addRow("Spread Multiplier (x):", self.multiplier_input)
        
        group.setLayout(form)
        layout.addWidget(group)

        # Buttons
        self.btn_start = QPushButton("Start Stream")
        self.btn_start.clicked.connect(self.on_start)
        self.btn_start.setStyleSheet("background-color: green; color: white; font-weight: bold;")
        
        self.btn_stop = QPushButton("Stop Stream")
        self.btn_stop.clicked.connect(self.on_stop)
        self.btn_stop.setStyleSheet("background-color: red; color: white; font-weight: bold;")
        self.btn_stop.setEnabled(False)

        layout.addWidget(self.btn_start)
        layout.addWidget(self.btn_stop)
        
        layout.addStretch()
        self.setLayout(layout)

    def on_start(self):
        symbol = self.symbol_input.text()
        date = self.date_input.date().toPyDate()
        multiplier = self.multiplier_input.value()
        self.start_signal.emit(symbol, date, multiplier)
        
        self.btn_start.setEnabled(False)
        self.btn_stop.setEnabled(True)
        self.symbol_input.setEnabled(False)
        self.date_input.setEnabled(False)
        self.multiplier_input.setEnabled(False)

    def on_stop(self):
        self.stop_signal.emit()
        
        self.btn_start.setEnabled(True)
        self.btn_stop.setEnabled(False)
        self.symbol_input.setEnabled(True)
        self.date_input.setEnabled(True)
        self.multiplier_input.setEnabled(True)