Qt 4.8
Public Functions | Public Variables | List of all members
QFSCompleter Class Reference

QCompleter that can deal with QFileSystemModel. More...

#include <qfscompleter_p.h>

Inheritance diagram for QFSCompleter:
QCompleter QObject

Public Functions

QString pathFromIndex (const QModelIndex &index) const
 Returns the path for the given index. More...
 
 QFSCompleter (QFileSystemModel *model, QObject *parent=0)
 
QStringList splitPath (const QString &path) const
 Splits the given path into strings that are used to match at each level in the model(). More...
 
- Public Functions inherited from QCompleter
Qt::CaseSensitivity caseSensitivity () const
 
int completionColumn () const
 
int completionCount () const
 Returns the number of completions for the current prefix. More...
 
CompletionMode completionMode () const
 
QAbstractItemModelcompletionModel () const
 Returns the completion model. More...
 
QString completionPrefix () const
 
int completionRole () const
 
QString currentCompletion () const
 Returns the current completion string. More...
 
QModelIndex currentIndex () const
 Returns the model index of the current completion in the completionModel(). More...
 
int currentRow () const
 Returns the current row. More...
 
int maxVisibleItems () const
 
QAbstractItemModelmodel () const
 Returns the model that provides completion strings. More...
 
ModelSorting modelSorting () const
 
QAbstractItemViewpopup () const
 Returns the popup used to display completions. More...
 
 QCompleter (QObject *parent=0)
 Constructs a completer object with the given parent. More...
 
 QCompleter (QAbstractItemModel *model, QObject *parent=0)
 Constructs a completer object with the given parent that provides completions from the specified model. More...
 
 QCompleter (const QStringList &completions, QObject *parent=0)
 Constructs a QCompleter object with the given parent that uses the specified list as a source of possible completions. More...
 
void setCaseSensitivity (Qt::CaseSensitivity caseSensitivity)
 
void setCompletionColumn (int column)
 
void setCompletionMode (CompletionMode mode)
 
void setCompletionRole (int role)
 
bool setCurrentRow (int row)
 Sets the current row to the row specified. More...
 
void setMaxVisibleItems (int maxItems)
 
void setModel (QAbstractItemModel *c)
 Sets the model which provides completions to model. More...
 
void setModelSorting (ModelSorting sorting)
 
void setPopup (QAbstractItemView *popup)
 Sets the popup used to display completions to popup. More...
 
void setWidget (QWidget *widget)
 Sets the widget for which completion are provided for to widget. More...
 
QWidgetwidget () const
 Returns the widget for which the completer object is providing completions. More...
 
bool wrapAround () const
 
 ~QCompleter ()
 Destroys the completer object. More...
 
- Public Functions inherited from QObject
bool blockSignals (bool b)
 If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). More...
 
const QObjectListchildren () const
 Returns a list of child objects. More...
 
bool connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const
 
bool disconnect (const char *signal=0, const QObject *receiver=0, const char *member=0)
 
bool disconnect (const QObject *receiver, const char *member=0)
 
void dumpObjectInfo ()
 Dumps information about signal connections, etc. More...
 
void dumpObjectTree ()
 Dumps a tree of children to the debug output. More...
 
QList< QByteArraydynamicPropertyNames () const
 Returns the names of all properties that were dynamically added to the object using setProperty(). More...
 
template<typename T >
findChild (const QString &aName=QString()) const
 Returns the child of this object that can be cast into type T and that is called name, or 0 if there is no such object. More...
 
template<typename T >
QList< T > findChildren (const QString &aName=QString()) const
 Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. More...
 
template<typename T >
QList< T > findChildren (const QRegExp &re) const
 
bool inherits (const char *classname) const
 Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false. More...
 
void installEventFilter (QObject *)
 Installs an event filter filterObj on this object. More...
 
bool isWidgetType () const
 Returns true if the object is a widget; otherwise returns false. More...
 
