Exemplo n.º 1
0
 def load(self, directory):
     try:
         self.project = ProjectManager(directory)
         self.data = self.project.data
     except IOError:
         print 'could not load'
         self.reset()
         return
Exemplo n.º 2
0
 def load(self, directory):
     try:
         self.project = ProjectManager(directory)
         self.data = self.project.data
     except IOError:
         print 'could not load'
         self.reset()
         return
Exemplo n.º 3
0
 def reset(self):
     self.project = ProjectManager()
     self.data = data = self.project.data
     data.name = 'Application 1'
     self.create_scene()
Exemplo n.º 4
0
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
Exemplo n.º 5
0
 def reset(self):
     self.project = ProjectManager()
     self.data = data = self.project.data
     data.name = 'Application 1'
     self.create_scene()
Exemplo n.º 6
0
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