diff -r 61172a5bc172 -r b1a3094b33e1 eric6/Documentation/Source/eric6.Debugger.VariablesViewer.html --- a/eric6/Documentation/Source/eric6.Debugger.VariablesViewer.html Sun May 19 12:30:02 2019 +0200 +++ b/eric6/Documentation/Source/eric6.Debugger.VariablesViewer.html Sun May 19 12:35:24 2019 +0200 @@ -21,29 +21,26 @@ <body><a NAME="top" ID="top"></a> <h1>eric6.Debugger.VariablesViewer</h1> <p> -Module implementing the variables viewer widget. +Module implementing the variables viewer view based on QTreeView. </p> <h3>Global Attributes</h3> <table> -<tr><td>None</td></tr> +<tr><td>SORT_ROLE</td></tr> </table> <h3>Classes</h3> <table> <tr> -<td><a href="#ArrayElementVarItem">ArrayElementVarItem</a></td> -<td>Class implementing a VariableItem that represents an array element.</td> -</tr><tr> -<td><a href="#SpecialArrayElementVarItem">SpecialArrayElementVarItem</a></td> -<td>Class implementing a QTreeWidgetItem that represents a special array variable node.</td> +<td><a href="#VariableItem">VariableItem</a></td> +<td>Class implementing the data structure for all variable items.</td> </tr><tr> -<td><a href="#SpecialVarItem">SpecialVarItem</a></td> -<td>Class implementing a VariableItem that represents a special variable node.</td> +<td><a href="#VariablesModel">VariablesModel</a></td> +<td>Class implementing the data model for QTreeView.</td> </tr><tr> -<td><a href="#VariableItem">VariableItem</a></td> -<td>Class implementing the data structure for variable items.</td> +<td><a href="#VariablesProxyModel">VariablesProxyModel</a></td> +<td>Class for handling the sort operations.</td> </tr><tr> <td><a href="#VariablesViewer">VariablesViewer</a></td> -<td>Class implementing the variables viewer widget.</td> +<td>Class implementing the variables viewer view.</td> </tr> </table> <h3>Functions</h3> @@ -51,16 +48,16 @@ <tr><td>None</td></tr> </table> <hr /><hr /> -<a NAME="ArrayElementVarItem" ID="ArrayElementVarItem"></a> -<h2>ArrayElementVarItem</h2> +<a NAME="VariableItem" ID="VariableItem"></a> +<h2>VariableItem</h2> <p> - Class implementing a VariableItem that represents an array element. + Class implementing the data structure for all variable items. </p> <h3>Derived from</h3> -VariableItem +object <h3>Class Attributes</h3> <table> -<tr><td>None</td></tr> +<tr><td>Type2Indicators</td></tr><tr><td>arrayTypes</td></tr><tr><td>noOfItemsStr</td></tr><tr><td>nonExpandableTypes</td></tr><tr><td>rx_nonprintable</td></tr> </table> <h3>Class Methods</h3> <table> @@ -69,102 +66,132 @@ <h3>Methods</h3> <table> <tr> -<td><a href="#ArrayElementVarItem.__init__">ArrayElementVarItem</a></td> +<td><a href="#VariableItem.__init__">VariableItem</a></td> <td>Constructor</td> +</tr><tr> +<td><a href="#VariableItem.__getName">__getName</a></td> +<td>Private method to extract the variable name.</td> +</tr><tr> +<td><a href="#VariableItem.__getType">__getType</a></td> +<td>Private method to process the type of the variable.</td> +</tr><tr> +<td><a href="#VariableItem.__getValue">__getValue</a></td> +<td>Private method to process the variables value.</td> +</tr><tr> +<td><a href="#VariableItem.absolutCount">absolutCount</a></td> +<td>Public property to get the total number of children.</td> +</tr><tr> +<td><a href="#VariableItem.populated">populated</a></td> +<td>Public property returning a flag indicating if item is fully populated.</td> </tr> </table> <h3>Static Methods</h3> <table> <tr><td>None</td></tr> </table> -<a NAME="ArrayElementVarItem.__init__" ID="ArrayElementVarItem.__init__"></a> -<h4>ArrayElementVarItem (Constructor)</h4> -<b>ArrayElementVarItem</b>(<i>parent, dvar, dvalue, dtype</i>) +<a NAME="VariableItem.__init__" ID="VariableItem.__init__"></a> +<h4>VariableItem (Constructor)</h4> +<b>VariableItem</b>(<i>parent, dvar, dtype, dvalue</i>) <p> Constructor </p><dl> -<dt><i>parent</i></dt> +<dt><i>parent</i> (VariableItem)</dt> +<dd> +reference to the parent item +</dd><dt><i>dvar</i> (str)</dt> +<dd> +variable name +</dd><dt><i>dtype</i> (str)</dt> +<dd> +type string +</dd><dt><i>dvalue</i> (str)</dt> <dd> -parent of this item -</dd><dt><i>dvar</i></dt> +value string +</dd> +</dl><a NAME="VariableItem.__getName" ID="VariableItem.__getName"></a> +<h4>VariableItem.__getName</h4> +<b>__getName</b>(<i>dvar</i>) +<p> + Private method to extract the variable name. +</p><dl> +<dt><i>dvar</i> (str)</dt> +<dd> +name of variable maybe with ID +</dd> +</dl><a NAME="VariableItem.__getType" ID="VariableItem.__getType"></a> +<h4>VariableItem.__getType</h4> +<b>__getType</b>(<i>dtype</i>) +<p> + Private method to process the type of the variable. +</p><p> + If type is known to have children, the corresponding flag is set. +</p><dl> +<dt><i>dtype</i> (str)</dt> <dd> -variable name (string) -</dd><dt><i>dvalue</i></dt> +type string +</dd> +</dl><a NAME="VariableItem.__getValue" ID="VariableItem.__getValue"></a> +<h4>VariableItem.__getValue</h4> +<b>__getValue</b>(<i>dtype, dvalue</i>) +<p> + Private method to process the variables value. +</p><p> + Define and limit value, set tooltip text. If type is known to have + children, the corresponding flag is set. +</p><dl> +<dt><i>dtype</i> (str)</dt> +<dd> +type string +</dd><dt><i>dvalue</i> (str)</dt> <dd> -value string (string) -</dd><dt><i>dtype</i></dt> +value of variable encoded as utf-8 +</dd> +</dl><a NAME="VariableItem.absolutCount" ID="VariableItem.absolutCount"></a> +<h4>VariableItem.absolutCount</h4> +<b>absolutCount</b>(<i></i>) +<p> + Public property to get the total number of children. +</p><dl> +<dt>Returns:</dt> +<dd> +total number of children +</dd> +</dl><dl> +<dt>Return Type:</dt> <dd> -type string (string) +int +</dd> +</dl><a NAME="VariableItem.populated" ID="VariableItem.populated"></a> +<h4>VariableItem.populated</h4> +<b>populated</b>(<i></i>) +<p> + Public property returning a flag indicating if item is fully populated. +</p><dl> +<dt>Returns:</dt> +<dd> +item is fully populated +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +bool </dd> </dl> <div align="right"><a href="#top">Up</a></div> <hr /><hr /> -<a NAME="SpecialArrayElementVarItem" ID="SpecialArrayElementVarItem"></a> -<h2>SpecialArrayElementVarItem</h2> +<a NAME="VariablesModel" ID="VariablesModel"></a> +<h2>VariablesModel</h2> <p> - Class implementing a QTreeWidgetItem that represents a special array - variable node. -</p> -<h3>Derived from</h3> -SpecialVarItem -<h3>Class Attributes</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#SpecialArrayElementVarItem.__init__">SpecialArrayElementVarItem</a></td> -<td>Constructor</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="SpecialArrayElementVarItem.__init__" ID="SpecialArrayElementVarItem.__init__"></a> -<h4>SpecialArrayElementVarItem (Constructor)</h4> -<b>SpecialArrayElementVarItem</b>(<i>parent, dvar, dvalue, dtype, frmnr, globalScope</i>) -<p> - Constructor -</p><dl> -<dt><i>parent</i></dt> + Class implementing the data model for QTreeView. +</p><h3>Signals</h3> +<dl> +<dt>expand</dt> <dd> -parent of this item -</dd><dt><i>dvar</i></dt> -<dd> -variable name (string) -</dd><dt><i>dvalue</i></dt> -<dd> -value string (string) -</dd><dt><i>dtype</i></dt> -<dd> -type string (string) -</dd><dt><i>frmnr</i></dt> -<dd> -frame number (0 is the current frame) (int) -</dd><dt><i>globalScope</i></dt> -<dd> -flag indicating global (True) or local (False) - variables +trigger QTreeView to expand given index </dd> </dl> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="SpecialVarItem" ID="SpecialVarItem"></a> -<h2>SpecialVarItem</h2> -<p> - Class implementing a VariableItem that represents a special variable node. -</p><p> - These special variable nodes are generated for classes, lists, - tuples and dictionaries. -</p> <h3>Derived from</h3> -VariableItem +QAbstractItemModel <h3>Class Attributes</h3> <table> <tr><td>None</td></tr> @@ -176,251 +203,485 @@ <h3>Methods</h3> <table> <tr> -<td><a href="#SpecialVarItem.__init__">SpecialVarItem</a></td> +<td><a href="#VariablesModel.__init__">VariablesModel</a></td> <td>Constructor</td> </tr><tr> -<td><a href="#SpecialVarItem.expand">expand</a></td> -<td>Public method to expand the item.</td> -</tr> -</table> -<h3>Static Methods</h3> -<table> -<tr><td>None</td></tr> -</table> -<a NAME="SpecialVarItem.__init__" ID="SpecialVarItem.__init__"></a> -<h4>SpecialVarItem (Constructor)</h4> -<b>SpecialVarItem</b>(<i>parent, dvar, dvalue, dtype, frmnr, globalScope</i>) -<p> - Constructor -</p><dl> -<dt><i>parent</i></dt> -<dd> -parent of this item -</dd><dt><i>dvar</i></dt> -<dd> -variable name (string) -</dd><dt><i>dvalue</i></dt> -<dd> -value string (string) -</dd><dt><i>dtype</i></dt> -<dd> -type string (string) -</dd><dt><i>frmnr</i></dt> -<dd> -frame number (0 is the current frame) (int) -</dd><dt><i>globalScope</i></dt> -<dd> -flag indicating global (True) or local (False) - variables -</dd> -</dl><a NAME="SpecialVarItem.expand" ID="SpecialVarItem.expand"></a> -<h4>SpecialVarItem.expand</h4> -<b>expand</b>(<i></i>) -<p> - Public method to expand the item. -</p> -<div align="right"><a href="#top">Up</a></div> -<hr /><hr /> -<a NAME="VariableItem" ID="VariableItem"></a> -<h2>VariableItem</h2> -<p> - Class implementing the data structure for variable items. -</p> -<h3>Derived from</h3> -QTreeWidgetItem -<h3>Class Attributes</h3> -<table> -<tr><td>Indicators</td></tr><tr><td>Type2Indicators</td></tr> -</table> -<h3>Class Methods</h3> -<table> -<tr> -<td><a href="#VariableItem.extractId">extractId</a></td> -<td>Class method to extract the ID string from a variable text.</td> +<td><a href="#VariablesModel.__buildTreePath">__buildTreePath</a></td> +<td>Private method to build up a path from the root to parent.</td> +</tr><tr> +<td><a href="#VariablesModel.__cleanupParentList">__cleanupParentList</a></td> +<td>Private method to remove items which are left over at the end of the child list.</td> +</tr><tr> +<td><a href="#VariablesModel.__findPendingItem">__findPendingItem</a></td> +<td>Private method to find the next item to request data from debugger.</td> +</tr><tr> +<td><a href="#VariablesModel.__findVariable">__findVariable</a></td> +<td>Private method to get to the given variable.</td> +</tr><tr> +<td><a href="#VariablesModel.clear">clear</a></td> +<td>Public method to clear the complete data model.</td> +</tr><tr> +<td><a href="#VariablesModel.columnCount">columnCount</a></td> +<td>Public method to get the column count.</td> +</tr><tr> +<td><a href="#VariablesModel.data">data</a></td> +<td>Public method get the role data of item.</td> +</tr><tr> +<td><a href="#VariablesModel.flags">flags</a></td> +<td>Public method to get the item flags.</td> +</tr><tr> +<td><a href="#VariablesModel.getMore">getMore</a></td> +<td>Public method to fetch the next variable from debugger.</td> </tr><tr> -<td><a href="#VariableItem.extractIndicators">extractIndicators</a></td> -<td>Class method to extract the indicator string from a variable text.</td> -</tr> -</table> -<h3>Methods</h3> -<table> -<tr> -<td><a href="#VariableItem.__init__">VariableItem</a></td> -<td>Constructor</td> +<td><a href="#VariablesModel.handlePreferencesChanged">handlePreferencesChanged</a></td> +<td>Public slot to handle the preferencesChanged signal.</td> +</tr><tr> +<td><a href="#VariablesModel.hasChildren">hasChildren</a></td> +<td>Public method to get a flag if parent has children.</td> </tr><tr> -<td><a href="#VariableItem._buildKey">_buildKey</a></td> -<td>Protected method to build the access key for the variable.</td> +<td><a href="#VariablesModel.headerData">headerData</a></td> +<td>Public method get the header names.</td> </tr><tr> -<td><a href="#VariableItem.attachDummy">attachDummy</a></td> -<td>Public method to attach a dummy sub item to allow for lazy population.</td> +<td><a href="#VariablesModel.index">index</a></td> +<td>Public method to get the index of item at row:column of parent.</td> </tr><tr> -<td><a href="#VariableItem.collapse">collapse</a></td> -<td>Public method to collapse the item.</td> +<td><a href="#VariablesModel.parent">parent</a></td> +<td>Public method to get the parent of the given child.</td> </tr><tr> -<td><a href="#VariableItem.data">data</a></td> -<td>Public method to return the data for the requested role.</td> -</tr><tr> -<td><a href="#VariableItem.deleteChildren">deleteChildren</a></td> -<td>Public method to delete all children (cleaning the subtree).</td> +<td><a href="#VariablesModel.resetModifiedMarker">resetModifiedMarker</a></td> +<td>Public method to remove the modified marker from changed items.</td> </tr><tr> -<td><a href="#VariableItem.expand">expand</a></td> -<td>Public method to expand the item.</td> +<td><a href="#VariablesModel.rowCount">rowCount</a></td> +<td>Public method to get the row count.</td> </tr><tr> -<td><a href="#VariableItem.getId">getId</a></td> -<td>Public method to get the ID string.</td> +<td><a href="#VariablesModel.setExpanded">setExpanded</a></td> +<td>Public method to set the expanded state of item.</td> </tr><tr> -<td><a href="#VariableItem.getValue">getValue</a></td> -<td>Public method to return the value of the item.</td> +<td><a href="#VariablesModel.showVariables">showVariables</a></td> +<td>Public method to update the data model of variable in pathlist.</td> </tr> </table> <h3>Static Methods</h3> <table> <tr><td>None</td></tr> </table> -<a NAME="VariableItem.extractId" ID="VariableItem.extractId"></a> -<h4>VariableItem.extractId (class method)</h4> -<b>extractId</b>(<i>var</i>) +<a NAME="VariablesModel.__init__" ID="VariablesModel.__init__"></a> +<h4>VariablesModel (Constructor)</h4> +<b>VariablesModel</b>(<i>treeView, globalScope</i>) <p> - Class method to extract the ID string from a variable text. + Constructor </p><dl> -<dt><i>var</i> (str)</dt> +<dt><i>treeView</i> (VariablesViewer)</dt> +<dd> +QTreeView showing the data +</dd><dt><i>globalScope</i> (bool)</dt> <dd> -variable text +flag indicating global (True) or local (False) + variables +</dd> +</dl><a NAME="VariablesModel.__buildTreePath" ID="VariablesModel.__buildTreePath"></a> +<h4>VariablesModel.__buildTreePath</h4> +<b>__buildTreePath</b>(<i>parent</i>) +<p> + Private method to build up a path from the root to parent. +</p><dl> +<dt><i>parent</i> (VariableItem)</dt> +<dd> +item to build the path for </dd> </dl><dl> <dt>Returns:</dt> <dd> -tuple containing the variable text without ID and the ID string +list of names denoting the path from the root +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +tuple of str +</dd> +</dl><a NAME="VariablesModel.__cleanupParentList" ID="VariablesModel.__cleanupParentList"></a> +<h4>VariablesModel.__cleanupParentList</h4> +<b>__cleanupParentList</b>(<i>parent, parentIdx</i>) +<p> + Private method to remove items which are left over at the end of the + child list. +</p><dl> +<dt><i>parent</i> (VariableItem)</dt> +<dd> +to clean up +</dd><dt><i>parentIdx</i> (QModelIndex)</dt> +<dd> +the parent index as QModelIndex +</dd> +</dl><a NAME="VariablesModel.__findPendingItem" ID="VariablesModel.__findPendingItem"></a> +<h4>VariablesModel.__findPendingItem</h4> +<b>__findPendingItem</b>(<i>parent=None, pathlist=()</i>) +<p> + Private method to find the next item to request data from debugger. +</p><dl> +<dt><i>parent</i> (VariableItem)</dt> +<dd> +the model parent +</dd><dt><i>pathlist</i> (list of str)</dt> +<dd> +full path to the variable +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +next item index to request data from debugger +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +QModelIndex +</dd> +</dl><a NAME="VariablesModel.__findVariable" ID="VariablesModel.__findVariable"></a> +<h4>VariablesModel.__findVariable</h4> +<b>__findVariable</b>(<i>pathlist</i>) +<p> + Private method to get to the given variable. +</p><dl> +<dt><i>pathlist</i> (list of str)</dt> +<dd> +full path to the variable +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +the found variable or None if it doesn't exist </dd> </dl><dl> <dt>Return Type:</dt> <dd> -tuple of two str +VariableItem or None </dd> -</dl><a NAME="VariableItem.extractIndicators" ID="VariableItem.extractIndicators"></a> -<h4>VariableItem.extractIndicators (class method)</h4> -<b>extractIndicators</b>(<i>var</i>) +</dl><a NAME="VariablesModel.clear" ID="VariablesModel.clear"></a> +<h4>VariablesModel.clear</h4> +<b>clear</b>(<i>reset=False</i>) +<p> + Public method to clear the complete data model. +</p><dl> +<dt><i>reset</i> (bool)</dt> +<dd> +flag to clear the expanded keys also +</dd> +</dl><a NAME="VariablesModel.columnCount" ID="VariablesModel.columnCount"></a> +<h4>VariablesModel.columnCount</h4> +<b>columnCount</b>(<i>parent=QModelIndex()</i>) <p> - Class method to extract the indicator string from a variable text. + Public method to get the column count. </p><dl> -<dt><i>var</i> (str)</dt> +<dt><i>parent</i> (QModelIndex)</dt> +<dd> +the model parent +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +number of columns +</dd> +</dl><dl> +<dt>Return Type:</dt> <dd> -variable text +int +</dd> +</dl><a NAME="VariablesModel.data" ID="VariablesModel.data"></a> +<h4>VariablesModel.data</h4> +<b>data</b>(<i>index, role=Qt.DisplayRole</i>) +<p> + Public method get the role data of item. +</p><dl> +<dt><i>index</i> (QModelIndex)</dt> +<dd> +the model index +</dd><dt><i>role</i> (QtCore.Qt.ItemDataRole)</dt> +<dd> +the requested data role </dd> </dl><dl> <dt>Returns:</dt> <dd> -tuple containing the variable text without indicators and the - indicator string +role data of item +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +Any +</dd> +</dl><a NAME="VariablesModel.flags" ID="VariablesModel.flags"></a> +<h4>VariablesModel.flags</h4> +<b>flags</b>(<i>index</i>) +<p> + Public method to get the item flags. +</p><dl> +<dt><i>index</i> (QModelIndex)</dt> +<dd> +of item +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +item flags +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +QtCore.Qt.ItemFlag +</dd> +</dl><a NAME="VariablesModel.getMore" ID="VariablesModel.getMore"></a> +<h4>VariablesModel.getMore</h4> +<b>getMore</b>(<i></i>) +<p> + Public method to fetch the next variable from debugger. +</p><a NAME="VariablesModel.handlePreferencesChanged" ID="VariablesModel.handlePreferencesChanged"></a> +<h4>VariablesModel.handlePreferencesChanged</h4> +<b>handlePreferencesChanged</b>(<i></i>) +<p> + Public slot to handle the preferencesChanged signal. +</p><a NAME="VariablesModel.hasChildren" ID="VariablesModel.hasChildren"></a> +<h4>VariablesModel.hasChildren</h4> +<b>hasChildren</b>(<i>parent=QModelIndex()</i>) +<p> + Public method to get a flag if parent has children. +</p><dl> +<dt><i>parent</i> (QModelIndex)</dt> +<dd> +the model parent +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating parent has children </dd> </dl><dl> <dt>Return Type:</dt> <dd> -tuple of two str +bool </dd> -</dl><a NAME="VariableItem.__init__" ID="VariableItem.__init__"></a> -<h4>VariableItem (Constructor)</h4> -<b>VariableItem</b>(<i>parent, dvar, dvalue, dtype</i>) +</dl><a NAME="VariablesModel.headerData" ID="VariablesModel.headerData"></a> +<h4>VariablesModel.headerData</h4> +<b>headerData</b>(<i>section, orientation, role=Qt.DisplayRole</i>) <p> - Constructor + Public method get the header names. </p><dl> -<dt><i>parent</i></dt> +<dt><i>section</i> (int)</dt> +<dd> +the header section (row/coulumn) +</dd><dt><i>orientation</i> (QtCore.Qt.Orientation)</dt> <dd> -reference to the parent item -</dd><dt><i>dvar</i></dt> +the header's orientation +</dd><dt><i>role</i> (QtCore.Qt.ItemDataRole)</dt> +<dd> +the requested data role +</dd> +</dl><dl> +<dt>Returns:</dt> <dd> -variable name (string) -</dd><dt><i>dvalue</i></dt> -<dd> -value string (string) -</dd><dt><i>dtype</i></dt> +header name +</dd> +</dl><dl> +<dt>Return Type:</dt> <dd> -type string (string) +str or None </dd> -</dl><a NAME="VariableItem._buildKey" ID="VariableItem._buildKey"></a> -<h4>VariableItem._buildKey</h4> -<b>_buildKey</b>(<i></i>) +</dl><a NAME="VariablesModel.index" ID="VariablesModel.index"></a> +<h4>VariablesModel.index</h4> +<b>index</b>(<i>row, column, parent=QModelIndex()</i>) <p> - Protected method to build the access key for the variable. + Public method to get the index of item at row:column of parent. </p><dl> +<dt><i>row</i> (int)</dt> +<dd> +number of rows +</dd><dt><i>column</i> (int)</dt> +<dd> +number of columns +</dd><dt><i>parent</i> (QModelIndex)</dt> +<dd> +the model parent +</dd> +</dl><dl> <dt>Returns:</dt> <dd> -access key +new model index for child +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +QModelIndex +</dd> +</dl><a NAME="VariablesModel.parent" ID="VariablesModel.parent"></a> +<h4>VariablesModel.parent</h4> +<b>parent</b>(<i>child</i>) +<p> + Public method to get the parent of the given child. +</p><dl> +<dt><i>child</i> (QModelIndex)</dt> +<dd> +the model child node +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +new model index for parent +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +QModelIndex +</dd> +</dl><a NAME="VariablesModel.resetModifiedMarker" ID="VariablesModel.resetModifiedMarker"></a> +<h4>VariablesModel.resetModifiedMarker</h4> +<b>resetModifiedMarker</b>(<i>parentIdx=QModelIndex(), pathlist=()</i>) +<p> + Public method to remove the modified marker from changed items. +</p><dl> +<dt><i>parentIdx</i> (QModelIndex)</dt> +<dd> +item to reset marker +</dd><dt><i>pathlist</i> (list of str)</dt> +<dd> +full path to the variable +</dd> +</dl><a NAME="VariablesModel.rowCount" ID="VariablesModel.rowCount"></a> +<h4>VariablesModel.rowCount</h4> +<b>rowCount</b>(<i>parent=QModelIndex()</i>) +<p> + Public method to get the row count. +</p><dl> +<dt><i>parent</i> (QModelIndex)</dt> +<dd> +the model parent +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +number of rows </dd> </dl><dl> <dt>Return Type:</dt> <dd> -str +int +</dd> +</dl><a NAME="VariablesModel.setExpanded" ID="VariablesModel.setExpanded"></a> +<h4>VariablesModel.setExpanded</h4> +<b>setExpanded</b>(<i>index, state</i>) +<p> + Public method to set the expanded state of item. +</p><dl> +<dt><i>index</i> (QModelIndex)</dt> +<dd> +item to change expanded state +</dd><dt><i>state</i> (bool)</dt> +<dd> +state of the item </dd> -</dl><a NAME="VariableItem.attachDummy" ID="VariableItem.attachDummy"></a> -<h4>VariableItem.attachDummy</h4> -<b>attachDummy</b>(<i></i>) +</dl><a NAME="VariablesModel.showVariables" ID="VariablesModel.showVariables"></a> +<h4>VariablesModel.showVariables</h4> +<b>showVariables</b>(<i>vlist, frmnr, pathlist=None</i>) +<p> + Public method to update the data model of variable in pathlist. +</p><dl> +<dt><i>vlist</i> (list of str)</dt> +<dd> +the list of variables to be displayed. Each + list entry is a tuple of three values. + <ul> + <li>the variable name (string)</li> + <li>the variables type (string)</li> + <li>the variables value (string)</li> + </ul> +</dd><dt><i>frmnr</i> (int)</dt> +<dd> +frame number (0 is the current frame) +</dd><dt><i>pathlist</i> (list of str)</dt> +<dd> +full path to the variable +</dd> +</dl> +<div align="right"><a href="#top">Up</a></div> +<hr /><hr /> +<a NAME="VariablesProxyModel" ID="VariablesProxyModel"></a> +<h2>VariablesProxyModel</h2> <p> - Public method to attach a dummy sub item to allow for lazy population. -</p><a NAME="VariableItem.collapse" ID="VariableItem.collapse"></a> -<h4>VariableItem.collapse</h4> -<b>collapse</b>(<i></i>) + Class for handling the sort operations. +</p> +<h3>Derived from</h3> +QSortFilterProxyModel +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#VariablesProxyModel.__init__">VariablesProxyModel</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#VariablesProxyModel.hasChildren">hasChildren</a></td> +<td>Public method to get a flag if parent has children.</td> +</tr><tr> +<td><a href="#VariablesProxyModel.setExpanded">setExpanded</a></td> +<td>Public slot to get a flag if parent has children.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="VariablesProxyModel.__init__" ID="VariablesProxyModel.__init__"></a> +<h4>VariablesProxyModel (Constructor)</h4> +<b>VariablesProxyModel</b>(<i>parent=None</i>) <p> - Public method to collapse the item. + Constructor +</p><dl> +<dt><i>parent</i> (QModelIndex)</dt> +<dd> +the parent model index +</dd> +</dl><a NAME="VariablesProxyModel.hasChildren" ID="VariablesProxyModel.hasChildren"></a> +<h4>VariablesProxyModel.hasChildren</h4> +<b>hasChildren</b>(<i>parent</i>) +<p> + Public method to get a flag if parent has children. </p><p> - Note: This is just a do nothing and should be overwritten. -</p><a NAME="VariableItem.data" ID="VariableItem.data"></a> -<h4>VariableItem.data</h4> -<b>data</b>(<i>column, role</i>) -<p> - Public method to return the data for the requested role. -</p><p> - This implementation changes the original behavior in a way, that the - display data is returned as the tooltip for column 1. + The given model index has to be transformed to the underlying source + model to get the correct result. </p><dl> -<dt><i>column</i></dt> +<dt><i>parent</i> (QModelIndex)</dt> <dd> -column number (integer) -</dd><dt><i>role</i></dt> -<dd> -data role (Qt.ItemDataRole) +the model parent </dd> </dl><dl> <dt>Returns:</dt> <dd> -requested data -</dd> -</dl><a NAME="VariableItem.deleteChildren" ID="VariableItem.deleteChildren"></a> -<h4>VariableItem.deleteChildren</h4> -<b>deleteChildren</b>(<i></i>) -<p> - Public method to delete all children (cleaning the subtree). -</p><a NAME="VariableItem.expand" ID="VariableItem.expand"></a> -<h4>VariableItem.expand</h4> -<b>expand</b>(<i></i>) -<p> - Public method to expand the item. -</p><p> - Note: This is just a do nothing and should be overwritten. -</p><a NAME="VariableItem.getId" ID="VariableItem.getId"></a> -<h4>VariableItem.getId</h4> -<b>getId</b>(<i></i>) -<p> - Public method to get the ID string. -</p><dl> -<dt>Returns:</dt> -<dd> -ID string +flag if parent has children </dd> </dl><dl> <dt>Return Type:</dt> <dd> -str +bool </dd> -</dl><a NAME="VariableItem.getValue" ID="VariableItem.getValue"></a> -<h4>VariableItem.getValue</h4> -<b>getValue</b>(<i></i>) +</dl><a NAME="VariablesProxyModel.setExpanded" ID="VariablesProxyModel.setExpanded"></a> +<h4>VariablesProxyModel.setExpanded</h4> +<b>setExpanded</b>(<i>index, state</i>) <p> - Public method to return the value of the item. + Public slot to get a flag if parent has children. +</p><p> + The given model index has to be transformed to the underlying source + model to get the correct result. </p><dl> -<dt>Returns:</dt> +<dt><i>index</i> (QModelIndex)</dt> <dd> -value of the item (string) +item to change expanded state +</dd><dt><i>state</i> (bool)</dt> +<dd> +state of the item </dd> </dl> <div align="right"><a href="#top">Up</a></div> @@ -428,20 +689,28 @@ <a NAME="VariablesViewer" ID="VariablesViewer"></a> <h2>VariablesViewer</h2> <p> - Class implementing the variables viewer widget. + Class implementing the variables viewer view. </p><p> - This widget is used to display the variables of the program being + This view is used to display the variables of the program being debugged in a tree. Compound types will be shown with their main entry first. Once the subtree has been expanded, the individual entries will be shown. Double clicking an entry will + expand or collapse the item, if it has children and the double click + was performed on the first column of the tree, otherwise it'll popup a dialog showing the variables parameters in a more readable form. This is especially useful for lengthy strings. </p><p> - This widget has two modes for displaying the global and the local + This view has two modes for displaying the global and the local variables. -</p> +</p><h3>Signals</h3> +<dl> +<dt>preferencesChanged()</dt> +<dd> +to inform model about new background colours +</dd> +</dl> <h3>Derived from</h3> -QTreeWidget +QTreeView <h3>Class Attributes</h3> <table> <tr><td>None</td></tr> @@ -456,39 +725,30 @@ <td><a href="#VariablesViewer.__init__">VariablesViewer</a></td> <td>Constructor</td> </tr><tr> -<td><a href="#VariablesViewer.__addItem">__addItem</a></td> -<td>Private method used to add an item to the list.</td> -</tr><tr> -<td><a href="#VariablesViewer.__buildTreePath">__buildTreePath</a></td> -<td>Private method to build up a path from the top to an item.</td> +<td><a href="#VariablesViewer.__collapseChildren">__collapseChildren</a></td> +<td>Private slot to collapse all child items of current parent.</td> </tr><tr> <td><a href="#VariablesViewer.__configure">__configure</a></td> <td>Private method to open the configuration dialog.</td> </tr><tr> +<td><a href="#VariablesViewer.__configureFilter">__configureFilter</a></td> +<td>Private method to open the variables filter dialog.</td> +</tr><tr> <td><a href="#VariablesViewer.__createPopupMenus">__createPopupMenus</a></td> <td>Private method to generate the popup menus.</td> </tr><tr> -<td><a href="#VariablesViewer.__expandItemSignal">__expandItemSignal</a></td> -<td>Private slot to handle the expanded signal.</td> -</tr><tr> -<td><a href="#VariablesViewer.__findItem">__findItem</a></td> -<td>Private method to search for an item.</td> +<td><a href="#VariablesViewer.__expandChildren">__expandChildren</a></td> +<td>Private slot to expand all child items of current parent.</td> </tr><tr> -<td><a href="#VariablesViewer.__generateItem">__generateItem</a></td> -<td>Private method used to generate a VariableItem.</td> +<td><a href="#VariablesViewer.__itemDoubleClicked">__itemDoubleClicked</a></td> +<td>Private method called if an item was double clicked.</td> </tr><tr> -<td><a href="#VariablesViewer.__getDispType">__getDispType</a></td> -<td>Private method used to get the display string for type vtype.</td> +<td><a href="#VariablesViewer.__mdlRequestExpand">__mdlRequestExpand</a></td> +<td>Private method to inform the view about items to be expand.</td> </tr><tr> <td><a href="#VariablesViewer.__refreshView">__refreshView</a></td> <td>Private slot to refresh the view.</td> </tr><tr> -<td><a href="#VariablesViewer.__resort">__resort</a></td> -<td>Private method to resort the tree.</td> -</tr><tr> -<td><a href="#VariablesViewer.__sectionClicked">__sectionClicked</a></td> -<td>Private method handling a click onto a header section.</td> -</tr><tr> <td><a href="#VariablesViewer.__showContextMenu">__showContextMenu</a></td> <td>Private slot to show the context menu.</td> </tr><tr> @@ -498,23 +758,20 @@ <td><a href="#VariablesViewer.__showVariableDetails">__showVariableDetails</a></td> <td>Private method to show details about a variable.</td> </tr><tr> -<td><a href="#VariablesViewer.collapseItem">collapseItem</a></td> -<td>Public slot to handle the collapsed signal.</td> -</tr><tr> -<td><a href="#VariablesViewer.expandItem">expandItem</a></td> -<td>Public slot to handle the expanded signal.</td> -</tr><tr> <td><a href="#VariablesViewer.handleResetUI">handleResetUI</a></td> <td>Public method to reset the VariablesViewer.</td> </tr><tr> -<td><a href="#VariablesViewer.mouseDoubleClickEvent">mouseDoubleClickEvent</a></td> -<td>Protected method of QAbstractItemView.</td> +<td><a href="#VariablesViewer.resizeEvent">resizeEvent</a></td> +<td>Protected slot informing about the widget size change.</td> </tr><tr> <td><a href="#VariablesViewer.showVariable">showVariable</a></td> <td>Public method to show variables in a list.</td> </tr><tr> <td><a href="#VariablesViewer.showVariables">showVariables</a></td> <td>Public method to show variables in a list.</td> +</tr><tr> +<td><a href="#VariablesViewer.verticalScrollbarValueChanged">verticalScrollbarValueChanged</a></td> +<td>Public slot informing about the scrollbar change.</td> </tr> </table> <h3>Static Methods</h3> @@ -527,180 +784,76 @@ <p> Constructor </p><dl> -<dt><i>viewer</i></dt> +<dt><i>viewer</i> (DebugViewer)</dt> <dd> -reference to the debug viewer object (DebugViewer) -</dd><dt><i>globalScope</i></dt> +reference to the debug viewer object +</dd><dt><i>globalScope</i> (bool)</dt> <dd> flag indicating global (True) or local (False) variables -</dd><dt><i>parent</i></dt> -<dd> -the parent (QWidget) -</dd> -</dl><a NAME="VariablesViewer.__addItem" ID="VariablesViewer.__addItem"></a> -<h4>VariablesViewer.__addItem</h4> -<b>__addItem</b>(<i>parent, vtype, var, value</i>) -<p> - Private method used to add an item to the list. -</p><p> - If the item is of a type with subelements (i.e. list, dictionary, - tuple), these subelements are added by calling this method recursively. -</p><dl> -<dt><i>parent</i></dt> -<dd> -the parent of the item to be added - (QTreeWidgetItem or None) -</dd><dt><i>vtype</i></dt> -<dd> -the type of the item to be added - (string) -</dd><dt><i>var</i></dt> +</dd><dt><i>parent</i> (QWidget)</dt> <dd> -the variable name (string) -</dd><dt><i>value</i></dt> -<dd> -the value string (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -The item that was added to the listview (QTreeWidgetItem). +the parent </dd> -</dl><a NAME="VariablesViewer.__buildTreePath" ID="VariablesViewer.__buildTreePath"></a> -<h4>VariablesViewer.__buildTreePath</h4> -<b>__buildTreePath</b>(<i>itm</i>) +</dl><a NAME="VariablesViewer.__collapseChildren" ID="VariablesViewer.__collapseChildren"></a> +<h4>VariablesViewer.__collapseChildren</h4> +<b>__collapseChildren</b>(<i></i>) <p> - Private method to build up a path from the top to an item. -</p><dl> -<dt><i>itm</i></dt> -<dd> -item to build the path for (QTreeWidgetItem) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -list of names denoting the path from the top (list of strings) -</dd> -</dl><a NAME="VariablesViewer.__configure" ID="VariablesViewer.__configure"></a> + Private slot to collapse all child items of current parent. +</p><a NAME="VariablesViewer.__configure" ID="VariablesViewer.__configure"></a> <h4>VariablesViewer.__configure</h4> <b>__configure</b>(<i></i>) <p> Private method to open the configuration dialog. +</p><a NAME="VariablesViewer.__configureFilter" ID="VariablesViewer.__configureFilter"></a> +<h4>VariablesViewer.__configureFilter</h4> +<b>__configureFilter</b>(<i></i>) +<p> + Private method to open the variables filter dialog. </p><a NAME="VariablesViewer.__createPopupMenus" ID="VariablesViewer.__createPopupMenus"></a> <h4>VariablesViewer.__createPopupMenus</h4> <b>__createPopupMenus</b>(<i></i>) <p> Private method to generate the popup menus. -</p><a NAME="VariablesViewer.__expandItemSignal" ID="VariablesViewer.__expandItemSignal"></a> -<h4>VariablesViewer.__expandItemSignal</h4> -<b>__expandItemSignal</b>(<i>parentItem</i>) -<p> - Private slot to handle the expanded signal. -</p><dl> -<dt><i>parentItem</i></dt> -<dd> -reference to the item being expanded - (QTreeWidgetItem) -</dd> -</dl><a NAME="VariablesViewer.__findItem" ID="VariablesViewer.__findItem"></a> -<h4>VariablesViewer.__findItem</h4> -<b>__findItem</b>(<i>slist, column, node=None</i>) +</p><a NAME="VariablesViewer.__expandChildren" ID="VariablesViewer.__expandChildren"></a> +<h4>VariablesViewer.__expandChildren</h4> +<b>__expandChildren</b>(<i></i>) <p> - Private method to search for an item. -</p><p> - It is used to find a specific item in column, - that is a child of node. If node is None, a child of the - QTreeWidget is searched. -</p><dl> -<dt><i>slist</i></dt> -<dd> -searchlist (list of strings) -</dd><dt><i>column</i></dt> -<dd> -index of column to search in (int) -</dd><dt><i>node</i></dt> -<dd> -start point of the search -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -the found item or None -</dd> -</dl><a NAME="VariablesViewer.__generateItem" ID="VariablesViewer.__generateItem"></a> -<h4>VariablesViewer.__generateItem</h4> -<b>__generateItem</b>(<i>parent, dvar, dvalue, dtype, isSpecial=False</i>) + Private slot to expand all child items of current parent. +</p><a NAME="VariablesViewer.__itemDoubleClicked" ID="VariablesViewer.__itemDoubleClicked"></a> +<h4>VariablesViewer.__itemDoubleClicked</h4> +<b>__itemDoubleClicked</b>(<i>index</i>) <p> - Private method used to generate a VariableItem. + Private method called if an item was double clicked. </p><dl> -<dt><i>parent</i></dt> -<dd> -parent of the item to be generated -</dd><dt><i>dvar</i></dt> +<dt><i>index</i> (QModelIndex)</dt> <dd> -variable name (string) -</dd><dt><i>dvalue</i></dt> -<dd> -value string (string) -</dd><dt><i>dtype</i></dt> -<dd> -type string (string) -</dd><dt><i>isSpecial</i></dt> -<dd> -flag indicating that a special node should be - generated (boolean) +the double clicked item </dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -The item that was generated (VariableItem). -</dd> -</dl><a NAME="VariablesViewer.__getDispType" ID="VariablesViewer.__getDispType"></a> -<h4>VariablesViewer.__getDispType</h4> -<b>__getDispType</b>(<i>vtype</i>) +</dl><a NAME="VariablesViewer.__mdlRequestExpand" ID="VariablesViewer.__mdlRequestExpand"></a> +<h4>VariablesViewer.__mdlRequestExpand</h4> +<b>__mdlRequestExpand</b>(<i>modelIndex</i>) <p> - Private method used to get the display string for type vtype. + Private method to inform the view about items to be expand. </p><dl> -<dt><i>vtype</i></dt> +<dt><i>modelIndex</i> (QModelIndex)</dt> <dd> -the type, the display string should be looked up for - (string) -</dd> -</dl><dl> -<dt>Returns:</dt> -<dd> -displaystring (string) +the model index </dd> </dl><a NAME="VariablesViewer.__refreshView" ID="VariablesViewer.__refreshView"></a> <h4>VariablesViewer.__refreshView</h4> <b>__refreshView</b>(<i></i>) <p> Private slot to refresh the view. -</p><a NAME="VariablesViewer.__resort" ID="VariablesViewer.__resort"></a> -<h4>VariablesViewer.__resort</h4> -<b>__resort</b>(<i>parent=None</i>) -<p> - Private method to resort the tree. -</p><dl> -<dt><i>parent</i> (QTreeWidgetItem)</dt> -<dd> -reference to a parent item -</dd> -</dl><a NAME="VariablesViewer.__sectionClicked" ID="VariablesViewer.__sectionClicked"></a> -<h4>VariablesViewer.__sectionClicked</h4> -<b>__sectionClicked</b>(<i></i>) -<p> - Private method handling a click onto a header section. </p><a NAME="VariablesViewer.__showContextMenu" ID="VariablesViewer.__showContextMenu"></a> <h4>VariablesViewer.__showContextMenu</h4> <b>__showContextMenu</b>(<i>coord</i>) <p> Private slot to show the context menu. </p><dl> -<dt><i>coord</i></dt> +<dt><i>coord</i> (QPoint)</dt> <dd> -the position of the mouse pointer (QPoint) +the position of the mouse pointer </dd> </dl><a NAME="VariablesViewer.__showDetails" ID="VariablesViewer.__showDetails"></a> <h4>VariablesViewer.__showDetails</h4> @@ -709,53 +862,28 @@ Private slot to show details about the selected variable. </p><a NAME="VariablesViewer.__showVariableDetails" ID="VariablesViewer.__showVariableDetails"></a> <h4>VariablesViewer.__showVariableDetails</h4> -<b>__showVariableDetails</b>(<i>itm</i>) +<b>__showVariableDetails</b>(<i>index</i>) <p> Private method to show details about a variable. </p><dl> -<dt><i>itm</i></dt> +<dt><i>index</i> (QModelIndex)</dt> <dd> reference to the variable item </dd> -</dl><a NAME="VariablesViewer.collapseItem" ID="VariablesViewer.collapseItem"></a> -<h4>VariablesViewer.collapseItem</h4> -<b>collapseItem</b>(<i>parentItem</i>) -<p> - Public slot to handle the collapsed signal. -</p><dl> -<dt><i>parentItem</i></dt> -<dd> -reference to the item being collapsed - (QTreeWidgetItem) -</dd> -</dl><a NAME="VariablesViewer.expandItem" ID="VariablesViewer.expandItem"></a> -<h4>VariablesViewer.expandItem</h4> -<b>expandItem</b>(<i>parentItem</i>) -<p> - Public slot to handle the expanded signal. -</p><dl> -<dt><i>parentItem</i></dt> -<dd> -reference to the item being expanded - (QTreeWidgetItem) -</dd> </dl><a NAME="VariablesViewer.handleResetUI" ID="VariablesViewer.handleResetUI"></a> <h4>VariablesViewer.handleResetUI</h4> <b>handleResetUI</b>(<i></i>) <p> Public method to reset the VariablesViewer. -</p><a NAME="VariablesViewer.mouseDoubleClickEvent" ID="VariablesViewer.mouseDoubleClickEvent"></a> -<h4>VariablesViewer.mouseDoubleClickEvent</h4> -<b>mouseDoubleClickEvent</b>(<i>mouseEvent</i>) +</p><a NAME="VariablesViewer.resizeEvent" ID="VariablesViewer.resizeEvent"></a> +<h4>VariablesViewer.resizeEvent</h4> +<b>resizeEvent</b>(<i>event</i>) <p> - Protected method of QAbstractItemView. -</p><p> - Reimplemented to disable expanding/collapsing of items when - double-clicking. Instead the double-clicked entry is opened. + Protected slot informing about the widget size change. </p><dl> -<dt><i>mouseEvent</i></dt> +<dt><i>event</i> (QResizeEvent)</dt> <dd> -the mouse event object (QMouseEvent) +information </dd> </dl><a NAME="VariablesViewer.showVariable" ID="VariablesViewer.showVariable"></a> <h4>VariablesViewer.showVariable</h4> @@ -763,11 +891,11 @@ <p> Public method to show variables in a list. </p><dl> -<dt><i>vlist</i></dt> +<dt><i>vlist</i> (list)</dt> <dd> the list of subitems to be displayed. The first element gives the path of the - parent variable. Each other listentry is + parent variable. Each other list entry is a tuple of three values. <ul> <li>the variable name (string)</li> @@ -781,18 +909,28 @@ <p> Public method to show variables in a list. </p><dl> -<dt><i>vlist</i></dt> +<dt><i>vlist</i> (list)</dt> <dd> the list of variables to be displayed. Each - listentry is a tuple of three values. + list entry is a tuple of three values. <ul> <li>the variable name (string)</li> <li>the variables type (string)</li> <li>the variables value (string)</li> </ul> -</dd><dt><i>frmnr</i></dt> +</dd><dt><i>frmnr</i> (int)</dt> <dd> -frame number (0 is the current frame) (int) +frame number (0 is the current frame) +</dd> +</dl><a NAME="VariablesViewer.verticalScrollbarValueChanged" ID="VariablesViewer.verticalScrollbarValueChanged"></a> +<h4>VariablesViewer.verticalScrollbarValueChanged</h4> +<b>verticalScrollbarValueChanged</b>(<i>value</i>) +<p> + Public slot informing about the scrollbar change. +</p><dl> +<dt><i>value</i> (int)</dt> +<dd> +current value of the vertical scrollbar </dd> </dl> <div align="right"><a href="#top">Up</a></div>