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










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On September 27th, 2013, 12:27 a.m. MST, <b>Eike Hein</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  



<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="http://git.reviewboard.kde.org/r/112733/diff/1/?file=189632#file189632line85" style="color: black; font-weight: bold; text-decoration: underline;">src/irc/topichistorymodel.h</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </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; ">class TopicHistoryModel : public QAbstractListModel</pre></td>

  </tr>
 </tbody>



 
 

 <tbody>

  <tr>
    <th bgcolor="#ebb1ba" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">66</font></th>
    <td bgcolor="#ffc5ce" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cp">#ifdef HAVE_QCA2</span></pre></td>
    <th bgcolor="#ebb1ba" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
    <td bgcolor="#ffc5ce" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
  </tr>

 </tbody>

</table>

  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Shouldn't these be in the proxy model instead, and the proxy model figures out what to emit dataChanged() for when a cipher is set or unset? (Or, if it's lazy, just emits reset signals for the whole model.) The idea of model/view that models inform views when data has changed, they shouldn't have to go look for it manually.

As it stands it seems the topic view in the Channel Options dialog wouldn't notice a cipher change and get new data - but the dialog is non-modal, i.e. a ciper change is possible (and even likely, with someone running /setkey after looking at the dialog) while the dialog is open.</pre>
 </blockquote>





</blockquote>
<pre style="margin-left: 1em; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Although the channeloptiosndialog topicview would have been reset (from the invalidate() in Channel) the topicEdit would not have been reset. I also moved the invalidation to the model itself so now the model is informing the view instead of the other way around.</pre>
<br />




<p>- Travis</p>


<br />
<p>On September 28th, 2013, 2:13 p.m. MST, Travis McHenry wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Konversation.</div>
<div>By Travis McHenry.</div>


<p style="color: grey;"><i>Updated Sept. 28, 2013, 2:13 p.m.</i></p>






<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;">Fix numerous topic related encryption bugs

Added a QSortFilterProxyModel that is put behind the various
views that use the topicHistoryModel. When equipped with a
'cipher' object it will begin deciphering encrypted content

Took the decryption for topics out of server.cpp, this caused
decrypted text to get into the model, they are now decrypted
in the cipherFilterModel, and in the channel messages that go
to ircview. When the cipher is deleted, the topics in topicLine
and in TopicHistoryView return to their encrypted forms. They
remain decrypted in ircview however.

Changed some of the logic in decrypting topics so that when
nothing is decrypted we return nothing, and when something IS
decrypted, we return only the decrypted text, no prefixes. These
prefixes are now added by the cipherFilterModel. The ERROR:
prefix denoting unencrypted text has now been changed to (u) to
be more in line with the (e) for encrypted text, and make it the
same character length, so it's easier to strip later.</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>src/cipher.cpp <span style="color: grey">(514e3903397ad85a75e836ca238138c77e82d4cd)</span></li>

 <li>src/irc/channel.h <span style="color: grey">(355bf61d4099fdd80f1b1d7056943bc88030aa8a)</span></li>

 <li>src/irc/channel.cpp <span style="color: grey">(6911473e19919e24975fcca3b1a6ff14fa04c420)</span></li>

 <li>src/irc/server.cpp <span style="color: grey">(abb42c23ff750493758a5d5ff0b7876e22c53a36)</span></li>

 <li>src/irc/topichistorymodel.h <span style="color: grey">(f3c42ab8e732de8edde83f972248bb00442dbc0a)</span></li>

 <li>src/irc/topichistorymodel.cpp <span style="color: grey">(ace208558ba51f72076d145a915ed6c12e36e69c)</span></li>

 <li>src/viewer/channeloptionsdialog.h <span style="color: grey">(ac2f7de6a052ba43b1d50f49c2de998ab4c3aa0b)</span></li>

 <li>src/viewer/channeloptionsdialog.cpp <span style="color: grey">(c1d19e2cdac7cc9fa9f7601ceed4fb657c83eca4)</span></li>

</ul>

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







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








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