def focusInEvent(self, event): Tree.focusInEvent(self, event) node = self.GetSelectedNode() if node and isinstance(node, ProjectNode): appdata.active_document = node.doc else: appdata.active_document = None
def dragMoveEvent(self, event): Tree.dragMoveEvent(self, event) if not event.isAccepted(): mimeData = event.mimeData() data = self.decodeMime(mimeData) if data and 'paths' in data: event.acceptProposedAction()
def dragMoveEvent(self, event): Tree.dragMoveEvent(self, event) if not event.isAccepted(): mimeData = event.mimeData() data = self.decodeMime(mimeData) if data and "paths" in data: event.acceptProposedAction()
def dropEvent(self, event): Tree.dropEvent(self, event) if not event.isAccepted(): mimeData = event.mimeData() data = self.decodeMime(mimeData) if data and 'paths' in data: self.OpenPaths(data['paths'], self.root) event.accept()
def dropEvent(self, event): Tree.dropEvent(self, event) if not event.isAccepted(): mimeData = event.mimeData() data = self.decodeMime(mimeData) if data and "paths" in data: self.OpenPaths(data["paths"], self.root) event.accept()
def decodeMime(self, mimeData): if mimeData.hasUrls(): paths = [ os.path.normpath(url.toLocalFile()) for url in mimeData.urls() ] return {'paths': paths} return Tree.decodeMime(self, mimeData)
def __init__(self, parent): Tree.__init__(self, parent) self.setMouseTracking(True) appdata.project = self self.closing = False self.update_requested = False self.root = ProjectRootNode(self) self.ResetProject() self.root.Expand() self.setItemDelegate(ProjectTreeDelegate(self)) self.projectfile = None self.header().setStretchLastSection(False) self.header().setResizeMode(QHeaderView.ResizeToContents) self.horizontalScrollBar().valueChanged.connect(lambda value: self.viewport().repaint()) self.addActions(framework.menu.MakeActions("workbench.contextmenu.project_actions", self)) self.changed = False self.projectdata = self.CurrentProjectData() self.autosavedata = None self.docs = [] # keep model self.model = self.model()
def __init__(self, parent): Tree.__init__(self, parent) self.setMouseTracking(True) appdata.project = self self.closing = False self.update_requested = False self.root = ProjectRootNode(self) self.ResetProject() self.root.Expand() self.setItemDelegate(ProjectTreeDelegate(self)) self.projectfile = None self.header().setStretchLastSection(False) self.header().setResizeMode(QHeaderView.ResizeToContents) self.horizontalScrollBar().valueChanged.connect( lambda value: self.viewport().repaint()) self.addActions( framework.menu.MakeActions('workbench.contextmenu.project_actions', self)) self.changed = False self.projectdata = self.CurrentProjectData() self.autosavedata = None self.docs = [] # keep model self.model = self.model()
def __init__(self, parent): View.__init__(self, parent) self.UpdateLabel(self.GetLabel()) widget = QWidget(self) layout = QVBoxLayout(widget) self.wnd_tree = Tree(widget) if not self.bound_uri: self.wnd_filter = SearchBox(widget, self.wnd_tree, self.msg_filterdesc, self.Filter, self.Search, self.msg_filteroptions, self.msg_filtermulti) layout.addWidget(self.wnd_filter) self.setFocusProxy(self.wnd_tree) self.wnd_tree.view = self layout.addWidget(self.wnd_tree) layout.setContentsMargins(0, 5, 0, 0) self.destroyed.connect(self.OnDestroy) self.setWidget(widget) self.Seed()
def __init__(self, parent): View.__init__(self, parent) self.UpdateLabel(self.GetLabel()) widget = QWidget(self) layout = QVBoxLayout(widget) self.wnd_tree = Tree(widget) if not self.bound_uri: self.wnd_filter = SearchBox(widget, self.wnd_tree, self.msg_filterdesc, self.Filter, self.Search, self.msg_filteroptions, self.msg_filtermulti) layout.addWidget(self.wnd_filter) self.setFocusProxy(self.wnd_tree) self.wnd_tree.view = self layout.addWidget(self.wnd_tree) layout.setContentsMargins(0,5,0,0) self.destroyed.connect(self.OnDestroy) self.setWidget(widget) self.Seed()
class FilteredView(View): msg_filterdesc = tm.main.filter document = None bound_uri = None msg_filteroptions = None msg_filtermulti = False @property def selected(self): return self.wnd_tree.selected def FindViewMethod(self, methodname): if not self.wnd_tree.hasFocus() and not appdata.topwindow.menuBar().hasFocus(): return if getattr(self, methodname, None): return getattr(self, methodname) v = self.selected if not v: return return util.findcommonmethod(v, methodname) def __init__(self, parent): View.__init__(self, parent) self.UpdateLabel(self.GetLabel()) widget = QWidget(self) layout = QVBoxLayout(widget) self.wnd_tree = Tree(widget) if not self.bound_uri: self.wnd_filter = SearchBox(widget, self.wnd_tree, self.msg_filterdesc, self.Filter, self.Search, self.msg_filteroptions, self.msg_filtermulti) layout.addWidget(self.wnd_filter) self.setFocusProxy(self.wnd_tree) self.wnd_tree.view = self layout.addWidget(self.wnd_tree) layout.setContentsMargins(0,5,0,0) self.destroyed.connect(self.OnDestroy) self.setWidget(widget) self.Seed() def GetIcon(self): if not self.bound_uri and self.document != None: return self.document.GetIcon() if getattr(self, 'vis_icon', None) != None: return self.vis_icon else: return 'blank_ico' def GetLabel(self): if getattr(self, 'vis_label', None) != None: return self.vis_label elif self.document: return self.document.GetLabel() else: return tm.main.view def UpdateLabel(self, label): self.SetTitle(label) def OnDestroy(self): self.wnd_tree.clear() appdata.views.discard(self) # override def Seed(self): pass def Filter(self, value): pass def Search(self, value): pass def CanCopyText(self): if self.wnd_tree.selected: return True return False def CopyText(self): selected = self.wnd_tree.selected_sorted lines = [] for v in selected: line = '' p = v.parent indent = 0 while p: indent += 1 p = p.parent line += v.text(0) lines.append((indent, line)) if lines: min_indent = sorted(lines)[0][0] text = '\n'.join(['\t'*(i-min_indent)+l for i, l in lines]) else: text = '' util.SetClipboard(text, None)
def dragLeaveEvent(self, event): Tree.dragLeaveEvent(self, event) if not event.isAccepted(): evt.accept()
class FilteredView(View): msg_filterdesc = tm.main.filter document = None bound_uri = None msg_filteroptions = None msg_filtermulti = False @property def selected(self): return self.wnd_tree.selected def FindViewMethod(self, methodname): if not self.wnd_tree.hasFocus() and not appdata.topwindow.menuBar( ).hasFocus(): return if getattr(self, methodname, None): return getattr(self, methodname) v = self.selected if not v: return return util.findcommonmethod(v, methodname) def __init__(self, parent): View.__init__(self, parent) self.UpdateLabel(self.GetLabel()) widget = QWidget(self) layout = QVBoxLayout(widget) self.wnd_tree = Tree(widget) if not self.bound_uri: self.wnd_filter = SearchBox(widget, self.wnd_tree, self.msg_filterdesc, self.Filter, self.Search, self.msg_filteroptions, self.msg_filtermulti) layout.addWidget(self.wnd_filter) self.setFocusProxy(self.wnd_tree) self.wnd_tree.view = self layout.addWidget(self.wnd_tree) layout.setContentsMargins(0, 5, 0, 0) self.destroyed.connect(self.OnDestroy) self.setWidget(widget) self.Seed() def GetIcon(self): if not self.bound_uri and self.document != None: return self.document.GetIcon() if getattr(self, 'vis_icon', None) != None: return self.vis_icon else: return 'blank_ico' def GetLabel(self): if getattr(self, 'vis_label', None) != None: return self.vis_label elif self.document: return self.document.GetLabel() else: return tm.main.view def UpdateLabel(self, label): self.SetTitle(label) def OnDestroy(self): self.wnd_tree.clear() appdata.views.discard(self) # override def Seed(self): pass def Filter(self, value): pass def Search(self, value): pass def CanCopyText(self): if self.wnd_tree.selected: return True return False def CopyText(self): selected = self.wnd_tree.selected_sorted lines = [] for v in selected: line = '' p = v.parent indent = 0 while p: indent += 1 p = p.parent line += v.text(0) lines.append((indent, line)) if lines: min_indent = sorted(lines)[0][0] text = '\n'.join(['\t' * (i - min_indent) + l for i, l in lines]) else: text = '' util.SetClipboard(text, None)
def decodeMime(self, mimeData): if mimeData.hasUrls(): paths = [os.path.normpath(url.toLocalFile()) for url in mimeData.urls()] return {"paths": paths} return Tree.decodeMime(self, mimeData)