<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    you can't do it. you should call it with slot only, else it will be
    called in current thread, not one you created.<br>
    <br>
    <div class="moz-cite-prefix">28.05.2014 23:07, Krisztian Olah пишет:<br>
    </div>
    <blockquote
cite="mid:CACX4ZqadgkqN0vF_WQ0wKBDFPUrpJ3eKxXQOfMY_7F6N-XYSJw@mail.gmail.com"
      type="cite">
      <div dir="ltr">it just calls:
        <div><br>
          <div style="">//pointer also a member</div>
          <div style="">parser->addData()</div>
          <div style="">parser->parse()</div>
          <div style=""><br>
          </div>
          <div style="">although it is a bit messy, here is my parser
            class and its methods:</div>
          <div style=""><br>
          </div>
          <div style="">//header:</div>
          <div style="">
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)"><QObject></span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)"><QXmlStreamReader></span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)"><QSharedPointer></span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"disruption.h"</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"street.h"</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"trafficcontainer.h"</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px">
</pre>
            <pre style="margin-top:0px;margin-bottom:0px">
</pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">class</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">TrafficXmlReader</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">:</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">public</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">QObject</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">{</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(0,0,128)">Q_OBJECT</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">public</span><span style="color:rgb(0,0,0)">:</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">TrafficXmlReader</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QObject</span><span style="color:rgb(0,0,0)">*</span><span style="color:rgb(192,192,192)"> </span>parent<span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">);</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">private</span><span style="color:rgb(0,0,0)">:</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">    //TrafficContainer has a QList<Disruption> and a QHash<int,Street> member</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">    // and it interacts with 2 corresponding models for each contained container</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">QSharedPointer</span><span style="color:rgb(0,0,0)"><</span><span style="color:rgb(128,0,128)">TrafficContainer</span><span style="color:rgb(0,0,0)">></span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">container</span><span style="color:rgb(0,0,0)">;</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">int</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">count</span><span style="color:rgb(0,0,0)">;</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">int</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">currentID</span><span style="color:rgb(0,0,0)">;</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">Disruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">;</span><span style="color:rgb(0,0,0);font-family:arial">//just a struct containing the strings</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">Street</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">currentStreet</span><span style="color:rgb(0,0,0)">;//just a struct containing the strings</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">bool</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(0,0,0)">;</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">bool</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">inPoint</span><span style="color:rgb(0,0,0)">;</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">bool</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">inStreet</span><span style="color:rgb(0,0,0)">;</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">QXmlStreamReader</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">;</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">public</span><span style="color:rgb(0,0,0)">:</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">setContainer</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QSharedPointer</span><span style="color:rgb(0,0,0)"><</span><span style="color:rgb(128,0,128)">TrafficContainer</span><span style="color:rgb(0,0,0)">>);</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">setDevice</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QIODevice</span><span style="color:rgb(0,0,0)">*);</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">signals</span><span style="color:rgb(0,0,0)">:</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">finished</span><span style="color:rgb(0,0,0)">();</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">partFinished</span><span style="color:rgb(0,0,0)">();</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">public</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">slots</span><span style="color:rgb(0,0,0)">:</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">addData</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">const</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">QByteArray</span><span style="color:rgb(0,0,0)">&);</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">parse</span><span style="color:rgb(0,0,0)">();</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">};</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px">
</pre>
            <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#endif</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">//</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">TRAFFICXMLREADER_H</span></pre>
            <pre style="margin-top:0px;margin-bottom:0px">
</pre>
            <pre style="margin-top:0px;margin-bottom:0px">
</pre>
            <pre style="margin-top:0px;margin-bottom:0px">//implementation:</pre>
            <pre style="margin-top:0px;margin-bottom:0px"><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"trafficxmlreader.h"</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)"><QDebug></span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)"><QRegExp></span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,128)">#include</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"trafficcontainer.h"</span></pre>
