Exemple #1
0
    def btn_upload_callback(self):
        """Callback for the button UPLOAD

        Asks the user to select a file and calls the api to send it
        to the server.
        """
        # Create File Select Dialog
        dialog = QFileDialog(parent=self, caption='Images')
        dialog.setMimeTypeFilters(
            ["image/jpeg", "image/png", "image/tiff", 'application/zip'])
        dialog.setFileMode(QFileDialog.ExistingFile)

        if dialog.exec_() == QDialog.Accepted:

            filename = dialog.selectedFiles()[0]

            with open(filename, 'rb') as f:
                file_b64s = fio_to_b64s(f)

            if ext_from_path(filename) == '.zip':
                ret = api.upload_zip(file_b64s, nameext_from_path(filename),
                                     self.user_hash)
            else:
                ret = api.upload_image(file_b64s, nameext_from_path(filename),
                                       self.user_hash)
            if ret.get('success') is False:
                self.show_error(ret['error_msg'])
        self.update_table()
 def _save_as(self):
     dialog = QFileDialog(self, 'Сохранить как...')
     dialog.setAcceptMode(QFileDialog.AcceptSave)
     mime_types = ["text/html", "text/plain",
                   "application/vnd.oasis.opendocument.text"]
     dialog.setMimeTypeFilters(mime_types)
     dialog.setDefaultSuffix("html")
     if dialog.exec_() != QDialog.Accepted:
         self.statusbar.showMessage('Сохранение отменено')
         return False
     self._file_name = dialog.selectedFiles()[0]
     return self._save()
Exemple #3
0
    def download_images(self, im_format: str):
        """Download all selected images in a specified format

        If many images were selected, they are downloaded as a zip
        If only one image is selected, it is downloaded as an image

        :param im_format: format of the output images
        :type im_format: str
        """
        rows = self.tbl_images.get_selected_rows()
        ids = []
        names = []
        for r in rows:
            ids.append(self.tbl_images.item(r, 0).text())
            names.append(self.tbl_images.item(r, 1).text())

        if len(ids) == 1:

            # Create File Save Dialog
            dialog = QFileDialog(parent=self, caption='Save As..')

            dialog.setMimeTypeFilters(["image/" + im_format.lower()])
            dialog.setFileMode(QFileDialog.AnyFile)

            if dialog.exec_() == QDialog.Accepted:
                filename = dialog.selectedFiles()[0]
                ret = api.get_download_images(ids, im_format, self.user_hash)
                if ret.get('success') is False:
                    self.show_error(ret['error_msg'])
                else:
                    image_b = b64s_to_b(ret['data'])
                    with open(filename, 'wb+') as f:
                        f.write(image_b)

        elif len(ids) >= 1:

            # Create File Save Dialog
            dialog = QFileDialog(parent=self, caption='222Save As..')
            dialog.setMimeTypeFilters(['application/zip'])
            dialog.setFileMode(QFileDialog.AnyFile)

            if dialog.exec_() == QDialog.Accepted:
                filename = dialog.selectedFiles()[0]
                ret = api.get_download_images(ids, im_format, self.user_hash)
                if ret.get('success') is False:
                    self.show_error(ret['error_msg'])
                else:
                    image_b = b64s_to_b(ret['data'])
                    with open(filename, 'wb+') as f:
                        f.write(image_b)
        else:
            return
