Plugins/VcsPlugins/vcsMercurial/HgArchiveDialog.py

Thu, 03 Apr 2014 23:05:31 +0200

author
T.Rzepka <Tobias.Rzepka@gmail.com>
date
Thu, 03 Apr 2014 23:05:31 +0200
branch
Py2 comp.
changeset 3484
645c12de6b0c
parent 3178
f25fc1364c88
parent 3366
6084bb3c3911
child 3656
441956d8fce5
permissions
-rw-r--r--

Merge with default branch.

2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
3160
209a07d7e401 Updated copyright for 2014.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3008
diff changeset
3 # Copyright (c) 2013 - 2014 Detlev Offenbach <detlev@die-offenbachs.de>
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to enter the archive data.
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3057
diff changeset
10 from __future__ import unicode_literals
2847
1843ef6e2656 Merge with default branch.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2821
diff changeset
11
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt4.QtCore import pyqtSlot, QFileInfo
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt4.QtGui import QDialog, QDialogButtonBox
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from E5Gui.E5Completers import E5FileCompleter, E5DirCompleter
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from E5Gui import E5FileDialog
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from .Ui_HgArchiveDialog import Ui_HgArchiveDialog
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 import Utilities
3186
a05eff845522 Changed all the file or directory selection buttons to QToolButton and gave them an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
21 import UI.PixmapCache
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 class HgArchiveDialog(QDialog, Ui_HgArchiveDialog):
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Class implementing a dialog to enter the archive data.
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 def __init__(self, vcs, parent=None):
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 Constructor
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 @param vcs reference to the Mercurial object (Hg)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param parent reference to the parent widget (QWidget)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 """
2847
1843ef6e2656 Merge with default branch.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2821
diff changeset
35 super(HgArchiveDialog, self).__init__(parent)
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.setupUi(self)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
3186
a05eff845522 Changed all the file or directory selection buttons to QToolButton and gave them an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
38 self.archiveButton.setIcon(UI.PixmapCache.getIcon("open.png"))
a05eff845522 Changed all the file or directory selection buttons to QToolButton and gave them an icon.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
39
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 self.__archiveFileCompleter = E5FileCompleter()
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.__archiveDirCompleter = E5DirCompleter()
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.__activeCompleter = self.__archiveFileCompleter
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.archiveEdit.setCompleter(self.__activeCompleter)
2821
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
44 self.__activeCompleter.model().setNameFilters([])
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
46 self.typeComboBox.addItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
47 self.tr("Detect Automatically"), "")
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
48 self.typeComboBox.addItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
49 self.tr("Directory of Files"), "files")
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
50 self.typeComboBox.addItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
51 self.tr("Uncompressed TAR-Archive"), "tar")
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
52 self.typeComboBox.addItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
53 self.tr("Bzip2 compressed TAR-Archive"), "tbz2")
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
54 self.typeComboBox.addItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
55 self.tr("Gzip compressed TAR-Archive"), "tgz")
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
56 self.typeComboBox.addItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
57 self.tr("Uncompressed ZIP-Archive"), "uzip")
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
58 self.typeComboBox.addItem(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
59 self.tr("Compressed ZIP-Archive"), "zip")
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.__unixFileFilters = [
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
62 self.tr("Bzip2 compressed TAR-Archive (*.tar.bz2)"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
63 self.tr("Gzip compressed TAR-Archive (*.tar.gz)"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
64 self.tr("Uncompressed TAR-Archive (*.tar)"),
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 ]
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.__windowsFileFilters = [
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
67 self.tr("Compressed ZIP-Archive (*.zip)"),
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
68 self.tr("Uncompressed ZIP-Archive (*.uzip)")
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 ]
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 if Utilities.isWindowsPlatform():
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.__fileFilters = ";;".join(
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.__windowsFileFilters + self.__unixFileFilters)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 else:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.__fileFilters = ";;".join(
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 self.__unixFileFilters + self.__windowsFileFilters)
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
76 self.__fileFilters += ";;" + self.tr("All Files (*)")
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77
2821
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
78 self.__typeFilters = {
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
79 "tar": ["*.tar"],
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
80 "tbz2": ["*.tar.bz2", "*.tbz2"],
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
81 "tgz": ["*.tar.gz", "*.tgz"],
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
82 "uzip": ["*.uzip", "*.zip"],
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
83 "zip": ["*.zip"],
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
84 }
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
85
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.subReposCheckBox.setEnabled(vcs.hasSubrepositories())
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 self.__projectPath = \
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 vcs.getPlugin().getProjectHelper().getProject().getProjectPath()
3366
6084bb3c3911 Made some changes to have a bunch of dialogs with correct sizes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
92
6084bb3c3911 Made some changes to have a bunch of dialogs with correct sizes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
93 msh = self.minimumSizeHint()
6084bb3c3911 Made some changes to have a bunch of dialogs with correct sizes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3190
diff changeset
94 self.resize(max(self.width(), msh.width()), msh.height())
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @pyqtSlot(str)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 def on_archiveEdit_textChanged(self, archive):
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 Private slot to handle changes of the archive name.
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2821
diff changeset
100
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2821
diff changeset
101 @param archive name of the archive (string)
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(archive != "")
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 @pyqtSlot()
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 def on_archiveButton_clicked(self):
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 Private slot to select the archive name via a file selection dialog.
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 type_ = self.typeComboBox.itemData(self.typeComboBox.currentIndex())
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 archive = Utilities.fromNativeSeparators(self.archiveEdit.text())
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 if not archive:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 archive = self.__projectPath
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 if type_ == "files":
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 archive = E5FileDialog.getExistingDirectory(
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
119 self.tr("Select Archive Directory"),
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 archive,
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 E5FileDialog.Options(E5FileDialog.ShowDirsOnly))
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 else:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123 archive, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 self,
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3186
diff changeset
125 self.tr("Select Archive File"),
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
126 archive,
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
127 self.__fileFilters,
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
128 None,
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
129 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
130 if archive:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 ext = QFileInfo(archive).suffix()
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 if not ext:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 ex = selectedFilter.split("(*")[1].split(")")[0]
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 if ex:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 archive += ex
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 if archive:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
138 self.archiveEdit.setText(Utilities.toNativeSeparators(archive))
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 @pyqtSlot(int)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 def on_typeComboBox_activated(self, index):
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 Private slot to react on changes of the selected archive type.
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 @param index index of the selected type (integer)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 type_ = self.typeComboBox.itemData(index)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 if type_ == "files":
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 if self.__activeCompleter != self.__archiveDirCompleter:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 self.__activeCompleter = self.__archiveDirCompleter
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 self.archiveEdit.setCompleter(self.__activeCompleter)
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152 else:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 if self.__activeCompleter != self.__archiveFileCompleter:
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 self.__activeCompleter = self.__archiveFileCompleter
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155 self.archiveEdit.setCompleter(self.__activeCompleter)
2821
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
156 if type_ in self.__typeFilters:
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
157 self.__activeCompleter.model().setNameFilters(
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
158 self.__typeFilters[type_])
2821
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
159 else:
459cc954bea8 Made the file completer of the Mercurial archive dialog sensitive to the selected file type.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2820
diff changeset
160 self.__activeCompleter.model().setNameFilters([])
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162 def getData(self):
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 Public method to retrieve the data.
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
3008
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
166 @return tuple giving the archive name (string), the archive type
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
167 (string), the directory prefix 8string) and a flag indicating
7848489bcb92 Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2962
diff changeset
168 to recurse into subrepositories (boolean)
2820
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
169 """
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
170 return (
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
171 self.archiveEdit.text(),
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 self.typeComboBox.itemData(self.typeComboBox.currentIndex()),
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 self.prefixEdit.text(),
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 self.subReposCheckBox.isChecked(),
642c1f3c23c8 Started implementing support for the Mercurial archive function.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 )

eric ide

mercurial