<pre style="margin-top:0px;margin-bottom:0px">
</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,128)">TrafficXmlReader</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">TrafficXmlReader</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QObject</span><span style="color:rgb(0,0,0)">*</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">c</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">:</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">container</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">static_cast</span><span style="color:rgb(0,0,0)"><</span><span style="color:rgb(128,0,128)">TrafficContainer</span><span style="color:rgb(0,0,0)">*>(</span><span style="color:rgb(0,0,0)">c</span><span style="color:rgb(0,0,0)">)),</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                                          </span><span style="color:rgb(128,0,0)">count</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">),</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                                          </span><span style="color:rgb(128,0,0)">currentID</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">),</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                                          </span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">false</span><span style="color:rgb(0,0,0)">),</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                                          </span><span style="color:rgb(128,0,0)">inPoint</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">false</span><span style="color:rgb(0,0,0)">),</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                                                          </span><span style="color:rgb(128,0,0)">inStreet</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">false</span><span style="color:rgb(0,0,0)">)</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">{</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">setNamespaceProcessing</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">false</span><span style="color:rgb(0,0,0)">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px">
</pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">TrafficXmlReader</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">setContainer</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QSharedPointer</span><span style="color:rgb(0,0,0)"><</span><span style="color:rgb(128,0,128)">TrafficContainer</span><span style="color:rgb(0,0,0)">></span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">newContainer</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,0)">container</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">clear</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,0)">container</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">newContainer</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">TrafficXmlReader</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">setDevice</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QIODevice</span><span style="color:rgb(0,0,0)">*</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">device</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">setDevice</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">device</span><span style="color:rgb(0,0,0)">);</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">
}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px">
</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,128,0)">//public</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">slots:</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">TrafficXmlReader</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">addData</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">const</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">QByteArray</span><span style="color:rgb(0,0,0)">&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">data</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><
span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">addData</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">data</span><span style="color:rgb(0,0,0)">);</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">}</span></pre>

<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">TrafficXmlReader</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">parse</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">while</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(!</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">atEnd</span><span style="color:rgb(0,0,0)">())</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readNext</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">++</span><span style="color:rgb(128,0,0)">count</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"Disruption"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">isStartElement</span><span style="color:rgb(0,0,0)">())</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">true</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">currentID</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">attributes</span><span style="color:rgb(0,0,0)">().</span><span style="color:rgb(0,0,0)">value</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,128,0)">"id"</span><span style="color:rgb(0,0,0)">).</span><span style="color:rgb(0,0,0)">toInt</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">isEndElement</span><span style="color:rgb(0,0,0)">())</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">id</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">currentID</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">currentID</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">container</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">data</span><span style="color:rgb(0,0,0)">()-></span><span style="color:rgb(0,0,0)">addDisruption</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">false</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"status"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">status</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"severity"
</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">severity</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"levelOfIn
terest"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">levelOfInterest</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"category"
</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">category</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"subCatego
ry"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">subCategory</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"startTime
"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">startTime</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,128,0)">//replace</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">','</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">with</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">",</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">not</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">followed</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">by</span><spa
n style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">a</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">whitespace,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">happends</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">many</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">times</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">due</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">to</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">lousy</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">typing</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,128,0)">//it</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">is</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">to</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">make</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">WordWrap</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">possible</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">in</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">gui</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"location"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,128)">QString</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">location</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">int</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">while</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">((</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">location</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">indexOf</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QRegExp</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,128,0)">",[^\\s-]"</span><span style="color:rgb(0,0,0)">)))</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">!=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">-</span><span style="color:rgb(0,0,128)">1</span><span style="color:rgb(192,192,192)"> <
/span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(0,0,0)">location</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">location</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">insert</span><span style="color:rgb(0,0,0)">(++</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span><span style="color:rgb(0,0,0)">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">location</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">location</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"comments"
</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">comments</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"currentUp
date"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">currentUpdate</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"remarkTim
e"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">remarkTime</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"lastModTi
me"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">lastModTime</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"Point"</s
pan><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">inPoint</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">true</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">inPoint</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0
)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"coordinatesLL"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentDisruption</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">coordinates</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,128,0)">//Streets</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">
"Street"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">isStartElement</span><span style="color:rgb(0,0,0)">())</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">inStreet</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">true</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">isEndElement</span><span style="color:rgb(0,0,0)">())</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">container</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">data</span><span style="color:rgb(0,0,0)">()-></span><span style="color:rgb(0,0,0)">addStreet</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">currentID</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">currentStreet</span><span style="color:rgb(0,0,0)">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">inStreet</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span>
<span style="color:rgb(0,128,0)">"name"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,128)">QString</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">name</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">int</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">while</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">((</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">name</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">indexOf</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QRegExp</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,128,0)">",[^\\s-]"</span><span style="color:rgb(0,0,0)">)))</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">!=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">-</span><span style="color:rgb(0,0,128)">1</span><span style="color:rgb(192,192,192)"> </spa
n><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(0,0,0)">name</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">name</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">insert</span><span style="color:rgb(0,0,0)">(++</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span><span style="color:rgb(0,0,0)">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentStreet</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">name</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">name</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">inStreet</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,
0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"closure"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,128)">QString</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">closure</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,0,0)">currentStreet</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">closure</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">closure</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"Open"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">?</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"Affected"</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">:</span><span style="color:rgb(192,192,192)"> </span><span style="color
:rgb(0,0,0)">closure</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">inDisruption</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">inStreet</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">&&</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">qualifiedName</span><span style="color:rgb(0,0,
0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"directions"</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,0,0)">currentStreet</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(128,0,0)">directions</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">readElementText</span><span style="color:rgb(0,0,0)">().</span><span style="color:rgb(0,0,0)">toLower</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px">
</pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">hasError</span><span style="color:rgb(0,0,0)">())</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">error</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">==</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">QXmlStreamReader</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(128,0,128)">PrematureEndOfDocumentError</span><span style="color:rgb(0,0,0)">)</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(0,0,128)">qDebug</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)"><<</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"partFinished"</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">                </span><span style="color:rgb(128,128,0)">emit</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">partFinished</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">            </span><span style="color:rgb(128,128,0)">else</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,128)">qDebug</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)"><<</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"An</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">Error</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">has</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">occured</span><span style="color:rgb(192,192,192)"> </
span><span style="color:rgb(0,128,0)">while</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">parsing."</span><span style="color:rgb(0,0,0)">;</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">}</span></pre>

