def imageNameFilters(): result = [] mimeDatabase = QMimeDatabase() supportedMimeTypes = QImageReader.supportedMimeTypes() for m in supportedMimeTypes: suffixes = mimeDatabase.mimeTypeForName(m.data().decode()).suffixes() for suffix in suffixes: result.append(f"*.{suffix}") return result
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 _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
def init_image_file_dialog(self, dialog, accept_mode): if self.firstDialog: self.firstDialog = False pictures_locations = QStandardPaths.standardLocations( QStandardPaths.PicturesLocation) dialog.setDirectory(QDir.currentPath( ) if len(pictures_locations) == 0 else pictures_locations[-1]) mime_type_filters = [] supported_mime_types = QImageReader.supportedMimeTypes() if (accept_mode == QFileDialog.AcceptOpen) \ else QImageWriter.supportedMimeTypes() for mimeTypeName in supported_mime_types: mime_type_filters.append(mimeTypeName.data().decode()) mime_type_filters.sort() dialog.setMimeTypeFilters(mime_type_filters) dialog.selectMimeTypeFilter("image/jpeg") if accept_mode == QFileDialog.AcceptSave: dialog.setDefaultSuffix("jpg") dialog.setOption(QFileDialog.DontUseNativeDialog, True)
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())
############################################################################### # MINIMAP ############################################################################### ############################################################################### # FILE MANAGER ############################################################################### # File types supported by Ninja-IDE FILE_TYPES = [("Python files", (".py", ".pyw")), ("QML files", (".qml", )), ("HTML document", (".html", ".htm")), ("JavaScript program", (".js", ".jsm")), ("Ninja project", (".nja", ))] # Mime types image_mimetypes = [ f.data().decode() for f in QImageReader.supportedMimeTypes() ][1:] db = QMimeDatabase() for mt in image_mimetypes: mimetype = db.mimeTypeForName(mt) suffixes = [".{}".format(s) for s in mimetype.suffixes()] FILE_TYPES.append((mimetype.comment(), suffixes)) LANGUAGE_MAP = { "py": "python", "pyw": "python", "js": "javascript", "html": "html", "md": "markdown", "yml": "yaml",
############################################################################### # FILE MANAGER ############################################################################### # File types supported by Ninja-IDE FILE_TYPES = [ ("Python files", (".py", ".pyw")), ("QML files", (".qml",)), ("HTML document", (".html", ".htm")), ("JavaScript program", (".js", ".jsm")), ("Ninja project", (".nja",)) ] # Mime types image_mimetypes = [f.data().decode() for f in QImageReader.supportedMimeTypes()][1:] db = QMimeDatabase() for mt in image_mimetypes: mimetype = db.mimeTypeForName(mt) suffixes = [".{}".format(s) for s in mimetype.suffixes()] FILE_TYPES.append((mimetype.comment(), suffixes)) LANGUAGE_MAP = { "py": "python", "pyw": "python", "js": "javascript", "html": "html", "md": "markdown", "yml": "yaml", "qml": "qml",