<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/119222/">https://git.reviewboard.kde.org/r/119222/</a>
     </td>
    </tr>
   </table>
   <br />





 <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Much better, close to final. Thanks! The note in KoReportDesignerItemLabel.cpp is a most important TODO.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Updated statuses, checked all DEFECTs:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT1 after showing the label is not resized to the size of parent - see http://wstaw.org/m/2014/07/10/plasma-desktoppn2275.png"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT2 dashed frame is not needed then (see the same screenshot)"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT3 the font is not copied"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT4 clicking on any area of the label during editing does not change cursor, maybe z-order isn't proper?"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">NOW fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT5 would be nice if F2 shortcut and double click also entered into the edit mode"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT6 when I use the property editor to enter the caption, after clicking outside the caption text is reset to the original value; now the only way to enter the text is to use the inline editor"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT7 inserting a new label (or copy-pasting) crashes, exactly 6 times result of dynamic_cast<KoReportItemBase*> does not seem to be compared with 0"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT8 when double clicking it's supereasy to accidentally move the item by a few pixels; on displays with even more density it will be even more noticeable"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT9 the edited text alignment (horizontal/vertical) should match alignment of the original label"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Not fixed but it's not a showstopper. We can leave it as a junior-job.
Hints how to resolve:
http://www.qtcentre.org/threads/24814-QGraphicsTextItem-Vertical-text-alignment
http://www.cesarbs.org/blog/2011/05/30/aligning-text-in-qgraphicstextitem/</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT10 bg/fg color not copied to the edited text"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">NOW fixed! Nice!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT11 clicking on any area of the label during editing still does not change cursor's position; instead just ends the editing mode"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">NOW fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT12 when in editing mode, if I switch to other report and switch back, the BoundedTextItem is apparently still present but the cursor is invisible; it's also impossible to enter text; the only solution is to click BoundedTextItem again; could we set focus on BoundedTextItem when needed?"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Not fixed. We can leave it as a junior-job if you don't to now.
Hint: on focus out for the entire report (probably ReportSceneView) we would like to accept editing by calling exitInlineEditingMode() method for selected item; this method is explained elsewhere in this review.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT13 escape key shall exit from the edit mode"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT14: when the BoundedTextItem gets displayed and focused, parent section's property set is activated in the property editor, this shouldn't be the case; property set shouldn't change at all."</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT15: clicking outside of the BoundedTextItem instance does not hide it; see http://i.imgur.com/0c7S4Y3.png; the only way to hide the BoundedTextItem instance is to click the LabelEditButton; that shouldn't be the solution. Even if I click click the LabelEditButton"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT16 I would prefer not to display the LabelEditButton. For quite typical sizes it looks as follows: http://i.imgur.com/XRAOq1d.png. This makes it hard to click and drag the element. Instead of using the LabelEditButton, I propose to do the same as we do with Kexi form labels and with shapes in the word processor: initiate editing on double click and F2 key (see DEFECT5)."</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT17 Resize handles are covered by the BoundedTextItem; see http://i.imgur.com/0c7S4Y3.png"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Not fixed. We can leave it as a junior-job.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT18 Inline editing mode should be activated automatically when the label is interactively inserted (using the Insert)"</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Not fixed. MOST IMPORTANT TODO. Shall be easy. But we can leave it as a junior-job.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT19 Exiting the inline editing mode (actually only possible by clicking the LabelEditButton again) should keep the label element selected. Currently the parent section gets selected (visible in property editor)."</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Fixed!</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">"DEFECT21: Property editor's Caption property is not updated in real time while I am using inline editing to enter text."</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Not Fixed. (At least Escape accepts it and Property Editor updates). We can leave it as a junior-job.</p></pre>
 <br />