<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,0)">}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(0,0,0)">}</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">if</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">(!</span><span style="color:rgb(128,0,0)">reader</span><span style="color:rgb(0,0,0)">.</span><span style="color:rgb(0,0,0)">hasError</span><span style="color:rgb(0,0,0)">())</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,128)">qDebug</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)"><<</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"parser.atEnd()"</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(0,0,128)">qDebug</span><span style="color:rgb(0,0,0)">()</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)"><<</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"Found</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)"><<</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,0)">count</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)"><<</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">"</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">tags"</span><span style="color:rgb(0,0,0)">;</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">        </span><span style="color:rgb(128,128,0)">emit</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">finished</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(0,0,0)">}</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">}</span></pre>

<pre style="margin-top:0px;margin-bottom:0px">
</pre>
<pre style="margin-top:0px;margin-bottom:0px">
</pre>
<pre style="margin-top:0px;margin-bottom:0px">
</pre></pre>
          </div>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <br>
        <div class="gmail_quote">On 28 May 2014 16:07, Andrey
          Kozhevnikov <span dir="ltr"><<a moz-do-not-send="true"
              href="mailto:coderusinbox@gmail.com" target="_blank">coderusinbox@gmail.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div bgcolor="#FFFFFF" text="#000000"> need to look into
              your parseReadyData<br>
              <br>
              <div>28.05.2014 22:03, Krisztian Olah пишет:<br>
              </div>
              <div>
                <div class="h5">
                  <blockquote type="cite">
                    <div dir="ltr">Hi Andrey,
                      <div>   Thanks for the answer, your snippet looks
                        very similar to what I have. Perhaps if I posted
                        my code segment would be of help in helping me
                        figuring out where I'm wrong. <br>
                        <div>   During parsing CPU usage reaches 97-100%
                          which causes my GUI to hang(I have about 500
                          000 opening and closing tags and half of the
                          enclosed items I need to process: save, in
                          some cases insert spaces, etc), especially
                          awkward when I start parsing whilst still
                          fetching the data from network(sometimes hangs
                          during pageStack.push() ), but it's bad for up
                          to 2-5 seconds nevertheless. I wouldn't mind
                          if parsing took 10 seconds if GUI was
                          responsive. This is what I'm doing:</div>
                        <div><br>
                        </div>
                        <div>void SomeClass::someMethod() {</div>
                        <div>              MyContainer* container = new
                          MyContainer();</div>
                        <div>              //reader has a handle to
                          container, through which it populates the
                          container</div>
                        <div>              MyXmlStreamReader* parser =
                          new MyXmlStreamReader(container);</div>
                        <div>              QThread* parserThread = new
                          QThread();</div>
                        <div>             
                          parser->moveToThread(parserThread);</div>
                        <div>
                          <pre style="margin-top:0px;margin-bottom:0px">        connect(parser, SIGNAL(finished()), this, SLOT(onParsingFinished) );</pre>
                          <pre style="margin-top:0px;margin-bottom:0px">        connect(parser, SIGNAL(finished()), parserThread, SLOT(quit()) );</pre>
                          <pre style="margin-top:0px;margin-bottom:0px">        connect(parser, SIGNAL(finished()), parser, SLOT(deleteLater()) );</pre>
                          <pre style="margin-top:0px;margin-bottom:0px">        connect(parserThread, SIGNAL(finished()), parserThread, SLOT(deleteLater()) );</pre>
                          <pre style="margin-top:0px;margin-bottom:0px">        parserThread->start();</pre>
                          <pre style="margin-top:0px;margin-bottom:0px">        reply = networkMngr->get(QNetworkRequest(someUrl)); //both pointers are class members</pre>
                          <pre style="margin-top:0px;margin-bottom:0px">        connect(reply, SIGNAL(finished()), this, SLOT(onAllDataRecieved()) );</pre>
                          <pre style="margin-top:0px;margin-bottom:0px">        <span style="font-family:arial">//this starts the parser with the data available at the time, </span></pre>
                          <pre style="margin-top:0px;margin-bottom:0px"><span style="font-family:arial">              // when parser reaches the end of xml document it emits its </span><span style="font-family:arial">finished() signal</span></pre>
                          <pre style="margin-top:0px;margin-bottom:0px">        connect(reply, SIGNAL(readyRead()), this, SLOT(parseReadyData()) );</pre>
                          <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">}</span></pre>
                          <pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">
</span></pre>
                          <pre style="margin-top:0px;margin-bottom:0px">Thanks again</pre>
                          <pre style="margin-top:0px;margin-bottom:0px">Kris</pre>
                        </div>
                      </div>
                    </div>
                    <div class="gmail_extra"><br>
                      <br>
                      <div class="gmail_quote">On 28 May 2014 06:16,
                        Andrey Kozhevnikov <span dir="ltr"><<a
                            moz-do-not-send="true"
                            href="mailto:coderusinbox@gmail.com"
                            target="_blank">coderusinbox@gmail.com</a>></span>
                        wrote:<br>
                        <blockquote class="gmail_quote" style="margin:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">
                          <div bgcolor="#FFFFFF" text="#000000"> it
                            can't "doesn't help much". you initializing
                            thread wrong.<br>
                            <br>
                            simple threading way is:<br>
                            <br>
                            <tt>MyXmlParser *parser = new
                              MyXmlParser(xmlDocument);</tt><tt><br>
                            </tt><tt>QThread *thread = new
                              QThread(parser);</tt><tt><br>
                            </tt><tt>parser->moveToThread(thread);</tt><tt><br>
                            </tt><tt>QObject::connect(thread,
                              SIGNAL(started()), parser, SLOT(parse()));</tt><tt><br>
                            </tt><tt>QObject::connect(parser,
                              SIGNAL(parseComplete(QVariantMap)</tt><tt>),
                              this, SLOT(onParseComplete(QVariantMap)));</tt><tt><br>
                            </tt><tt>thread->start();</tt><br>
                            <br>
                            <div>28.05.2014 03:24, Krisztian Olah пишет:<br>
                            </div>
                            <blockquote type="cite">
                              <div>
                                <div>
                                  <div dir="ltr">      Hi list,
                                    <div>  I have a rather large xml
                                      file to parse and it causes the UI
                                      to freeze, I assingned the parser
                                      to a different thread, but it
                                      doesn't help much. According to
                                      the Qt documentation
                                      QThread::setPriority() doesn't
                                      work on Linux, is there some kind
                                      of workaround that could be used?</div>
                                    <div><br>
                                    </div>
                                    <div>Thanks</div>
                                    <div>Kris</div>
                                  </div>
                                  <br>
                                  <fieldset></fieldset>
                                  <br>
                                </div>
                              </div>
                              <pre>_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to <a moz-do-not-send="true" href="mailto:devel-unsubscribe@lists.sailfishos.org" target="_blank">devel-unsubscribe@lists.sailfishos.org</a></pre>
                            </blockquote>
                            <br>
                          </div>
                          <br>
_______________________________________________<br>
                          SailfishOS.org Devel mailing list<br>
                          To unsubscribe, please send a mail to <a
                            moz-do-not-send="true"
                            href="mailto:devel-unsubscribe@lists.sailfishos.org"
                            target="_blank">devel-unsubscribe@lists.sailfishos.org</a><br>
                        </blockquote>
                      </div>
                      <br>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                    <pre>_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to <a moz-do-not-send="true" href="mailto:devel-unsubscribe@lists.sailfishos.org" target="_blank">devel-unsubscribe@lists.sailfishos.org</a></pre>
                  </blockquote>
                  <br>
                </div>
              </div>
            </div>
            <br>
            _______________________________________________<br>
            SailfishOS.org Devel mailing list<br>
            To unsubscribe, please send a mail to <a
              moz-do-not-send="true"
              href="mailto:devel-unsubscribe@lists.sailfishos.org">devel-unsubscribe@lists.sailfishos.org</a><br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
SailfishOS.org Devel mailing list
To unsubscribe, please send a mail to <a class="moz-txt-link-abbreviated" href="mailto:devel-unsubscribe@lists.sailfishos.org">devel-unsubscribe@lists.sailfishos.org</a></pre>
    </blockquote>
    <br>
  </body>
</html>