<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/103613/">http://git.reviewboard.kde.org/r/103613/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On January 3rd, 2012, 2:11 a.m., <b>Henry Miller</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Without even looking at the code or UI, I'm compelled to ask: Do we really want to encourage this type of programming? As a general rule getters/setters are a code smell.  Your classes should do something. Instead of asking a class what values it holds, have it do something that depends on those values. Getters/setters make it hard to change internal implementation latter.

Of course there are exceptions to all general rules, sometimes you need a getter/setter for some purpose.  The question is do we want "purists" that make it hard to write bad code, or do we make it seem obvious to novice programmers that they should do something that most of the time they should not.</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">I don't know what you're talking about. In C++ in almost all cases variables are read and written using getters and setters.</pre>
<br />








<p>- Aleix</p>


<br />
<p>On January 2nd, 2012, 4:35 p.m., Jonas Jacobi wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/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 KDevelop.</div>
<div>By Jonas Jacobi.</div>


<p style="color: grey;"><i>Updated Jan. 2, 2012, 4:35 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;">Generate accessors (getters/setters) for C++.

This patch adds the possibility to create accessor methods for class member variables via the gui.
The dialog offers the following features:
- shows all members of a selected class in a tree view (with getters/setters as children), if it was opened on a class member that one is pre-selected
- only shows setters if applicable (non-const member)
- accessor method definitions can be created inline or separate (in the fitting source file, if applicable)
- configurable automatic creation of method names with manual override for each accessor method
- access policy (visibility) setting global and invidualy for each accessor method
- configurable default setter parameter name with manual override for each setter (void setFoo(int myParamterName))
- selectable getter return type (e.g. Type, Type&, const Type& for a member of type Type)
- create setters as slots for QObject subclasses

The code isn't polished and the patch contains whitespace issues in sourcemanipulation.cpp, but it's in a usable state and i would like to get some feedback on the dialog, especially on usability improvements.

Regards,
Jonas</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>languages/cpp/CMakeLists.txt <span style="color: grey">(a1fb97c)</span></li>

 <li>languages/cpp/codegen/generateaccessorsdialog.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/cpp/codegen/generateaccessorsdialog.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/cpp/codegen/generateaccessorsmodel.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/cpp/codegen/generateaccessorsmodel.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/cpp/codegen/simplerefactoring.h <span style="color: grey">(b2187c3)</span></li>

 <li>languages/cpp/codegen/simplerefactoring.cpp <span style="color: grey">(fd62ccf)</span></li>

 <li>languages/cpp/codegen/ui/cppgenerateaccesors.ui <span style="color: grey">(PRE-CREATION)</span></li>

 <li>languages/cpp/cppduchain/missingdeclarationassistant.cpp <span style="color: grey">(bafc159)</span></li>

 <li>languages/cpp/cppduchain/sourcemanipulation.h <span style="color: grey">(6f8a79b)</span></li>

 <li>languages/cpp/cppduchain/sourcemanipulation.cpp <span style="color: grey">(5cb6a67)</span></li>

 <li>languages/cpp/tests/CMakeLists.txt <span style="color: grey">(40d07b0)</span></li>

 <li>pics/mini/CMakeLists.txt <span style="color: grey">(c3316e7)</span></li>

 <li>pics/mini/private_slot.png <span style="color: grey">(PRE-CREATION)</span></li>

 <li>pics/mini/protected_slot.png <span style="color: grey">(PRE-CREATION)</span></li>

 <li>pics/mini/public_slot.png <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

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



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

<div>

 <a href="http://git.reviewboard.kde.org/r/103613/s/392/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2012/01/02/create_setter_example_400x100.png" style="border: 1px black solid;" alt="" /></a>

 <a href="http://git.reviewboard.kde.org/r/103613/s/393/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2012/01/02/create_getter_setter_example_return_type_1_400x100.png" style="border: 1px black solid;" alt="" /></a>

</div>


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








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