Skip to content
Snippets Groups Projects
Commit cdb4875a authored by Andreas Bolin's avatar Andreas Bolin
Browse files

workspace dump

parent d210ae4d
No related branches found
No related tags found
1 merge request!78Add scheduler GUI
Pipeline #73284 passed
......@@ -3,11 +3,12 @@
Graphical user interface for B-ASIC scheduler.
"""
from logger import *
from main_window import *
from graphics_graph import *
from graphics_axis import *
from component_item import *
from logger import *
from main_window import *
from graphics_graph_item import *
from graphics_graph_event import *
from graphics_axis_item import *
from graphics_component_item import *
# __all__ = ['main_window', 'graphics_graph', 'graphics_axis', 'component_item']
__version__ = '0.1'
......
......@@ -2,20 +2,15 @@
# -*- coding: utf-8 -*-
"""B-ASIC Scheduler-gui Module.
Contains the scheduler-gui class for scheduling operations in an SFG.
Contains the scheduler-gui MainWindow class for scheduling operations in an SFG.
Start main-window with start_gui().
"""
import os
import sys
from pathlib import Path
from types import ModuleType
from typing import Any, Iterable, List
from typing import Any, Iterable, List, Sequence, Type
from pprint import pprint
#from matplotlib.pyplot import bar
#from diagram import *
......@@ -120,6 +115,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
_graph: GraphicsGraphItem
_scale: float
_debug_rects: QGraphicsItemGroup
_splitter_pos: int
_splitter_min: int
def __init__(self):
......@@ -133,15 +130,17 @@ class MainWindow(QMainWindow, Ui_MainWindow):
QIcon.setThemeName('breeze')
log.debug('themeName: \'{}\''.format(QIcon.themeName()))
log.debug('themeSearchPaths: {}'.format(QIcon.themeSearchPaths()))
self.setupUi(self)
# self._splitter_pos = 0
self._read_settings()
self._init_ui()
self._init_graphics()
self._read_settings()
# self._splitter_pos = self.splitter.sizes()[1]
def _init_ui(self) -> None:
"""Initialize the ui"""
self.setupUi(self)
# Connect signals to slots
self.menu_load_from_file.triggered .connect(self._load_schedule_from_pyfile)
......@@ -168,6 +167,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.info_table.setItem(i,1,item)
# Init central-widget splitter
self._splitter_min = self.splitter.minimumSizeHint().height()
self.splitter.setStretchFactor(0, 1)
self.splitter.setStretchFactor(1, 0)
self.splitter.setCollapsible(0, False)
......@@ -304,15 +304,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def toggle_component_info(self, checked: bool) -> None:
"""This method toggles the right hand side info window."""
# Note: splitter handler index 0 is a hidden splitter handle far most left, use index 1
settings = QSettings()
range = self.splitter.getRange(1) # tuple(min, max)
# settings = QSettings()
_, max = self.splitter.getRange(1) # tuple(min, max)
if checked:
self.splitter.restoreState(settings.value("mainwindow/splitter/last_state"))
# self.splitter.restoreState(settings.value("splitterSizes"))
if self._splitter_pos < self._splitter_min:
self.splitter.moveSplitter(max - self._splitter_min, 1)
else:
self.splitter.moveSplitter(max - self._splitter_pos, 1)
else:
settings.setValue("mainwindow/splitter/last_state", self.splitter.saveState())
self.splitter.moveSplitter(range[1], 1)
self.splitter.moveSplitter(max, 1)
@Slot(bool)
def toggle_exit_dialog(self, checked: bool) -> None:
......@@ -323,13 +324,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
def _splitter_moved(self, pos: int, index: int) -> None:
"""Callback method used to check if the right widget (info window)
has collapsed. Update the checkbutton accordingly."""
# TODO: Custom move handler, save state on click-release?
widths: list[int, int] = list(self.splitter.sizes())
width = self.splitter.sizes()[1]
if widths[1] == 0:
self.menu_node_info.setChecked(False)
if width == 0:
if self.menu_node_info.isChecked() is True:
self.menu_node_info.setChecked(False)
else:
self.menu_node_info.setChecked(True)
if self.menu_node_info.isChecked() is False:
self.menu_node_info.setChecked(True)
self._splitter_pos = width
@Slot('QList<QRectF>')
def shrink_scene_to_min_size(self, region: List[QRectF]) -> None:
......@@ -395,6 +399,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
s.setValue('mainwindow/state', self.saveState()) # toolbars, dockwidgets: pos, size
s.setValue('mainwindow/menu/node_info', self.menu_node_info.isChecked())
s.setValue('mainwindow/splitter/state', self.splitter.saveState())
s.setValue('mainwindow/splitter/pos', self.splitter.sizes()[1])
if s.isWritable():
log.debug('Settings written to \'{}\'.'.format(s.fileName()))
......@@ -412,6 +417,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.restoreState( s.value('mainwindow/state', QByteArray()))
self.menu_node_info.setChecked( s.value('mainwindow/menu/node_info', True, bool))
self.splitter.restoreState( s.value('mainwindow/splitter/state', QByteArray()))
self._splitter_pos = ( s.value('mainwindow/splitter/pos', 200, int))
self.menu_exit_dialog.setChecked( s.value('mainwindow/hide_exit_dialog', False, bool))
log.debug('Settings read from \'{}\'.'.format(s.fileName()))
......
......@@ -49,6 +49,9 @@
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="handleWidth">
<number>0</number>
</property>
<widget class="QGraphicsView" name="view">
<property name="renderHints">
<set>QPainter::HighQualityAntialiasing|QPainter::TextAntialiasing</set>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment