Ticket #2143: 0001-only-enable-spiral-for-Ring-layout.patch

File 0001-only-enable-spiral-for-Ring-layout.patch, 2.5 KB (added by walter, 14 years ago)

only invoke the spiral when using Ring layout

  • src/jarabe/desktop/favoriteslayout.py

    From 2f8cd65ab5663747bc49c0950383d3d99e6c94d6 Mon Sep 17 00:00:00 2001
    From: Walter Bender <walter@sugarlabs.org>
    Date: Tue, 24 Aug 2010 09:10:40 -0400
    Subject: [PATCH] only enable spiral for Ring layout
    
    ---
     src/jarabe/desktop/favoriteslayout.py |   34 ++++++++++++++++++++------------
     1 files changed, 21 insertions(+), 13 deletions(-)
    
    diff --git a/src/jarabe/desktop/favoriteslayout.py b/src/jarabe/desktop/favoriteslayout.py
    index 7b847ac..7f4aecb 100644
    a b class RingLayout(FavoritesLayout): 
    249249        if radius < _MAXIMUM_RADIUS:
    250250            return radius, style.STANDARD_ICON_SIZE
    251251
    252         self._spiral_mode = True
    253         icon_size = style.STANDARD_ICON_SIZE
    254         angle, radius = self._calculate_angle_and_radius(children_count,
    255                                                                icon_size)
    256         while radius > _MAXIMUM_RADIUS:
    257             i = _ICON_SIZES.index(icon_size)
    258             if i < len(_ICON_SIZES) - 1:
    259                 icon_size = _ICON_SIZES[i + 1]
    260                 angle, radius = self._calculate_angle_and_radius(
    261                     children_count, icon_size)
    262             else:
    263                 break
    264         return radius, icon_size
     252        # Only switch to a spiral when using the Ring layout.
     253        if self.key == 'ring-layout':
     254            self._spiral_mode = True
     255            icon_size = style.STANDARD_ICON_SIZE
     256            angle, radius = self._calculate_angle_and_radius(children_count,
     257                                                             icon_size)
     258            while radius > _MAXIMUM_RADIUS:
     259                i = _ICON_SIZES.index(icon_size)
     260                if i < len(_ICON_SIZES) - 1:
     261                    icon_size = _ICON_SIZES[i + 1]
     262                    angle, radius = self._calculate_angle_and_radius(
     263                        children_count, icon_size)
     264                else:
     265                    break
     266            return radius, icon_size
     267        else:
     268            distance = style.STANDARD_ICON_SIZE + style.DEFAULT_SPACING * \
     269                _ICON_SPACING_FACTORS[_ICON_SIZES.index(style.SMALL_ICON_SIZE)]
     270            radius = max(children_count * distance / (2 * math.pi),
     271                         _MINIMUM_RADIUS)
     272            return radius, style.SMALL_ICON_SIZE
    265273
    266274    def _calculate_position(self, radius, icon_size, icon_index, children_count,
    267275                            sin=math.sin, cos=math.cos):