Пример #1
0
void FileIO::read()
{
    if (m_source.isEmpty()){
        emit error("source is empty");
        return;
    } else if (m_target == 0){
        emit error("target is not set");
        return;
    }

    QFile file(m_source);
    if ( file.open(QIODevice::ReadOnly) ) {
        QString line;
        QTextStream t( &file );
        QVariant length = m_target->property("length");
        QVariant returnedValue;

        if(length>0){
            QMetaObject::invokeMethod(m_target, "remove",
                                      Q_RETURN_ARG(QVariant, returnedValue),
                                      Q_ARG(QVariant, QVariant(0)),
                                      Q_ARG(QVariant, length));
            m_lineOffsets.clear();
            m_lineOffsets.push_back(1);
        }
        do {
            line = t.readLine();
            line.replace("\t","        ");
            m_lineOffsets.push_back(line.length()+1);
            line.replace("<","&lt;").replace(">","&gt;").replace(" ","&nbsp;");
            QMetaObject::invokeMethod(m_target, "append",
                                      Q_RETURN_ARG(QVariant, returnedValue),
                                      Q_ARG(QVariant, QVariant(line)));
        } while (!t.atEnd());

        file.close();
        QVariant doc = m_target->property("textDocument");
        if (doc.canConvert<QQuickTextDocument*>()) {
            QQuickTextDocument *qqdoc = doc.value<QQuickTextDocument*>();
            if (qqdoc)
                m_doc = qqdoc->textDocument();
            m_highlighter = new Highlighter(m_doc);
            m_highlighter->setStyle(12);
        }
    } else {
        emit error("Unable to open the file");
        return;
    }
}
Пример #2
0
void DocumentHandler::setTarget(QQuickItem *target)
{
    m_doc = 0;
    m_target = target;
    if (!m_target)
        return;

    QVariant doc = m_target->property("textDocument");
    if (doc.canConvert<QQuickTextDocument*>()) {
        QQuickTextDocument *qqdoc = doc.value<QQuickTextDocument*>();
        if (qqdoc)
            m_doc = qqdoc->textDocument();
    }
    emit targetChanged();
}
void QHighlighter::setTarget(QQuickItem *target)
{
    m_highlighter = 0;
    m_target = target;
    if (!m_target) {
        return;
    }

    QVariant doc = m_target->property("textDocument");
    if (doc.canConvert<QQuickTextDocument*>()) {
        QQuickTextDocument *qqdoc = doc.value<QQuickTextDocument*>();
        if (qqdoc) {
            m_highlighter = new Highlighter(qqdoc->textDocument());
        }
    }
    emit targetChanged();
}
void CodeEditorExtensionManager::loadEditor(QQuickItem* _editor)
{
	if (!_editor)
		return;
	try
	{
		QVariant doc = _editor->property("textDocument");
		if (doc.canConvert<QQuickTextDocument*>())
		{
			QQuickTextDocument* qqdoc = doc.value<QQuickTextDocument*>();
			if (qqdoc)
				m_doc = qqdoc->textDocument();
		}
	}
	catch (...)
	{
		qDebug() << "unable to load editor: ";
	}
}
void tst_qquicktextdocument::textDocumentWriter()
{
    QQmlEngine e;
    QQmlComponent c(&e, testFileUrl("text.qml"));
    QObject* o = c.create();
    QVERIFY(o);
    QQuickTextEdit *edit = qobject_cast<QQuickTextEdit*>(o);
    QVERIFY(edit);

    QQuickTextDocument* quickDocument = qobject_cast<QQuickTextDocument*>(edit->property("textDocument").value<QObject*>());
    QVERIFY(quickDocument->textDocument() != 0);

    QBuffer output;
    output.open(QBuffer::ReadWrite);
    QVERIFY(output.buffer().isEmpty());

    edit->setProperty("text", QVariant(text));
    QTextDocumentWriter writer(&output, "plaintext");
    QVERIFY(writer.write(quickDocument->textDocument()));
    QCOMPARE(output.buffer(), text.toLatin1());
    delete o;
}