'Resizes panels.'

def resize(self):

    crect = self.editor.contentsRect()
    view_crect = self.editor.viewport().contentsRect()
    (s_bottom, s_left, s_right, s_top) = self._compute_zones_sizes()
    tw = (s_left + s_right)
    th = (s_bottom + s_top)
    w_offset = (crect.width() - (view_crect.width() + tw))
    h_offset = (crect.height() - (view_crect.height() + th))
    left = 0
    panels = self.panels_for_zone(Panel.Position.LEFT)
    panels.sort(key=(lambda panel: panel.order_in_zone), reverse=True)
    for panel in panels:
        if (not panel.isVisible()):
            continue
        panel.adjustSize()
        size_hint = panel.sizeHint()
        panel.setGeometry((crect.left() + left), (crect.top() + s_top), size_hint.width(), (((crect.height() - s_bottom) - s_top) - h_offset))
        left += size_hint.width()
    right = 0
    panels = self.panels_for_zone(Panel.Position.RIGHT)
    panels.sort(key=(lambda panel: panel.order_in_zone), reverse=True)
    for panel in panels:
        if (not panel.isVisible()):
            continue
        size_hint = panel.sizeHint()
        panel.setGeometry((((crect.right() - right) - size_hint.width()) - w_offset), (crect.top() + s_top), size_hint.width(), (((crect.height() - s_bottom) - s_top) - h_offset))
        right += size_hint.width()
    top = 0
    panels = self.panels_for_zone(Panel.Position.TOP)
    panels.sort(key=(lambda panel: panel.order_in_zone))
    for panel in panels:
        if (not panel.isVisible()):
            continue
        size_hint = panel.sizeHint()
        panel.setGeometry(crect.left(), (crect.top() + top), (crect.width() - w_offset), size_hint.height())
        top += size_hint.height()
    bottom = 0
    panels = self.panels_for_zone(Panel.Position.BOTTOM)
    panels.sort(key=(lambda panel: panel.order_in_zone))
    for panel in panels:
        if (not panel.isVisible()):
            continue
        size_hint = panel.sizeHint()
        panel.setGeometry(crect.left(), (((crect.bottom() - bottom) - size_hint.height()) - h_offset), (crect.width() - w_offset), size_hint.height())
        bottom += size_hint.height()