<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://git.reviewboard.kde.org/r/119222/diff/8-9/?file=328505#file328505line54" style="color: black; font-weight: bold; text-decoration: underline;">libs/koreport/items/label/BoundedTextItem.cpp</a>
    <span style="font-weight: normal;">

     (Diff revisions 8 - 9)

    </span>
   </th>
  </tr>
 </thead>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">49</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">QStyleOptionGraphicsItem</span> <span class="o">*</span><span class="n">opt</span> <span class="o">=</span> <span class="k"><span class="hl">const_cast</span></span><span class="o"><span class="hl"><</span></span><span class="n">QStyleOptionGraphicsItem</span><span class="o"><span class="hl">*></span></span><span class="p"><span class="hl">(</span></span><span class="n">o</span><span class="p">);</span></pre></td>
    <th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">52</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">QStyleOptionGraphicsItem</span> <span class="o">*</span><span class="n">opt</span> <span class="o">=</span> <span class="k"><span class="hl">new</span></span><span class="hl"> </span><span class="n">QStyleOptionGraphicsItem</span><span class="p"><span class="hl">(</span></span><span class="o"><span class="hl">*</span></span><span class="n">o</span><span class="p">);</span></pre></td>
  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This works but by convention it's enough/safer to use stack:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">QStyleOptionGraphicsItem opt(*o);</p></pre>
 </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://git.reviewboard.kde.org/r/119222/diff/8-9/?file=328507#file328507line61" style="color: black; font-weight: bold; text-decoration: underline;">libs/koreport/items/label/KoReportDesignerItemLabel.cpp</a>
    <span style="font-weight: normal;">

     (Diff revisions 8 - 9)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">void KoReportDesignerItemLabel::init(QGraphicsScene *scene, KoReportDesigner *d)</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">61</font></th>
    <td bgcolor="#ffffff" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">connect</span><span class="p">(</span><span class="n">rs</span><span class="p">,</span> <span class="n">SIGNAL</span><span class="p">(</span><span class="n">clicked</span><span class="p">()),</span> <span class="k">this</span><span class="p">,</span> <span class="n">SLOT</span><span class="p">(</span><span class="n">slotSwitchToViewMode</span><span class="p">()));</span></pre></td>
    <th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">60</font></th>
    <td bgcolor="#ffffff" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">        <span class="n">connect</span><span class="p">(</span><span class="n">rs</span><span class="p">,</span> <span class="n">SIGNAL</span><span class="p">(</span><span class="n">clicked</span><span class="p">()),</span> <span class="k">this</span><span class="p">,</span> <span class="n">SLOT</span><span class="p">(</span><span class="n">slotSwitchToViewMode</span><span class="p">()));</span></pre></td>
  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Now that we changed behaviour of ReportScene::mousePressEvent(QGraphicsSceneMouseEvent*), this connection needs replacement or be removed.</p>
<ol style="padding: 0;text-rendering: inherit;margin: 0 0 0 2em;line-height: inherit;white-space: normal;">
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">I propose call slotSwitchToViewMode() from KoReportDesignerItemRectBase::mousePressEvent() because it's the real place when selection changes.</li>
</ol>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">But for this, slotSwitchToViewMode() would have to be a virtual method of KoReportDesignerItemRectBase 
and KoReportDesignerItemLabel should implement it. This also helps to implement inline editing for other report elements.</p>
<ol style="padding: 0;text-rendering: inherit;margin: 0 0 0 2em;line-height: inherit;white-space: normal;">
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">If so, I also propose to rename slotSwitchToViewMode() to exitInlineEditingMode().</p>
</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">For symmetry slotSwitchToEditMode() shall be renamed to enterInlineEditingMode().</p>
</li>
</ol></pre>
 </div>
</div>
<br />

<div>