void killTimer (int id)
 Kills the timer with timer identifier, id. More...
 
virtual const QMetaObjectmetaObject () const
 Returns a pointer to the meta-object of this object. More...
 
void moveToThread (QThread *thread)
 Changes the thread affinity for this object and its children. More...
 
QString objectName () const
 
QObjectparent () const
 Returns a pointer to the parent object. More...
 
QVariant property (const char *name) const
 Returns the value of the object's name property. More...
 
Q_INVOKABLE QObject (QObject *parent=0)
 Constructs an object with parent object parent. More...
 
void removeEventFilter (QObject *)
 Removes an event filter object obj from this object. More...
 
void setObjectName (const QString &name)
 
void setParent (QObject *)
 Makes the object a child of parent. More...
 
bool setProperty (const char *name, const QVariant &value)
 Sets the value of the object's name property to value. More...
 
void setUserData (uint id, QObjectUserData *data)
 
bool signalsBlocked () const
 Returns true if signals are blocked; otherwise returns false. More...
 
int startTimer (int interval)
 Starts a timer and returns a timer identifier, or returns zero if it could not start a timer. More...
 
QThreadthread () const
 Returns the thread in which the object lives. More...
 
QObjectUserDatauserData (uint id) const
 
virtual ~QObject ()
 Destroys the object, deleting all its child objects. More...
 

Public Variables

QAbstractProxyModelproxyModel
 
QFileSystemModelsourceModel
 

Additional Inherited Members

- Public Types inherited from QCompleter
enum  CompletionMode { PopupCompletion, UnfilteredPopupCompletion, InlineCompletion }
 This enum specifies how completions are provided to the user. More...
 
enum  ModelSorting { UnsortedModel = 0, CaseSensitivelySortedModel, CaseInsensitivelySortedModel }
 This enum specifies how the items in the model are sorted. More...
 
- Public Slots inherited from QCompleter
void complete (const QRect &rect=QRect())
 For QCompleter::PopupCompletion and QCompletion::UnfilteredPopupCompletion modes, calling this function displays the popup displaying the current completions. More...
 
void setCompletionPrefix (const QString &prefix)
 
void setWrapAround (bool wrap)
 
- Public Slots inherited from QObject
void deleteLater ()
 Schedules this object for deletion. More...
 
- Signals inherited from QCompleter
void activated (const QString &text)
 This signal is sent when an item in the popup() is activated by the user (by clicking or pressing return). More...
 
void activated (const QModelIndex &index)
 This signal is sent when an item in the popup() is activated by the user. More...
 
void highlighted (const QString &text)
 This signal is sent when an item in the popup() is highlighted by the user. More...
 
void highlighted (const QModelIndex &index)
 This signal is sent when an item in the popup() is highlighted by the user. More...
 
- Signals inherited from QObject
void destroyed (QObject *=0)
 This signal is emitted immediately before the object obj is destroyed, and can not be blocked. More...
 
- Static Public Functions inherited from QObject
static bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection)
 Creates a connection of the given type from the signal in the sender object to the method in the receiver object. More...
 
static bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection)
 
static bool disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member)
 Disconnects signal in object sender from method in object receiver. More...
 
static bool disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member)
 
static uint registerUserData ()
 
static QString tr (const char *sourceText, const char *comment=0, int n=-1)
 
static QString trUtf8 (const char *sourceText, const char *comment=0, int n=-1)
 
- Static Public Variables inherited from QObject
static const QMetaObject staticMetaObject
 This variable stores the meta-object for the class. More...
 
- Protected Functions inherited from QCompleter
bool event (QEvent *)
 Reimplemented Function More...
 
bool eventFilter (QObject *o, QEvent *e)
 Reimplemented Function More...
 
- Protected Functions inherited from QObject
virtual void childEvent (QChildEvent *)
 This event handler can be reimplemented in a subclass to receive child events. More...
 
