def __init__(self, args=None): QtCore.QObject.__init__(self) self.app = QtGui.QApplication(["FireSim"]) self.args = args self.config = Config("data/config.json") if self.args.profile: try: import yappi yappi.start() except ImportError: log.error("Could not enable YaPPI profiling") self._selected_fixture_strand = 0 self._selected_fixture_address = 0 self._selected_fixture_pixels = 0 self.selected_fixture = None self.is_blurred = False self.scene = Scene( os.path.join(self.config.get("scene_root"), self.args.scene) + ".json") self.scenecontroller = SceneController(app=self, scene=self.scene) QtDeclarative.qmlRegisterType(CanvasWidget, "FireSim", 1, 0, "SimCanvas") QtDeclarative.qmlRegisterType(FixtureWidget, "FireSim", 1, 0, "Fixture") self.view = QtDeclarative.QDeclarativeView() self.view.setWindowTitle("FireSim") self.view.setResizeMode( QtDeclarative.QDeclarativeView.SizeRootObjectToView) self.view.closeEvent = self.on_close self.context = self.view.rootContext() self.context.setContextProperty('main', self) self.fixture_info_list = [] self.context.setContextProperty('fixtureInfoModel', self.fixture_info_list) self.view.setSource(QtCore.QUrl('ui/qml/FireSimGUI.qml')) self.root = self.view.rootObject() self.item_frame = self.root.findChild(QtDeclarative.QDeclarativeItem) self.canvas = self.root.findChild(CanvasWidget) self.canvas.gui = self cw, ch = self.scenecontroller.scene.extents() self.canvas.setWidth(cw) self.canvas.setHeight(ch) self.scenecontroller.set_canvas(self.canvas) self.root.backdrop_showhide_callback.connect( self.on_btn_backdrop_showhide) self.root.labels_showhide_callback.connect(self.on_btn_labels_showhide) self.root.lock_callback.connect(self.on_btn_lock) self.root.show_center_callback.connect(self.on_btn_show_center) self.root.toggle_blurred_callback.connect(self.on_btn_toggle_blurred) #self.net_thread = QtCore.QThread() #self.net_thread.start() self.netcontroller = NetController(self) #self.netcontroller.moveToThread(self.net_thread) #self.netcontroller.start.emit() self.net_stats_timer = QtCore.QTimer() self.net_stats_timer.setInterval(1000) self.net_stats_timer.timeout.connect(self.update_net_stats) self.net_stats_timer.start() self.netcontroller.data_received.connect(self.on_network_event) self.scenecontroller.new_frame.connect( self.netcontroller.frame_complete) self.netcontroller.data_received.connect( self.scenecontroller.process_command) self.view.setFixedSize(max(640, cw + 130), max(480, ch)) log.info("FireSimGUI Ready.") self.view.show()