<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
 <thead>
  <tr>
   <th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
    <a href="https://git.reviewboard.kde.org/r/119222/diff/8-9/?file=328513#file328513line137" style="color: black; font-weight: bold; text-decoration: underline;">libs/koreport/wrtembed/reportscene.cpp</a>
    <span style="font-weight: normal;">

     (Diff revisions 8 - 9)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">void ReportScene::mousePressEvent(QGraphicsSceneMouseEvent * e)</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">137</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="n">emit</span> <span class="nf">clicked</span><span class="p">();</span></pre></td>
    <th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">137</font></th>
    <td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="k">if</span> <span class="p">(</span><span class="n">itemAt</span><span class="p">(</span><span class="n">e</span><span class="o">-></span><span class="n">scenePos</span><span class="p">())</span> <span class="o">==</span> <span class="mi">0</span><span class="p">)</span> <span class="p">{</span></pre></td>
  </tr>

 </tbody>

</table>

 <div style="margin-left: 2em;">

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Better, now we're catching clicks on the section's surface. But what if we clicked on another item, ie. itemAt(e->scenePos()) != 0? </p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Then the previous editing isn't cancelled:
http://i.imgur.com/ZdyVaV1.png</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">See my hint related to slotSwitchToViewMode(), further fix shall be performed there.</p></pre>
 </div>
</div>
<br />



<p>- JarosÅ‚aw Staniek</p>


<br />
<p>On November 19th, 2014, 11:04 p.m. CET, Adam Pigg wrote:</p>









<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
 <tr>
  <td>

<div>Review request for Calligra and JarosÅ‚aw Staniek.</div>
<div>By Adam Pigg.</div>


<p style="color: grey;"><i>Updated Nov. 19, 2014, 11:04 p.m.</i></p>







<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=336825">336825</a>


</div>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
calligra
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Usage:
Insert label
Double click to enter inline-edit mode
-Label text is selected and can be overwritten
Click away from item to exit edit mode
-Item text is updated with editor text</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Inserted label on new report and checked usage</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Loaded existing report and ensured labels are editiable</p></pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>libs/koreport/items/label/BoundedTextItem.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>libs/koreport/items/label/BoundedTextItem.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>libs/koreport/items/label/KoReportDesignerItemLabel.h <span style="color: grey">(469de9d3626c58e55cc9ad4a2b4e7b61af7a7c7f)</span></li>

 <li>libs/koreport/items/label/KoReportDesignerItemLabel.cpp <span style="color: grey">(af21e56dd6fbc22e80c72eae9c5b166369f3c904)</span></li>

 <li>libs/koreport/items/text/KoReportDesignerItemText.cpp <span style="color: grey">(da2d4f5e8c8ca40713eb9936438355f7a5ee6c59)</span></li>

 <li>libs/koreport/renderer/KoReportPrintRenderer.cpp <span style="color: grey">(08428520a1e8f8d319069ade7dd4df96dfa2edb3)</span></li>

 <li>libs/koreport/renderer/KoReportScreenRenderer.cpp <span style="color: grey">(d19835b05a2f22c7db02f06af1fd0e149864dc2d)</span></li>

 <li>libs/koreport/renderer/odtframe/KoOdtFrameReportCheckBox.cpp <span style="color: grey">(95aa265f874a77841c7b76820ef7bbcdbe89b3e9)</span></li>

 <li>libs/koreport/wrtembed/KoReportDesigner.cpp <span style="color: grey">(48a667032a3a8049b69792c16d3cfc1727636fe7)</span></li>

 <li>libs/koreport/wrtembed/reportscene.cpp <span style="color: grey">(2e9c54d29c135c041db75d2a843ea5bd8318e1c1)</span></li>

 <li>libs/koreport/items/check/KoReportDesignerItemCheck.cpp <span style="color: grey">(5762247fc783d77ccd141d46c601e669b942e4b8)</span></li>

 <li>libs/koreport/items/field/KoReportDesignerItemField.cpp <span style="color: grey">(54baaa9f84879e7bba1db1b7a8da2cec7722c919)</span></li>

 <li>libs/koreport/items/image/KoReportDesignerItemImage.cpp <span style="color: grey">(7857466c4d7aa82a4be97d546cc77dc5333bd3c3)</span></li>

 <li>libs/koreport/CMakeLists.txt <span style="color: grey">(d8aea281ad0536e1423210014f09f616ee09f9af)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/119222/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>








  </div>
 </body>
</html>