aboutsummaryrefslogtreecommitdiffstats
path: root/lvc
diff options
context:
space:
mode:
authorJesús Eduardo <heckyel@hyperbola.info>2018-01-14 14:22:05 -0500
committerJesús Eduardo <heckyel@hyperbola.info>2018-01-14 14:22:05 -0500
commit9eb6470e5450d09c9e15b853f949d39484def519 (patch)
tree8598303aef153926a7a4b62aba22812e0896f268 /lvc
parent952615f73210802d41820bde220403f30cf2de6d (diff)
downloadlibrevideoconverter-9eb6470e5450d09c9e15b853f949d39484def519.tar.lz
librevideoconverter-9eb6470e5450d09c9e15b853f949d39484def519.tar.xz
librevideoconverter-9eb6470e5450d09c9e15b853f949d39484def519.zip
pep8 en lvc/widgets/osx/tableview.py
C: 1, 0: Too many lines in module (1671/1000) (too-many-lines)
Diffstat (limited to 'lvc')
-rw-r--r--lvc/widgets/osx/tableview.py162
1 files changed, 102 insertions, 60 deletions
diff --git a/lvc/widgets/osx/tableview.py b/lvc/widgets/osx/tableview.py
index 9f490d2..aae0805 100644
--- a/lvc/widgets/osx/tableview.py
+++ b/lvc/widgets/osx/tableview.py
@@ -59,19 +59,25 @@ EXPANDER_PADDING = 6
HEADER_HEIGHT = 17
CUSTOM_HEADER_HEIGHT = 25
+
def iter_range(ns_range):
"""Iterate over an NSRange object"""
return xrange(ns_range.location, ns_range.location + ns_range.length)
Rect = namedtuple('Rect', 'x y width height')
+
+
def NSRectToRect(nsrect):
origin, size = nsrect.origin, nsrect.size
return Rect(origin.x, origin.y, size.width, size.height)
Point = namedtuple('Point', 'x y')
+
+
def NSPointToPoint(nspoint):
return Point(int(nspoint.x), int(nspoint.y))
+
class HotspotTracker(object):
"""Contains the info on the currently tracked hotspot. See:
https://develop.participatoryculture.org/index.php/WidgetAPITableView
@@ -105,9 +111,9 @@ class HotspotTracker(object):
def update_position(self, point):
cell_frame = self.tableview.frameOfCellAtColumn_row_(self.column,
- self.row)
+ self.row)
self.pos = NSPoint(point.x - cell_frame.origin.x,
- point.y - cell_frame.origin.y)
+ point.y - cell_frame.origin.y)
def update_hit(self):
old_hit = self.hit
@@ -125,21 +131,23 @@ class HotspotTracker(object):
def calc_hotspot(self):
self.set_cell_data()
cell_frame = self.tableview.frameOfCellAtColumn_row_(self.column,
- self.row)
+ self.row)
style = self.cell.make_drawing_style(cell_frame, self.tableview)
layout_manager = self.cell.layout_manager
layout_manager.reset()
return self.cell.wrapper.hotspot_test(style, layout_manager,
- self.pos.x, self.pos.y, cell_frame.size.width,
- cell_frame.size.height)
+ self.pos.x, self.pos.y,
+ cell_frame.size.width,
+ cell_frame.size.height)
def redraw_cell(self):
# Check to see if we removed the table in response to a hotspot click.
if self.tableview.superview() is not nil:
cell_frame = self.tableview.frameOfCellAtColumn_row_(self.column,
- self.row)
+ self.row)
self.tableview.setNeedsDisplayInRect_(cell_frame)
+
def _calc_interior_frame(total_frame, tableview):
"""Calculate the inner cell area for a table cell.
@@ -148,9 +156,10 @@ def _calc_interior_frame(total_frame, tableview):
render to, given the total spacing.
"""
return NSMakeRect(total_frame.origin.x + tableview.column_spacing // 2,
- total_frame.origin.y + tableview.row_spacing // 2,
- total_frame.size.width - tableview.column_spacing,
- total_frame.size.height - tableview.row_spacing)
+ total_frame.origin.y + tableview.row_spacing // 2,
+ total_frame.size.width - tableview.column_spacing,
+ total_frame.size.height - tableview.row_spacing)
+
class MiroTableCell(NSTextFieldCell):
def init(self):
@@ -159,7 +168,7 @@ class MiroTableCell(NSTextFieldCell):
def calcHeight_(self, view):
font = self.font()
return math.ceil(font.ascender() + abs(font.descender()) +
- font.leading())
+ font.leading())
def highlightColorWithFrame_inView_(self, frame, view):
return nil
@@ -172,8 +181,9 @@ class MiroTableCell(NSTextFieldCell):
NSCell.setObjectValue_(self, value_dict)
def drawInteriorWithFrame_inView_(self, frame, view):
- return NSTextFieldCell.drawInteriorWithFrame_inView_(self,
- _calc_interior_frame(frame, view), view)
+ return NSTextFieldCell.drawInteriorWithFrame_inView_(
+ self, _calc_interior_frame(frame, view), view)
+
class MiroTableInfoListTextCell(MiroTableCell):
def initWithAttrGetter_(self, attr_getter):
@@ -187,8 +197,8 @@ class MiroTableInfoListTextCell(MiroTableCell):
# adjust frame based on the cell spacing
frame = _calc_interior_frame(frame, view)
if (self.isHighlighted() and frame is not None and
- (view.isDescendantOf_(view.window().firstResponder()) or
- view.gradientHighlight) and view.window().isMainWindow()):
+ (view.isDescendantOf_(view.window().firstResponder()) or
+ view.gradientHighlight) and view.window().isMainWindow()):
self.setTextColor_(NSColor.whiteColor())
else:
self.setTextColor_(self._textColor)
@@ -214,6 +224,7 @@ class MiroTableInfoListTextCell(MiroTableCell):
# happens in initialization
NSCell.setObjectValue_(self, '')
+
class MiroTableImageCell(NSImageCell):
def calcHeight_(self, view):
return self.value_dict['image'].size().height
@@ -225,8 +236,9 @@ class MiroTableImageCell(NSImageCell):
NSImageCell.setObjectValue_(self, value_dict['image'])
def drawInteriorWithFrame_inView_(self, frame, view):
- return NSImageCell.drawInteriorWithFrame_inView_(self,
- _calc_interior_frame(frame, view), view)
+ return NSImageCell.drawInteriorWithFrame_inView_(
+ self, _calc_interior_frame(frame, view), view)
+
class MiroCheckboxCell(NSButtonCell):
def init(self):
@@ -254,7 +266,8 @@ class MiroCheckboxCell(NSButtonCell):
def continueTracking_at_inView_(self, lastPoint, at, view):
return YES
- def stopTracking_at_inView_mouseIsUp_(self, lastPoint, at, tableview, mouseIsUp):
+ def stopTracking_at_inView_mouseIsUp_(self, lastPoint, at,
+ tableview, mouseIsUp):
if mouseIsUp:
column = tableview.columnAtPoint_(at)
row = tableview.rowAtPoint_(at)
@@ -264,11 +277,13 @@ class MiroCheckboxCell(NSButtonCell):
itr = wrapper.model.iter_for_row(tableview, row)
column.renderer.emit('clicked', itr)
return NSButtonCell.stopTracking_at_inView_mouseIsUp_(self, lastPoint,
- at, tableview, mouseIsUp)
+ at, tableview,
+ mouseIsUp)
def drawInteriorWithFrame_inView_(self, frame, view):
- return NSButtonCell.drawInteriorWithFrame_inView_(self,
- _calc_interior_frame(frame, view), view)
+ return NSButtonCell.drawInteriorWithFrame_inView_(
+ self, _calc_interior_frame(frame, view), view)
+
class CellRendererBase(object):
DRAW_BACKGROUND = True
@@ -279,6 +294,7 @@ class CellRendererBase(object):
def get_index(self):
return self.index
+
class CellRenderer(CellRendererBase):
def __init__(self):
self.cell = self.build_cell()
@@ -320,7 +336,9 @@ class CellRenderer(CellRendererBase):
def set_color(self, color):
color = NSColor.colorWithDeviceRed_green_blue_alpha_(color[0],
- color[1], color[2], 1.0)
+ color[1],
+ color[2],
+ 1.0)
self.cell._textColor = color
self.cell.setTextColor_(color)
@@ -335,10 +353,12 @@ class CellRenderer(CellRendererBase):
raise ValueError("unknown alignment: %s", align)
self.cell.setAlignment_(ns_alignment)
+
class ImageCellRenderer(CellRendererBase):
def setDataCell_(self, column):
column.setDataCell_(MiroTableImageCell.alloc().init())
+
class CheckboxCellRenderer(CellRendererBase, signals.SignalEmitter):
def __init__(self):
signals.SignalEmitter.__init__(self, 'clicked')
@@ -353,6 +373,7 @@ class CheckboxCellRenderer(CellRendererBase, signals.SignalEmitter):
cell.setControlSize_(NSSmallControlSize)
column.setDataCell_(cell)
+
class CustomTableCell(NSCell):
def init(self):
self = super(CustomTableCell, self).init()
@@ -368,14 +389,14 @@ class CustomTableCell(NSCell):
self.layout_manager.reset()
self.set_wrapper_data()
cell_size = self.wrapper.get_size(self.default_drawing_style,
- self.layout_manager)
+ self.layout_manager)
return cell_size[1]
def make_drawing_style(self, frame, view):
text_color = None
if (self.isHighlighted() and frame is not None and
(view.isDescendantOf_(view.window().firstResponder()) or
- view.gradientHighlight) and view.window().isMainWindow()):
+ view.gradientHighlight) and view.window().isMainWindow()):
text_color = NSColor.whiteColor()
return DrawingStyle(text_color=text_color)
@@ -395,7 +416,8 @@ class CustomTableCell(NSCell):
else:
pad_left = 0
drawing_rect = NSMakeRect(frame.origin.x + pad_left, frame.origin.y,
- frame.size.width - pad_left, frame.size.height)
+ frame.size.width - pad_left,
+ frame.size.height)
context = DrawingContext(view, drawing_rect, drawing_rect)
context.style = self.make_drawing_style(frame, view)
self.layout_manager.reset()
@@ -406,7 +428,7 @@ class CustomTableCell(NSCell):
hover_pos = [hover_pos[0] - hover_adjustment[0],
hover_pos[1] - hover_adjustment[1]]
self.wrapper.render(context, self.layout_manager, self.isHighlighted(),
- self.hotspot, hover_pos)
+ self.hotspot, hover_pos)
NSGraphicsContext.currentContext().restoreGraphicsState()
def setObjectValue_(self, value):
@@ -415,6 +437,7 @@ class CustomTableCell(NSCell):
def set_wrapper_data(self):
self.wrapper.__dict__.update(self.object_value)
+
class CustomCellRenderer(CellRendererBase):
CellClass = CustomTableCell
@@ -440,22 +463,26 @@ class CustomCellRenderer(CellRendererBase):
def hotspot_test(self, style, layout, x, y, width, height):
return None
+
class InfoListTableCell(CustomTableCell):
def set_wrapper_data(self):
self.wrapper.info, self.wrapper.attrs, self.wrapper.group_info = \
self.object_value
+
class InfoListRenderer(CustomCellRenderer):
CellClass = InfoListTableCell
def hotspot_test(self, style, layout, x, y, width, height):
return None
+
class InfoListRendererText(CellRenderer):
def build_cell(self):
cell = MiroTableInfoListTextCell.alloc()
return cell.initWithAttrGetter_(self.get_value)
+
def calc_row_height(view, model_row):
max_height = 0
model = view.dataSource().model
@@ -469,9 +496,10 @@ def calc_row_height(view, model_row):
max_height = 12
return max_height + view.row_spacing
+
class TableViewDelegate(NSObject):
def tableView_willDisplayCell_forTableColumn_row_(self, view, cell,
- column, row):
+ column, row):
column = view.column_index_map[column]
cell.column = column
cell.row = row
@@ -486,7 +514,8 @@ class TableViewDelegate(NSObject):
if column_wrapper._column is column:
column_wrapper.emit('clicked')
- def tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_(self, tableview, cell, rect, column, row, location):
+ def tableView_toolTipForCell_rect_tableColumn_row_mouseLocation_(
+ self, tableview, cell, rect, column, row, location):
wrapper = wrappermap.wrapper(tableview)
iter = tableview.dataSource().model.iter_for_row(tableview, row)
for wrapper_column in wrapper.columns:
@@ -494,6 +523,7 @@ class TableViewDelegate(NSObject):
break
return (wrapper.get_tooltip(iter, wrapper_column), rect)
+
class VariableHeightTableViewDelegate(TableViewDelegate):
def tableView_heightOfRow_(self, table_view, row):
model = table_view.dataSource().model
@@ -502,12 +532,12 @@ class VariableHeightTableViewDelegate(TableViewDelegate):
return 12
return calc_row_height(table_view, model[iter])
-
# TableViewCommon is a hack to do a Mixin class. We want the same behaviour
# for our table views and our outline views. Normally we would use a Mixin,
# but that doesn't work with pyobjc. Instead we define the common code in
# TableViewCommon, then copy it into MiroTableView and MiroOutlineView
+
class TableViewCommon(object):
def init(self):
self = super(self.__class__, self).init()
@@ -537,11 +567,11 @@ class TableViewCommon(object):
# get mouseMoved events whenever the mouse is inside our view.
self.tracking_area = NSTrackingArea.alloc()
self.tracking_area.initWithRect_options_owner_userInfo_(
- self.visibleRect(),
- NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved |
- NSTrackingActiveInKeyWindow,
- self,
- nil)
+ self.visibleRect(),
+ NSTrackingMouseEnteredAndExited | NSTrackingMouseMoved |
+ NSTrackingActiveInKeyWindow,
+ self,
+ nil)
self.addTrackingArea_(self.tracking_area)
def addTableColumn_(self, column):
@@ -569,7 +599,7 @@ class TableViewCommon(object):
if wrappermap.wrapper(self).draws_selection:
if not self.gradientHighlight:
return self.SuperClass.highlightSelectionInClipRect_(self,
- rect)
+ rect)
context = NSGraphicsContext.currentContext()
focused = self.isDescendantOf_(self.window().firstResponder())
for row in tablemodel.list_from_nsindexset(self.selectedRowIndexes()):
@@ -606,11 +636,13 @@ class TableViewCommon(object):
# draw the top line
NSColor.colorWithDeviceRed_green_blue_alpha_(*top_line_color).set()
NSRectFill(top)
- bottom = NSMakeRect(rect.origin.x, rect.origin.y + rect.size.height - 2,
+ bottom = NSMakeRect(rect.origin.x,
+ rect.origin.y + rect.size.height - 2,
rect.size.width, 1)
NSColor.colorWithDeviceRed_green_blue_alpha_(*bottom_line_color).set()
NSRectFill(bottom)
- highlight = NSMakeRect(rect.origin.x, rect.origin.y + rect.size.height - 1,
+ highlight = NSMakeRect(rect.origin.x,
+ rect.origin.y + rect.size.height - 1,
rect.size.width, 1)
NSColor.colorWithDeviceRed_green_blue_alpha_(0.918, 0.925, 0.941, 1.0).set()
NSRectFill(highlight)
@@ -620,7 +652,7 @@ class TableViewCommon(object):
rect.size.height -= 3
NSRectClip(rect)
gradient = Gradient(rect.origin.x, rect.origin.y,
- rect.origin.x, rect.origin.y + rect.size.height)
+ rect.origin.x, rect.origin.y + rect.size.height)
gradient.set_start_color(start_color)
gradient.set_end_color(end_color)
gradient.draw()
@@ -647,8 +679,8 @@ class TableViewCommon(object):
# anything to the clip rect, but do draw the area before the
# first row and after the last row.
self.drawBackgroundOutsideContent_clipRect_(col_index,
- clip_rect)
- if col_index == number_of_columns - 1: # last column
+ clip_rect)
+ if col_index == number_of_columns - 1: # last column
if not column_rect:
column_rect = self.rectOfColumn_(col_index)
column_right = column_rect.origin.x + column_rect.size.width
@@ -688,7 +720,7 @@ class TableViewCommon(object):
if first_row_rect.origin.y > total_rect.origin.y:
height = first_row_rect.origin.y - total_rect.origin.y
NSRectFill(NSMakeRect(total_rect.origin.x, total_rect.origin.y,
- total_rect.size.width, height))
+ total_rect.size.width, height))
# fill the area below the last row
last_row_rect = self.rectOfRow_(self.numberOfRows()-1)
@@ -696,7 +728,7 @@ class TableViewCommon(object):
y = NSMaxY(last_row_rect) + 1
height = NSMaxY(total_rect) - NSMaxY(last_row_rect)
NSRectFill(NSMakeRect(total_rect.origin.x, y,
- total_rect.size.width, height))
+ total_rect.size.width, height))
def drawRow_clipRect_(self, row, clip_rect):
self.SuperClass.drawRow_clipRect_(self, row, clip_rect)
@@ -715,7 +747,7 @@ class TableViewCommon(object):
rect.origin.y = NSMaxY(rect) - self.group_line_width
rect.size.height = self.group_line_width
NSColor.colorWithDeviceRed_green_blue_alpha_(
- *self.group_line_color).set()
+ *self.group_line_color).set()
NSRectFill(rect)
def canDragRowsWithIndexes_atPoint_(self, indexes, point):
@@ -734,7 +766,7 @@ class TableViewCommon(object):
if (self.hover_info is not None and self.hover_info != (row, column)):
# left a cell, redraw it the old one
rect = self.frameOfCellAtColumn_row_(self.hover_info[1],
- self.hover_info[0])
+ self.hover_info[0])
self.setNeedsDisplayInRect_(rect)
if row == -1 or column == -1:
# corner case: we got a mouseMoved_ event, but the pointer is
@@ -746,7 +778,7 @@ class TableViewCommon(object):
self.setNeedsDisplayInRect_(rect)
# recalculate hover_pos and hover_info
self.hover_pos = (location[0] - rect[0][0],
- location[0] - rect[0][1])
+ location[0] - rect[0][1])
self.hover_info = (row, column)
def mouseExited_(self, event):
@@ -754,7 +786,7 @@ class TableViewCommon(object):
# mouse left our window, unset hover and redraw the cell that the
# mouse was in
rect = self.frameOfCellAtColumn_row_(self.hover_info[1],
- self.hover_info[0])
+ self.hover_info[0])
self.setNeedsDisplayInRect_(rect)
self.hover_pos = self.hover_info = None
@@ -883,6 +915,7 @@ class TableViewCommon(object):
else:
self.SuperClass.keyDown_(self, event)
+
class TableColumn(signals.SignalEmitter):
def __init__(self, title, renderer, header=None, **attrs):
signals.SignalEmitter.__init__(self)
@@ -951,6 +984,7 @@ class TableColumn(signals.SignalEmitter):
self.index = index
self.renderer.set_index(index)
+
class MiroTableColumn(NSTableColumn):
def set_attrs(self, attrs):
self._attrs = attrs
@@ -958,11 +992,13 @@ class MiroTableColumn(NSTableColumn):
def attrs(self):
return self._attrs
+
class MiroTableView(NSTableView):
SuperClass = NSTableView
for name, value in TableViewCommon.__dict__.items():
locals()[name] = value
+
class MiroTableHeaderView(NSTableHeaderView):
def initWithFrame_(self, frame):
# frame is not used
@@ -993,6 +1029,7 @@ class MiroTableHeaderView(NSTableHeaderView):
context.stroke()
NSGraphicsContext.currentContext().restoreGraphicsState()
+
class MiroTableHeaderCell(NSTableHeaderCell):
def init(self):
self = super(MiroTableHeaderCell, self).init()
@@ -1016,13 +1053,13 @@ class MiroTableHeaderCell(NSTableHeaderCell):
NSGraphicsContext.currentContext().saveGraphicsState()
drawing_rect = NSMakeRect(frame.origin.x, frame.origin.y,
- frame.size.width, frame.size.height)
+ frame.size.width, frame.size.height)
context = DrawingContext(view, drawing_rect, drawing_rect)
context.style = self.make_drawing_style(frame, view)
self.layout_manager.reset()
columns = wrappermap.wrapper(view.tableView()).columns
header_cells = [c._column.headerCell() for c in columns]
- background_only = not self in header_cells
+ background_only = self not in header_cells
self.button.draw(context, self.layout_manager, background_only)
NSGraphicsContext.currentContext().restoreGraphicsState()
@@ -1030,10 +1067,11 @@ class MiroTableHeaderCell(NSTableHeaderCell):
text_color = None
if (self.isHighlighted() and frame is not None and
(view.isDescendantOf_(view.window().firstResponder()) or
- view.gradientHighlight)):
+ view.gradientHighlight)):
text_color = NSColor.whiteColor()
return DrawingStyle(text_color=text_color)
+
class CocoaSelectionOwnerMixin(SelectionOwnerMixin):
"""Cocoa-specific methods for selection management.
@@ -1086,6 +1124,7 @@ class CocoaSelectionOwnerMixin(SelectionOwnerMixin):
def _iter_from_string(self, row):
return self.model.iter_for_row(self.tableview, int(row))
+
class CocoaScrollbarOwnerMixin(ScrollbarOwnerMixin):
"""Manages a TableView's scroll position."""
def __init__(self):
@@ -1109,8 +1148,8 @@ class CocoaScrollbarOwnerMixin(ScrollbarOwnerMixin):
# NOTE: intentional changes are BoundsChanged; bad changes are
# FrameChanged
clipview.setPostsFrameChangedNotifications_(YES)
- self.clipview_notifications.connect(self.on_scroll_changed,
- 'NSViewFrameDidChangeNotification')
+ self.clipview_notifications.connect(
+ self.on_scroll_changed, 'NSViewFrameDidChangeNotification')
# NOTE: scrollPoint_ just scrolls the point into view; we want to
# scroll the view so that the point becomes the origin
size = self.tableview.visibleRect().size
@@ -1144,8 +1183,8 @@ class CocoaScrollbarOwnerMixin(ScrollbarOwnerMixin):
return NSPointToPoint(point)
def on_scroll_changed(self, notification):
- # we get this notification when the scroll position has been reset (when
- # it should not have been); put it back
+ # we get this notification when the scroll position has been reset
+ # (when it should not have been); put it back
self.set_scroll_position(self.scroll_position)
# this notification also serves as the Cocoa equivalent to
# on_scroll_range_changed, which tells super when we may be ready to
@@ -1163,6 +1202,7 @@ class CocoaScrollbarOwnerMixin(ScrollbarOwnerMixin):
raise errors.WidgetNotReadyError('enclosingScrollView')
return scroller
+
class SorterPadding(NSView):
# Why is this a Mac only widget? Because the wrappermap mechanism requires
# us to layout the widgets (so that we may call back to the portable API
@@ -1192,6 +1232,7 @@ class SorterPadding(NSView):
context.rel_line_to(0, context.height)
context.stroke()
+
class TableView(CocoaSelectionOwnerMixin, CocoaScrollbarOwnerMixin, Widget):
"""Displays data as a tabular list. TableView follows the GTK TreeView
widget fairly closely.
@@ -1238,7 +1279,7 @@ class TableView(CocoaSelectionOwnerMixin, CocoaScrollbarOwnerMixin, Widget):
self.model_signal_ids = [
self.model.connect_weak('row-changed', self.on_row_change),
self.model.connect_weak('structure-will-change',
- self.on_model_structure_change),
+ self.on_model_structure_change),
]
self.iters_to_update = []
self.height_changed = self.reload_needed = False
@@ -1386,13 +1427,14 @@ class TableView(CocoaSelectionOwnerMixin, CocoaScrollbarOwnerMixin, Widget):
width = self.viewport.get_width()
height = self.viewport.get_height()
if self._should_place_header_view():
- self.header_view.setFrame_(NSMakeRect(x, y,
- width, self.header_height))
- self.tableview.setFrame_(NSMakeRect(x, y + self.header_height,
- width, height - self.header_height))
+ self.header_view.setFrame_(
+ NSMakeRect(x, y, width, self.header_height))
+ self.tableview.setFrame_(
+ NSMakeRect(x, y + self.header_height,
+ width, height - self.header_height))
else:
- self.header_view.setFrame_(NSMakeRect(x, y,
- width, self.header_height))
+ self.header_view.setFrame_(
+ NSMakeRect(x, y, width, self.header_height))
self.tableview.setFrame_(NSMakeRect(x, y, width, height))
if self.auto_resize:
@@ -1552,7 +1594,7 @@ class TableView(CocoaSelectionOwnerMixin, CocoaScrollbarOwnerMixin, Widget):
def set_background_color(self, (red, green, blue)):
color = NSColor.colorWithDeviceRed_green_blue_alpha_(red, green, blue,
- 1.0)
+ 1.0)
self.tableview.setBackgroundColor_(color)
def set_show_headers(self, show):