Skip to content

Commit

Permalink
Fix default font size determination in scripts and Jupyter notebooks
Browse files Browse the repository at this point in the history
The Qt app instance must already be running before the default font size can be determined, so in this change that step is delayed until ``create_ephyviewer_window`` is called.
  • Loading branch information
jpgill86 committed Mar 12, 2020
1 parent 0c93b4d commit 13544f7
Showing 1 changed file with 18 additions and 17 deletions.
35 changes: 18 additions & 17 deletions neurotic/gui/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,15 +103,6 @@ def __init__(self, metadata, blk, lazy = False):
'label_fill_color': '#DDDDDDDD', # transparent light gray
}

self.default_font_size = ephyviewer.QT.QFont().pointSize()
self.ui_scales = {
'tiny': {'app_font_size': self.default_font_size-4, 'channel_label_size': self.default_font_size-4, 'scatter_size': 4},
'small': {'app_font_size': self.default_font_size-2, 'channel_label_size': self.default_font_size-2, 'scatter_size': 6},
'medium': {'app_font_size': self.default_font_size, 'channel_label_size': self.default_font_size, 'scatter_size': 8},
'large': {'app_font_size': self.default_font_size+4, 'channel_label_size': self.default_font_size+4, 'scatter_size': 10},
'huge': {'app_font_size': self.default_font_size+8, 'channel_label_size': self.default_font_size+8, 'scatter_size': 12},
}

# hide and disable viewers for which inputs are missing
if not self.blk.segments[0].analogsignals:
self.viewer_settings['traces']['show'] = False
Expand Down Expand Up @@ -304,9 +295,19 @@ def create_ephyviewer_window(self, theme='light', ui_scale='medium', support_inc
# delete on close so that memory and file resources are released
win.setAttribute(ephyviewer.QT.WA_DeleteOnClose, True)

# determine ui_scale parameters
default_font_size = ephyviewer.QT.QFont().pointSize()
ui_scales = {
'tiny': {'app_font_size': default_font_size-4, 'channel_label_size': default_font_size-4, 'scatter_size': 4},
'small': {'app_font_size': default_font_size-2, 'channel_label_size': default_font_size-2, 'scatter_size': 6},
'medium': {'app_font_size': default_font_size, 'channel_label_size': default_font_size, 'scatter_size': 8},
'large': {'app_font_size': default_font_size+4, 'channel_label_size': default_font_size+4, 'scatter_size': 10},
'huge': {'app_font_size': default_font_size+8, 'channel_label_size': default_font_size+8, 'scatter_size': 12},
}

# set the font size for most text
font = win.font()
font.setPointSize(self.ui_scales[ui_scale]['app_font_size'])
font.setPointSize(ui_scales[ui_scale]['app_font_size'])
win.setFont(font)

########################################################################
Expand Down Expand Up @@ -426,9 +427,9 @@ def create_ephyviewer_window(self, theme='light', ui_scale='medium', support_inc

trace_view.params['xratio'] = self.metadata.get('past_fraction', 0.3)
trace_view.params['auto_scale_factor'] = 0.02
trace_view.params['scatter_size'] = self.ui_scales[ui_scale]['scatter_size']
trace_view.params['scatter_size'] = ui_scales[ui_scale]['scatter_size']
trace_view.params['line_width'] = line_width
trace_view.params['label_size'] = self.ui_scales[ui_scale]['channel_label_size']
trace_view.params['label_size'] = ui_scales[ui_scale]['channel_label_size']
trace_view.params['display_labels'] = True
trace_view.params['antialias'] = True

Expand Down Expand Up @@ -488,7 +489,7 @@ def create_ephyviewer_window(self, theme='light', ui_scale='medium', support_inc

trace_rauc_view.params['xratio'] = self.metadata.get('past_fraction', 0.3)
trace_rauc_view.params['line_width'] = line_width
trace_rauc_view.params['label_size'] = self.ui_scales[ui_scale]['channel_label_size']
trace_rauc_view.params['label_size'] = ui_scales[ui_scale]['channel_label_size']
trace_rauc_view.params['display_labels'] = True
trace_rauc_view.params['display_offset'] = True
trace_rauc_view.params['antialias'] = True
Expand Down Expand Up @@ -579,7 +580,7 @@ def create_ephyviewer_window(self, theme='light', ui_scale='medium', support_inc
pass

spike_train_view.params['xratio'] = self.metadata.get('past_fraction', 0.3)
spike_train_view.params['label_size'] = self.ui_scales[ui_scale]['channel_label_size']
spike_train_view.params['label_size'] = ui_scales[ui_scale]['channel_label_size']

########################################################################
# TRACES OF FIRING RATES
Expand Down Expand Up @@ -607,7 +608,7 @@ def create_ephyviewer_window(self, theme='light', ui_scale='medium', support_inc

trace_rates_view.params['xratio'] = self.metadata.get('past_fraction', 0.3)
trace_rates_view.params['line_width'] = line_width
trace_rates_view.params['label_size'] = self.ui_scales[ui_scale]['channel_label_size']
trace_rates_view.params['label_size'] = ui_scales[ui_scale]['channel_label_size']
trace_rates_view.params['display_labels'] = True
trace_rates_view.params['display_offset'] = True
trace_rates_view.params['antialias'] = True
Expand Down Expand Up @@ -665,7 +666,7 @@ def create_ephyviewer_window(self, theme='light', ui_scale='medium', support_inc
pass

epoch_view.params['xratio'] = self.metadata.get('past_fraction', 0.3)
epoch_view.params['label_size'] = self.ui_scales[ui_scale]['channel_label_size']
epoch_view.params['label_size'] = ui_scales[ui_scale]['channel_label_size']

########################################################################
# EPOCH ENCODER
Expand Down Expand Up @@ -707,7 +708,7 @@ def create_ephyviewer_window(self, theme='light', ui_scale='medium', support_inc
# TODO add support for combo_cmap

epoch_encoder.params['xratio'] = self.metadata.get('past_fraction', 0.3)
epoch_encoder.params['label_size'] = self.ui_scales[ui_scale]['channel_label_size']
epoch_encoder.params['label_size'] = ui_scales[ui_scale]['channel_label_size']

########################################################################
# VIDEO
Expand Down

0 comments on commit 13544f7

Please sign in to comment.