eric7/EricWidgets/EricPathPicker.py

Thu, 03 Jun 2021 15:58:59 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Thu, 03 Jun 2021 15:58:59 +0200
branch
eric7
changeset 8403
d9fd02e8c28b
parent 8366
2a9f5153c438
child 8881
54e42bc2437a
permissions
-rw-r--r--

Added a special file dialog to select files and directories simultaneously.

4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
7923
91e843545d9a Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7703
diff changeset
3 # Copyright (c) 2015 - 2021 Detlev Offenbach <detlev@die-offenbachs.de>
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a path picker widget.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
8265
0090cfa83159 Converted enum names to use all uppercase letters (except for E5PathPickerModes to keep plug-ins using this compatible with previous eric releases).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8257
diff changeset
10 import enum
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
11 import os
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
12
8318
962bce857696 Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8312
diff changeset
13 from PyQt6.QtCore import pyqtSignal, Qt, QFileInfo, QCoreApplication, QDir
8350
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
14 from PyQt6.QtWidgets import (
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
15 QWidget, QHBoxLayout, QToolButton, QSizePolicy, QLineEdit, QComboBox
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
16 )
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
18 from . import EricFileDialog
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
19 from .EricCompleters import EricFileCompleter, EricDirCompleter
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 import UI.PixmapCache
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
24 class EricPathPickerModes(enum.Enum):
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 Class implementing the path picker modes.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
8327
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
28 OPEN_FILE_MODE = 0
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
29 OPEN_FILES_MODE = 1
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
30 SAVE_FILE_MODE = 2
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
31 SAVE_FILE_ENSURE_EXTENSION_MODE = 3
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
32 SAVE_FILE_OVERWRITE_MODE = 4
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
33 DIRECTORY_MODE = 5
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
34 DIRECTORY_SHOW_FILES_MODE = 6
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
35 OPEN_FILES_AND_DIRS_MODE = 7
8327
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
36 CUSTOM_MODE = 99
666c2b81cbb7 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8322
diff changeset
37 NO_MODE = 100
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
40 class EricPathPickerBase(QWidget):
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
42 Class implementing the base of a path picker widget consisting of a
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
43 line edit or combo box and a tool button to open a file dialog.
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
44
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
45 @signal textChanged(path) emitted when the entered path has changed
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
46 (line edit based widget)
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
47 @signal editTextChanged(path) emitted when the entered path has changed
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
48 (combo box based widget)
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
49 @signal pathSelected(path) emitted after a path has been selected via the
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
50 file dialog
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
51 @signal aboutToShowPathPickerDialog emitted before the file dialog is shown
4597
46be8d9c4dd8 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4594
diff changeset
52 @signal pickerButtonClicked emitted when the picker button was pressed and
46be8d9c4dd8 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4594
diff changeset
53 the widget mode is custom
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
55 DefaultMode = EricPathPickerModes.NO_MODE
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
57 textChanged = pyqtSignal(str)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
58 editTextChanged = pyqtSignal(str)
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
59 pathSelected = pyqtSignal(str)
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
60 aboutToShowPathPickerDialog = pyqtSignal()
4597
46be8d9c4dd8 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4594
diff changeset
61 pickerButtonClicked = pyqtSignal()
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
62
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
63 def __init__(self, parent=None, useLineEdit=True):
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 Constructor
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 @param parent reference to the parent widget
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 @type QWidget
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
69 @param useLineEdit flag indicating the use of a line edit
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
70 @type bool
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
72 super().__init__(parent)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
73
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
74 self.__lineEditKind = useLineEdit
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
75
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
76 self.__mode = EricPathPicker.DefaultMode
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 self.__editorEnabled = True
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
79 self._completer = None
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 self.__filters = ""
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
81 self.__defaultDirectory = ""
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
82 self.__windowTitle = ""
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
83
8319
ea11a3948f40 Continued porting eric to PyQt6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8318
diff changeset
84 self.__layout = QHBoxLayout(self)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
85 self.__layout.setSpacing(0)
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86 self.__layout.setContentsMargins(0, 0, 0, 0)
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 self.setLayout(self.__layout)
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
89 if useLineEdit:
8351
7d13e08ddb3f Removed for writing old style XML files and renamed E5XML to EricXML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8350
diff changeset
90 self._editor = QLineEdit(self)
7d13e08ddb3f Removed for writing old style XML files and renamed E5XML to EricXML.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8350
diff changeset
91 self._editor.setPlaceholderText(QCoreApplication.translate(
8366
2a9f5153c438 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
92 "EricPathPickerBase", "Enter Path Name"))
8350
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
93 self._editor.setClearButtonEnabled(True)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
94 else:
8350
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
95 self._editor = QComboBox(self)
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
96 self._editor.setEditable(True)
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
97 self._editor.lineEdit().setPlaceholderText(
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
98 QCoreApplication.translate(
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
99 "EricPathPickerBase", "Enter Path Name"))
8350
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
100 self._editor.lineEdit().setClearButtonEnabled(True)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
101
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102 self.__button = QToolButton(self)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
103 self.__button.setToolButtonStyle(Qt.ToolButtonStyle.ToolButtonIconOnly)
7533
88261c96484b Removed the '.png' extension from all call to get an icon or a pixmap from the PixmapCache because this is not needed anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7360
diff changeset
104 self.__button.setIcon(UI.PixmapCache.getIcon("open"))
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
106 self.__layout.addWidget(self._editor)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 self.__layout.addWidget(self.__button)
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 self.__button.clicked.connect(self.__showPathPickerDialog)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
110 if useLineEdit:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
111 self._editor.textEdited.connect(self.__pathEdited)
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
112 self._editor.textChanged.connect(self.textChanged)
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
113 else:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
114 self._editor.editTextChanged.connect(self.editTextChanged)
4589
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
115
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
116 self.setFocusProxy(self._editor)
8143
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
117 self.setFocusPolicy(Qt.FocusPolicy.StrongFocus)
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
118 self.setSizePolicy(QSizePolicy.Policy.Expanding,
2c730d5fd177 Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7923
diff changeset
119 QSizePolicy.Policy.Preferred)
4599
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
120
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
121 self.__button.setEnabled(self.__mode != EricPathPickerModes.NO_MODE)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122
4599
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
123 def __pathEdited(self, path):
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
124 """
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
125 Private slot handling editing of the path.
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
126
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
127 @param path current text of the path line edit
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
128 @type str
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
129 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
130 if self._completer and not self._completer.popup().isVisible():
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
131 self._completer.setRootPath(QDir.toNativeSeparators(path))
4599
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
132
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 def setMode(self, mode):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
135 Public method to set the path picker mode.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
136
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
137 @param mode picker mode
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
138 @type EricPathPickerModes
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
139 @exception ValueError raised to indicate a bad parameter value
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
141 if mode not in EricPathPickerModes:
7628
f904d0eef264 Checked the reported security related issue reports generated by the new security checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 7533
diff changeset
142 raise ValueError("Bad value for 'mode' parameter.")
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 oldMode = self.__mode
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145 self.__mode = mode
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
147 if mode != oldMode or (self.__lineEditKind and not self._completer):
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
148 if self.__lineEditKind and self._completer:
4599
960d1e63f802 Some little improvements for the path pickers.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4597
diff changeset
149 # Remove current completer
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
150 self._editor.setCompleter(None)
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
151 self._completer = None
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
152
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
153 if mode != EricPathPickerModes.NO_MODE:
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
154 if self.__lineEditKind:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
155 # Set a new completer
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
156 if mode == EricPathPickerModes.DIRECTORY_MODE:
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
157 self._completer = EricDirCompleter(self._editor)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
158 else:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
159 self._completer = EricFileCompleter(self._editor)
4594
1071d7ec6976 Fixed an issue setting an initial completer if the initial mode was the default mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4593
diff changeset
160
1071d7ec6976 Fixed an issue setting an initial completer if the initial mode was the default mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4593
diff changeset
161 # set inactive text
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
162 if mode in (
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
163 EricPathPickerModes.OPEN_FILES_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
164 EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
165 ):
8350
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
166 self._editor.setPlaceholderText(
4594
1071d7ec6976 Fixed an issue setting an initial completer if the initial mode was the default mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4593
diff changeset
167 self.tr("Enter Path Names separated by ';'"))
1071d7ec6976 Fixed an issue setting an initial completer if the initial mode was the default mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4593
diff changeset
168 else:
8350
74a3b2a6a944 Removed all references to E5ComboBox and most references to E5LineEdit.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8327
diff changeset
169 self._editor.setPlaceholderText(
4594
1071d7ec6976 Fixed an issue setting an initial completer if the initial mode was the default mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4593
diff changeset
170 self.tr("Enter Path Name"))
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
171 self.__button.setEnabled(self.__mode != EricPathPickerModes.NO_MODE)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 def mode(self):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
175 Public method to get the path picker mode.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 @return path picker mode
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
178 @rtype EricPathPickerModes
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180 return self.__mode
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181
4589
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
182 def setPickerEnabled(self, enable):
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
183 """
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
184 Public method to set the enabled state of the file dialog button.
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
185
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
186 @param enable flag indicating the enabled state
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
187 @type bool
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
188 """
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
189 self.__button.setEnabled(enable)
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
190
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
191 def isPickerEnabled(self):
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
192 """
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
193 Public method to get the file dialog button enabled state.
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
194
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
195 @return flag indicating the enabled state
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
196 @rtype bool
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
197 """
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
198 return self.__button.isEnabled()
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
199
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
200 def clear(self):
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
201 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
202 Public method to clear the current path or list of paths.
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
203 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
204 self._editor.clear()
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
205
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
206 def clearEditText(self):
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
207 """
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
208 Public method to clear the current path.
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
209 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
210 if not self.__lineEditKind:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
211 self._editor.clearEditText()
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
212
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
213 def _setEditorText(self, text):
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
214 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
215 Protected method to set the text of the editor.
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
216
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
217 @param text text to set
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
218 @type str
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
219 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
220 if self.__lineEditKind:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
221 self._editor.setText(text)
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
222 else:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
223 self._editor.setEditText(text)
5525
1771a7f9065c Added capability to remember previously used entries in the project debugger properties dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
224 if text and self._editor.findText(text) == -1:
1771a7f9065c Added capability to remember previously used entries in the project debugger properties dialog.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5389
diff changeset
225 self._editor.insertItem(0, text)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
226
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
227 def _editorText(self):
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
228 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
229 Protected method to get the text of the editor.
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
230
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
231 @return text of the editor
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
232 @rtype str
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
233 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
234 if self.__lineEditKind:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
235 return self._editor.text()
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
236 else:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
237 return self._editor.currentText()
4575
464a6b049f89 Changed the Python2 debugger and Editor APIs pages to use the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4573
diff changeset
238
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
239 def setText(self, path, toNative=True):
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241 Public method to set the current path.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
242
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
243 @param path path to be set
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
244 @type str
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
245 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
246 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
247 @type bool
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
248 """
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
249 if self.__mode in (
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
250 EricPathPickerModes.OPEN_FILES_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
251 EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
252 ):
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
253 self._setEditorText(path)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
254 else:
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
255 if toNative:
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
256 path = QDir.toNativeSeparators(path)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
257 self._setEditorText(path)
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
258 if self._completer:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
259 self._completer.setRootPath(path)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
260
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
261 def text(self, toNative=True):
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
262 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
263 Public method to get the current path.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
264
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
265 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
266 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
267 @type bool
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
268 @return current path
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
269 @rtype str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
270 """
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
271 if self.__mode in (
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
272 EricPathPickerModes.OPEN_FILES_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
273 EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
274 ):
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
275 if toNative:
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
276 return ";".join(
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
277 [QDir.toNativeSeparators(path)
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
278 for path in self._editorText().split(";")])
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
279 else:
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
280 return self._editorText()
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
281 else:
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
282 if toNative:
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
283 return os.path.expanduser(
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
284 QDir.toNativeSeparators(self._editorText()))
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
285 else:
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
286 return os.path.expanduser(self._editorText())
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
287
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
288 def setEditText(self, path, toNative=True):
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
289 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
290 Public method to set the current path.
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
291
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
292 @param path path to be set
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
293 @type str
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
294 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
295 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
296 @type bool
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
297 """
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
298 self.setText(path, toNative=toNative)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
299
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
300 def currentText(self, toNative=True):
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
301 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
302 Public method to get the current path.
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
303
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
304 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
305 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
306 @type bool
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
307 @return current path
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
308 @rtype str
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
309 """
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
310 return self.text(toNative=toNative)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
311
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
312 def setPath(self, path, toNative=True):
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
313 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
314 Public method to set the current path.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
315
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
316 @param path path to be set
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
317 @type str
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
318 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
319 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
320 @type bool
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
321 """
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
322 self.setText(path, toNative=toNative)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
323
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
324 def path(self, toNative=True):
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
325 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
326 Public method to get the current path.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
327
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
328 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
329 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
330 @type bool
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
331 @return current path
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
332 @rtype str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
333 """
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
334 return self.text(toNative=toNative)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
335
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
336 def paths(self, toNative=True):
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
337 """
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
338 Public method to get the list of entered paths.
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
339
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
340 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
341 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
342 @type bool
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
343 @return entered paths
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
344 @rtype list of str
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
345 """
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
346 if self.__mode in (
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
347 EricPathPickerModes.OPEN_FILES_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
348 EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
349 ):
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
350 return self.path(toNative=toNative).split(";")
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
351 else:
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
352 return [self.path(toNative=toNative)]
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
353
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
354 def firstPath(self, toNative=True):
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
355 """
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
356 Public method to get the first path of a list of entered paths.
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
357
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
358 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
359 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
360 @type bool
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
361 @return first path
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
362 @rtype str
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
363 """
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
364 return self.paths(toNative=toNative)[0]
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
365
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
366 def lastPath(self, toNative=True):
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
367 """
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
368 Public method to get the last path of a list of entered paths.
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
369
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
370 @param toNative flag indicating to convert the path into
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
371 a native format
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
372 @type bool
4620
49d9c6b58678 Fixed an issue in the path picker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4613
diff changeset
373 @return last path
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
374 @rtype str
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
375 """
4700
dfdcc542198f Little enhancement to the path picker widget to allow to disable the conversion of path separators.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4631
diff changeset
376 return self.paths(toNative=toNative)[-1]
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
377
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
378 def setEditorEnabled(self, enable):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
379 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
380 Public method to set the path editor's enabled state.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
381
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
382 @param enable flag indicating the enable state
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
383 @type bool
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
384 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
385 if enable != self._editorEnabled:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
386 self._editorEnabled = enable
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
387 self._editor.setEnabled(enable)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
388
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
389 def editorEnabled(self):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
390 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
391 Public method to get the path editor's enabled state.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
392
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
393 @return flag indicating the enabled state
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
394 @rtype bool
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
395 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
396 return self._editorEnabled
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
397
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
398 def setDefaultDirectory(self, directory):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
399 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
400 Public method to set the default directory.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
401
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
402 @param directory default directory
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
403 @type str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
404 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
405 self.__defaultDirectory = directory
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
406
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
407 def defaultDirectory(self):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
408 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
409 Public method to get the default directory.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
410
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
411 @return default directory
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
412 @rtype str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
413 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
414 return self.__defaultDirectory
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
415
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
416 def setWindowTitle(self, title):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
417 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
418 Public method to set the path picker dialog window title.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
419
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
420 @param title window title
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
421 @type str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
422 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
423 self.__windowTitle = title
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
424
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
425 def windowTitle(self):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
426 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
427 Public method to get the path picker dialog's window title.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
428
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
429 @return window title
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
430 @rtype str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
431 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
432 return self.__windowTitle
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
433
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
434 def setFilters(self, filters):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
435 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
436 Public method to set the filters for the path picker dialog.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
437
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
438 Note: Multiple filters must be separated by ';;'.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
439
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
440 @param filters string containing the file filters
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
441 @type str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
442 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
443 self.__filters = filters
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
444
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
445 def filters(self):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
446 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
447 Public methods to get the filter string.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
448
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
449 @return filter string
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
450 @rtype str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
451 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
452 return self.__filters
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
453
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
454 def setNameFilters(self, filters):
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
455 """
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
456 Public method to set the name filters for the completer.
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
457
4601
0017e7cb67ae Fixed a few code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4599
diff changeset
458 @param filters list of file name filters
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
459 @type list of str
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
460 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
461 if self._completer:
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
462 self._completer.model().setNameFilters(filters)
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
463
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
464 def setButtonToolTip(self, tooltip):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
465 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
466 Public method to set the tool button tool tip.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
467
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
468 @param tooltip text to be set as a tool tip
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
469 @type str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
470 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
471 self.__button.setToolTip(tooltip)
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
472
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
473 def buttonToolTip(self):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
474 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
475 Public method to get the tool button tool tip.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
476
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
477 @return tool tip text
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
478 @rtype str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
479 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
480 return self.__button.toolTip()
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
481
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
482 def setEditorToolTip(self, tooltip):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
483 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
484 Public method to set the editor tool tip.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
485
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
486 @param tooltip text to be set as a tool tip
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
487 @type str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
488 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
489 self._editor.setToolTip(tooltip)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
490
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
491 def editorToolTip(self):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
492 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
493 Public method to get the editor tool tip.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
494
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
495 @return tool tip text
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
496 @rtype str
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
497 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
498 return self._editor.toolTip()
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
499
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
500 def __showPathPickerDialog(self):
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
501 """
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
502 Private slot to show the path picker dialog.
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
503 """
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
504 if self.__mode == EricPathPickerModes.NO_MODE:
4594
1071d7ec6976 Fixed an issue setting an initial completer if the initial mode was the default mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4593
diff changeset
505 return
1071d7ec6976 Fixed an issue setting an initial completer if the initial mode was the default mode.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4593
diff changeset
506
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
507 if self.__mode == EricPathPickerModes.CUSTOM_MODE:
4597
46be8d9c4dd8 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4594
diff changeset
508 self.pickerButtonClicked.emit()
46be8d9c4dd8 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4594
diff changeset
509 return
46be8d9c4dd8 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4594
diff changeset
510
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
511 self.aboutToShowPathPickerDialog.emit()
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
512
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
513 windowTitle = self.__windowTitle
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
514 if not windowTitle:
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
515 if self.__mode == EricPathPickerModes.OPEN_FILE_MODE:
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
516 windowTitle = self.tr("Choose a file to open")
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
517 elif self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
518 windowTitle = self.tr("Choose files to open")
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
519 elif self.__mode == EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE:
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
520 windowTitle = self.tr("Choose files and directories")
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
521 elif self.__mode in [
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
522 EricPathPickerModes.SAVE_FILE_MODE,
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
523 EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE,
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
524 EricPathPickerModes.SAVE_FILE_OVERWRITE_MODE]:
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
525 windowTitle = self.tr("Choose a file to save")
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
526 elif self.__mode == EricPathPickerModes.DIRECTORY_MODE:
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
527 windowTitle = self.tr("Choose a directory")
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
528
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
529 directory = self._editorText()
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
530 if not directory and self.__defaultDirectory:
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
531 directory = self.__defaultDirectory
8257
28146736bbfc Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
532 directory = (
28146736bbfc Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
533 os.path.expanduser(directory.split(";")[0])
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
534 if self.__mode in (
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
535 EricPathPickerModes.OPEN_FILES_MODE,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
536 EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE) else
8257
28146736bbfc Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
537 os.path.expanduser(directory)
28146736bbfc Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8218
diff changeset
538 )
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
539 if not os.path.isabs(directory) and self.__defaultDirectory:
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
540 directory = os.path.join(self.__defaultDirectory, directory)
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
541 directory = QDir.fromNativeSeparators(directory)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
542
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
543 if self.__mode == EricPathPickerModes.OPEN_FILE_MODE:
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
544 path = EricFileDialog.getOpenFileName(
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
545 self,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
546 windowTitle,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
547 directory,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
548 self.__filters)
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
549 path = QDir.toNativeSeparators(path)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
550 elif self.__mode == EricPathPickerModes.OPEN_FILES_MODE:
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
551 paths = EricFileDialog.getOpenFileNames(
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
552 self,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
553 windowTitle,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
554 directory,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
555 self.__filters)
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
556 path = ";".join([QDir.toNativeSeparators(path)
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
557 for path in paths])
8403
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
558 elif self.__mode == EricPathPickerModes.OPEN_FILES_AND_DIRS_MODE:
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
559 paths = EricFileDialog.getOpenFileAndDirNames(
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
560 self,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
561 windowTitle,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
562 directory,
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
563 self.__filters)
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
564 path = ";".join([QDir.toNativeSeparators(path)
d9fd02e8c28b Added a special file dialog to select files and directories simultaneously.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8366
diff changeset
565 for path in paths])
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
566 elif self.__mode == EricPathPickerModes.SAVE_FILE_MODE:
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
567 path = EricFileDialog.getSaveFileName(
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
568 self,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
569 windowTitle,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
570 directory,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
571 self.__filters,
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
572 EricFileDialog.DontConfirmOverwrite)
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
573 path = QDir.toNativeSeparators(path)
8366
2a9f5153c438 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
574 elif (
2a9f5153c438 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
575 self.__mode == EricPathPickerModes.SAVE_FILE_ENSURE_EXTENSION_MODE
2a9f5153c438 Corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8358
diff changeset
576 ):
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
577 path, selectedFilter = EricFileDialog.getSaveFileNameAndFilter(
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
578 self,
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
579 windowTitle,
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
580 directory,
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
581 self.__filters,
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
582 None,
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
583 EricFileDialog.DontConfirmOverwrite)
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
584 path = QDir.toNativeSeparators(path)
4593
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
585 if path:
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
586 ext = QFileInfo(path).suffix()
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
587 if not ext:
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
588 ex = selectedFilter.split("(*")[1].split(")")[0]
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
589 if ex:
cc745fa6c914 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4589
diff changeset
590 path += ex
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
591 elif self.__mode == EricPathPickerModes.SAVE_FILE_OVERWRITE_MODE:
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
592 path = EricFileDialog.getSaveFileName(
5036
318e879a37fa Added an improved "Print to PDF" to the new web browser for Qt 5.7+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4700
diff changeset
593 self,
318e879a37fa Added an improved "Print to PDF" to the new web browser for Qt 5.7+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4700
diff changeset
594 windowTitle,
318e879a37fa Added an improved "Print to PDF" to the new web browser for Qt 5.7+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4700
diff changeset
595 directory,
318e879a37fa Added an improved "Print to PDF" to the new web browser for Qt 5.7+.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4700
diff changeset
596 self.__filters)
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
597 path = QDir.toNativeSeparators(path)
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
598 elif self.__mode == EricPathPickerModes.DIRECTORY_MODE:
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
599 path = EricFileDialog.getExistingDirectory(
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
600 self,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
601 windowTitle,
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
602 directory,
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
603 EricFileDialog.ShowDirsOnly)
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
604 path = QDir.toNativeSeparators(path)
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
605 while path.endswith(os.sep):
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
606 path = path[:-1]
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
607 elif self.__mode == EricPathPickerModes.DIRECTORY_SHOW_FILES_MODE:
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
608 path = EricFileDialog.getExistingDirectory(
5070
4e4651e88674 Added capability to set the path to the Qt tools manually (because they are not included in the PyQt5 wheels).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5036
diff changeset
609 self,
4e4651e88674 Added capability to set the path to the Qt tools manually (because they are not included in the PyQt5 wheels).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5036
diff changeset
610 windowTitle,
4e4651e88674 Added capability to set the path to the Qt tools manually (because they are not included in the PyQt5 wheels).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5036
diff changeset
611 directory,
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
612 EricFileDialog.DontUseNativeDialog)
6670
acebf0124108 E5PathPicker: changed code to make it independent from Utilities.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 6645
diff changeset
613 path = QDir.toNativeSeparators(path)
5070
4e4651e88674 Added capability to set the path to the Qt tools manually (because they are not included in the PyQt5 wheels).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5036
diff changeset
614 while path.endswith(os.sep):
4e4651e88674 Added capability to set the path to the Qt tools manually (because they are not included in the PyQt5 wheels).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5036
diff changeset
615 path = path[:-1]
4573
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
616
365f39d86985 Added a widget to pick a path and changed the first configuration page.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
617 if path:
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
618 self._setEditorText(path)
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
619 self.pathSelected.emit(path)
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
620
5238
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
621 def setReadOnly(self, readOnly):
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
622 """
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
623 Public method to set the path picker to read only mode.
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
624
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
625 @param readOnly flag indicating read only mode
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
626 @type bool
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
627 """
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
628 try:
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
629 self._editor.setReadOnly(readOnly)
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
630 except AttributeError:
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
631 self._editor.setEditable(not readOnly)
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
632 self.setPickerEnabled(not readOnly)
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
633
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
634 def isReadOnly(self):
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
635 """
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
636 Public method to check the path picker for read only mode.
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
637
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
638 @return flg indicating read only mode
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
639 @rtype bool
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
640 """
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
641 try:
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
642 return self._editor.isReadOnly()
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
643 except AttributeError:
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
644 return not self._editor.isEditable()
682d0f6a6074 Fixed an issue with the path picker and its usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5106
diff changeset
645
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
646 ##################################################################
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
647 ## Methods below emulate some of the QComboBox API
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
648 ##################################################################
4581
76999ca7bbf1 Enhanced the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4578
diff changeset
649
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
650 def addItems(self, pathsList):
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
651 """
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
652 Public method to add paths to the current list.
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
653
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
654 @param pathsList list of paths to add
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
655 @type list of str
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
656 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
657 self._editor.addItems(pathsList)
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
658
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
659 def addItem(self, path):
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
660 """
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
661 Public method to add a paths to the current list.
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
662
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
663 @param path path to add
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
664 @type str
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
665 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
666 self._editor.addItem(path)
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
667
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
668 def setPathsList(self, pathsList):
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
669 """
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
670 Public method to set the paths list.
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
671
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
672 @param pathsList list of paths
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
673 @type list of str
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
674 """
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
675 self.clear()
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
676 self.addItems(pathsList)
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
677
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
678 def setCurrentIndex(self, index):
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
679 """
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
680 Public slot to set the current index.
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
681
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
682 @param index index of the item to set current
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
683 @type int
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
684 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
685 self._editor.setCurrentIndex(index)
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
686
4589
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
687 def setInsertPolicy(self, policy):
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
688 """
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
689 Public method to set the insertion policy of the combo box.
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
690
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
691 @param policy insertion policy
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
692 @type QComboBox.InsertPolicy
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
693 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
694 self._editor.setInsertPolicy(policy)
4589
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
695
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
696 def setSizeAdjustPolicy(self, policy):
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
697 """
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
698 Public method to set the size adjust policy of the combo box.
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
699
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
700 @param policy size adjust policy
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
701 @type QComboBox.SizeAdjustPolicy
b648ccbdbef9 Modified more dialogs to use the path picker widgets.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4581
diff changeset
702 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
703 self._editor.setSizeAdjustPolicy(policy)
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
704
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
705
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
706 class EricPathPicker(EricPathPickerBase):
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
707 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
708 Class implementing a path picker widget consisting of a line edit and a
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
709 tool button to open a file dialog.
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
710 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
711 def __init__(self, parent=None):
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
712 """
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
713 Constructor
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
714
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
715 @param parent reference to the parent widget
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
716 @type QWidget
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
717 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
718 super().__init__(parent, useLineEdit=True)
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
719
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
720
8356
68ec9c3d4de5 Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8351
diff changeset
721 class EricComboPathPicker(EricPathPickerBase):
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
722 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
723 Class implementing a path picker widget consisting of a combobox and a
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
724 tool button to open a file dialog.
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
725 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
726 def __init__(self, parent=None):
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
727 """
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
728 Constructor
4578
5d611151cdec Added a path picker using an editable combo box.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4576
diff changeset
729
4613
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
730 @param parent reference to the parent widget
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
731 @type QWidget
c7951eb9d525 Refactored the path picker code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4601
diff changeset
732 """
8218
7c09585bd960 Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 8143
diff changeset
733 super().__init__(parent, useLineEdit=False)
5372
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
734
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
735 def getPathItems(self):
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
736 """
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
737 Public method to get the list of remembered paths.
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
738
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
739 @return list od remembered paths
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
740 @rtype list of str
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
741 """
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
742 paths = []
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
743 for index in range(self._editor.count()):
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
744 paths.append(self._editor.itemText(index))
7ba8d3d61fdd Added the capability to edit the history lists to the start dialogs of the debugger.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 5238
diff changeset
745 return paths

eric ide

mercurial