def link_panel_unchecked(self, panelwrapper): dirtabwidget = panelwrapper.widget if dirtabwidget.buddy: buddy = dirtabwidget.buddy qpath(buddy, '^[PanelWrapper]').action_link_panel.setChecked(False) panelwrapper.action_link_panel.setChecked(False) dirtabwidget.unlink(dirtabwidget.buddy) if len(self.links) < 2 and panelwrapper.widget in self.panel_links: self.panel_links.remove(panelwrapper.widget)
def unserialize(self, data): #print "UNSERIALIZE", self, data ids = {} sizes, widget_data = data for dirtabdata in widget_data: dirtabwidget = self.new_panel() dirtabwidget.unserialize(dirtabdata) widget_id = dirtabdata.my_id buddy_id = dirtabdata.buddy_id filewidget_index = dirtabdata.filewidget_index ids[widget_id] = (dirtabwidget, buddy_id, filewidget_index) # All widgets are created at this point, now link buddies for widget_id, (widget, buddy_id, filewidget_index) in ids.iteritems(): if filewidget_index is not None: buddy = ids[buddy_id][0] for dirtab in widget, buddy: panelwrapper = qpath(dirtab, '^[PanelWrapper]') panelwrapper.action_link_panel.setChecked(True) filewidget = widget.widget(filewidget_index) widget.link(buddy, filewidget) self.splitter.setSizes(sizes)
def _focus_changed(self, old, new): if new is None: return if isinstance(new, DirTabWidget): dirtabwidget = new else: try: dirtabwidget = qpath(new, "^[DirTabWidget]") except ObjectNotFound: if new.parent() and \ new.parent().property('is_panel_wrapper').isValid(): print "parent.is_panel_wrapper" dirtabwidget = new.widget elif new.property('is_panel_wrapper').toBool(): dirtabwidget = new.widget else: return self._set_active_dirtab(dirtabwidget)