<table><tr><td style="">kossebau created this revision.<br />kossebau added a reviewer: KDevelop.<br />Herald added a project: KDevelop.<br />Herald added a subscriber: kdevelop-devel.<br />kossebau requested review of this revision.
</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/D16915">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>The Clazy plugin relies on the project providing a buildsystem manager<br />
to query for the toplevel build directory. If a project has no such manager,<br />
showing the Clazy plugin config pages in the project settings has no<br />
purpose.<br />
As a session might contain different projects, some with a buildsystem<br />
manager, some without, simply disabling the Clazy plugin might not be<br />
wanted for the projects with a buildsystem manager.<br />
So we need to have some condition whether to show some plugins per-project<br />
config pages or not.<br />
For a start, motivated by the crash with the Clazy plugin which has a<br />
hard assumption of project->buildSystemManager() being != nullptr,<br />
this patch adds to the code to collect the config pages for the project<br />
settings dialog some special code which makes use of the plugin metadata<br />
to skip plugins which require a org.kdevelop.IBuildSystemManager, if<br />
there is no buildsystem manager available for the project.<br />
As well adds the (so far missing) entry<br />
X-KDevelop-IRequired: [org.kdevelop.IBuildSystemManager]<br />
to the metadata.</p>

<p>BUG: 400769</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>Clazy config is no longer shown in the project settings dialog if the<br />
project is used with the generic project manager.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R32 KDevelop</div></div></div><br /><div><strong>BRANCH</strong><div><div>disableclazyclangtidywithnobuildmanager</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D16915">https://phabricator.kde.org/D16915</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>kdevplatform/shell/projectcontroller.cpp<br />
plugins/clangtidy/kdevclangtidy.json<br />
plugins/clazy/kdevclazy.json</div></div></div><br /><div><strong>To: </strong>kossebau, KDevelop<br /><strong>Cc: </strong>kdevelop-devel, glebaccon, antismap, iodelay, vbspam, geetamc, Pilzschaf, akshaydeo, surgenight, arrowd<br /></div>