summaryrefslogtreecommitdiff
path: root/src/main/python/utils/fileWindow.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/python/utils/fileWindow.py')
-rw-r--r--src/main/python/utils/fileWindow.py83
1 files changed, 45 insertions, 38 deletions
diff --git a/src/main/python/utils/fileWindow.py b/src/main/python/utils/fileWindow.py
index f9b3ac5..c850b27 100644
--- a/src/main/python/utils/fileWindow.py
+++ b/src/main/python/utils/fileWindow.py
@@ -13,7 +13,7 @@ class fileWindow(QMdiSubWindow):
canvases. Pre-Defined so that a file can be instantly created without defining the structure again.
"""
fileCloseEvent = pyqtSignal(int)
- fileMinimized = pyqtSignal(QMdiSubWindow)
+
def __init__(self, parent = None, title = 'New Project', size = 'A4', ppi = '72'):
super(fileWindow, self).__init__(parent)
self._sideViewTab = None
@@ -53,61 +53,49 @@ class fileWindow(QMdiSubWindow):
self.splitter.setVisible(False)
self.sideView.setVisible(False)
- def changeTab(self, currentIndex):
- #placeholder function to detect tab change
- self.resizeHandler()
-
- def closeTab(self, currentIndex):
- #show save alert on tab close
- if dialogs.saveEvent(self):
- self.tabber.widget(currentIndex).deleteLater()
- self.tabber.removeTab(currentIndex)
-
- def newDiagram(self):
- # helper function to add a new tab on pressing new tab button, using the add tab method on QTabWidget
- diagram = canvas(self.tabber)
- diagram.setObjectName("New")
- index = self.tabber.addTab(diagram, "New")
- self.tabber.setCurrentIndex(index)
-
def resizeHandler(self):
- # experimental resize Handler to handle resize on parent resize.
+ # resize Handler to handle resize cases.
parentRect = self.mdiArea().size()
current = self.tabber.currentWidget()
width, height = current.dimensions
+
+ # if side view is visible, set width to maximum possible, else use minimum requirement
if self.sideViewTab:
width = parentRect.width()
height = parentRect.height()
else:
width = min(parentRect.width(), width + 100)
height = min(parentRect.height(), height + 200)
- # width = parentRect.width()
- # height = parentRect.height()
+
+ # set element dimensions
self.setFixedSize(width, height)
self.tabber.resize(width, height)
self.tabber.currentWidget().adjustView()
-
- def adjustCanvasDialog(self):
- #helper function to the context menu dialog box
- currentTab = self.tabber.currentWidget()
- result = dialogs.paperDims(self, currentTab._canvasSize, currentTab._ppi, currentTab.objectName()).exec_()
- if result is not None:
- currentTab.canvasSize, currentTab.ppi = result
- return self.resizeHandler()
- else:
- return None
def contextMenu(self, point):
#function to display the right click menu at point of right click
menu = QMenu("Context Menu", self)
menu.addAction("Adjust Canvas", self.adjustCanvasDialog)
- menu.addAction("View Side-By-Side", self.sideViewMode)
+ menu.addAction("Remove Side View" if self.sideViewTab == self.tabber.currentWidget() else "View Side-By-Side",
+ self.sideViewMode)
menu.exec_(self.mapToGlobal(point))
- def sideViewMode(self):
+ def sideViewMode(self):
+ #helper context menu function to toggle side view
self.sideViewTab = self.tabber.currentWidget()
+ def adjustCanvasDialog(self):
+ #helper context menu function to the context menu dialog box
+ currentTab = self.tabber.currentWidget()
+ result = dialogs.paperDims(self, currentTab._canvasSize, currentTab._ppi, currentTab.objectName()).exec_()
+ if result is not None:
+ currentTab.canvasSize, currentTab.ppi = result
+ return self.resizeHandler()
+ else:
+ return None
+
def sideViewToggle(self):
+ #Function checks if current side view tab is set, and toggles view as required
if self.sideViewTab:
self.splitter.setVisible(True)
self.sideView.setVisible(True)
@@ -122,13 +110,9 @@ class fileWindow(QMdiSubWindow):
@property
def sideViewTab(self):
+ #returns current active if sideViewTab otherwise None
return self._sideViewTab
- @sideViewTab.setter
- def sideViewTab(self, tab):
- self._sideViewTab = None if tab == self.sideViewTab else tab
- return self.sideViewToggle()
-
@property
def tabList(self):
#returns a list of tabs in the given window
@@ -139,6 +123,29 @@ class fileWindow(QMdiSubWindow):
#returns the number of tabs in the given window only
return self.tabber.count()
+ @sideViewTab.setter
+ def sideViewTab(self, tab):
+ #setter for side view. Also toggles view as necessary
+ self._sideViewTab = None if tab == self.sideViewTab else tab
+ return self.sideViewToggle()
+
+ def changeTab(self, currentIndex):
+ #placeholder function to detect tab change
+ self.resizeHandler()
+
+ def closeTab(self, currentIndex):
+ #show save alert on tab close
+ if dialogs.saveEvent(self):
+ self.tabber.widget(currentIndex).deleteLater()
+ self.tabber.removeTab(currentIndex)
+
+ def newDiagram(self):
+ # helper function to add a new tab on pressing new tab button, using the add tab method on QTabWidget
+ diagram = canvas(self.tabber)
+ diagram.setObjectName("New")
+ index = self.tabber.addTab(diagram, "New")
+ self.tabber.setCurrentIndex(index)
+
def saveProject(self, name = None):
# called by dialog.saveEvent, saves the current file
name = QFileDialog.getSaveFileName(self, 'Save File', f'New Diagram', 'Process Flow Diagram (*.pfd)') if not name else name