[Chandler-dev] Re: [commits] (john) [10342] Update Chandler Makefile for wx 42

Alec Flett alecf at osafoundation.org
Wed Apr 19 10:06:28 PDT 2006


Hey John -
The table behaves so much better now!

I of course have found a bug though.. you can still change the size of 
the non-scaled columns - i.e. I can drag and make the icon columns 
larger... I figure that's a slightly different problem, but if you're 
already in that code...

I tried to resize a fixed-width column in Thunderbird and what it does 
is move the column, resizing the column to the left of the current 
column as if you had dragged the left side of the column rather than the 
right. It's a nice effect.

Alec

commits at osafoundation.org wrote:
>
> Revision
>     10342 <http://viewcvs.osafoundation.org/chandler?view=rev&rev=10342>
> Author
>     john
> Date
>     2006-04-19 09:08:23 -0700 (Wed, 19 Apr 2006)
>
>
>       Log Message
>
> Update Chandler Makefile for wx 42
> Chandler now scalable columns in wxGrid
>
>
>       Modified Paths
>
>     * trunk/chandler/Makefile <#trunkchandlerMakefile>
>     * trunk/chandler/application/Utility.py
>       <#trunkchandlerapplicationUtilitypy>
>     * trunk/chandler/parcels/osaf/framework/blocks/ControlBlocks.py
>       <#trunkchandlerparcelsosafframeworkblocksControlBlockspy>
>     * trunk/chandler/parcels/osaf/framework/blocks/Table.py
>       <#trunkchandlerparcelsosafframeworkblocksTablepy>
>     * trunk/chandler/parcels/osaf/views/cpiatest/mainblocks.py
>       <#trunkchandlerparcelsosafviewscpiatestmainblockspy>
>     * trunk/chandler/parcels/osaf/views/main/mainblocks.py
>       <#trunkchandlerparcelsosafviewsmainmainblockspy>
>     * trunk/chandler/parcels/osaf/views/main/summaryblocks.py
>       <#trunkchandlerparcelsosafviewsmainsummaryblockspy>
>
>
>       Diff
>
>
>         Modified: trunk/chandler/Makefile (10341 => 10342)
>
> --- trunk/chandler/Makefile	2006-04-19 14:24:14 UTC (rev 10341)
> +++ trunk/chandler/Makefile	2006-04-19 16:08:23 UTC (rev 10342)
> @@ -38,7 +38,7 @@
>           $(CHANDLERARCHIVES)/PyLucene-$(SNAP)-2.0rc1-5-$(BP)1.tar.gz \
>           $(CHANDLERARCHIVES)/python-$(SNAP)-2.4.2-$(BP)4.tar.gz \
>           $(CHANDLERARCHIVES)/twisted-$(SNAP)-r15399-$(BP)1.tar.gz \
> -         $(CHANDLERARCHIVES)/wxPython-$(SNAP)-2.6.2.0-$(BP)41.tar.gz \
> +         $(CHANDLERARCHIVES)/wxPython-$(SNAP)-2.6.2.0-$(BP)42.tar.gz \
>           $(CHANDLERARCHIVES)/zopeinterface-$(SNAP)-3.1.0c1-$(BP)1.tar.gz \
>           $(CHANDLERARCHIVES)/dateutil-$(SNAP)-1.1-$(BP)1.tar.gz \
>           $(CHANDLERARCHIVES)/vobject-$(SNAP)-0.3.0-r139-$(BP)2.tar.gz \
>
>
>         Modified: trunk/chandler/application/Utility.py (10341 => 10342)
>
> --- trunk/chandler/application/Utility.py	2006-04-19 14:24:14 UTC (rev 10341)
> +++ trunk/chandler/application/Utility.py	2006-04-19 16:08:23 UTC (rev 10342)
> @@ -22,7 +22,7 @@
>  # with your name (and some helpful text). The comment's really there just to
>  # cause Subversion to warn you of a conflict when you update, in case someone 
>  # else changes it at the same time you do (that's why it's on the same line).
> -SCHEMA_VERSION = "182" # alecf: got rid of selectedItemToView
> +SCHEMA_VERSION = "183" # john: update Table and Column schema
>  
>  logger = None # initialized in initLogging()
>  
>
>
>         Modified:
>         trunk/chandler/parcels/osaf/framework/blocks/ControlBlocks.py
>         (10341 => 10342)
>
> --- trunk/chandler/parcels/osaf/framework/blocks/ControlBlocks.py	2006-04-19 14:24:14 UTC (rev 10341)
> +++ trunk/chandler/parcels/osaf/framework/blocks/ControlBlocks.py	2006-04-19 16:08:23 UTC (rev 10342)
> @@ -202,10 +202,11 @@
>      kind = schema.One(schema.Kind, doc="The Kind used "
>                        "for 'kind' columns")
>  
> -    width = schema.One(schema.Integer, required=True,
> +    width = schema.One(schema.Integer,  defaultValue = 20,
>                         doc="The width of the column, "
>                         "relative to other columns")
>  
> +    scaleColumn = schema.One(schema.Boolean, defaultValue = False)
>      readOnly = schema.One(schema.Boolean, initialValue=False)
>      
>      schema.addClouds(
>
>
>         Modified:
>         trunk/chandler/parcels/osaf/framework/blocks/Table.py (10341
>         => 10342)
>
> --- trunk/chandler/parcels/osaf/framework/blocks/Table.py	2006-04-19 14:24:14 UTC (rev 10341)
> +++ trunk/chandler/parcels/osaf/framework/blocks/Table.py	2006-04-19 16:08:23 UTC (rev 10342)
> @@ -16,7 +16,7 @@
>      IgnoreSynchronizeWidget
>      )
>  
> -from ControlBlocks import Column, columnType
> +from ControlBlocks import Column
>  
>  import Styles
>  import DragAndDrop
> @@ -102,13 +102,6 @@
>          self.EnableDragCell(True)
>          self.DisableDragRowSize()
>          self.SetDefaultCellBackgroundColour(wx.WHITE)
> -        """
> -          Big fat hack. Since the grid is a scrolled window we set a border equal to the size
> -        of the scrollbar so the scroll bars won't show. Instead we should consider modifying
> -        grid adding a new style for not showing scrollbars.  Bug #2375
> -        """
> -        self.SetMargins(-wx.SystemSettings_GetMetric(wx.SYS_VSCROLL_X),
> -                        -wx.SystemSettings_GetMetric(wx.SYS_HSCROLL_Y))
>          self.EnableCursor (False)
>          background = wx.SystemSettings.GetColour (wx.SYS_COLOUR_HIGHLIGHT)
>          self.SetLightSelectionBackground()
> @@ -257,33 +250,13 @@
>  
>      @WithoutSynchronizeWidget
>      def OnSize(self, event):
> -        size = event.GetSize()
> -        widthMinusLastColumn = 0
> -
> -        assert self.GetNumberCols() > 0, "We're assuming that there is at least one column"
> -        lastColumnIndex = self.GetNumberCols() - 1
> -        for column in xrange (lastColumnIndex):
> -            widthMinusLastColumn += self.GetColSize (column)
> -        lastColumnWidth = size.width - widthMinusLastColumn
> -        """
> -          This is a temporary fix to get around an apparent bug in
> -          grids.  We only want to adjust for scrollbars if they
> -          are present.  The -2 is a hack, without which the
> -          sidebar will grow indefinitely when resizing the window.
> -        """
> -        if (self.GetSize() == self.GetVirtualSize()):
> -            lastColumnWidth = lastColumnWidth - 2
> -        else:
> -            lastColumnWidth = lastColumnWidth - wx.SystemSettings_GetMetric(wx.SYS_VSCROLL_X) - 1
> -        if lastColumnWidth > 0:
> -            self.SetColSize (lastColumnIndex, lastColumnWidth)
> -            self.ForceRefresh()
> +        # Don't call SynchronizeWidget when we're resising the window
>          event.Skip()
>  
>      @WithoutSynchronizeWidget
>      def OnColumnDrag(self, event):
> -        columnIndex = event.GetRowOrCol()
> -        self.blockItem.columns[columnIndex].width = self.GetColSize (columnIndex)
> +        for index, column in enumerate(self.blockItem.columns):
> +            column.width = self.GetColSize (index)
>  
>      def OnItemDrag(self, event):
>  
> @@ -412,7 +385,14 @@
>          assert (self.GetNumberCols() == gridTable.GetNumberCols() and
>                  self.GetNumberRows() == gridTable.GetNumberRows())
>  
> -        self.UpdateColumnWidths(newColumns)
> +        # Update column widths
> +
> +        for index, column in enumerate(self.blockItem.columns):
> +            self.SetColSize (index, column.width)
> +            self.ScaleColumn (index, column.scaleColumn)
> +
> +        self.ScaleWidthToFit (self.blockItem.scaleWidthsToFit)
> +
>          self.UpdateSelection(newColumns)
>          self.EndBatch()
>  
> @@ -422,21 +402,6 @@
>          self.ProcessTableMessage (message)
>          self.ForceRefresh () 
>  
> -    def UpdateColumnWidths(self, columns):
> -        # update all column widths but the last one
> -        widthMinusLastColumn = 0
> -        for columnIndex in xrange (columns - 1):
> -            widthMinusLastColumn += self.blockItem.columns[columnIndex].width
> -            self.SetColSize (columnIndex, self.blockItem.columns[columnIndex].width)
> -
> -        # update the last column to fill the rest of the widget
> -        remaining = self.GetSize().width - widthMinusLastColumn
> -        # Adjust for scrollbar if it is present
> -        if (self.GetSize() != self.GetVirtualSize()):
> -            remaining = remaining - wx.SystemSettings_GetMetric(wx.SYS_VSCROLL_X) - 1
> -        if remaining > 0:
> -            self.SetColSize(columns - 1, remaining)
> -    
>      def UpdateSelection(self, columns):
>          """
>          Update the grid's selection based on the collection's selection.
> @@ -696,6 +661,7 @@
>      characterStyle = schema.One(Styles.CharacterStyle)
>      headerCharacterStyle = schema.One(Styles.CharacterStyle)
>      hasGridLines = schema.One(schema.Boolean, initialValue = False)
> +    scaleWidthsToFit = schema.One(schema.Boolean, defaultValue = False)
>  
>      schema.addClouds(
>          copying = schema.Cloud(
>
>
>         Modified:
>         trunk/chandler/parcels/osaf/views/cpiatest/mainblocks.py
>         (10341 => 10342)
>
> --- trunk/chandler/parcels/osaf/views/cpiatest/mainblocks.py	2006-04-19 14:24:14 UTC (rev 10341)
> +++ trunk/chandler/parcels/osaf/views/cpiatest/mainblocks.py	2006-04-19 16:08:23 UTC (rev 10342)
> @@ -40,11 +40,11 @@
>      Sidebar = SidebarBlock.template(
>          'Sidebar',
>          characterStyle = globalBlocks.SidebarRowStyle,
> -        columns = [
> -            Column.update(parcel, 'SidebarColName',
> -                          heading = u'',
> -                          attributeName = u'displayName')],
> -
> +        columns = [Column.update(parcel, 'SidebarColName',
> +                                 heading = u'',
> +                                 scaleColumn = True,
> +                                 attributeName = u'displayName')],
> +        scaleWidthsToFit = True,
>          border = RectType(0, 0, 4, 0),
>          editRectOffsets = [17, -17, 0],
>          buttons = [IconButton, SharingButton],
>
>
>         Modified: trunk/chandler/parcels/osaf/views/main/mainblocks.py
>         (10341 => 10342)
>
> --- trunk/chandler/parcels/osaf/views/main/mainblocks.py	2006-04-19 14:24:14 UTC (rev 10341)
> +++ trunk/chandler/parcels/osaf/views/main/mainblocks.py	2006-04-19 16:08:23 UTC (rev 10342)
> @@ -48,11 +48,12 @@
>      Sidebar = SidebarBlock.template(
>          'Sidebar',
>          characterStyle = globalBlocks.SidebarRowStyle,
> -        columns = [
> -            Column.update(parcel, 'SidebarColName',
> -                          heading = u'',
> -                          attributeName = u'displayName')],
> +        columns = [Column.update(parcel, 'SidebarColName',
> +                                 heading = u'',
> +                                 scaleColumn = True,
> +                                 attributeName = u'displayName')],
>                            
> +        scaleWidthsToFit = True,
>          border = RectType(0, 0, 4, 0),
>          editRectOffsets = [17, -17, 0],
>          buttons = [IconButton, SharingButton],
>
>
>         Modified:
>         trunk/chandler/parcels/osaf/views/main/summaryblocks.py (10341
>         => 10342)
>
> --- trunk/chandler/parcels/osaf/views/main/summaryblocks.py	2006-04-19 14:24:14 UTC (rev 10341)
> +++ trunk/chandler/parcels/osaf/views/main/summaryblocks.py	2006-04-19 16:08:23 UTC (rev 10342)
> @@ -33,6 +33,7 @@
>          childrenBlocks = [
>              DashboardBlock.template('TableSummaryView',
>                  contents = pim_ns.allCollection,
> +                scaleWidthsToFit = True,
>                  columns = [
>                      Column.update(parcel, 'SumColTask',
>                                    heading = _(u'T'),
> @@ -50,11 +51,13 @@
>                                    heading = _(u'Who'),
>                                    attributeName = 'who',
>                                    width = 130,
> +                                  scaleColumn = True,
>                                    readOnly = True),
>                      Column.update(parcel, 'SumColAbout',
>                                    heading = _(u'Title'),
>                                    attributeName = 'about',
> -                                  width = 130),
> +                                  width = 130,
> +                                  scaleColumn = True),
>                      Column.update(parcel, 'SumColCalendarEvent',
>                                    heading = _(u'E'),
>                                    valueType = 'kind',
> @@ -65,6 +68,7 @@
>                                    heading = _(u'Date'),
>                                    attributeName = 'date',
>                                    width = 130,
> +                                  scaleColumn = True,
>                                    readOnly = True),
>                      Column.update(parcel, 'SumColTriage',
>                                    heading = _(u'Triage'),
>
>   
> ------------------------------------------------------------------------
>
> _______________________________________________
> Commits mailing list
> Commits at osafoundation.org
> http://lists.osafoundation.org/mailman/listinfo/commits
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osafoundation.org/pipermail/chandler-dev/attachments/20060419/aaa9cedb/attachment.html


More information about the chandler-dev mailing list