From: <sv...@va...> - 2010-03-10 00:44:44
|
Author: cerion Date: 2010-03-10 00:44:20 +0000 (Wed, 10 Mar 2010) New Revision: 488 Log: provide nice shiny new model for tool-object to fill when asked to do so. - else would crash on every 2nd run. plus more comments on how the model/view stuff works. Modified: branches/valkyrie_qt4port/toolview/memcheckview.cpp branches/valkyrie_qt4port/toolview/memcheckview.h branches/valkyrie_qt4port/toolview/vglogview.h Modified: branches/valkyrie_qt4port/toolview/memcheckview.cpp =================================================================== --- branches/valkyrie_qt4port/toolview/memcheckview.cpp 2010-03-09 22:31:15 UTC (rev 487) +++ branches/valkyrie_qt4port/toolview/memcheckview.cpp 2010-03-10 00:44:20 UTC (rev 488) @@ -97,6 +97,24 @@ /*! + Provide the tool-object access to our model, to fill it, + but keep ownership ourselves: we know when we're done with it. + + Creates a clean log on each call. + This should be called by the tool-object just before it intends + to fill the log. +*/ +VgLog* MemcheckView::vgLogPtr() +{ + if ( logview != 0 ) { + delete logview; + logview = new VgLogView( treeView ); + } + return ( VgLog* )logview; +} + + +/*! Parse and load a memcheck xml logfile. */ void MemcheckView::openLogFile() Modified: branches/valkyrie_qt4port/toolview/memcheckview.h =================================================================== --- branches/valkyrie_qt4port/toolview/memcheckview.h 2010-03-09 22:31:15 UTC (rev 487) +++ branches/valkyrie_qt4port/toolview/memcheckview.h 2010-03-10 00:44:20 UTC (rev 488) @@ -52,9 +52,7 @@ MemcheckView( QWidget* parent ); ~MemcheckView(); - VgLog* vgLogPtr() { - return ( VgLog* )logview; - } + VgLog* vgLogPtr(); public slots: virtual void setState( bool run ); Modified: branches/valkyrie_qt4port/toolview/vglogview.h =================================================================== --- branches/valkyrie_qt4port/toolview/vglogview.h 2010-03-09 22:31:15 UTC (rev 487) +++ branches/valkyrie_qt4port/toolview/vglogview.h 2010-03-10 00:44:20 UTC (rev 488) @@ -219,12 +219,22 @@ // ============================================================ /*! VgLogView: inherits VgLog + - this is our model, which incrementally updates our view + - takes qlistview in constructor, and populates it at the same time the underlying vglog is populated - - associates each listview item with a VgLog element, + + - each listview item gets a ref to its appropriate VgLog element, which is used to set the text of the item, and is intended for - future use of accessing/editing the underlying log + future use of accessing/editing the underlying model data. (e.g. generating a suppression by clicking on an error item) + + - this is fast, but not very pretty: we end up with two models, + holding refs to the same model nodes: + - one via vgLog itself (currently not used after helping populate view), + - one via the view-items, which hold dom-elements. + + - TODO: refactor this for less maintenance. */ class VgLogView : public VgLog { |