Yikes, I can't find the signal in all the noise! Paul
On 4/27/10 11:39 AM, Nate Lowrie wrote: > dabo Commit > Revision 5798 > Date: 2010-04-27 11:39:24 -0700 (Tue, 27 Apr 2010) > Author: Nate > Trac: http://trac.dabodev.com/changeset/5798 > > Changed: > U trunk/dabo/ui/uiwx/dGrid.py > > Log: > I had an application with 2 grids on different pages in a dPageFrameNoTabs > widget. The one on the page displayed first would have expanded columns > sized properly. The one on the suppressed page wouldn't. I eventually > traced the problem back to the fact that _clearFlag wasn't being called after > the 5ms interval like it was supposed to. Changing this to callAfter fixed > the problem and I noticed no increases in the number of calls to the grids > column sizing methods. > > Diff: > Modified: trunk/dabo/ui/uiwx/dGrid.py > =================================================================== > --- trunk/dabo/ui/uiwx/dGrid.py 2010-04-23 23:02:01 UTC (rev 5797) > +++ trunk/dabo/ui/uiwx/dGrid.py 2010-04-27 18:39:24 UTC (rev 5798) > @@ -70,7 +70,7 @@ > dcol = self.grid.Columns[col] > > # If a cell attr is set up, use it. Else, use the one set up > for the column. > - > + > # PVG: we need to update dynamic properties before checkin for > cellAttrs > dcol._updateCellDynamicProps(row) > > @@ -237,7 +237,7 @@ > > if _oldRowCount == _newRowCount and not force: > return _newRowCount > - > + > self.grid._syncRowCount() > # Column widths come from multiple places. In decreasing > precedence: > # 1) dApp user settings, > @@ -294,7 +294,7 @@ > # return False > > > - def GetValue(self, row, col, useCache=True, convertNoneToString=True): > + def GetValue(self, row, col, useCache=True, convertNoneToString=True): > col = self._convertWxColNumToDaboColNum(col) > if useCache: > try: > @@ -350,8 +350,8 @@ > > def _convertWxColNumToDaboColNum(self, wxCol): > return self.grid._convertWxColNumToDaboColNum(wxCol) > - > > + > class GridListEditor(wx.grid.GridCellChoiceEditor): > def __init__(self, *args, **kwargs): > dabo.infoLog.write("GridListEditor: Init ") > @@ -448,7 +448,7 @@ > # Custom editors/renderers > self._customRenderers = {} > self._customEditors = {} > - > + > self._beforeInit() > kwargs["Parent"] = parent > # dColumn maintains one attr object that the grid table will > use for > @@ -683,7 +683,7 @@ > > > def _setDataTypeFromDataField(self, fld): > - """When a column has its DataField changed, we need to set the > + """When a column has its DataField changed, we need to set the > correct DataType based on the new value. > """ > if self.Parent: > @@ -1060,7 +1060,7 @@ > try: > return self._gridColAttr.GetTextColour() > except wx.PyAssertionError: > - # Getting the color failed on Mac and win: "no default > attr" > + # Getting the color failed on Mac and win: "no default > attr" > default = dColors.colorTupleFromName("black") > self._gridColAttr.SetTextColour(default) > return default > @@ -1344,11 +1344,11 @@ > else: > self._properties["Sortable"] = val > > - > + > def _getValue(self): > grid = self.Parent > biz = grid.getBizobj() > - if self.DataField: > + if self.DataField: > if biz and (grid.CurrentRow< biz.RowCount): > return biz.getFieldVal(self.DataField) > if grid.DataSet: > @@ -1750,26 +1750,26 @@ > # Do we show row or column labels? > self._showHeaders = True > self._showRowLabels = False > - > + > # Declare Internal Row Attributes > self._rowLabels = [] > self._sameSizeRows = True > - > + > # Declare Internal Column Attributes > self._columnClass = dColumn > self._columns = [] > - > + > #Declare Internal Search And Sort Attributes > self._searchable = True > self._searchDelay = None > self._sortable = True > - > + > #Declare Internal Header Attributes > self._headerVerticalAlignment = "Center" > self._headerHorizontalAlignment = "Center" > self._headerForeColor = None > self._headerBackColor = None > - > + > #Set NoneDisplay attributes > if self.Application: > self.__noneDisplayDefault = self.Application.NoneDisplay > @@ -1987,7 +1987,7 @@ > def getValue(self, row=None, col=None): > """Returns the value of the specified row and column. > > - If no row/col is specified, the current row/col will be used. > + If no row/col is specified, the current row/col will be used. > """ > if row is None: > row = self.CurrentRow > @@ -2025,8 +2025,8 @@ > > > def typeFromDataField(self, df): > - """When the DataField is set for a column, it needs to set the > corresponding > - value of its DataType property. Will return the Python data > type, or None if > + """When the DataField is set for a column, it needs to set the > corresponding > + value of its DataType property. Will return the Python data > type, or None if > there is no bizobj, or no DataStructure info available in the > bizobj. > """ > biz = self.getBizobj() > @@ -2038,17 +2038,17 @@ > dabo.errorLog.write(e) > return None > return pyType > - > > + > def getTableClass(cls): > - """We don't expose the underlying table class to the ui > namespace, as it's a > + """We don't expose the underlying table class to the ui > namespace, as it's a > wx-specific implementation detail, but for cases where you need > to subclass > the table, this classmethod will return the class reference. > """ > return dGridDataTable > getTableClass = classmethod(getTableClass) > - > > + > def setTableAttributes(self, tbl=None): > """Set the attributes for table display""" > if tbl is None: > @@ -2102,7 +2102,7 @@ > def _getDaboVisibleCols(self): > try: > return [e[0] for e in enumerate(self._columns) if > e[1].Visible] > - except wx._core.PyAssertionError, e: > + except wx._core.PyAssertionError, e: > # Can happen when an editor is active and columns resize > ret = [] > for pos, col in enumerate(self._columns): > @@ -2114,7 +2114,7 @@ > def _convertWxColNumToDaboColNum(self, wxCol): > """For the Visible property to work, we need to convert the > column number > wx sends to the actual column index in grid.Columns. > - > + > Returns None if there is no corresponding dabo column. > """ > try: > @@ -2136,7 +2136,7 @@ > except ValueError: > return None > > - > + > def _restoreSort(self): > self.sortedColumn = self._getUserSetting("sortedColumn") > self.sortOrder = self._getUserSetting("sortOrder") > @@ -2405,7 +2405,7 @@ > _clearFlag() > self._delayedUpdateColumnWidths(redo=True) > else: > - dabo.ui.callAfterInterval(5, _clearFlag) > + dabo.ui.callAfter(_clearFlag) > > > def autoSizeCol(self, colNum, persist=False): > @@ -2459,6 +2459,7 @@ > self._updateColumnWidths() > > > + > def _paintHeader(self, updateBox=None, _paintDC=False): > w = self._getWxHeader() > > @@ -2483,7 +2484,7 @@ > # Grid is probably being created or destroyed, > so just return > continue > dc.SetClippingRegion(*headerRect) > - > + > holdBrush = dc.GetBrush() > holdPen = dc.GetPen() > > @@ -2939,7 +2940,7 @@ > self.incSearchTimer.start(searchDelay) > > > - def findReplace(self, action, findString, replaceString, downwardSearch, > + def findReplace(self, action, findString, replaceString, downwardSearch, > wholeWord, matchCase): > """Called from the 'Find' dialog.""" > ret = False > @@ -3065,8 +3066,8 @@ > def addColumn(self, col=None, inBatch=False, *args, **kwargs): > """ Adds a column to the grid. > > - If no col (class or instance) is passed, a blank dColumn is > added, which > - can be customized later. Any extra keyword arguments are > passed to the > + If no col (class or instance) is passed, a blank dColumn is > added, which > + can be customized later. Any extra keyword arguments are > passed to the > constructor of the new dColumn. > """ > if col is None: > @@ -3202,7 +3203,7 @@ > self.ProcessTableMessage(msg) > self.EndBatch() > > - # We need to adjust the Width of visible columns here, in case > any > + # We need to adjust the Width of visible columns here, in case > any > # columns have Visible = False. > for daboCol, colObj in enumerate(self._columns): > wxCol = self._convertDaboColNumToWxColNum(daboCol) > @@ -3482,7 +3483,7 @@ > ## out of scope prematurely. > col._setEditor(newRow) > > - if col and (self.Editable and col.Editable and not > self._vetoAllEditing > + if col and (self.Editable and col.Editable and not > self._vetoAllEditing > and self.ActivateEditorOnSelect): > dabo.ui.callAfter(self.EnableCellEditControl) > if oldRow != newRow: > @@ -3545,7 +3546,7 @@ > if keycode == 27: > # esc pressed. Grid will eat it by default. But if we > are in a dialog with > # a cancel button, let's runCancel() since that's what > the user likely wants: > - if hasattr(self.Form, "runCancel"): > + if hasattr(self.Form, "runCancel"): > self.Form.runCancel() > if keycode == 9 and self.TabNavigates: > evt.stop() > @@ -3554,7 +3555,7 @@ > > def _onKeyChar(self, evt): > """ Occurs when the user presses a key inside the grid.""" > - if (self.Editable and self.Columns[self.CurrentColumn].Editable > + if (self.Editable and self.Columns[self.CurrentColumn].Editable > and not self._vetoAllEditing): > # Can't search and edit at the same time > return > @@ -4120,7 +4121,7 @@ > # See if the DataSource is a reference > try: > ret = eval(self.DataSource) > - except StandardError: > + except StandardError: > # If it fails for any reason, bail. > pass > self._dataSet = ret > @@ -4820,7 +4821,7 @@ > will be sortable. Default: True (bool)""")) > > TabNavigates = property(_getTabNavigates, _setTabNavigates, None, > - _("""Specifies whether Tab navigates to the next > control (True, the default), > + _("""Specifies whether Tab navigates to the next > control (True, the default), > or if Tab moves to the next column in the grid > (False).""")) > > VerticalScrolling = property(_getVerticalScrolling, > _setVerticalScrolling, None, > @@ -4916,7 +4917,7 @@ > col.HeaderBackColor = "orange" > col.HeaderVerticalAlignment = "Top" > col.HeaderHorizontalAlignment = "Left" > - > + > # Let's make a custom editor for the name > class ColoredText(dabo.ui.dTextBox): > def initProperties(self): > > > [excessive quoting removed by server] _______________________________________________ Post Messages to: [email protected] Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-dev Searchable Archives: http://leafe.com/archives/search/dabo-dev This message: http://leafe.com/archives/byMID/[email protected]
