14 try: |
14 try: |
15 from enum import Enum |
15 from enum import Enum |
16 except ImportError: |
16 except ImportError: |
17 from ThirdParty.enum import Enum |
17 from ThirdParty.enum import Enum |
18 |
18 |
19 from PyQt5.QtCore import pyqtSignal, Qt |
19 from PyQt5.QtCore import pyqtSignal, Qt, QFileInfo |
20 from PyQt5.QtWidgets import QWidget, QHBoxLayout, QToolButton |
20 from PyQt5.QtWidgets import QWidget, QHBoxLayout, QToolButton |
21 |
21 |
22 from . import E5FileDialog |
22 from . import E5FileDialog |
23 from .E5LineEdit import E5ClearableLineEdit |
23 from .E5LineEdit import E5ClearableLineEdit |
24 from .E5Completers import E5FileCompleter, E5DirCompleter |
24 from .E5Completers import E5FileCompleter, E5DirCompleter |
310 @return filter string |
311 @return filter string |
311 @rtype str |
312 @rtype str |
312 """ |
313 """ |
313 return self.__filters |
314 return self.__filters |
314 |
315 |
|
316 def setNameFilters(self, filters): |
|
317 """ |
|
318 Public method to set the name filters for the completer. |
|
319 |
|
320 @param filter list of file name filters |
|
321 @type list of str |
|
322 """ |
|
323 self.__editor.completer().model().setNameFilters(filters) |
|
324 |
315 def setButtonToolTip(self, tooltip): |
325 def setButtonToolTip(self, tooltip): |
316 """ |
326 """ |
317 Public method to set the tool button tool tip. |
327 Public method to set the tool button tool tip. |
318 |
328 |
319 @param tooltip text to be set as a tool tip |
329 @param tooltip text to be set as a tool tip |
358 if not windowTitle: |
368 if not windowTitle: |
359 if self.__mode == E5PathPickerModes.OpenFileMode: |
369 if self.__mode == E5PathPickerModes.OpenFileMode: |
360 windowTitle = self.tr("Choose a file to open") |
370 windowTitle = self.tr("Choose a file to open") |
361 elif self.__mode == E5PathPickerModes.OpenFilesMode: |
371 elif self.__mode == E5PathPickerModes.OpenFilesMode: |
362 windowTitle = self.tr("Choose files to open") |
372 windowTitle = self.tr("Choose files to open") |
363 elif self.__mode == E5PathPickerModes.SaveFileMode: |
373 elif self.__mode in [ |
|
374 E5PathPickerModes.SaveFileMode, |
|
375 E5PathPickerModes.SaveFileEnsureExtensionMode]: |
364 windowTitle = self.tr("Choose a file to save") |
376 windowTitle = self.tr("Choose a file to save") |
365 elif self.__mode == E5PathPickerModes.DirectoryMode: |
377 elif self.__mode == E5PathPickerModes.DirectoryMode: |
366 windowTitle = self.tr("Choose a directory") |
378 windowTitle = self.tr("Choose a directory") |
367 |
379 |
368 directory = self.__editor.text() |
380 directory = self.__editor.text() |
397 windowTitle, |
409 windowTitle, |
398 directory, |
410 directory, |
399 self.__filters, |
411 self.__filters, |
400 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
412 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
401 path = Utilities.toNativeSeparators(path) |
413 path = Utilities.toNativeSeparators(path) |
|
414 elif self.__mode == E5PathPickerModes.SaveFileEnsureExtensionMode: |
|
415 path, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
|
416 self, |
|
417 windowTitle, |
|
418 directory, |
|
419 self.__filters, |
|
420 None, |
|
421 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
|
422 path = Utilities.toNativeSeparators(path) |
|
423 if path: |
|
424 ext = QFileInfo(path).suffix() |
|
425 if not ext: |
|
426 ex = selectedFilter.split("(*")[1].split(")")[0] |
|
427 if ex: |
|
428 path += ex |
402 elif self.__mode == E5PathPickerModes.DirectoryMode: |
429 elif self.__mode == E5PathPickerModes.DirectoryMode: |
403 path = E5FileDialog.getExistingDirectory( |
430 path = E5FileDialog.getExistingDirectory( |
404 self, |
431 self, |
405 windowTitle, |
432 windowTitle, |
406 directory, |
433 directory, |
833 windowTitle, |
860 windowTitle, |
834 directory, |
861 directory, |
835 self.__filters, |
862 self.__filters, |
836 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
863 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
837 path = Utilities.toNativeSeparators(path) |
864 path = Utilities.toNativeSeparators(path) |
|
865 elif self.__mode == E5PathPickerModes.SaveFileEnsureExtensionMode: |
|
866 path, selectedFilter = E5FileDialog.getSaveFileNameAndFilter( |
|
867 self, |
|
868 windowTitle, |
|
869 directory, |
|
870 self.__filters, |
|
871 None, |
|
872 E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite)) |
|
873 path = Utilities.toNativeSeparators(path) |
|
874 if path: |
|
875 ext = QFileInfo(path).suffix() |
|
876 if not ext: |
|
877 ex = selectedFilter.split("(*")[1].split(")")[0] |
|
878 if ex: |
|
879 path += ex |
838 elif self.__mode == E5PathPickerModes.DirectoryMode: |
880 elif self.__mode == E5PathPickerModes.DirectoryMode: |
839 path = E5FileDialog.getExistingDirectory( |
881 path = E5FileDialog.getExistingDirectory( |
840 self, |
882 self, |
841 windowTitle, |
883 windowTitle, |
842 directory, |
884 directory, |