<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://svn.reviewboard.kde.org/r/5386/">http://svn.reviewboard.kde.org/r/5386/</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;">API looks good. One thing: when you evaluate an expression without using the returned Expression object, you should set the FinishingBehaviour to DeleteOnFinish, so you won&#39;t leak memory. (see Session::evaluateExpression(const QString&amp;, Expression::FinishingBehavior) )</pre>
 <br />







<p>- Alexander</p>


<br />
<p>On September 20th, 2010, 6:06 p.m., Miha Cancula wrote:</p>






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

<div>Review request for KDE-Edu and Alexander Rieder.</div>
<div>By Miha Cancula.</div>


<p style="color: grey;"><i>Updated 2010-09-20 18:06:50</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;">This patch introduces a new class DefaultVariableModel, which can be used for convenience by the backends to show and modify their variables. It subclasses QAbstractTableModel, and provides a convenience API with functions like addVariable() and removeVariable(). 

Most of the QAbstractItemModel interface code was copied from KAlgebra&#39;s implementation. 

The patch also includes extra methods to the VariableManagementExtension not only for defining, but also for modifying and removing variables. The model uses these methods in the setData() function to modify or delete variables. This way the backend must only implement the Extension&#39;s functions and variable modifying works automatically. </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;">I made the Octave backend use it, without subclassing, and all the wanted functions work. </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>/trunk/KDE/kdeedu/cantor/src/lib/CMakeLists.txt <span style="color: grey">(1177594)</span></li>

 <li>/trunk/KDE/kdeedu/cantor/src/lib/defaultvariablemodel.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/KDE/kdeedu/cantor/src/lib/defaultvariablemodel.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/trunk/KDE/kdeedu/cantor/src/lib/extension.h <span style="color: grey">(1177594)</span></li>

 <li>/trunk/KDE/kdeedu/cantor/src/lib/extension.cpp <span style="color: grey">(1177594)</span></li>

</ul>

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




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








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