<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/D15140">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/D15140#323991" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;">D15140#323991</a>, <a href="https://phabricator.kde.org/p/antonanikin/" style="
              border-color: #f1f7ff;
              color: #19558d;
              background-color: #f1f7ff;
                border: 1px solid transparent;
                border-radius: 3px;
                font-weight: bold;
                padding: 0 4px;">@antonanikin</a> wrote:</div>
<div style="margin: 0;
          padding: 0;
          border: 0;
          color: rgb(107, 116, 140);"><p>Hi, Friedrich.</p>

<p>Thanks for your review. I think about ordering problem and found another interesting solution. We can use <a href="https://api.kde.org/frameworks/kxmlgui/html/classKXMLGUIClient.html#a6bb023822002f53370e7c2858d3042ff" class="remarkup-link" target="_blank" rel="noreferrer"><tt style="background: #ebebeb; font-size: 13px;">KXMLGUIClient::plugActionList()</tt></a> method to solve our case. We can implement common base class, for example <tt style="background: #ebebeb; font-size: 13px;">ICodeAnalyzerPlugin</tt>, with appropriate methods which return file/project analyze actions and use them to (re)build sorted menus and plug them into our main menubar. Such approach can be also used for another plugins, like Heaptrack/Valgrind (run-time checkers/analyzers).</p>

<p>What are you think about such way?</p></div>
</blockquote>

<p>Actions added with <tt style="background: #ebebeb; font-size: 13px;">KXMLGUIClient::plugActionList()</tt> are not properly known to KXMLGUI, which e.g. means they cannot be added to the toolbar persistently or (not sure) be edited in the key shortcut dialog. Not sure if those loses are worth the gain. <br />
Right now I would favour your initial proposal.</p>

<p>And for the future I would see us extending KXMLGUI to support some flag for action groups, which define some order (or perhaps even a callback id, so we can inject custom sorting algorithms). <br />
Having a random/undefined order in the menu on adding other XmlGuiClients is a generic challenge, so other users of KXmlGui might find the option to define orders good to have as well.</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/D15140">https://phabricator.kde.org/D15140</a></div></div><br /><div><strong>To: </strong>antonanikin, KDevelop<br /><strong>Cc: </strong>kossebau, kdevelop-devel, antismap, iodelay, vbspam, geetamc, Pilzschaf, akshaydeo, surgenight, arrowd<br /></div>