eric6/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.py

Sat, 21 Sep 2019 22:03:03 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 21 Sep 2019 22:03:03 +0200
changeset 7257
c4d0cac9b5c9
parent 7229
53054eb5b15a
child 7360
9190402e4505
permissions
-rw-r--r--

Continued to resolve code style issue M841.

1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
6645
ad476851d7e0 Updated copyright for 2019.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6462
diff changeset
3 # Copyright (c) 2011 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to enter data for the Mercurial export command.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
10
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import os
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
13 from PyQt5.QtCore import pyqtSlot, QDir
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
14 from PyQt5.QtWidgets import QDialog, QDialogButtonBox
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
16 from E5Gui.E5PathPicker import E5PathPickerModes
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 from .Ui_HgExportDialog import Ui_HgExportDialog
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 class HgExportDialog(QDialog, Ui_HgExportDialog):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 """
6047
39586a2de99d Fixed some forgotten source code documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
23 Class implementing a dialog to enter data for the Mercurial export command.
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
6462
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
25 def __init__(self, bookmarksList, bookmarkAvailable, parent=None):
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 Constructor
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28
6462
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
29 @param bookmarksList list of defined bookmarks
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
30 @type list of str
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
31 @param bookmarkAvailable flag indicating the availability of the
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
32 "--bookmark" option
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
33 @type bool
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
34 @param parent reference to the parent widget
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
35 @type QWidget
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
37 super(HgExportDialog, self).__init__(parent)
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.setupUi(self)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
40 self.directoryPicker.setMode(E5PathPickerModes.DirectoryMode)
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
41
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 # set default values for directory and pattern
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.patternEdit.setText("%b_%r_%h_%n_of_%N.diff")
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
46 self.directoryPicker.setText(QDir.tempPath())
6462
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
47
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
48 self.bookmarkCombo.addItem("")
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
49 self.bookmarkCombo.addItems(sorted(bookmarksList))
7110
948994b4f045 HgExportDialog: fixed a type causing an exception at runtime.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6942
diff changeset
50 self.bookmarkCombo.setEnabled(bookmarkAvailable)
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 def __updateOK(self):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 Private slot to update the OK button.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 enabled = True
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
58 if self.directoryPicker.text() == "":
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 enabled = False
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 elif self.patternEdit.text() == "":
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 enabled = False
7257
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
62 elif (
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
63 self.changesetsEdit.toPlainText() == "" and
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
64 self.bookmarkCombo.currentText() == ""
c4d0cac9b5c9 Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7229
diff changeset
65 ):
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 enabled = False
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enabled)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 @pyqtSlot(str)
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
71 def on_directoryPicker_textChanged(self, txt):
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 Private slot to react on changes of the export directory edit.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 @param txt contents of the line edit (string)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.__updateOK()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 @pyqtSlot(str)
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
80 def on_patternEdit_textChanged(self, txt):
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 Private slot to react on changes of the export file name pattern edit.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 @param txt contents of the line edit (string)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.__updateOK()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 @pyqtSlot()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 def on_changesetsEdit_textChanged(self):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91 Private slot to react on changes of the changesets edit.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self.__updateOK()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 def getParameters(self):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 Public method to retrieve the export data.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
99 @return tuple naming the output file name, the list of revisions to
6462
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
100 export, the name of a bookmarked branch and flags indicating to
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
101 compare against the second parent, to treat all files as text,
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
102 to omit dates in the diff headers and to use the git extended
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
103 diff format
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
104 @rtype tuple of (str, list of str, str, bool, bool, bool, bool)
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 return (
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
107 os.path.join(
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
108 self.directoryPicker.text(),
2962
d6c9d1ca2da4 Continued correcting doc strings by using the new doc string checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
109 self.patternEdit.text()),
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 self.changesetsEdit.toPlainText().splitlines(),
6462
58259e234dc9 hg, HgExportDialog: added support for the hg export '--bookmark' option as of Mercurial 4.7.0.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6458
diff changeset
111 self.bookmarkCombo.currentText(),
1315
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.switchParentCheckBox.isChecked(),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.textCheckBox.isChecked(),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.datesCheckBox.isChecked(),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.gitCheckBox.isChecked()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 )

eric ide

mercurial