示例#1
0
    def read_book(self):
        try:
            if self.book_extension[1] == '.cbz':
                self.book = zipfile.ZipFile(self.filename,
                                            mode='r',
                                            allowZip64=True)
                self.image_list = [
                    i.filename for i in self.book.infolist()
                    if not i.is_dir() and is_image(i.filename)
                ]

            elif self.book_extension[1] == '.cbr':
                self.book = rarfile.RarFile(self.filename)
                self.image_list = [
                    i.filename for i in self.book.infolist()
                    if not i.isdir() and is_image(i.filename)
                ]

            self.image_list.sort()
            if not self.image_list:
                return False

            return True

        except:  # Specifying no exception here is warranted
            return False
示例#2
0
    def read_book(self):
        if self.book_extension[1] == '.cbz':
            self.book = zipfile.ZipFile(
                self.filename, mode='r', allowZip64=True)
            self.image_list = [
                i.filename for i in self.book.infolist()
                if not i.is_dir() and is_image(i.filename)]

        elif self.book_extension[1] == '.cbr':
            self.book = rarfile.RarFile(self.filename)
            self.image_list = [
                i.filename for i in self.book.infolist()
                if not i.isdir() and is_image(i.filename)]

        self.image_list.sort()
    def __init__(self, filepath, main_window, parent=None):
        super(PliantQGraphicsView, self).__init__(parent)
        self._translate = QtCore.QCoreApplication.translate
        self.parent = parent
        self.main_window = main_window

        self.image_pixmap = None
        self.image_cache = [None for _ in range(4)]

        self.thread = None

        self.annotation_dict = self.parent.metadata['annotations']

        self.filepath = filepath
        self.filetype = os.path.splitext(self.filepath)[1][1:]

        if self.filetype == 'cbz':
            self.book = zipfile.ZipFile(self.filepath)

        elif self.filetype == 'cbr':
            self.book = rarfile.RarFile(self.filepath)

        elif self.filetype == 'pdf':
            self.book = fitz.open(self.filepath)

        elif self.filetype == 'djvu':
            self.book = djvu.decode.Context().new_document(
                djvu.decode.FileURI(self.filepath))
            self.book.decoding_job.wait()

        self.common_functions = PliantWidgetsCommonFunctions(
            self, self.main_window)

        self.ignore_wheel_event = False
        self.ignore_wheel_event_number = 0
        self.mousePosition = None
        self.setMouseTracking(True)
        self.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag)

        self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.customContextMenuRequested.connect(
            self.generate_graphicsview_context_menu)
示例#4
0
    def __init__(self, filepath, main_window, parent=None):
        super(PliantQGraphicsView, self).__init__(parent)
        self._translate = QtCore.QCoreApplication.translate
        self.parent = parent
        self.main_window = main_window

        self.qimage = None  # Will be needed to resize pdf
        self.image_pixmap = None
        self.image_cache = [None for _ in range(4)]

        self.thread = None

        self.filepath = filepath
        self.filetype = os.path.splitext(self.filepath)[1][1:]

        if self.filetype == 'cbz':
            self.book = zipfile.ZipFile(self.filepath)

        elif self.filetype == 'cbr':
            self.book = rarfile.RarFile(self.filepath)

        elif self.filetype == 'pdf':
            self.book = popplerqt5.Poppler.Document.load(self.filepath)
            self.book.setRenderHint(
                popplerqt5.Poppler.Document.Antialiasing
                and popplerqt5.Poppler.Document.TextAntialiasing)

        self.common_functions = PliantWidgetsCommonFunctions(
            self, self.main_window)

        # TODO
        # Image panning with mouse
        self.ignore_wheel_event = False
        self.ignore_wheel_event_number = 0
        self.setMouseTracking(True)
        self.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag)
        self.viewport().setCursor(QtCore.Qt.ArrowCursor)

        self.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
        self.customContextMenuRequested.connect(
            self.generate_graphicsview_context_menu)