virtual void connectNotify (const char *signal)
 This virtual function is called when something has been connected to signal in this object. More...
 
virtual void customEvent (QEvent *)
 This event handler can be reimplemented in a subclass to receive custom events. More...
 
virtual void disconnectNotify (const char *signal)
 This virtual function is called when something has been disconnected from signal in this object. More...
 
 QObject (QObjectPrivate &dd, QObject *parent=0)
 
int receivers (const char *signal) const
 Returns the number of receivers connected to the signal. More...
 
QObjectsender () const
 Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0. More...
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *)
 This event handler can be reimplemented in a subclass to receive timer events for the object. More...
 
- Protected Variables inherited from QObject
QScopedPointer< QObjectDatad_ptr
 
- Static Protected Variables inherited from QObject
static const QMetaObject staticQtMetaObject
 

Detailed Description

QCompleter that can deal with QFileSystemModel.

Definition at line 64 of file qfscompleter_p.h.

Constructors and Destructors

◆ QFSCompleter()

QFSCompleter::QFSCompleter ( QFileSystemModel model,
QObject parent = 0 
)
inline

Definition at line 66 of file qfscompleter_p.h.

67  : QCompleter(model, parent), proxyModel(0), sourceModel(model)
68  {
69 #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
71 #endif
72  }
QAbstractProxyModel * proxyModel
QCompleter(QObject *parent=0)
Constructs a completer object with the given parent.
Definition: qcompleter.cpp:942
void setCaseSensitivity(Qt::CaseSensitivity caseSensitivity)
QFileSystemModel * sourceModel

Functions

◆ pathFromIndex()

QString QFSCompleter::pathFromIndex ( const QModelIndex index) const
virtual

Returns the path for the given index.

The completer object uses this to obtain the completion text from the underlying model.

The default implementation returns the edit role of the item for list models. It returns the absolute file path if the model is a QFileSystemModel.

See also
splitPath()

Reimplemented from QCompleter.

Definition at line 3539 of file qfiledialog.cpp.

Referenced by QFSCompleter().

3540 {
3541  const QFileSystemModel *dirModel;
3542  if (proxyModel)
3543  dirModel = qobject_cast<const QFileSystemModel *>(proxyModel->sourceModel());
3544  else
3545  dirModel = sourceModel;
3546  QString currentLocation = dirModel->rootPath();
3548  if (!currentLocation.isEmpty() && path.startsWith(currentLocation)) {
3549 #if defined(Q_OS_UNIX) || defined(Q_OS_WINCE)
3550  if (currentLocation == QDir::separator())
3551  return path.mid(currentLocation.length());
3552 #endif
3553  if (currentLocation.endsWith(QLatin1Char('/')))
3554  return path.mid(currentLocation.length());
3555  else
3556  return path.mid(currentLocation.length()+1);
3557  }
3559 }
The QFileSystemModel class provides a data model for the local filesystem.
QVariant data(int role=Qt::DisplayRole) const
Returns the data for the given role for the item referred to by the index.
int length() const
Returns the number of characters in this string.
Definition: qstring.h:696
QString toString() const
Returns the variant as a QString if the variant has type() String , Bool , ByteArray ...
Definition: qvariant.cpp:2270
bool startsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string starts with s; otherwise returns false.
Definition: qstring.cpp:3734
The QString class provides a Unicode character string.
Definition: qstring.h:83
T * qobject_cast(QObject *object)
Definition: qobject.h:375
static QChar separator()
Returns the native directory separator: "/" under Unix (including Mac OS X) and "\\" under Windows...
Definition: qdir.cpp:1831
QAbstractProxyModel * proxyModel
QAbstractItemModel * sourceModel() const
Returns the model that contains the data that is available through the proxy model.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
QString mid(int position, int n=-1) const Q_REQUIRED_RESULT
Returns a string that contains n characters of this string, starting at the specified position index...
Definition: qstring.cpp:3706
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
Definition: qstring.cpp:3796
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
Definition: qchar.h:55
QFileSystemModel * sourceModel

