Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.py

changeset 4593
cc745fa6c914
parent 4021
195a471c327b
child 4631
5c1a96925da4
--- 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(),

eric ide

mercurial