src/eric7/Project/NewDirectoryDialog.py

Wed, 07 May 2025 18:30:34 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Wed, 07 May 2025 18:30:34 +0200
branch
eric7
changeset 11273
08262d5d2c9f
parent 11090
f5f5f5803935
permissions
-rw-r--r--

Removed the IRC icon because these are part of the IRC plugin.

10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
11090
f5f5f5803935 Updated copyright for 2025.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 10845
diff changeset
3 # Copyright (c) 2024 - 2025 Detlev Offenbach <detlev@die-offenbachs.de>
10845
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a dialog to enter the data for a new project sub-directory.
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt6.QtWidgets import QCheckBox, QDialog, QDialogButtonBox, QLabel, QVBoxLayout
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12 from eric7.EricWidgets.EricPathPicker import EricPathPicker, EricPathPickerModes
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
13
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
15 class NewDirectoryDialog(QDialog):
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 Class implementing a dialog to enter the data for a new project sub-directory.
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20 def __init__(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 self,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 title=None,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 label=None,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 mode=EricPathPickerModes.DIRECTORY_MODE,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 strPath=None,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 defaultDirectory=None,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 remote=False,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 parent=None,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 ):
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
31 Constructor
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
32
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
33 @param title title of the dialog (defaults to None)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 @type str (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 @param label text to be shown above the directory path picker (defaults to None)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 @type str (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37 @param mode mode of the path picker (defaults to
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 EricPathPickerModes.DIRECTORY_MODE)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 @type EricPathPickerModes (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40 @param strPath initial path to be shown (defaults to None)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 @type str (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 @param defaultDirectory default directory of the path picker selection dialog
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 (defaults to None)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 @type str (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 @param remote flag indicating the remote mode (defaults to False)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 @type bool (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 @param parent reference to the parent widget (defaults to None)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 @type QWidget (optional)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 super().__init__(parent)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.setMinimumWidth(400)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.__layout = QVBoxLayout(self)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.__label = QLabel(self)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57 self.__label.setWordWrap(True)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 self.__pathPicker = EricPathPicker(self)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.__pathPicker.setMode(mode)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 self.__addToProjectCheckBox = QCheckBox(self.tr("Add to project"), self)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.__buttonBox = QDialogButtonBox(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63 QDialogButtonBox.StandardButton.Cancel | QDialogButtonBox.StandardButton.Ok,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 self,
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 self.__layout.addWidget(self.__label)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.__layout.addWidget(self.__pathPicker)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.__layout.addWidget(self.__addToProjectCheckBox)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.__layout.addWidget(self.__buttonBox)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
72 self.setWindowTitle(self.tr("New directory") if title is None else title)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.__label.setText(
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
74 self.tr("Enter the path of the new directory:") if label is None else label
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75 )
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76 if strPath:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.__pathPicker.setText(strPath)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 if defaultDirectory:
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 self.__pathPicker.setDefaultDirectory(defaultDirectory)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.__pathPicker.setRemote(remote)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.__buttonBox.accepted.connect(self.accept)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83 self.__buttonBox.rejected.connect(self.reject)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
84
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 msh = self.minimumSizeHint()
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.resize(max(self.width(), msh.width()), msh.height())
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 def getDirectory(self):
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 Public method to get the entered directory.
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
91
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 @return tuple containing the entered directory and a flag indicating to add
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 that directory to the project
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 @rtype tuple of (str, bool)
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 """
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 return (
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97 self.__pathPicker.text().strip(),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 self.__addToProjectCheckBox.isChecked(),
bbcad422aea7 Project Viewer
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 )

eric ide

mercurial