Exemple #1
0
 def __init__(self):
     QtGui.QMainWindow.__init__(self)
     
     self.setWindowTitle("musicbeamer")
     screen_rectangle = QtGui.QDesktopWidget().availableGeometry()
     sx, sy = screen_rectangle.getRect()[2], screen_rectangle.getRect()[3]
     #'for smaller displays, we want to use vertically all available space'
     #if sy <= 800:
     if platform.uname()[0] == "Windows":
         'on windows we has to deal with the taskbar manually'
         y = sy - 80
     else:
         'on linux .availableGeometry() did it already for us'
         y = sy
     #else:
     #    y = sy #* 0.61
     x = sx * 0.61
     self.resize(int(x), int(y))
     
     self.beamer_controller = BeamerController()
     
     self.addMenuBar()
     
     self.config = Config()
     screen = self.config.getProgramScreen()
     self.routeWindowToPrimaryScreen(screen)
     
     
     self.schedule = None
     self.preview = None
     
     self.layout = QtGui.QHBoxLayout()
     centralWidget = QtGui.QWidget()
     
     self.setCentralWidget(centralWidget)
     centralWidget.setLayout(self.layout)
     
     #self.addPreview()
     self.addSchedule()
     self.addPreview()
     
     self.setViewportSize(self.mainFrame().contentsSize())
Exemple #2
0
class Songbeamer(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        
        self.setWindowTitle("musicbeamer")
        screen_rectangle = QtGui.QDesktopWidget().availableGeometry()
        sx, sy = screen_rectangle.getRect()[2], screen_rectangle.getRect()[3]
        #'for smaller displays, we want to use vertically all available space'
        #if sy <= 800:
        if platform.uname()[0] == "Windows":
            'on windows we has to deal with the taskbar manually'
            y = sy - 80
        else:
            'on linux .availableGeometry() did it already for us'
            y = sy
        #else:
        #    y = sy #* 0.61
        x = sx * 0.61
        self.resize(int(x), int(y))
        
        self.beamer_controller = BeamerController()
        
        self.addMenuBar()
        
        self.config = Config()
        screen = self.config.getProgramScreen()
        self.routeWindowToPrimaryScreen(screen)
        
        
        self.schedule = None
        self.preview = None
        
        self.layout = QtGui.QHBoxLayout()
        centralWidget = QtGui.QWidget()
        
        self.setCentralWidget(centralWidget)
        centralWidget.setLayout(self.layout)
        
        #self.addPreview()
        self.addSchedule()
        self.addPreview()
        
        self.setViewportSize(self.mainFrame().contentsSize())
        
    def addMenuBar(self):
        menubar = self.menuBar()
        
        file = menubar.addMenu('&File')
        
        schedule = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "Neuer Ablaufplan", self)
        schedule.setShortcut("Ctrl+N")
        schedule.setStatusTip("Neuer Ablaufplan")
        self.connect(schedule, QtCore.SIGNAL("triggered()"), self.addSchedule)
        file.addAction(schedule)
        
        exit = QtGui.QAction(QtGui.QIcon('icons/exit.png'), 'Exit', self)
        exit.setShortcut('Ctrl+Q')
        exit.setStatusTip('Exit application')
        self.connect(exit, QtCore.SIGNAL('triggered()'), QtCore.SLOT('close()'))
        file.addAction(exit)
        
        
        edit = menubar.addMenu("&Bearbeiten")
        
        
        insert = menubar.addMenu("&Einfügen")
        
        song = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "Lied einfügen", self)
        song.setShortcut("Ctrl+I")
        song.setStatusTip("Neues Lied in Ablauf einfügen")
        self.connect(song, QtCore.SIGNAL("triggered()"), self.newSong)
        insert.addAction(song)
        
        
        presentation = menubar.addMenu("&Präsentation")
        
        black = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "black", self)
        black.setShortcut("Ctrl+B")
        black.setStatusTip("Leinwand schwarz")
        self.connect(black, QtCore.SIGNAL("triggered()"), self.beamer_controller.blackBeamerWindow)
        presentation.addAction(black)
        
        desktop = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "desktop", self)
        desktop.setStatusTip("Präsentationsfenster schließen")
        self.connect(desktop, QtCore.SIGNAL("triggered()"), self.beamer_controller.closeBeamerWindow)
        presentation.addAction(desktop)
        
        web = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "text", self)
        web.setStatusTip("Zeigt einen Text")
        self.connect(web, QtCore.SIGNAL("triggered()"), lambda: self.beamer_controller.newBeamerWebWindow(None))
        presentation.addAction(web)
        
        image = QtGui.QAction(QtGui.QIcon("icons/exit.png"), "image", self)
        image.setStatusTip("Zeigt einige Bilder")
        self.connect(image, QtCore.SIGNAL("triggered()"), lambda: self.beamer_controller.newBeamerImageWindow(None))
        presentation.addAction(image)
        
        
    def routeWindowToPrimaryScreen(self, screen):
        desktop = QtGui.QApplication.desktop()
        screen_rect = desktop.screenGeometry(int(screen))
        
        self.move(screen_rect.left(), screen_rect.top())
        

    
    def resetSchedule(self):
        pass
    
    def addSchedule(self):
        #self.newPreview()
        #scroll_area_preview = self.addPreview()
        
        self.schedule = Schedule(self.preview)
        #self.schedule.setGeometry(0, 0, 300, 400)
        
        scroll_layout = QtGui.QVBoxLayout()
        scroll_layout.addWidget(self.schedule)
        scroll_layout.setAlignment(QtCore.Qt.AlignTop)
        
        scroll_widget = QtGui.QWidget()
        #scroll_widget = Schedule("bla")
        #self.schedule = scroll_widget
        scroll_widget.setLayout(scroll_layout)
        
        scroll_area = QtGui.QScrollArea()
        scroll_area.setWidgetResizable(True)
        scroll_area.setFixedWidth( SCHEDULE_WIDTH )
        scroll_area.setWidget(scroll_widget)
        
        self.layout.setAlignment(QtCore.Qt.AlignLeft)
        self.layout.addWidget(scroll_area)
        #self.layout.addWidget(scroll_area_preview)
        
        
    def addPreview(self):
        self.preview = Preview(self.beamer_controller)
        
        scroll_layout = QtGui.QVBoxLayout()
        scroll_layout.addWidget(self.preview)
        
        scroll_widget = QtGui.QWidget()
        scroll_widget.setLayout(scroll_layout)
        
        scroll_area = QtGui.QScrollArea()
        scroll_area.setWidgetResizable(False)
        #scroll_area.setFixedWidth( self.y() - SCHEDULE_WIDTH )
        #scroll_area.setFixedWidth(1000)
        #scroll_area.setFixedHeight(2000)
        scroll_area.setWidget(scroll_widget)
        
        self.layout.addWidget(scroll_area)
        
        #self.connect(schedule, QtCore.SIGNAL("triggered()"), self.addSchedule)
        
        print("scroll area")
        print(scroll_area.size())
        
    def newSong(self):
        self.schedule.addButton()