def get_layout(self): """ Returns a LayoutItem that reflects the layout of the current splitter. """ ORIENTATION_MAP = {QtCore.Qt.Horizontal: 'horizontal', QtCore.Qt.Vertical: 'vertical'} # obtain layout based on children layouts if not self.is_leaf(): layout = Splitter(self.leftchild.get_layout(), self.rightchild.get_layout(), orientation=ORIENTATION_MAP[self.orientation()]) # obtain the Tabbed layout else: if self.is_empty(): layout = Tabbed(PaneItem(id=-1, width=self.width(), height=self.height()), active_tab=0) else: items = [] for i in range(self.tabwidget().count()): widget = self.tabwidget().widget(i) # mark identification for empty_widget editor = self.editor_area._get_editor(widget) item_id = self.editor_area.editors.index(editor) item_width = self.width() item_height = self.height() items.append(PaneItem(id=item_id, width=item_width, height=item_height)) layout = Tabbed(*items, active_tab=self.tabwidget().currentIndex()) return layout
def _default_layout_default(self): return TaskLayout(left=Splitter(Splitter(PaneItem('pychron.pipeline.pane', width=200), PaneItem('pychron.pipeline.analyses', width=200)), PaneItem('pychron.pipeline.repository'), orientation='vertical'))
def _default_layout_default(self): return TaskLayout( left=Splitter( PaneItem('pychron.spectrometer.controls'), orientation='vertical'), right=VSplitter(PaneItem('pychron.spectrometer.intensities'), PaneItem('pychron.spectrometer.readout')))
def _default_layout_default(self): return TaskLayout(left=VSplitter( PaneItem('pychron.mass_calibration.cal_points'), PaneItem('pychron.mass_calibration.controls'), ) )
def _default_layout_default(self): left = VSplitter(PaneItem('pychron.sys_mon.analyses'), PaneItem('pychron.processing.controls')) right = Tabbed(PaneItem('pychron.processing.figures.plotter_options'), PaneItem('pychron.console')) return TaskLayout(left=left, right=right)
def _default_layout_default(self): return TaskLayout( left=PaneItem('{}.stage'.format(self.id)), top=Splitter( PaneItem('{}.control'.format(self.id), width=200), PaneItem('pychron.lasers.pulse', width=300), Tabbed(PaneItem('pychron.lasers.optics'), PaneItem('{}.supplemental'.format(self.id)))))
def _default_layout_default(self): return TaskLayout( id='pychron.processing.reduction', left=HSplitter( browser_pane_item(), Tabbed(PaneItem('pychron.processing.unknowns'), PaneItem('pychron.processing.references'), PaneItem('pychron.processing.controls')))) # ============= EOF =============================================
def _default_layout_default(self): return TaskLayout( id='pychron.processing', left=HSplitter( PaneItem('pychron.browser'), Tabbed(PaneItem('pychron.processing.figures.saved_figures'), PaneItem('pychron.processing.unknowns'), PaneItem('pychron.processing.figures.plotter_options'), PaneItem('pychron.plot_editor')))) #============= EOF ============================================= #@classmethod # def group_by(cls, editor, items, key): # ids = [] # for it in items: # v = key(it) # if not v in ids: # ids.append(v) # # sitems = sorted(items, key=key) # for k, analyses in groupby(sitems, key=key): # gid = ids.index(k) # idxs = [items.index(ai) for ai in analyses] # editor.set_group(idxs, gid, refresh=False) # def _append_figure(self, klass): # """ # if selected_samples append all analyses # else append selected analyses # # """ # return # # if isinstance(self.active_editor, klass): # sa = self.analysis_table.selected # if sa: # ts = self.manager.make_analyses(sa) # else: # ts = [ai for si in self.selected_sample # for ai in self._get_sample_analyses(si)] # # ans = self.manager.make_analyses(ts) # if ans: # pans = self.active_editor.analyses # uuids = [p.uuid for p in pans] # fans = [ai for ai in ans if ai.uuid not in uuids] # # pans.extend(fans) # self.active_editor.trait_set(unknowns=pans) # # gid = 0 # for _, gans in groupby(self.active_editor.unknowns, key=lambda x: x.sample): # for ai in gans: # ai.group_id = gid # gid += 1 # # self.active_editor.rebuild(compress_groups=False)
def _default_layout_default(self): return TaskLayout( id='pychron.processing.ic_factor', left=HSplitter( PaneItem('pychron.browser'), VSplitter( Tabbed(PaneItem('pychron.processing.unknowns'), PaneItem('pychron.processing.references')), PaneItem('pychron.processing.controls'), )))
def _default_layout_default(self): return TaskLayout( id='pychron.processing', left=HSplitter( VSplitter( PaneItem('pychron.processing.irradiation'), Tabbed(PaneItem('pychron.processing.unknowns'), PaneItem('pychron.processing.references'), PaneItem('pychron.processing.analyses')), PaneItem('pychron.processing.controls'))))
def _default_layout_default(self): return TaskLayout( # top=PaneItem('pychron.extraction_line.gauges'), left=Splitter(PaneItem('pychron.video.source'), PaneItem('pychron.video.controls'), orientation='vertical'), # width=500, # height=500 )
def _default_layout_default(self): return TaskLayout( left=Splitter( PaneItem('pychron.labnumber.irradiation'), Tabbed( # PaneItem('pychron.labnumber.extractor'), PaneItem('pychron.labnumber.editor')), orientation='vertical'), right=Splitter(PaneItem('pychron.entry.level'), PaneItem('pychron.entry.chronology'), PaneItem('pychron.entry.irradiation_canvas'), orientation='vertical'))
def _default_layout_default(self): #c=PaneItem('pychron.smart_selection.configure') search = Tabbed(PaneItem('pychron.browser')) #PaneItem('pychron.search.query')) #a=Splitter(d,orientation='vertical') unk = PaneItem('pychron.processing.unknowns') left = Splitter(search, unk) return TaskLayout(id='pychron.processing.batch', left=left)
def _default_layout_default(self): return TaskLayout( id='pychron.processing.isotope_evolution', left=HSplitter( browser_pane_item(), # Tabbed(PaneItem('pychron.browser'), # PaneItem('pychron.search.query') # ), VSplitter( Tabbed(PaneItem('pychron.plot_editor'), PaneItem('pychron.processing.unknowns')), PaneItem('pychron.processing.controls'))))
def _default_layout_default(self): return TaskLayout( id='pychron.processing.blanks', left=HSplitter( Tabbed( PaneItem('pychron.browser'), PaneItem('pychron.search.query'), ), Tabbed( PaneItem('pychron.processing.unknowns'), PaneItem('pychron.processing.references'), PaneItem('pychron.processing.controls') ), ), )
def _default_layout_default(self): return TaskLayout( left=Splitter(PaneItem('pychron.spectrometer.controls'), Tabbed(PaneItem('pychron.spectrometer.intensities'), PaneItem('pychron.spectrometer.readout')), orientation='vertical') # right=Splitter( # PaneItem('pychron.experiment.stats'), # PaneItem('pychron.experiment.console'), # orientation='vertical' # ), # bottom=PaneItem('pychron.experiment.console'), # top=PaneItem('pychron.experiment.controls') )
def _get_pane(self, dock_widget): """ Returns a PaneItem for a control. """ for dock_pane in self.state.dock_panes: if dock_pane.control == dock_widget: return PaneItem(id=dock_pane.id) return None
def _default_layout_default(self): return TaskLayout( left=Splitter( PaneItem('pychron.wait', height=100), Tabbed(PaneItem('pychron.experiment.factory'), PaneItem('pychron.experiment.isotope_evolution')), orientation='vertical'), right=Splitter(Tabbed( PaneItem('pychron.experiment.stats'), PaneItem('pychron.console', height=425), PaneItem('pychron.experiment.explanation', height=425), PaneItem('pychron.experiment.connection_status')), PaneItem('pychron.extraction_line.canvas_dock'), orientation='vertical'), top=PaneItem('pychron.experiment.controls'))
def _default_layout_default(self): return TaskLayout(left=Splitter(Splitter( PaneItem('pychron.sys_mon.connection'), PaneItem('pychron.processing.controls'), orientation='vertical'), PaneItem('pychron.sys_mon.analyses'), orientation='horizontal'), right=VSplitter( Tabbed(PaneItem('pychron.console'), PaneItem('pychron.plot_editor')), PaneItem('pychron.dashboard.client')))
def _default_layout_default(self): return TaskLayout( id='pychron.repository', left=HSplitter(PaneItem('pychron.browser'), ) # left=HSplitter( # PaneItem('pychron.browser'), # Splitter( # Tabbed( # PaneItem('pychron.processing.unknowns'), # # PaneItem('pychron.processing.figures.plotter_options') # ), # # Tabbed( # # PaneItem('pychron.processing.controls'), # # PaneItem('pychron.processing.editor'), # # ), # orientation='vertical' # ) # ), )
def _default_layout_default(self): # left = Splitter(Tabbed(PaneItem('pychron.pyscript.commands', height=300, width=125), # PaneItem('pychron.pyscript.script_browser')), # PaneItem('pychron.pyscript.commands_editor', height=100, width=125), # orientation='vertical') # bottom = PaneItem('pychron.pyscript.description') left = VSplitter(PaneItem('pychron.pyscript.commands'), PaneItem('pychron.pyscript.commands_editor')) if self.use_git_repo: right = Tabbed(PaneItem('pychron.pyscript.repo'), PaneItem('pychron.pyscript.context_editor')) else: right = VSplitter( PaneItem('pychron.pyscript.context_editor', width=200), PaneItem('pychron.pyscript.script_browser', width=200)) return TaskLayout(id='pychron.pyscript', left=left, right=right)
def _default_layout_default(self): a = Tabbed(browser_pane_item(), PaneItem('pychron.processing.figures.plotter_options')) b = PaneItem('pychron.processing.unknowns') left = HSplitter(a, b) # HSplitter(VSplitter( # Tabbed(browser_pane_item(), # PaneItem('pychron.processing.figures.plotter_options'), # PaneItem('pychron.plot_editor'))), # PaneItem('pychron.processing.unknowns')) return TaskLayout(id='pychron.processing', left=left) # return TaskLayout( # id='pychron.processing', # left=HSplitter( # browser_pane_item(), # Tabbed( # # PaneItem('pychron.processing.figures.saved_figures'), # PaneItem('pychron.processing.unknowns'), # PaneItem('pychron.processing.figures.plotter_options'), # PaneItem('pychron.plot_editor')))) # ============= EOF ============================================= #@classmethod # def group_by(cls, editor, items, key): # ids = [] # for it in items: # v = key(it) # if not v in ids: # ids.append(v) # # sitems = sorted(items, key=key) # for k, analyses in groupby(sitems, key=key): # gid = ids.index(k) # idxs = [items.index(ai) for ai in analyses] # editor.set_group(idxs, gid, refresh=False) # def _append_figure(self, klass): # """ # if selected_samples append all analyses # else append selected analyses # # """ # return # # if isinstance(self.active_editor, klass): # sa = self.analysis_table.selected # if sa: # ts = self.manager.make_analyses(sa) # else: # ts = [ai for si in self.selected_sample # for ai in self._get_sample_analyses(si)] # # ans = self.manager.make_analyses(ts) # if ans: # pans = self.active_editor.analyses # uuids = [p.uuid for p in pans] # fans = [ai for ai in ans if ai.uuid not in uuids] # # pans.extend(fans) # self.active_editor.trait_set(unknowns=pans) # # gid = 0 # for _, gans in groupby(self.active_editor.unknowns, key=lambda x: x.sample): # for ai in gans: # ai.group_id = gid # gid += 1 # # self.active_editor.rebuild(compress_groups=False) # # new figure editor # editor = klass( # name=name, # processor=self.manager) # # if ans is None: # ans = self.unknowns_pane.items # # if ans: # editor.analyses = ans # editor.set_name() # editor.rebuild() # # if set_ans: # # self.unknowns_pane.items = ans # # self._open_editor(editor) # # # add_associated = False # # if not add_associated: # # self.debug('Not adding associated editors') # # else: # # if tklass and add_table: # # # open table # # teditor = self._new_table(ans, name, tklass) # # if teditor: # # editor.associated_editors.append(weakref.ref(teditor)()) # # # # if add_iso: # # # open associated isochron # # ieditor = self._new_associated_isochron(ans, name) # # if ieditor: # # editor.associated_editors.append(weakref.ref(ieditor)()) # # ieditor.parent_editor = editor # # # activate figure editor # # self.editor_area.activate_editor(editor) # return editor
def _default_layout_default(self): return TaskLayout(left=PaneItem('pychron.loading.controls'), bottom=PaneItem('pychron.loading.positions'))
def _default_layout_default(self): return TaskLayout(top=PaneItem('pychron.extraction_line.gauges'), left=PaneItem('pychron.extraction_line.explanation'), right=PaneItem('pychron.console'))
def _default_layout_default(self): return TaskLayout(left=PaneItem('pychron.thermofurnace.controls'))
def _default_layout_default(self): l = TaskLayout(left=VSplitter( PaneItem('hardware.devices'), Tabbed(PaneItem('hardware.configuration'), PaneItem( 'hardware.info')))) return l
def _default_layout_default(self): return TaskLayout(left=PaneItem('pychron.dashboard.devices'))
def split_editors(self, a, b, h1=-1, h2=-1, orientation='horizontal'): layout = Splitter(PaneItem(id=a, height=h1), PaneItem(id=b, height=h2), orientation=orientation) self.set_editor_layout(layout)
def _default_layout_default(self): return TaskLayout(left=PaneItem(id='pychron.image.browser'), right=PaneItem(id='pychron.image.info'))
def _default_layout_default(self): return TaskLayout(left=PaneItem('pychron.repo.selection'))