1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
#------------------------------------------------------------------------------
# Copyright (c) 2007, Riverbank Computing Limited
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD license.
# However, when used with the GPL version of PyQt the additional terms described in the PyQt GPL exception also apply
#
# Author: Riverbank Computing Limited
#------------------------------------------------------------------------------
""" Defines various directory editor for the PyQt user interface toolkit.
"""
#-------------------------------------------------------------------------------
# Imports:
#-------------------------------------------------------------------------------
from pyface.qt import QtGui
# FIXME: ToolkitEditorFactory is a proxy class defined here just for backward
# compatibility. The class has been moved to the
# traitsui.editors.custom_editor file.
from traitsui.editors.directory_editor \
import ToolkitEditorFactory
from file_editor \
import SimpleEditor as SimpleFileEditor, \
CustomEditor as CustomFileEditor
#-------------------------------------------------------------------------------
# 'SimpleEditor' class:
#-------------------------------------------------------------------------------
class SimpleEditor ( SimpleFileEditor ):
""" Simple style of editor for directories, which displays a text field
and a **Browse** button that opens a directory-selection dialog box.
"""
#---------------------------------------------------------------------------
# Creates the correct type of file dialog:
#---------------------------------------------------------------------------
def _create_file_dialog ( self ):
""" Creates the correct type of file dialog.
"""
dlg = QtGui.QFileDialog(self.control)
dlg.selectFile(self._file_name.text())
dlg.setFileMode(QtGui.QFileDialog.Directory)
dlg.setOptions(QtGui.QFileDialog.ShowDirsOnly)
return dlg
#-------------------------------------------------------------------------------
# 'CustomEditor' class:
#-------------------------------------------------------------------------------
class CustomEditor ( CustomFileEditor ):
""" Custom style of editor for directories, which displays a tree view of
the file system.
"""
#---------------------------------------------------------------------------
# Handles the user changing the contents of the edit control:
#---------------------------------------------------------------------------
def update_object(self, idx):
""" Handles the user changing the contents of the edit control.
"""
if self._model.isDir(idx):
self.value = unicode(self._model.filePath(idx))
|