Exemple #4
0
 def addImages(self, directory):
     fileDialog = QFileDialog(self, "Open Images", directory)
     mimeTypeFilters = []
     for mimeTypeName in QImageReader.supportedMimeTypes():
         mimeTypeFilters.append(str(mimeTypeName))
     mimeTypeFilters.sort()
     fileDialog.setMimeTypeFilters(mimeTypeFilters)
     fileDialog.selectMimeTypeFilter('image/png')
     fileDialog.setAcceptMode(QFileDialog.AcceptOpen)
     fileDialog.setFileMode(QFileDialog.ExistingFiles)
     if not self.nativeFileDialogAct.isChecked():
         fileDialog.setOption(QFileDialog.DontUseNativeDialog)
     if fileDialog.exec_() == QDialog.Accepted:
         self.loadImages(fileDialog.selectedFiles())
 def _print_pdf(self):
     dialog = QFileDialog(self, 'Сохранить в PDF')
     dialog.setAcceptMode(QFileDialog.AcceptSave)
     dialog.setMimeTypeFilters(['application/pdf'])
     dialog.setDefaultSuffix('pdf')
     if dialog.exec_() != QDialog.Accepted:
         return
     name = dialog.selectedFiles()[0]
     self._browser(True)
     pdfkit.from_file(f'{self.settings["tempdir"]}/temp_report.html', name)
     self.statusbar.showMessage('Экспорт успешен')
     if platform.system() == 'Darwin':       # macOS
         subprocess.call(('open', name))
     elif platform.system() == 'Windows':    # Windows
         os.startfile(name)
     else:                                   # linux variants
         subprocess.call(('xdg-open', name))
Exemple #6
0
    def _createLoadImagesDialog(self):
        dialog = QFileDialog(self, "Load photos")

        if self._firstLoadDialog:
            self._firstLoadDialog = False
            locations = QStandardPaths.standardLocations(
                QStandardPaths.PicturesLocation)
            dialog.setDirectory(
                locations[-1] if locations else QDir.currentPath())

        supportedTypes = []
        for mtype in QImageReader.supportedMimeTypes():
            supportedTypes.append(str(mtype))
        supportedTypes.sort()
        dialog.setMimeTypeFilters(supportedTypes)

        dialog.setFileMode(QFileDialog.ExistingFiles)
        return dialog
Exemple #7
0
def loadImage():
    # file picker
    f_diag = QFileDialog()
    f_diag.labelText = "Open image"

    # lets pick supported file types
    mimeTypes = QImageReader.supportedMimeTypes()
    for x in range(len(mimeTypes)):
        mimeTypes[x] = str(mimeTypes[x], 'utf-8')

    f_diag.setMimeTypeFilters(mimeTypes)

    f_diag.setFileMode(QFileDialog.ExistingFile)

    # checks wherever anything was picked
    if f_diag.exec():
        res = loadImageFile(f_diag.selectedFiles()[0])
        if res:
            sb_txt.setText("current image: " +
                           QFileInfo(f_diag.selectedFiles()[0]).fileName())
            imageLabel.setPixmap(QPixmap.fromImage(res))
            imageLabel.resize(res.width(), res.height())
Exemple #8
0
    def chooseFiles(self, mode, oldFiles, acceptedMimeTypes):
        # Format acceptedMimeTypes
        mimeFiltersString = []
        nameFiltersString = []

        for x in acceptedMimeTypes:
            if ('/' in x):
                mimeFiltersString.append(x)
            else:
                nameFiltersString.append("*" + x)

        uploadDialog = QFileDialog()

        if (args.downloadPath):
            uploadDialog.setDirectory(args.downloadPath)

        print(len(mimeFiltersString))
        if (len(mimeFiltersString) != 0):
            mimeFiltersString.append("application/octet-stream")
            uploadDialog.setMimeTypeFilters(mimeFiltersString)
        else:
            nameFiltersString.append("All files (*.*)")
            uploadDialog.setNameFilters(nameFiltersString)

        uploadDialog.setFileMode(QFileDialog.ExistingFiles)
        uploadDialog.setAcceptMode(QFileDialog.AcceptOpen)

        options = QFileDialog.Options()
        options |= QFileDialog.ReadOnly
        options |= QFileDialog.DontUseNativeDialog

        uploadDialog.setOptions(options)

        if uploadDialog.exec_():
            fileName = uploadDialog.selectedFiles()
            return fileName

        return [""]