def on_addButton_clicked(self): """ Private slot to add documents to the help database. """ fileNames = E5FileDialog.getOpenFileNames( self, self.tr("Add Documentation"), "", self.tr("Qt Compressed Help Files (*.qch)")) if not fileNames: return for fileName in fileNames: ns = QHelpEngineCore.namespaceName(fileName) if not ns: E5MessageBox.warning( self, self.tr("Add Documentation"), self.tr("""The file <b>{0}</b> is not a valid""" """ Qt Help File.""").format(fileName)) continue if len(self.documentsList.findItems(ns, Qt.MatchFixedString)): E5MessageBox.warning( self, self.tr("Add Documentation"), self.tr( """The namespace <b>{0}</b> is already registered."""). format(ns)) continue self.__engine.registerDocumentation(fileName) self.documentsList.addItem(ns) self.__registeredDocs.append(ns) if ns in self.__unregisteredDocs: self.__unregisteredDocs.remove(ns)
def __installLibraryFiles(self): """ Private slot to install Python files into the onboard library. """ if not self.__deviceVolumeMounted(): E5MessageBox.critical( self.microPython, self.tr("Install Library Files"), self.tr("""The device volume "<b>{0}</b>" is not available.""" """ Ensure it is mounted properly and try again.""")) return target = os.path.join(self.getWorkspace(), "lib") # ensure that the library directory exists on the device if not os.path.isdir(target): os.makedirs(target) libraryFiles = E5FileDialog.getOpenFileNames( self.microPython, self.tr("Install Library Files"), os.path.expanduser("~"), self.tr("Compiled Python Files (*.mpy);;" "Python Files (*.py);;" "All Files (*)")) for libraryFile in libraryFiles: if os.path.exists(libraryFile): shutil.copy2(libraryFile, target)
def on_addDocumentsButton_clicked(self): """ Private slot to add QtHelp documents to the help database. """ fileNames = E5FileDialog.getOpenFileNames( self, self.tr("Add Documentation"), "", self.tr("Qt Compressed Help Files (*.qch)")) if not fileNames: return self.__registerDocumentations(fileNames)
def __openWidget(self): """ Private slot to handle the Open Dialog action. """ fileNameList = E5FileDialog.getOpenFileNames( None, self.tr("Select UI files"), "", self.tr("Qt User-Interface Files (*.ui)")) for fileName in fileNameList: self.preview.loadWidget(fileName) self.__updateActions()
def __openTranslation(self): """ Private slot to handle the Open Translation action. """ fileNameList = E5FileDialog.getOpenFileNames( None, self.tr("Select translation files"), "", self.tr("Qt Translation Files (*.qm)")) first = True for fileName in fileNameList: self.translations.add(fileName, first) first = False self.__updateActions()
def on_addScriptButton_clicked(self): """ Private slot to add scripts to the list. """ startDir = self.packageRootEdit.text() or self.__getStartDir() scriptsList = E5FileDialog.getOpenFileNames( self, self.tr("Add Scripts"), startDir, self.tr("Python Files (*.py);;All Files(*)")) for script in scriptsList: script = script.replace(Utilities.toNativeSeparators(startDir), "") if script.startswith(("\\", "/")): script = script[1:] if script: QListWidgetItem(Utilities.fromNativeSeparators(script), self.scriptsList)
def on_addButton_clicked(self): """ Private slot to add a new search engine. """ fileNames = E5FileDialog.getOpenFileNames( self, self.tr("Add search engine"), "", self.tr("OpenSearch (*.xml);;All Files (*)")) osm = self.__mw.openSearchManager() for fileName in fileNames: if not osm.addEngine(fileName): E5MessageBox.critical( self, self.tr("Add search engine"), self.tr( """{0} is not a valid OpenSearch 1.1 description or""" """ is already on your list.""").format(fileName))
def on_addButton_clicked(self): """ Private slot to add patch files to the list. """ patchFiles = E5FileDialog.getOpenFileNames( self, self.tr("Patch Files"), self.__rootDir, self.tr("Patch Files (*.diff *.patch);;All Files (*)")) if patchFiles: currentPatchFiles = self.__getPatchFilesList() for patchFile in patchFiles: patchFile = Utilities.toNativeSeparators(patchFile) if patchFile not in currentPatchFiles: self.patchFilesList.addItem(patchFile) self.__okButton.setEnabled(len(self.__getPatchFilesList()) > 0) self.on_patchFilesList_itemSelectionChanged()
def on_addModuleButton_clicked(self): """ Private slot to add Python modules to the list. """ startDir = self.packageRootEdit.text() or self.__getStartDir() modulesList = E5FileDialog.getOpenFileNames( self, self.tr("Add Python Modules"), startDir, self.tr("Python Files (*.py)")) for module in modulesList: module = module.replace(Utilities.toNativeSeparators(startDir), "") if module.startswith(("\\", "/")): module = module[1:] if module: QListWidgetItem( os.path.splitext(module)[0].replace("\\", ".").replace("/", "."), self.modulesList)
def __installRequirements(self): """ Private slot to install packages from requirements files. """ prefix = self.environmentsComboBox.itemData( self.environmentsComboBox.currentIndex()) if prefix: requirements = E5FileDialog.getOpenFileNames( self, self.tr("Install Packages"), "", self.tr("Text Files (*.txt);;All Files (*)")) if requirements: args = [] for requirement in requirements: args.extend(["--file", requirement]) ok = self.__conda.installPackages(args, prefix=prefix) if ok: self.on_refreshButton_clicked()
def on_addArchivesButton_clicked(self): """ Private slot to select plugin ZIP-archives via a file selection dialog. """ dn = Preferences.getPluginManager("DownloadPath") archives = E5FileDialog.getOpenFileNames( self, self.tr("Select plugin ZIP-archives"), dn, self.tr("Plugin archive (*.zip)")) if archives: matchflags = Qt.MatchFixedString if not Utilities.isWindowsPlatform(): matchflags |= Qt.MatchCaseSensitive for archive in archives: if len(self.archivesList.findItems(archive, matchflags)) == 0: # entry not in list already self.archivesList.addItem(archive) self.archivesList.sortItems() self.__nextButton.setEnabled(self.archivesList.count() > 0)
def on_fixtureFileButton_clicked(self): """ Private slot to select a fixture file via a file selection dialog. """ fileFilters = self.tr("JSON Files (*.json);;XML Files (*.xml);;") try: import yaml # __IGNORE_WARNING__ fileFilters += self.tr("YAML Files (*.yaml);;") except ImportError: pass fileFilters += self.tr("All Files (*)") fixtureFiles = E5FileDialog.getOpenFileNames( self, self.tr("Select fixture file"), self.__project.getProjectPath(), fileFilters) if fixtureFiles: self.fixturesEdit.setText(" ".join( [Utilities.toNativeSeparators(f) for f in fixtureFiles]))
def on_addButton_clicked(self): """ Private slot to add documents to the help database. """ fileNames = E5FileDialog.getOpenFileNames( self, self.tr("Add Documentation"), "", self.tr("Qt Compressed Help Files (*.qch)")) if not fileNames: return for fileName in fileNames: ns = QHelpEngineCore.namespaceName(fileName) if not ns: E5MessageBox.warning( self, self.tr("Add Documentation"), self.tr( """The file <b>{0}</b> is not a valid""" """ Qt Help File.""").format(fileName) ) continue if len(self.documentsList.findItems(ns, Qt.MatchFixedString)): E5MessageBox.warning( self, self.tr("Add Documentation"), self.tr( """The namespace <b>{0}</b> is already registered.""") .format(ns) ) continue self.__engine.registerDocumentation(fileName) self.documentsList.addItem(ns) self.__registeredDocs.append(ns) if ns in self.__unregisteredDocs: self.__unregisteredDocs.remove(ns)
def on_sourceFileButton_clicked(self): """ Private slot to display a file selection dialog. """ dir = self.sourceFileEdit.text().split(os.pathsep, 1)[0] if not dir: if self.startdir is not None: dir = self.startdir else: dir = self.targetDirEdit.text() if self.filter is None: patterns = { "SOURCES": [], "FORMS": [], "RESOURCES": [], "INTERFACES": [], "TRANSLATIONS": [], } for pattern, filetype in list(self.filetypes.items()): if filetype in patterns: patterns[filetype].append(pattern) dfilter = self.tr( "Source Files ({0});;" "Forms Files ({1});;" "Resource Files ({2});;" "Interface Files ({3});;" "Translation Files ({4});;" "All Files (*)")\ .format( " ".join(patterns["SOURCES"]), " ".join(patterns["FORMS"]), " ".join(patterns["RESOURCES"]), " ".join(patterns["INTERFACES"]), " ".join(patterns["TRANSLATIONS"])) caption = self.tr("Select Files") elif self.filter == 'form': patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "FORMS": patterns.append(pattern) dfilter = self.tr("Forms Files ({0})")\ .format(" ".join(patterns)) caption = self.tr("Select user-interface files") elif self.filter == "resource": patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "RESOURCES": patterns.append(pattern) dfilter = self.tr("Resource Files ({0})")\ .format(" ".join(patterns)) caption = self.tr("Select resource files") elif self.filter == 'source': patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "SOURCES": patterns.append(pattern) dfilter = self.tr("Source Files ({0});;All Files (*)")\ .format(" ".join(patterns)) caption = self.tr("Select source files") elif self.filter == 'interface': patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "INTERFACES": patterns.append(pattern) dfilter = self.tr("Interface Files ({0})")\ .format(" ".join(patterns)) caption = self.tr("Select interface files") elif self.filter == 'translation': patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "TRANSLATIONS": patterns.append(pattern) dfilter = self.tr("Translation Files ({0})")\ .format(" ".join(patterns)) caption = self.tr("Select translation files") elif self.filter == 'others': dfilter = self.tr("All Files (*)") caption = self.tr("Select files") else: return fnames = E5FileDialog.getOpenFileNames(self, caption, dir, dfilter) if len(fnames): self.sourceFileEdit.setText( Utilities.toNativeSeparators(os.pathsep.join(fnames)))
def on_sourceFileButton_clicked(self): """ Private slot to display a file selection dialog. """ dir = self.sourceFileEdit.text().split(os.pathsep, 1)[0] if not dir: if self.startdir is not None: dir = self.startdir else: dir = self.targetDirEdit.text() if self.filter is None: patterns = { "SOURCES": [], "FORMS": [], "RESOURCES": [], "INTERFACES": [], "TRANSLATIONS": [], } for pattern, filetype in list(self.filetypes.items()): if filetype in patterns: patterns[filetype].append(pattern) dfilter = self.tr( "Source Files ({0});;" "Forms Files ({1});;" "Resource Files ({2});;" "Interface Files ({3});;" "Translation Files ({4});;" "All Files (*)")\ .format( " ".join(patterns["SOURCES"]), " ".join(patterns["FORMS"]), " ".join(patterns["RESOURCES"]), " ".join(patterns["INTERFACES"]), " ".join(patterns["TRANSLATIONS"])) caption = self.tr("Select Files") elif self.filter == 'form': patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "FORMS": patterns.append(pattern) dfilter = self.tr("Forms Files ({0})")\ .format(" ".join(patterns)) caption = self.tr("Select user-interface files") elif self.filter == "resource": patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "RESOURCES": patterns.append(pattern) dfilter = self.tr("Resource Files ({0})")\ .format(" ".join(patterns)) caption = self.tr("Select resource files") elif self.filter == 'source': patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "SOURCES": patterns.append(pattern) dfilter = self.tr("Source Files ({0});;All Files (*)")\ .format(" ".join(patterns)) caption = self.tr("Select source files") elif self.filter == 'interface': patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "INTERFACES": patterns.append(pattern) dfilter = self.tr("Interface Files ({0})")\ .format(" ".join(patterns)) caption = self.tr("Select interface files") elif self.filter == 'translation': patterns = [] for pattern, filetype in list(self.filetypes.items()): if filetype == "TRANSLATIONS": patterns.append(pattern) dfilter = self.tr("Translation Files ({0})")\ .format(" ".join(patterns)) caption = self.tr("Select translation files") elif self.filter == 'others': dfilter = self.tr("All Files (*)") caption = self.tr("Select files") else: return fnames = E5FileDialog.getOpenFileNames(self, caption, dir, dfilter) if len(fnames): self.sourceFileEdit.setText(Utilities.toNativeSeparators( os.pathsep.join(fnames)))