<table><tr><td style="">drosca added inline comments.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D14513">View Revision</a></tr></table><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D14513#inline-78029">View Inline</a><span style="color: #4b4d51; font-weight: bold;">drosca</span> wrote in <span style="color: #4b4d51; font-weight: bold;">qmlextensionscheme.cpp:31</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><p style="padding: 0; margin: 8px;">I meant what I told you to do, just call <tt style="background: #ebebeb; font-size: 13px;">qmlEngine(this)->newQObject(request);</tt></p>
<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">connect(m_schemeHandler, &QmlExtensionSchemeHandler::_requestStarted, this, [this](QWebEngineUrlRequestJob *job) {
QmlWebEngineUrlRequestJob *request = new QmlWebEngineUrlRequestJob(job);
qmlEngine(this)->newQObject(request);
emit requestStarted(request);
});</pre></div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">I asked you to test how it works, so what are your findings? I'm not myself sure if this is actually correct, as you may need to pass the QJSValue to QML (as you did) to not be garbage collected if the reference is held on QML side.<br />
Eg. save the reference to the job on QML side and check if it is still valid after some time (with Timer).</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D14513#inline-78083">View Inline</a><span style="color: #4b4d51; font-weight: bold;">drosca</span> wrote in <span style="color: #4b4d51; font-weight: bold;">qmli18n.cpp:26</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p style="padding: 0; margin: 8px;">i18n as contextProperty object</p></blockquote>
<p style="padding: 0; margin: 8px;">Is that an issue?</p>
<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p style="padding: 0; margin: 8px;">It must be added to the engine at time of its creation i.e. remove singleton of i18n from QmlPlugins and move i18n to engine global object when the engine is created in QmlPluginLoader.</p></blockquote>
<p style="padding: 0; margin: 8px;">I don't see any problem with this.</p>
<p style="padding: 0; margin: 8px;">If it works, please do it this way.</p></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">I don't think it should call <tt style="background: #ebebeb; font-size: 13px;">setlocale</tt> at all, that's QLocale job. Take a look how is this done in <tt style="background: #ebebeb; font-size: 13px;">ki18n</tt> framework.</p></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D14513#inline-78119">View Inline</a><span style="color: #4b4d51; font-weight: bold;">qmlpluginloader.cpp:73</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span class="n">m_engine</span><span style="color: #aa2211">-></span><span class="n">globalObject</span><span class="p">().</span><span class="n">setProperty</span><span class="p">(</span><span style="color: #766510">"__falkon_i18n"</span><span class="p">,</span> <span class="n">m_engine</span><span style="color: #aa2211">-></span><span class="n">newQObject</span><span class="p">(</span><span class="n">i18n</span><span class="p">));</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span class="n">m_engine</span><span style="color: #aa2211">-></span><span class="n">globalObject</span><span class="p">().</span><span class="n">setProperty</span><span class="p">(</span><span style="color: #766510">"i18n"</span><span class="p">,</span> <span class="n">m_engine</span><span style="color: #aa2211">-></span><span class="n">evaluate</span><span class="p">(</span><span style="color: #766510">"function (s) { return __falkon_i18n.i18n(s) }"</span><span class="p">));</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span class="n">m_engine</span><span style="color: #aa2211">-></span><span class="n">globalObject</span><span class="p">().</span><span class="n">setProperty</span><span class="p">(</span><span style="color: #766510">"i18np"</span><span class="p">,</span> <span class="n">m_engine</span><span style="color: #aa2211">-></span><span class="n">evaluate</span><span class="p">(</span><span style="color: #766510">"function (s1, s2) { return __falkon_i18n.i18np(s1, s2) }"</span><span class="p">));</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">QStringLiteral</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R875 Falkon</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D14513">https://phabricator.kde.org/D14513</a></div></div><br /><div><strong>To: </strong>anmolgautam, drosca<br /><strong>Cc: </strong>falkon, herrold, anmolgautam, SGOrava, iodelay, spoorun, ptabis, navarromorales, cochise, clivej, ach<br /></div>