From 6b97819eddd9f918de4aeb95a6d117fceb5611bd Mon Sep 17 00:00:00 2001
From: Jacob Wahlman <jacwa448@student.liu.se>
Date: Mon, 4 May 2020 14:38:55 +0200
Subject: [PATCH] removed improved_main_window

---
 b_asic/GUI/improved_main_window.py | 201 -----------------------------
 1 file changed, 201 deletions(-)
 delete mode 100644 b_asic/GUI/improved_main_window.py

diff --git a/b_asic/GUI/improved_main_window.py b/b_asic/GUI/improved_main_window.py
deleted file mode 100644
index 8c8f8cba..00000000
--- a/b_asic/GUI/improved_main_window.py
+++ /dev/null
@@ -1,201 +0,0 @@
-"""@package docstring
-B-ASIC GUI Module.
-This python file is the main window of the GUI for B-ASIC.
-"""
-
-from os import getcwd, path
-import sys
-
-from drag_button import DragButton
-from gui_interface import Ui_main_window
-from arrow import Arrow
-from port_button import PortButton
-
-from b_asic import Operation
-import b_asic.core_operations as c_oper
-import b_asic.special_operations as s_oper
-from utils import decorate_class, handle_error
-
-from numpy import linspace
-
-from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow, QLabel, QAction,\
-QStatusBar, QMenuBar, QLineEdit, QPushButton, QSlider, QScrollArea, QVBoxLayout,\
-QHBoxLayout, QDockWidget, QToolBar, QMenu, QLayout, QSizePolicy, QListWidget,\
-QListWidgetItem, QGraphicsView, QGraphicsScene, QShortcut
-from PyQt5.QtCore import Qt, QSize, QSize
-from PyQt5.QtGui import QIcon, QFont, QPainter, QPen, QBrush, QKeySequence, QColor
-
-
-MIN_WIDTH_SCENE = 600
-MIN_HEIGHT_SCENE = 520
-
-@decorate_class(handle_error)
-class MainWindow(QMainWindow):
-    def __init__(self):
-        super(MainWindow, self).__init__()
-        self.ui = Ui_main_window()
-        self.ui.setupUi(self)
-        self.setWindowTitle(" ")
-        self.setWindowIcon(QIcon('small_logo.png'))
-        self.scene = None
-        self._operations_from_name = dict()
-        self.zoom = 1
-        self.operationList = []
-        self.signalList = []
-        self.pressed_button = []
-        self.portList = []
-        self.pressed_ports = []
-        self.source = None
-        self._window = self
-
-        self.init_ui()
-        self.add_operations_from_namespace(c_oper, self.ui.core_operations_list)
-        self.add_operations_from_namespace(s_oper, self.ui.special_operations_list)
-
-        self.shortcut_core = QShortcut(QKeySequence("Ctrl+R"), self.ui.operation_box)
-        self.shortcut_core.activated.connect(self._refresh_operations_list_from_namespace)
-
-    def init_ui(self):
-        self.ui.core_operations_list.itemClicked.connect(self.on_list_widget_item_clicked)
-        self.ui.special_operations_list.itemClicked.connect(self.on_list_widget_item_clicked)
-        self.ui.exit_menu.triggered.connect(self.exit_app)
-        self.create_graphics_view()
-
-    def resizeEvent(self, event):
-        self.ui.operation_box.setGeometry(10, 10, self.ui.operation_box.width(), self.height())
-        self.graphic_view.setGeometry(self.ui.operation_box.width() + 20, 0, self.width() - self.ui.operation_box.width() - 20, self.height())
-        super(MainWindow, self).resizeEvent(event)
-
-    def create_graphics_view(self):
-        self.scene = QGraphicsScene(self)
-        self.graphic_view = QGraphicsView(self.scene, self)
-        self.graphic_view.setRenderHint(QPainter.Antialiasing)
-        self.graphic_view.setGeometry(self.ui.operation_box.width(), 0, self.width(), self.height())
-        self.graphic_view.setDragMode(QGraphicsView.ScrollHandDrag)
-
-    def wheelEvent(self, event):
-        if event.modifiers() == Qt.ControlModifier:
-            old_zoom = self.zoom
-            self.zoom += event.angleDelta().y()/2500
-            self.graphic_view.scale(self.zoom, self.zoom)
-            self.zoom = old_zoom
-
-    def exit_app(self, checked):
-        QApplication.quit()
-
-    def _determine_port_distance(self, length, ports):
-        """Determine the distance between each port on the side of an operation.
-        The method returns the distance that each port should have from 0.
-        """
-        return [length / 2] if ports == 1 else linspace(0, length, ports)
-
-    def _create_port(self, operation, output_port=True):
-        text = ">" if output_port else "<"
-        button = PortButton(text, operation, self)
-        button.setStyleSheet("background-color: white")
-        button.connectionRequested.connect(self.connectButton)
-        return button
-
-    def add_ports(self, operation):
-        _output_ports_dist = self._determine_port_distance(50 - 15, operation.operation.output_count)
-        _input_ports_dist = self._determine_port_distance(50 - 15, operation.operation.input_count)
-
-        for dist in _input_ports_dist:
-            port = self._create_port(operation)
-            port.move(0, dist)
-            port.show()
-
-        for dist in _output_ports_dist:
-            port = self._create_port(operation)
-            port.move(50 - 15, dist)
-            port.show()
-
-    def get_operations_from_namespace(self, namespace):
-        return [comp for comp in dir(namespace) if hasattr(getattr(namespace, comp), "type_name")]
-
-    def add_operations_from_namespace(self, namespace, _list):
-        for attr_name in self.get_operations_from_namespace(namespace):
-            attr = getattr(namespace, attr_name)
-            try:
-                attr.type_name()
-                item = QListWidgetItem(attr_name)
-                _list.addItem(item)
-                self._operations_from_name[attr_name] = attr
-            except NotImplementedError:
-                pass
-
-    def _create_operation(self, item):
-        try:
-            attr_oper = self._operations_from_name[item.text()]()
-            attr_button = DragButton(attr_oper.graph_id, attr_oper, attr_oper.type_name().lower(), self)
-            attr_button.move(250, 100)
-            attr_button.setFixedSize(50, 50)
-            attr_button.setStyleSheet("background-color: white; border-style: solid;\
-            border-color: black; border-width: 2px; border-radius: 10px")
-            self.add_ports(attr_button)
-
-            icon_path = path.join("operation_icons", f"{attr_oper.type_name().lower()}.png")
-            if not path.exists(icon_path):
-                icon_path = path.join("operation_icons", f"custom_operation.png")
-            attr_button.setIcon(QIcon(icon_path))
-            attr_button.setIconSize(QSize(50, 50))
-
-            attr_button.setParent(None)
-            self.scene.addWidget(attr_button)
-            self.operationList.append(attr_button)
-        except Exception as e:
-            print("Unexpected error occured: ", e)
-
-    def _refresh_operations_list_from_namespace(self):
-        self.ui.core_operations_list.clear()
-        self.ui.special_operations_list.clear()
-
-        self.add_operations_from_namespace(c_oper, self.ui.core_operations_list)
-        self.add_operations_from_namespace(s_oper, self.ui.special_operations_list)
-
-    def print_input_port_1(self):
-        print("Input port 1")
-
-    def print_input_port_2(self):
-        print("Input port 2")
-
-    def print_output_port_1(self):
-        print("Output port 1")
-
-    def print_output_port_2(self):
-        print("Output port 2")
-
-    def on_list_widget_item_clicked(self, item):
-        self._create_operation(item)
-
-    def keyPressEvent(self, event):
-        pressed_buttons = []
-        for op in self.operationList:
-            if op.pressed:
-                pressed_buttons.append(op)
-        if event.key() == Qt.Key_Delete:
-            for pressed_op in pressed_buttons:
-                self.operationList.remove(pressed_op)
-                pressed_op.remove()
-        super().keyPressEvent(event)
-
-    def connectButton(self, button):
-        if len(self.pressed_ports) < 2:
-            return
-        for i in range(len(self.pressed_ports) - 1):
-            line = Arrow(self.pressed_ports[i], self.pressed_ports[i + 1], self)
-            self.scene.addItem(line)
-            self.signalList.append(line)
-
-        self.update()
-
-    def paintEvent(self, event):
-        for signal in self.signalList:
-            signal.moveLine()
-
-if __name__ == "__main__":
-    app = QApplication(sys.argv)
-    window = MainWindow()
-    window.setMinimumSize(MIN_WIDTH_SCENE, MIN_HEIGHT_SCENE)
-    window.show()
-    sys.exit(app.exec_())
-- 
GitLab