def __init__(self, images, imgFilter, scaleFactor=1.0, readOnly=False, dirty=False): super().__init__() self.images = images self.imgFilter = imgFilter self.selection = LazyList(self._filteredImages()) if readOnly: dirty = False self.scaleFactor = scaleFactor self.readOnly = readOnly self.dirty = dirty self.cur = 0 self.imageInfoDialog = ImageInfoDialog(self.images.directory) self.overviewwindow = None if not self.readOnly: taglist = set() for i in images: taglist |= i.tags self.tagSelectDialog = TagSelectDialog(taglist) else: self.tagSelectDialog = None self.filterDialog = FilterDialog() self.imageLabel = QtGui.QLabel() self.imageLabel.setSizePolicy(QtGui.QSizePolicy.Ignored, QtGui.QSizePolicy.Ignored) self.imageLabel.setScaledContents(True) self.scrollArea = QtGui.QScrollArea() self.scrollArea.setBackgroundRole(QtGui.QPalette.Dark) self.scrollArea.setWidget(self.imageLabel) self.scrollArea.setAlignment(QtCore.Qt.AlignCenter) self.setCentralWidget(self.scrollArea) maxSize = 0.95 * QtGui.QApplication.desktop().screenGeometry().size() self.setMaximumSize(maxSize) self.saveAct = QtGui.QAction("&Save index", self, shortcut="Ctrl+s", enabled=(not self.readOnly), triggered=self.saveIndex) self.closeAct = QtGui.QAction("&Close", self, shortcut="q", triggered=self.close) self.filterOptsAct = QtGui.QAction("Filter Options", self, shortcut="Shift+Ctrl+f", triggered=self.filterOptions) self.zoomInAct = QtGui.QAction("Zoom &In", self, shortcut=">", triggered=self.zoomIn) self.zoomOutAct = QtGui.QAction("Zoom &Out", self, shortcut="<", triggered=self.zoomOut) self.zoomFitHeightAct = QtGui.QAction("Zoom to Fit &Height", self, triggered=self.zoomFitHeight) self.zoomFitWidthAct = QtGui.QAction("Zoom to Fit &Width", self, triggered=self.zoomFitWidth) self.rotateLeftAct = QtGui.QAction("Rotate &Left", self, shortcut="l", triggered=self.rotateLeft) self.rotateRightAct = QtGui.QAction("Rotate &Right", self, shortcut="r", triggered=self.rotateRight) self.fullScreenAct = QtGui.QAction("Show &Full Screen", self, shortcut="f", checkable=True, triggered=self.fullScreen) self.imageInfoAct = QtGui.QAction("Image &Info", self, shortcut="i", triggered=self.imageInfo) self.overviewAct = QtGui.QAction("&Overview Window", self, shortcut="o", triggered=self.overview) self.prevImageAct = QtGui.QAction("&Previous Image", self, shortcut="p", enabled=False, triggered=self.prevImage) self.nextImageAct = QtGui.QAction("&Next Image", self, shortcut="n", enabled=(self._haveNext()), triggered=self.nextImage) self.selectImageAct = QtGui.QAction("&Select Image", self, shortcut="s", enabled=(not self.readOnly), triggered=self.selectImage) self.deselectImageAct = QtGui.QAction("&Deselect Image", self, shortcut="d", enabled=(not self.readOnly), triggered=self.deselectImage) self.pushForwardAct = QtGui.QAction("Push Image &Forward", self, shortcut="Ctrl+f", enabled=(not self.readOnly), triggered=self.pushImageForward) self.pushBackwardAct = QtGui.QAction("Push Image &Backward", self, shortcut="Ctrl+b", enabled=(not self.readOnly), triggered=self.pushImageBackward) self.tagSelectAct = QtGui.QAction("&Tags", self, shortcut="t", enabled=(not self.readOnly), triggered=self.tagSelect) self.fileMenu = QtGui.QMenu("&File", self) self.fileMenu.addAction(self.saveAct) self.fileMenu.addAction(self.closeAct) self.fileMenu.addAction(self.filterOptsAct) self.menuBar().addMenu(self.fileMenu) self.viewMenu = QtGui.QMenu("&View", self) self.viewMenu.addAction(self.zoomInAct) self.viewMenu.addAction(self.zoomOutAct) self.viewMenu.addAction(self.zoomFitHeightAct) self.viewMenu.addAction(self.zoomFitWidthAct) self.viewMenu.addAction(self.rotateLeftAct) self.viewMenu.addAction(self.rotateRightAct) self.viewMenu.addSeparator() self.viewMenu.addAction(self.fullScreenAct) self.viewMenu.addSeparator() self.viewMenu.addAction(self.imageInfoAct) self.viewMenu.addAction(self.overviewAct) self.menuBar().addMenu(self.viewMenu) self.imageMenu = QtGui.QMenu("&Image", self) self.imageMenu.addAction(self.prevImageAct) self.imageMenu.addAction(self.nextImageAct) self.imageMenu.addAction(self.selectImageAct) self.imageMenu.addAction(self.deselectImageAct) self.imageMenu.addSeparator() self.imageMenu.addAction(self.pushForwardAct) self.imageMenu.addAction(self.pushBackwardAct) self.imageMenu.addSeparator() self.imageMenu.addAction(self.tagSelectAct) self.menuBar().addMenu(self.imageMenu) self.show() self._extraSize = self.size() - self.scrollArea.viewport().size() self._loadImage() self._checkActions()