--- a/Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.py Sun Nov 29 17:25:42 2015 +0100 +++ b/Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.py Sun Nov 29 19:29:34 2015 +0100 @@ -9,16 +9,14 @@ from __future__ import unicode_literals -from PyQt5.QtCore import pyqtSlot, QFileInfo +from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import QDialog, QDialogButtonBox -from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter -from E5Gui import E5FileDialog +from E5Gui.E5PathPicker import E5PathPickerModes from .Ui_HgArchiveDialog import Ui_HgArchiveDialog import Utilities -import UI.PixmapCache class HgArchiveDialog(QDialog, Ui_HgArchiveDialog): @@ -35,13 +33,8 @@ super(HgArchiveDialog, self).__init__(parent) self.setupUi(self) - self.archiveButton.setIcon(UI.PixmapCache.getIcon("open.png")) - - self.__archiveFileCompleter = E5FileCompleter() - self.__archiveDirCompleter = E5DirCompleter() - self.__activeCompleter = self.__archiveFileCompleter - self.archiveEdit.setCompleter(self.__activeCompleter) - self.__activeCompleter.model().setNameFilters([]) + self.archivePicker.setMode( + E5PathPickerModes.SaveFileEnsureExtensionMode) self.typeComboBox.addItem( self.tr("Detect Automatically"), "") @@ -68,12 +61,14 @@ self.tr("Uncompressed ZIP-Archive (*.uzip)") ] if Utilities.isWindowsPlatform(): - self.__fileFilters = ";;".join( + fileFilters = ";;".join( self.__windowsFileFilters + self.__unixFileFilters) else: - self.__fileFilters = ";;".join( + fileFilters = ";;".join( self.__unixFileFilters + self.__windowsFileFilters) - self.__fileFilters += ";;" + self.tr("All Files (*)") + fileFilters += ";;" + self.tr("All Files (*)") + + self.archivePicker.setFilters(fileFilters) self.__typeFilters = { "tar": ["*.tar"], @@ -94,7 +89,7 @@ self.resize(max(self.width(), msh.width()), msh.height()) @pyqtSlot(str) - def on_archiveEdit_textChanged(self, archive): + def on_archivePicker_textChanged(self, archive): """ Private slot to handle changes of the archive name. @@ -102,41 +97,6 @@ """ self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(archive != "") - @pyqtSlot() - def on_archiveButton_clicked(self): - """ - Private slot to select the archive name via a file selection dialog. - """ - type_ = self.typeComboBox.itemData(self.typeComboBox.currentIndex()) - - archive = Utilities.fromNativeSeparators(self.archiveEdit.text()) - if not archive: - archive = self.__projectPath - - if type_ == "files": - archive = E5FileDialog.getExistingDirectory( - self, - self.tr("Select Archive Directory"), - archive, - E5FileDialog.Options(E5FileDialog.ShowDirsOnly)) - else: - archive, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( - self, - self.tr("Select Archive File"), - archive, - self.__fileFilters, - None, - E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) - if archive: - ext = QFileInfo(archive).suffix() - if not ext: - ex = selectedFilter.split("(*")[1].split(")")[0] - if ex: - archive += ex - - if archive: - self.archiveEdit.setText(Utilities.toNativeSeparators(archive)) - @pyqtSlot(int) def on_typeComboBox_activated(self, index): """ @@ -146,18 +106,15 @@ """ type_ = self.typeComboBox.itemData(index) if type_ == "files": - if self.__activeCompleter != self.__archiveDirCompleter: - self.__activeCompleter = self.__archiveDirCompleter - self.archiveEdit.setCompleter(self.__activeCompleter) + self.archivePicker.setMode(E5PathPickerModes.DirectoryMode) else: - if self.__activeCompleter != self.__archiveFileCompleter: - self.__activeCompleter = self.__archiveFileCompleter - self.archiveEdit.setCompleter(self.__activeCompleter) + self.archivePicker.setMode( + E5PathPickerModes.SaveFileEnsureExtensionMode) if type_ in self.__typeFilters: - self.__activeCompleter.model().setNameFilters( + self.archivePicker.setNameFilters( self.__typeFilters[type_]) else: - self.__activeCompleter.model().setNameFilters([]) + self.archivePicker.setNameFilters([]) def getData(self): """ @@ -168,7 +125,7 @@ to recurse into subrepositories (boolean) """ return ( - self.archiveEdit.text(), + self.archivePicker.text(), self.typeComboBox.itemData(self.typeComboBox.currentIndex()), self.prefixEdit.text(), self.subReposCheckBox.isChecked(),