src/eric7/Plugins/VcsPlugins/vcsMercurial/HgExportDialog.py

branch
eric7
changeset 9209
b99e7fd55fd3
parent 8881
54e42bc2437a
child 9221
bf71ee032bb4
equal deleted inserted replaced
9208:3fc8dfeb6ebe 9209:b99e7fd55fd3
1 # -*- coding: utf-8 -*-
2
3 # Copyright (c) 2011 - 2022 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 PyQt6.QtCore import pyqtSlot, QDir
13 from PyQt6.QtWidgets import QDialog, QDialogButtonBox
14
15 from EricWidgets.EricPathPicker import EricPathPickerModes
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(EricPathPickerModes.DIRECTORY_MODE)
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