diff --git a/src/db_handler.py b/src/db_handler.py index 252d62e..dbbd5c8 100644 --- a/src/db_handler.py +++ b/src/db_handler.py @@ -241,3 +241,8 @@ class DBHandler: } return user_details_dict + + def toggle_platform_state(self, index: int, state: bool): + state_data = [state, index] + self.cur.execute("UPDATE tblPlatforms SET IsEnabled = ? WHERE PlatformID = ?", state_data) + self.conn.commit() diff --git a/src/main.py b/src/main.py index 86dad41..2517bfe 100644 --- a/src/main.py +++ b/src/main.py @@ -2,7 +2,6 @@ import sys from PyQt6.QtWidgets import QApplication -from platform_edit import PlatformEdit from main_window import SIPPCompare diff --git a/src/main_window.py b/src/main_window.py index 8bf91de..e32508d 100644 --- a/src/main_window.py +++ b/src/main_window.py @@ -77,43 +77,6 @@ class SIPPCompare(QMainWindow): else: self.calc_but.setEnabled(False) - # Get variables from platform editor input fields - """ - def init_variables(self): - self.optional_boxes = self.platform_win.get_optional_boxes() - self.fund_plat_fee = self.platform_win.get_fund_plat_fee() - self.share_plat_fee = self.platform_win.get_share_plat_fee() - self.share_deal_fee = self.platform_win.get_share_deal_fee() - - # TODO: This is HORRIBLE - find better way of doing it! (maybe enums?) - if self.optional_boxes[0]: - self.plat_name = self.platform_win.get_plat_name() - else: - self.plat_name = None - - if self.optional_boxes[1]: - self.fund_deal_fee = self.platform_win.get_fund_deal_fee() - else: - self.fund_deal_fee = None - - if self.optional_boxes[2]: - self.share_plat_max_fee = self.platform_win.get_share_plat_max_fee() - else: - self.share_plat_max_fee = None - - if self.optional_boxes[3]: - self.share_deal_reduce_trades = self.platform_win.get_share_deal_reduce_trades() - else: - self.share_deal_reduce_trades = None - - if self.optional_boxes[4]: - self.share_deal_reduce_amount = self.platform_win.get_share_deal_reduce_amount() - else: - self.share_deal_reduce_amount = None - """ - def init_variables(self): - self.fund_plat_fee = 1 - # Calculate fees def calculate_fees(self): # Set to empty list each time to avoid persistence diff --git a/src/output_window.py b/src/output_window.py index fe80f64..49014b0 100644 --- a/src/output_window.py +++ b/src/output_window.py @@ -66,22 +66,16 @@ class OutputWindow(QWidget): """ def display_output(self, results: list): - self.graphWidget.canvas.axes.clear() - self.graphWidget.canvas.axes.cla() - self.graphWidget.canvas.draw_idle() ax = self.graphWidget.canvas.axes - #self.graphWidget.clf() + ax.clear() + ax.cla() + self.graphWidget.canvas.draw_idle() + names = [] values = [] for result in results: names.append(result[4]) values.append(sum(result[:4])) + h_bars = ax.barh(names, values) - #labels = [] - #for value in values: - # labels.append(f"£{str(value)}") - ax.bar_label(h_bars, label_type='center', labels=[f"£{x:,.2f}" for x in h_bars.datavalues]) - #ax.draw() - #self.graphWidget.draw() - diff --git a/src/platform_edit.py b/src/platform_edit.py index cf45221..b625550 100644 --- a/src/platform_edit.py +++ b/src/platform_edit.py @@ -295,7 +295,6 @@ class PlatformEdit(QWidget): widgets[3].setValue(self.plat.fund_plat_fee[1][x+2]) widgets[3].valueChanged.connect(self.check_valid) - # TODO: why 28.5? if loading: grid_height = int(round(28.5 * self.fund_fee_rows)) else: @@ -332,7 +331,7 @@ class PlatformEdit(QWidget): self.check_valid() self.update_tier_labels() - # TODO: Tab order + # TODO: Tab/focus order def remove_row(self): for widget in self.widgets_list_list[self.fund_fee_rows - 2]: @@ -350,31 +349,3 @@ class PlatformEdit(QWidget): self.check_valid() self.update_tier_labels() - - # Getter functions (is this necessary? maybe directly reading class vars would be best...) - def get_optional_boxes(self): - return self.check_boxes_ticked - - def get_plat_name(self): - return self.plat_name - - def get_fund_plat_fee(self): - return self.fund_plat_fee - - def get_fund_deal_fee(self): - return self.fund_deal_fee - - def get_share_plat_fee(self): - return self.share_plat_fee - - def get_share_plat_max_fee(self): - return self.share_plat_max_fee - - def get_share_deal_fee(self): - return self.share_deal_fee - - def get_share_deal_reduce_trades(self): - return self.share_deal_reduce_trades - - def get_share_deal_reduce_amount(self): - return self.share_deal_reduce_amount diff --git a/src/platform_list.py b/src/platform_list.py index 93e8f9c..63a3c1f 100644 --- a/src/platform_list.py +++ b/src/platform_list.py @@ -34,7 +34,6 @@ class PlatformRename(QDialog): event.ignore() self.reject() - class PlatformList(QWidget): def __init__(self, db: DBHandler): super().__init__() @@ -107,7 +106,9 @@ class PlatformList(QWidget): self.db.write_platforms(self.plat_list) def toggle_platform_state(self): - return None + index = self.platListWidget.currentRow() + state = self.plat_enabled_check.isChecked() + self.db.toggle_platform_state(index, state) def remove_platform(self): return None diff --git a/src/widgets/mpl_widget.py b/src/widgets/mpl_widget.py index 1d6e664..d7c03ee 100644 --- a/src/widgets/mpl_widget.py +++ b/src/widgets/mpl_widget.py @@ -8,7 +8,6 @@ class MplWidget(QWidget): super().__init__(parent) self.canvas = FigureCanvasQTAgg(Figure(figsize=(10, 10), dpi=100)) vertical_layout = QVBoxLayout() - #vertical_layout.setSpacing(0) vertical_layout.addWidget(self.canvas) self.canvas.axes = self.canvas.figure.add_subplot(1, 1, 1) self.setLayout(vertical_layout) \ No newline at end of file