[Qt-creator] Analyzer refactoring patches

André Pönitz andre.poenitz at mathematik.tu-chemnitz.de
Wed Dec 28 18:23:33 CET 2011


Hi Nicholas.

On Wed, Dec 28, 2011 at 11:29:01AM +0100, you wrote:
> Hi all,
> 
> I've got 3 patches for the Analyzer plugin, and would like to explain the 
> motivation behind them here (not the best time to do that on IRC):
> http://codereview.qt-project.org/#change,11786
> http://codereview.qt-project.org/#change,11813
> http://codereview.qt-project.org/#change,11814
> 
> We have a new tool plugin at KDAB for GammaRay, and I found some issue with 
> the actual code:
>  * the project settings were duplicated with 2 tools (will be tripled with 3 
> tools)
>  * the per-project settings were not really readable with multiple tools 
> (everything in one details widget)
>  * no way to have only global settings for a tool
>  * global and project settings need the creation of a factory method, and 
> passing a pointer to them to the analyzer global settings (it's working, but I 
> don't really like it)
> 
> The first patch is really straight-forward, just some API cleanup

I pushed this one.

Note that the final target should be to not have the distinction of
local and remote tools in the UI at all, but to gather that information
from the current run configuration and the device configuration selected
there. So finally the 'StartMode' should vanish from the API...
 
> The second patch addresses the first 2 points. All new tools needed a
> new factory, which in turn created a new analyzer block in the project
> run tab (with all tool config widgets for each block).  I also found
> that the runcontrolfactory was mostly the same between the tools, so
> instead of creating one runcontrolfactory per tool I've created one
> runcontrolfactory for the analyzer plugin, and the tools use it.

Good.
 
> The last patch addresses the last 2 points. I've removed the factory
> method needs, and created 2 new virtual methods in the IAnalyzerTool,
> to create the global and project settings. I've also test if any of
> those methods return 0, so it's now possible to have global settings
> without per-project settings.

Looks ok.

Andre'



More information about the Qt-creator mailing list