/*! Sets the model which provides completions to \a model. The \a model can be list model or a tree model. If a model has been already previously set and it has the QCompleter as its parent, it is deleted. For convenience, if \a model is a QFileSystemModel, QCompleter switches its caseSensitivity to Qt::CaseInsensitive on Windows and Qt::CaseSensitive on other platforms. \sa completionModel(), modelSorting, {Handling Tree Models} */ void QCompleter::setModel(QAbstractItemModel *model) { Q_D(QCompleter); QAbstractItemModel *oldModel = d->proxy->sourceModel(); d->proxy->setSourceModel(model); if (d->popup) setPopup(d->popup); // set the model and make new connections if (oldModel && oldModel->QObject::parent() == this) delete oldModel; #ifndef QT_NO_DIRMODEL if (qobject_cast<QDirModel *>(model)) { #if (defined(Q_OS_WIN) && !defined(Q_OS_WINCE)) || defined(Q_OS_SYMBIAN) setCaseSensitivity(Qt::CaseInsensitive); #else setCaseSensitivity(Qt::CaseSensitive); #endif } #endif // QT_NO_DIRMODEL #ifndef QT_NO_FILESYSTEMMODEL QFileSystemModel *fsModel = qobject_cast<QFileSystemModel *>(model); if (fsModel) { #if (defined(Q_OS_WIN) && !defined(Q_OS_WINCE)) || defined(Q_OS_SYMBIAN) setCaseSensitivity(Qt::CaseInsensitive); #else setCaseSensitivity(Qt::CaseSensitive); #endif setCompletionRole(QFileSystemModel::FileNameRole); connect(fsModel, SIGNAL(directoryLoaded(QString)), this, SLOT(_q_fileSystemModelDirectoryLoaded(QString))); } #endif // QT_NO_FILESYSTEMMODEL }
MessageCompleter::MessageCompleter(QWidget *parent) : QCompleter(parent) { m_title = qobject_cast<QLineEdit*>(parent); Q_ASSERT(m_title); setCaseSensitivity(Qt::CaseInsensitive); setWrapAround(false); setCompletionColumn(0); setCompletionRole(Qt::EditRole); connect(Core::ICore::instance(), SIGNAL(viewNoteLoaded(Core::INoteView*,const WIZDOCUMENTDATA&,bool)), SLOT(onNoteLoaded(Core::INoteView*,const WIZDOCUMENTDATA&,bool))); }
void HistoryCompleter::init() { setPopup(new HistoryCompletionView()); // we want to complete against our own faked role setCompletionRole(HistoryCompletionModel::HistoryCompletionRole); // and since we fake our completion role, we can take // advantage of the sorted-model optimizations in QCompleter setCaseSensitivity(Qt::CaseSensitive); setModelSorting(QCompleter::CaseSensitivelySortedModel); m_filterTimer.setSingleShot(true); connect(&m_filterTimer, SIGNAL(timeout()), this, SLOT(updateFilter())); }
WizMessageCompleter::WizMessageCompleter(QWidget *parent) : QCompleter(parent) { m_title = qobject_cast<QLineEdit*>(parent); Q_ASSERT(m_title); setCaseSensitivity(Qt::CaseInsensitive); setWrapAround(false); setCompletionColumn(0); setCompletionRole(Qt::EditRole); #if QT_VERSION >= 0x050200 setFilterMode(Qt::MatchContains); #endif connect(WizGlobal::instance(), SIGNAL(viewNoteLoaded(WizDocumentView*,const WIZDOCUMENTDATA&,bool)), SLOT(onNoteLoaded(WizDocumentView*,const WIZDOCUMENTDATA&,bool))); }