Esempio n. 1
0
	QString ScriptCompleter::pathFromIndex(const QModelIndex &index) const
	{
		QStringList dataList;
		
		for(QModelIndex i = index; i.isValid(); i = i.parent())
			dataList.prepend(model()->data(i, completionRole()).toString());
   
		return dataList.join(".");
	}
Esempio n. 2
0
QString CategoricalCompleter::pathFromIndex(const QModelIndex &index) const
 {

     // navigate up and accumulate data
     QStringList dataList;
     for (QModelIndex i = index; i.isValid(); i = i.parent()) {
         dataList.prepend(model()->data(i, completionRole()).toString());
     }

     return dataList.join(" ");
 }
Esempio n. 3
0
QString CodeCompleter::pathFromIndex(const QModelIndex &index) const
{
    if (m_seperator.isNull()) {
        return QCompleter::pathFromIndex(index);
    }

    // navigate up and accumulate data
    QStringList dataList;
    for (QModelIndex i = index; i.isValid(); i = i.parent()) {
        dataList.prepend(model()->data(i, completionRole()).toString());
    }
    return dataList.join(m_seperator);
}
/**
 * Override of pathFromIndex().
 */
QString ConceptHierarchyCompleter::pathFromIndex(const QModelIndex &index) const {
    // Calculate the last path.
    QStringList lineage;
    for (QModelIndex i = index; i.isValid(); i = i.parent())
        lineage.prepend(model()->data(i, completionRole()).toString());
    QString path = lineage.join(this->lineageSeparator);

    // Make sure that previously entered paths are also kept.
    QLineEdit * widget = (QLineEdit *) this->widget();
    QStringList list = widget->text().split(this->entrySeparator);
    if (list.size() > 1) {
        // Delete the last path in the list, which was uncomplete.
        list.removeLast();
        // Add the *completed* last path again at the end of the list.
        list.append(path);
        // Merge all paths together again.
        path = list.join(this->entrySeparator);
    }

    return path;
}
bool QWordCompleter::eventFilter(QObject *o, QEvent *e)
{
    if(widget()->inherits("QTextEdit") && e->type() == QEvent::KeyPress){
        QKeyEvent* ke = static_cast<QKeyEvent*>(e);
        switch (ke->key()) {
        case Qt::Key_Space:
            if(ke->modifiers().testFlag(Qt::ControlModifier)){
                QTextEdit* textEdit = qobject_cast<QTextEdit*>(widget());
                QTextCursor textCursor = textEdit->textCursor();
                textCursor.movePosition(QTextCursor::StartOfWord, QTextCursor::KeepAnchor);
                if(textCursor.selectedText().length() >= minCompletionPrefixLength){
                    setCompletionPrefix(textCursor.selectedText());
                    QRect rect = QRect(textEdit->cursorRect().bottomLeft(), QSize(100, 5));
                    complete(rect);
                }
                return true;
            }
            break;
        case Qt::Key_Enter:
        case Qt::Key_Return:
        case Qt::Key_Tab:
            if(popup()->isVisible()){
                popup()->hide();
                if(popup()->currentIndex().isValid()){
                    emit activated(popup()->currentIndex());
                    emit activated(popup()->currentIndex().data(completionRole()).toString());
                }
                return true;
            }
        default:
            break;
        }
    }
    return QCompleter::eventFilter(o, e);

}