<table><tr><td style="">kossebau added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D8959" rel="noreferrer">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D8959#171102" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: line-through;" rel="noreferrer">D8959#171102</a>, <a href="https://phabricator.kde.org/p/anthonyfieroni/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;" rel="noreferrer">@anthonyfieroni</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>Even though, virtual signals ?!</p></div>
</blockquote>

<p>Yes, that trick is needed because even in Qt5 no-one has added support to Qt's interfaces logic to allow requiring implementors to provide certain signals (like wanted when interfaces e.g. should provide a property with setter, getter, notifier).</p>

<blockquote style="border-left: 3px solid #8C98B8;
          color: #6B748C;
          font-style: italic;
          margin: 4px 0 12px 0;
          padding: 8px 12px;
          background-color: #F8F9FC;">
<div style="font-style: normal;
          padding-bottom: 4px;">In <a href="https://phabricator.kde.org/D8959#171104" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: line-through;" rel="noreferrer">D8959#171104</a>, <a href="https://phabricator.kde.org/p/brauch/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;" rel="noreferrer">@brauch</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>Well conceptually, a signal is only a signature. The const has no meaning conceptually (what would be the difference between a const and a non-const signal). So it makes sense to pick a normalized form -- the non-const one.</p>

<p>Practically, the signal gets implemented by the moc and ... does things (call slots), so it's not really a const operation because the slots are also potentially non-const ...</p></div>
</blockquote>

<p>Well, one could say the signal method itself does not call those slots. It is rather the one who connects the slots to the signal. Does not completely convince me :)</p>

<p>Another reasoning might be that signals are only needed when a state changes (why else should be a notification done). So the method emitting a signal should be non-const itself, and the signals being non-const enforces that (at least to the point where people are not wildly applying const_cast<>).</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R32 KDevelop</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D8959" rel="noreferrer">https://phabricator.kde.org/D8959</a></div></div><br /><div><strong>To: </strong>kossebau, KDevelop, apol, kfunk<br /><strong>Cc: </strong>brauch, anthonyfieroni, apol, kdevelop-devel<br /></div>