eric7/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.py

branch
eric7
changeset 8312
800c432b34c8
parent 8228
772103b14c18
child 8318
962bce857696
equal deleted inserted replaced
8311:4e8b98454baa 8312:800c432b34c8
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2011 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
4 #
5
6 """
7 Module implementing a dialog to enter data for the Mercurial export command.
8 """
9
10 import os
11
12 from PyQt5.QtCore import pyqtSlot, QDir
13 from PyQt5.QtWidgets import QDialog, QDialogButtonBox
14
15 from E5Gui.E5PathPicker import E5PathPickerModes
16
17 from .Ui_HgExportDialog import Ui_HgExportDialog
18
19
20 class HgExportDialog(QDialog, Ui_HgExportDialog):
21 """
22 Class implementing a dialog to enter data for the Mercurial export command.
23 """
24 def __init__(self, bookmarksList, bookmarkAvailable, parent=None):
25 """
26 Constructor
27
28 @param bookmarksList list of defined bookmarks
29 @type list of str
30 @param bookmarkAvailable flag indicating the availability of the
31 "--bookmark" option
32 @type bool
33 @param parent reference to the parent widget
34 @type QWidget
35 """
36 super().__init__(parent)
37 self.setupUi(self)
38
39 self.directoryPicker.setMode(E5PathPickerModes.DirectoryMode)
40
41 self.buttonBox.button(
42 QDialogButtonBox.StandardButton.Ok).setEnabled(False)
43
44 # set default values for directory and pattern
45 self.patternEdit.setText("%b_%r_%h_%n_of_%N.diff")
46 self.directoryPicker.setText(QDir.tempPath())
47
48 self.bookmarkCombo.addItem("")
49 self.bookmarkCombo.addItems(sorted(bookmarksList))
50 self.bookmarkCombo.setEnabled(bookmarkAvailable)
51
52 def __updateOK(self):
53 """
54 Private slot to update the OK button.
55 """
56 enabled = True
57
58 if (
59 self.directoryPicker.text() == "" or
60 self.patternEdit.text() == "" or
61 (self.changesetsEdit.toPlainText() == "" and
62 self.bookmarkCombo.currentText() == "")
63 ):
64 enabled = False
65
66 self.buttonBox.button(
67 QDialogButtonBox.StandardButton.Ok).setEnabled(enabled)
68
69 @pyqtSlot(str)
70 def on_directoryPicker_textChanged(self, txt):
71 """
72 Private slot to react on changes of the export directory edit.
73
74 @param txt contents of the line edit (string)
75 """
76 self.__updateOK()
77
78 @pyqtSlot(str)
79 def on_patternEdit_textChanged(self, txt):
80 """
81 Private slot to react on changes of the export file name pattern edit.
82
83 @param txt contents of the line edit (string)
84 """
85 self.__updateOK()
86
87 @pyqtSlot()
88 def on_changesetsEdit_textChanged(self):
89 """
90 Private slot to react on changes of the changesets edit.
91 """
92 self.__updateOK()
93
94 def getParameters(self):
95 """
96 Public method to retrieve the export data.
97
98 @return tuple naming the output file name, the list of revisions to
99 export, the name of a bookmarked branch and flags indicating to
100 compare against the second parent, to treat all files as text,
101 to omit dates in the diff headers and to use the git extended
102 diff format
103 @rtype tuple of (str, list of str, str, bool, bool, bool, bool)
104 """
105 return (
106 os.path.join(
107 self.directoryPicker.text(),
108 self.patternEdit.text()),
109 self.changesetsEdit.toPlainText().splitlines(),
110 self.bookmarkCombo.currentText(),
111 self.switchParentCheckBox.isChecked(),
112 self.textCheckBox.isChecked(),
113 self.datesCheckBox.isChecked(),
114 self.gitCheckBox.isChecked()
115 )

eric ide

mercurial