◆ splitPath()

QStringList QFSCompleter::splitPath ( const QString path) const
virtual

Splits the given path into strings that are used to match at each level in the model().

The default implementation of splitPath() splits a file system path based on QDir::separator() when the sourceModel() is a QFileSystemModel.

When used with list models, the first item in the returned list is used for matching.

See also
pathFromIndex(), {Handling Tree Models}

Reimplemented from QCompleter.

Definition at line 3561 of file qfiledialog.cpp.

Referenced by QFSCompleter().

3562 {
3563  if (path.isEmpty())
3564  return QStringList(completionPrefix());
3565 
3566  QString pathCopy = QDir::toNativeSeparators(path);
3567  QString sep = QDir::separator();
3568 #if defined(Q_OS_SYMBIAN)
3569  if (pathCopy == QLatin1String("\\"))
3570  return QStringList(pathCopy);
3571 #elif defined(Q_OS_WIN)
3572  if (pathCopy == QLatin1String("\\") || pathCopy == QLatin1String("\\\\"))
3573  return QStringList(pathCopy);
3574  QString doubleSlash(QLatin1String("\\\\"));
3575  if (pathCopy.startsWith(doubleSlash))
3576  pathCopy = pathCopy.mid(2);
3577  else
3578  doubleSlash.clear();
3579 #elif defined(Q_OS_UNIX)
3580  bool expanded;
3581  pathCopy = qt_tildeExpansion(pathCopy, &expanded);
3582  if (expanded) {
3583  QFileSystemModel *dirModel;
3584  if (proxyModel)
3586  else
3587  dirModel = sourceModel;
3588  dirModel->fetchMore(dirModel->index(pathCopy));
3589  }
3590 #endif
3591 
3592  QRegExp re(QLatin1Char('[') + QRegExp::escape(sep) + QLatin1Char(']'));
3593 
3594 #if defined(Q_OS_SYMBIAN)
3595  QStringList parts = pathCopy.split(re, QString::SkipEmptyParts);
3596  if (pathCopy.endsWith(sep))
3597  parts.append(QString());
3598 #elif defined(Q_OS_WIN)
3599  QStringList parts = pathCopy.split(re, QString::SkipEmptyParts);
3600  if (!doubleSlash.isEmpty() && !parts.isEmpty())
3601  parts[0].prepend(doubleSlash);
3602  if (pathCopy.endsWith(sep))
3603  parts.append(QString());
3604 #else
3605  QStringList parts = pathCopy.split(re);
3606  if (pathCopy[0] == sep[0]) // read the "/" at the beginning as the split removed it
3607  parts[0] = sep[0];
3608 #endif
3609 
3610 #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
3611  bool startsFromRoot = !parts.isEmpty() && parts[0].endsWith(QLatin1Char(':'));
3612 #else
3613  bool startsFromRoot = pathCopy[0] == sep[0];
3614 #endif
3615  if (parts.count() == 1 || (parts.count() > 1 && !startsFromRoot)) {
3616  const QFileSystemModel *dirModel;
3617  if (proxyModel)
3618  dirModel = qobject_cast<const QFileSystemModel *>(proxyModel->sourceModel());
3619  else
3620  dirModel = sourceModel;
3621  QString currentLocation = QDir::toNativeSeparators(dirModel->rootPath());
3622 #if defined(Q_OS_WIN) || defined(Q_OS_SYMBIAN)
3623  if (currentLocation.endsWith(QLatin1Char(':')))
3624  currentLocation.append(sep);
3625 #endif
3626  if (currentLocation.contains(sep) && path != currentLocation) {
3627  QStringList currentLocationList = splitPath(currentLocation);
3628  while (!currentLocationList.isEmpty()
3629  && parts.count() > 0
3630  && parts.at(0) == QLatin1String("..")) {
3631  parts.removeFirst();
3632  currentLocationList.removeLast();
3633  }
3634  if (!currentLocationList.isEmpty() && currentLocationList.last().isEmpty())
3635  currentLocationList.removeLast();
3636  return currentLocationList + parts;
3637  }
3638  }
3639  return parts;
3640 }
QBool contains(QChar c, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Definition: qstring.h:904
The QFileSystemModel class provides a data model for the local filesystem.
Q_AUTOTEST_EXPORT QString qt_tildeExpansion(const QString &path, bool *expanded=0)
The QRegExp class provides pattern matching using regular expressions.
Definition: qregexp.h:61
QString completionPrefix() const
bool startsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string starts with s; otherwise returns false.
Definition: qstring.cpp:3734
void removeLast()
Removes the last item in the list.
Definition: qlist.h:287
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
int count(const T &t) const
Returns the number of occurrences of value in the list.
Definition: qlist.h:891
void fetchMore(const QModelIndex &parent)
Reimplemented Function
The QString class provides a Unicode character string.
Definition: qstring.h:83
T * qobject_cast(QObject *object)
Definition: qobject.h:375
static QChar separator()
Returns the native directory separator: "/" under Unix (including Mac OS X) and "\\" under Windows...
Definition: qdir.cpp:1831
QStringList splitPath(const QString &path) const
Splits the given path into strings that are used to match at each level in the model().
bool isEmpty() const
Returns true if the list contains no items; otherwise returns false.
Definition: qlist.h:152
QAbstractProxyModel * proxyModel
void append(const T &t)
Inserts value at the end of the list.
Definition: qlist.h:507
QAbstractItemModel * sourceModel() const
Returns the model that contains the data that is available through the proxy model.
bool isEmpty() const
Returns true if the string has no characters; otherwise returns false.
Definition: qstring.h:704
const T & at(int i) const
Returns the item at index position i in the list.
Definition: qlist.h:468
The QStringList class provides a list of strings.
Definition: qstringlist.h:66
bool endsWith(const T &t) const
Returns true if this list is not empty and its last item is equal to value; otherwise returns false...
Definition: qlist.h:289
void removeFirst()
Removes the first item in the list.
Definition: qlist.h:286
QString mid(int position, int n=-1) const Q_REQUIRED_RESULT
Returns a string that contains n characters of this string, starting at the specified position index...
Definition: qstring.cpp:3706
QString & append(QChar c)
Definition: qstring.cpp:1777
void clear()
Clears the contents of the string and makes it empty.
Definition: qstring.h:723
T & last()
Returns a reference to the last item in the list.
Definition: qlist.h:284
QStringList split(const QString &sep, SplitBehavior behavior=KeepEmptyParts, Qt::CaseSensitivity cs=Qt::CaseSensitive) const Q_REQUIRED_RESULT
Splits the string into substrings wherever sep occurs, and returns the list of those strings...
Definition: qstring.cpp:6526
bool endsWith(const QString &s, Qt::CaseSensitivity cs=Qt::CaseSensitive) const
Returns true if the string ends with s; otherwise returns false.
Definition: qstring.cpp:3796
static QString toNativeSeparators(const QString &pathName)
Returns pathName with the &#39;/&#39; separators converted to separators that are appropriate for the underly...
Definition: qdir.cpp:812
The QLatin1Char class provides an 8-bit ASCII/Latin-1 character.
Definition: qchar.h:55
QFileSystemModel * sourceModel
static QString escape(const QString &str)
Returns the string str with every regexp special character escaped with a backslash.
Definition: qregexp.cpp:4392

Properties

◆ proxyModel

QAbstractProxyModel* QFSCompleter::proxyModel

Definition at line 76 of file qfscompleter_p.h.

◆ sourceModel

QFileSystemModel* QFSCompleter::sourceModel

Definition at line 77 of file qfscompleter_p.h.


The documentation for this class was generated from the following files: