def load(self, directory): try: self.project = ProjectManager(directory) self.data = self.project.data except IOError: print 'could not load' self.reset() return
def reset(self): self.project = ProjectManager() self.data = data = self.project.data data.name = 'Application 1' self.create_scene()
class MainWindow(QtGui.QMainWindow): build_timer = build_generator = None def __init__(self, app): super(MainWindow, self).__init__() self.app = app self.load(os.path.join(os.getcwd(), 'save')) name = 'Chowdren' self.setWindowTitle(self.tr(name)) self.app.setApplicationName(name) self.clipboard = app.clipboard() self.workspace = self.create_dock(Workspace, 'Workspace', Qt.LeftDockWidgetArea) for scene in self.data.scenes: self.workspace.add_scene(scene) scene_data = self.data.scenes[0] self.graphics_scene = Scene(self, scene_data) self.scenes = [self.graphics_scene] self.graphics_view = QtGui.QGraphicsView(self.graphics_scene) self.graphics_view.setDragMode(QtGui.QGraphicsView.RubberBandDrag) self.event_editor = EventEditor(self, scene_data) self.event_area = QtGui.QScrollArea() self.event_area.setWidget(self.event_editor) self.event_area.setWidgetResizable(True) # self.gl_widget = QtOpenGL.QGLWidget( # QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers)) # self.graphics_view.setViewport(self.gl_widget) # self.graphics_view.setViewportUpdateMode( # QtGui.QGraphicsView.FullViewportUpdate) self.setCentralWidget(self.event_area) status_bar = self.statusBar() self.status_label = QtGui.QLabel() status_bar.addWidget(self.status_label) menu = self.menuBar() self.file = menu.addMenu('&File') self.new_action = QtGui.QAction('&New', self, shortcut = QtGui.QKeySequence('Ctrl+N'), triggered = self.new_selected) self.file.addAction(self.new_action) self.open_action = QtGui.QAction('&Open...', self, shortcut = QtGui.QKeySequence('Ctrl+O'), triggered = self.open_selected) self.file.addAction(self.open_action) self.file.addSeparator() self.save_action = QtGui.QAction('&Save', self, shortcut = QtGui.QKeySequence.Save, triggered = self.save_selected) # self.save_action.setEnabled(False) self.file.addAction(self.save_action) self.save_as_action = QtGui.QAction('Save &As...', self, shortcut = QtGui.QKeySequence('Ctrl+Shift+S'), triggered = self.save_as_selected) self.file.addAction(self.save_as_action) self.file.addSeparator() self.build_action = QtGui.QAction('&Build', self, shortcut = QtGui.QKeySequence('Ctrl+B'), triggered = self.build_selected) self.file.addAction(self.build_action) self.addToolBar('Main') self.set_status('Ready.') def reset(self): self.project = ProjectManager() self.data = data = self.project.data data.name = 'Application 1' self.create_scene() def load(self, directory): try: self.project = ProjectManager(directory) self.data = self.project.data except IOError: print 'could not load' self.reset() return def save(self): self.set_status('Saving...') self.project.save() self.set_status('Saved.') def create_scene(self): scene = sourcedata.Scene() scene.name = 'Scene %s' % (len(self.data.scenes) + 1) scene.width = 640 scene.height = 480 scene.background = (255, 255, 255) self.data.scenes.append(scene) def new_selected(self): self.base_dir = None self.reset() def open_selected(self): pass def save_selected(self): if self.project.base_dir is None: self.save_as_selected() return self.save() def save_as_selected(self): ret = QtGui.QFileDialog.getExistingDirectory(self, 'Save As') if not ret: return self.project.set_directory(ret) self.save() def set_status(self, text): self.status_label.setText(text) # it is important that we update the contents of the status label # if we are entering a longer, blocking call self.app.processEvents() def build_selected(self): self.save() self.set_status('Building...') self.build_generator = build(self.project, os.path.join(os.getcwd(), 'out')) self.build_timer = QtCore.QTimer(self) self.build_timer.timeout.connect(self.update_build) self.build_timer.start(0.1) def update_build(self): try: self.build_generator.next() except StopIteration: self.build_timer.stop() self.build_timer = self.build_generator = None self.set_status('Build finished.') def create_dock(self, widget_class, name, area): dock = QtGui.QDockWidget(name, self) widget = widget_class(self) dock.setWidget(widget) self.addDockWidget(area, dock) return widget
class MainWindow(QtGui.QMainWindow): build_timer = build_generator = None def __init__(self, app): super(MainWindow, self).__init__() self.app = app self.load(os.path.join(os.getcwd(), 'save')) name = 'Chowdren' self.setWindowTitle(self.tr(name)) self.app.setApplicationName(name) self.clipboard = app.clipboard() self.workspace = self.create_dock(Workspace, 'Workspace', Qt.LeftDockWidgetArea) for scene in self.data.scenes: self.workspace.add_scene(scene) scene_data = self.data.scenes[0] self.graphics_scene = Scene(self, scene_data) self.scenes = [self.graphics_scene] self.graphics_view = QtGui.QGraphicsView(self.graphics_scene) self.graphics_view.setDragMode(QtGui.QGraphicsView.RubberBandDrag) self.event_editor = EventEditor(self, scene_data) self.event_area = QtGui.QScrollArea() self.event_area.setWidget(self.event_editor) self.event_area.setWidgetResizable(True) # self.gl_widget = QtOpenGL.QGLWidget( # QtOpenGL.QGLFormat(QtOpenGL.QGL.SampleBuffers)) # self.graphics_view.setViewport(self.gl_widget) # self.graphics_view.setViewportUpdateMode( # QtGui.QGraphicsView.FullViewportUpdate) self.setCentralWidget(self.event_area) status_bar = self.statusBar() self.status_label = QtGui.QLabel() status_bar.addWidget(self.status_label) menu = self.menuBar() self.file = menu.addMenu('&File') self.new_action = QtGui.QAction('&New', self, shortcut=QtGui.QKeySequence('Ctrl+N'), triggered=self.new_selected) self.file.addAction(self.new_action) self.open_action = QtGui.QAction('&Open...', self, shortcut=QtGui.QKeySequence('Ctrl+O'), triggered=self.open_selected) self.file.addAction(self.open_action) self.file.addSeparator() self.save_action = QtGui.QAction('&Save', self, shortcut=QtGui.QKeySequence.Save, triggered=self.save_selected) # self.save_action.setEnabled(False) self.file.addAction(self.save_action) self.save_as_action = QtGui.QAction( 'Save &As...', self, shortcut=QtGui.QKeySequence('Ctrl+Shift+S'), triggered=self.save_as_selected) self.file.addAction(self.save_as_action) self.file.addSeparator() self.build_action = QtGui.QAction( '&Build', self, shortcut=QtGui.QKeySequence('Ctrl+B'), triggered=self.build_selected) self.file.addAction(self.build_action) self.addToolBar('Main') self.set_status('Ready.') def reset(self): self.project = ProjectManager() self.data = data = self.project.data data.name = 'Application 1' self.create_scene() def load(self, directory): try: self.project = ProjectManager(directory) self.data = self.project.data except IOError: print 'could not load' self.reset() return def save(self): self.set_status('Saving...') self.project.save() self.set_status('Saved.') def create_scene(self): scene = sourcedata.Scene() scene.name = 'Scene %s' % (len(self.data.scenes) + 1) scene.width = 640 scene.height = 480 scene.background = (255, 255, 255) self.data.scenes.append(scene) def new_selected(self): self.base_dir = None self.reset() def open_selected(self): pass def save_selected(self): if self.project.base_dir is None: self.save_as_selected() return self.save() def save_as_selected(self): ret = QtGui.QFileDialog.getExistingDirectory(self, 'Save As') if not ret: return self.project.set_directory(ret) self.save() def set_status(self, text): self.status_label.setText(text) # it is important that we update the contents of the status label # if we are entering a longer, blocking call self.app.processEvents() def build_selected(self): self.save() self.set_status('Building...') self.build_generator = build(self.project, os.path.join(os.getcwd(), 'out')) self.build_timer = QtCore.QTimer(self) self.build_timer.timeout.connect(self.update_build) self.build_timer.start(0.1) def update_build(self): try: self.build_generator.next() except StopIteration: self.build_timer.stop() self.build_timer = self.build_generator = None self.set_status('Build finished.') def create_dock(self, widget_class, name, area): dock = QtGui.QDockWidget(name, self) widget = widget_class(self) dock.setWidget(widget) self.addDockWidget(area, dock) return widget