Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-117524

setting TextEdit.text property triggers unnecessary re-conversion (markdown)

    XMLWordPrintable

Details

    Description

      I was trying to test some rumors of large text still being inefficient somehow and happened to notice output in the qt.text.markdown.writer logging category. How did we get there?

      1  QTextMarkdownWriter::QTextMarkdownWriter                        qtextmarkdownwriter.cpp      37   
      2  QTextDocument::toMarkdown                                       qtextdocument.cpp            3525 
      3  QQuickTextControl::toMarkdown                                   qquicktextcontrol.cpp        1825 
      4  QQuickTextEdit::text                                            qquicktextedit.cpp           164  
      5  QQuickTextEdit::qt_static_metacall                              moc_qquicktextedit_p.cpp     1336 
      6  QQmlPropertyData::readPropertyWithArgs                          qqmlpropertydata_p.h         335  
      7  QQmlPropertyData::readProperty                                  qqmlpropertydata_p.h         318  
      8  QV4::loadProperty                                               qv4qobjectwrapper.cpp        147  
      9  QV4::QObjectWrapper::getProperty                                qv4qobjectwrapper.cpp        289  
      10 QV4::QObjectWrapper::lookupPropertyGetterImpl<QV4::Lookup::gett qv4qobjectwrapper_p.h        299  
      11 QV4::Lookup::getterQObject                                      qv4lookup.cpp                418  
      12 QV4::Moth::VME::interpret                                       qv4vme_moth.cpp              771  
      13 QV4::Moth::VME::exec                                            qv4vme_moth.cpp              584  
      14 QV4::doCall                                                     qv4function.cpp              54   
      15 QV4::Function::call                                             qv4function.cpp              79   
      16 QQmlJavaScriptExpression::evaluate                              qqmljavascriptexpression.cpp 238  
      17 QQmlBinding::evaluate                                           qqmlbinding.cpp              188  
      18 QQmlBinding::doUpdate                                           qqmlbinding.cpp              698  
      19 QQmlBinding::update                                             qqmlbinding.cpp              164  
      20 QQmlBinding::expressionChanged                                  qqmlbinding.cpp              603  
      21 QQmlJavaScriptExpressionGuard_callback                          qqmljavascriptexpression.cpp 562  
      22 QQmlNotifier::emitNotify                                        qqmlnotifier.cpp             70   
      23 QQmlData::signalEmitted                                         qqmlengine.cpp               357  
      24 doActivate<false>                                               qobject.cpp                  3931 
      25 QMetaObject::activate                                           qobject.cpp                  4099 
      26 QQuickTextEdit::textChanged                                     moc_qquicktextedit_p.cpp     1482 
      27 QQuickTextEdit::q_textChanged                                   qquicktextedit.cpp           2527 
      28 QQuickTextEdit::qt_static_metacall                              moc_qquicktextedit_p.cpp     984  
      29 QQuickTextEdit::qt_metacall                                     moc_qquicktextedit_p.cpp     1464 
      30 QQuickPre64TextEdit::qt_metacall                                moc_qquicktextedit_p.cpp     1836 
      31 QMetaObject::metacall                                           qmetaobject.cpp              334  
      32 doActivate<false>                                               qobject.cpp                  4065 
      33 QMetaObject::activate                                           qobject.cpp                  4099 
      34 QQuickTextControl::textChanged                                  moc_qquicktextcontrol_p.cpp  472  
      35 QQuickTextControlPrivate::setContent                            qquicktextcontrol.cpp        313  
      36 QQuickTextControl::setMarkdownText                              qquicktextcontrol.cpp        778  
      37 QQuickTextEdit::componentComplete                               qquicktextedit.cpp           1522 
      38 QQmlObjectCreator::finalize                                     qqmlobjectcreator.cpp        1505 
      39 QQmlComponentPrivate::complete                                  qqmlcomponent.cpp            1147 
      40 QQmlComponentPrivate::completeCreate                            qqmlcomponent.cpp            1252 
      41 QQmlComponent::completeCreate                                   qqmlcomponent.cpp            1230 
      42 QQmlComponentPrivate::createWithProperties                      qqmlcomponent.cpp            957  
      43 QQmlComponent::create                                           qqmlcomponent.cpp            908  
      44 QQmlApplicationEnginePrivate::finishLoad                        qqmlapplicationengine.cpp    135  
      45 QQmlApplicationEnginePrivate::ensureLoadingFinishes             qqmlapplicationengine.cpp    162  
      46 QQmlApplicationEnginePrivate::startLoad                         qqmlapplicationengine.cpp    109  
      47 QQmlApplicationEngine::load                                     qqmlapplicationengine.cpp    324  
      48 main                                                            main.cpp                     642  
      

      Can be triggered by running the attached qml. It's only intended to read, not write. Asking to evaluate the text property is expensive, and should be avoided somehow.

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qtqmlteam Qt Qml Team User
            srutledg Shawn Rutledge
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes