Plugins/VcsPlugins/vcsMercurial/HgExportDialog.py

Mon, 26 Dec 2011 19:31:22 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 26 Dec 2011 19:31:22 +0100
changeset 1509
c0b5e693b0eb
parent 1315
faafd2aa48d5
child 2132
8f013b041e8a
child 2303
0ed4ed026c16
permissions
-rw-r--r--

Updated copyright for 2012.

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
1509
c0b5e693b0eb Updated copyright for 2012.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1315
diff changeset
3 # Copyright (c) 2011 - 2012 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
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 import os
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from PyQt4.QtCore import pyqtSlot, QDir
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13 from PyQt4.QtGui import QDialog, QDialogButtonBox, QFileDialog
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 from E5Gui import E5FileDialog
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 from E5Gui.E5Completers import E5DirCompleter
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 import Utilities
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 class HgExportDialog(QDialog, Ui_HgExportDialog):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 Class documentation goes here.
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 def __init__(self, parent=None):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 Constructor
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 @param parent reference to the parent widget (QWidget)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 super().__init__(parent)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 self.setupUi(self)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(False)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 self.__directoryCompleter = E5DirCompleter(self.directoryEdit)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 # set default values for directory and pattern
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 self.patternEdit.setText("%b_%r_%h_%n_of_%N.diff")
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.directoryEdit.setText(QDir.tempPath())
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 def __updateOK(self):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 Private slot to update the OK button.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 enabled = True
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 if self.directoryEdit.text() == "":
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 enabled = False
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 elif self.patternEdit.text() == "":
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 enabled = False
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 elif self.changesetsEdit.toPlainText() == "":
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 enabled = False
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.buttonBox.button(QDialogButtonBox.Ok).setEnabled(enabled)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 @pyqtSlot(str)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 def on_directoryEdit_textChanged(self, p0):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 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
63
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 @param txt contents of the line edit (string)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66 self.__updateOK()
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 @pyqtSlot()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 def on_directoryButton_clicked(self):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 Private slot called by pressing the export directory selection button.
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 dn = E5FileDialog.getExistingDirectory(
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self,
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 self.trUtf8("Export Patches"),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 self.directoryEdit.text(),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 QFileDialog.Options(QFileDialog.Option(0)))
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 if dn:
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.directoryEdit.setText(Utilities.toNativeSeparators(dn))
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 @pyqtSlot(str)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 def on_patternEdit_textChanged(self, p0):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 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
86
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 @param txt contents of the line edit (string)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 self.__updateOK()
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 @pyqtSlot()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 def on_changesetsEdit_textChanged(self):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 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
95
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 @param txt contents of the line edit (string)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self.__updateOK()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 def getParameters(self):
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 Public method to retrieve the export data.
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 @return tuple naming the output file name, the list of revisions to export,
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 and flags indicating to compare against the second parent, to treat all
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 files as text, to omit dates in the diff headers and to use the git extended
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 diff format (string, list of strings, boolean, boolean, boolean, boolean)
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 """
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 return (
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 os.path.join(Utilities.toNativeSeparators(self.directoryEdit.text()),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 self.patternEdit.text()),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
112 self.changesetsEdit.toPlainText().splitlines(),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
113 self.switchParentCheckBox.isChecked(),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 self.textCheckBox.isChecked(),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 self.datesCheckBox.isChecked(),
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 self.gitCheckBox.isChecked()
faafd2aa48d5 Added support for exporting patches.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 )

eric ide

mercurial