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("<","<").replace(">",">").replace(" "," "); 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; } }
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; }