def __init__(self, owner): '''Ctor for backlinkQtUI class.''' self.owner = owner QtWidgets.QWidget.__init__(self) uiPath = g.os_path_join(g.app.leoDir, 'plugins', 'Backlink.ui') form_class, base_class = uic.loadUiType(uiPath) self.owner.c.frame.log.createTab('Links', widget = self) self.UI = form_class() self.UI.setupUi(self) u = self.UI o = self.owner # Compatible with PyQt5 u.markBtn.clicked.connect(o.mark) u.swapBtn.clicked.connect(o.swap) u.linkBtn.clicked.connect(self.linkClicked) u.rescanBtn.clicked.connect(o.loadLinksInt) u.dirLeftBtn.clicked.connect(self.dirClicked) u.dirRightBtn.clicked.connect( self.dirClicked) u.linkList.itemClicked.connect(self.listClicked) u.deleteBtn.stateChanged.connect(o.deleteSet)
def __init__(self, owner): '''Ctor for backlinkQtUI class.''' self.owner = owner QtWidgets.QWidget.__init__(self) uiPath = g.os_path_join(g.app.leoDir, 'plugins', 'Backlink.ui') form_class, base_class = uic.loadUiType(uiPath) self.owner.c.frame.log.createTab('Links', widget=self) self.UI = form_class() self.UI.setupUi(self) u = self.UI o = self.owner # Compatible with PyQt5 u.markBtn.clicked.connect(o.mark) u.swapBtn.clicked.connect(o.swap) u.linkBtn.clicked.connect(self.linkClicked) u.rescanBtn.clicked.connect(o.loadLinksInt) u.dirLeftBtn.clicked.connect(self.dirClicked) u.dirRightBtn.clicked.connect(self.dirClicked) u.linkList.itemClicked.connect(self.listClicked) u.deleteBtn.stateChanged.connect(o.deleteSet)
def __init__(self, owner=None): self.owner = owner # a = QtGui.QApplication([]) # argc, argv ); QtWidgets.QWidget.__init__(self) uiPath = g.os_path_join(g.app.leoDir, 'plugins', 'GraphCanvas', 'GraphCanvas.ui') # change directory for this to work old_dir = os.getcwd() try: os.chdir(g.os_path_join(g.computeLeoDir(), "..")) form_class, base_class = uic.loadUiType(uiPath) self.owner.c.frame.log.createTab('Graph', widget = self) self.UI = form_class() self.UI.setupUi(self) finally: os.chdir(old_dir) self.canvas = QtWidgets.QGraphicsScene() self.canvasView = GraphicsView(self.owner, self.canvas) self.canvasView.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag) self.UI.canvasFrame.addWidget(self.canvasView) self.canvasView.setSceneRect(0,0,300,300) self.canvasView.setRenderHints(QtGui.QPainter.Antialiasing) u = self.UI o = self.owner u.btnUpdate.clicked.connect(lambda checked: o.do_update()) u.btnGoto.clicked.connect(lambda checked: o.goto()) u.btnLoad.clicked.connect(lambda checked: o.loadGraph()) u.btnLoadSibs.clicked.connect(lambda checked: o.loadGraph('sibs')) u.btnLoadRecur.clicked.connect(lambda checked: o.loadGraph('recur')) u.btnLoadLinked.clicked.connect(lambda checked: o.loadLinked('linked')) u.btnLoadAll.clicked.connect(lambda checked: o.loadLinked('all')) u.btnUnLoad.clicked.connect(lambda checked: o.unLoad()) u.btnClear.clicked.connect(lambda checked: o.clear()) u.btnLocate.clicked.connect(lambda checked: o.locateNode()) u.btnReset.clicked.connect(lambda checked: o.resetNode()) u.btnColor.clicked.connect(lambda checked: o.setColor()) u.btnTextColor.clicked.connect(lambda checked: o.setTextColor()) u.btnClearFormatting.clicked.connect(lambda checked: o.clearFormatting()) u.btnRect.clicked.connect(lambda checked: o.setNode(nodeRect)) u.btnEllipse.clicked.connect(lambda checked: o.setNode(nodeEllipse)) u.btnDiamond.clicked.connect(lambda checked: o.setNode(nodeDiamond)) u.btnNone.clicked.connect(lambda checked: o.setNode(nodeNone)) u.btnTable.clicked.connect(lambda checked: o.setNode(nodeTable)) u.btnComment.clicked.connect(lambda checked: o.setNode(nodeComment)) u.btnImage.clicked.connect(lambda checked: o.setNode(nodeImage)) u.btnExport.clicked.connect(lambda checked: o.exportGraph()) u.chkHierarchy.clicked.connect(lambda checked: o.do_update()) menu = QtWidgets.QMenu(u.btnLayout) for name, func in o.layouts(): menu.addAction(name, func) u.btnLayout.setMenu(menu)
def __init__(self, owner=None): self.owner = owner # a = QtGui.QApplication([]) # argc, argv ); QtWidgets.QWidget.__init__(self) uiPath = g.os_path_join(g.app.leoDir, 'plugins', 'GraphCanvas', 'GraphCanvas.ui') # change directory for this to work old_dir = os.getcwd() try: os.chdir(g.os_path_join(g.computeLeoDir(), "..")) form_class, base_class = uic.loadUiType(uiPath) self.owner.c.frame.log.createTab('Graph', widget=self) self.UI = form_class() self.UI.setupUi(self) finally: os.chdir(old_dir) self.canvas = QtWidgets.QGraphicsScene() self.canvasView = GraphicsView(self.owner, self.canvas) self.canvasView.setDragMode(QtWidgets.QGraphicsView.ScrollHandDrag) self.UI.canvasFrame.addWidget(self.canvasView) self.canvasView.setSceneRect(0, 0, 300, 300) self.canvasView.setRenderHints(QtGui.QPainter.Antialiasing) u = self.UI o = self.owner u.btnUpdate.clicked.connect(lambda checked: o.do_update()) u.btnGoto.clicked.connect(lambda checked: o.goto()) u.btnLoad.clicked.connect(lambda checked: o.loadGraph()) u.btnLoadSibs.clicked.connect(lambda checked: o.loadGraph('sibs')) u.btnLoadRecur.clicked.connect(lambda checked: o.loadGraph('recur')) u.btnLoadLinked.clicked.connect(lambda checked: o.loadLinked('linked')) u.btnLoadAll.clicked.connect(lambda checked: o.loadLinked('all')) u.btnUnLoad.clicked.connect(lambda checked: o.unLoad()) u.btnClear.clicked.connect(lambda checked: o.clear()) u.btnLocate.clicked.connect(lambda checked: o.locateNode()) u.btnReset.clicked.connect(lambda checked: o.resetNode()) u.btnColor.clicked.connect(lambda checked: o.setColor()) u.btnTextColor.clicked.connect(lambda checked: o.setTextColor()) u.btnClearFormatting.clicked.connect( lambda checked: o.clearFormatting()) u.btnRect.clicked.connect(lambda checked: o.setNode(nodeRect)) u.btnEllipse.clicked.connect(lambda checked: o.setNode(nodeEllipse)) u.btnDiamond.clicked.connect(lambda checked: o.setNode(nodeDiamond)) u.btnNone.clicked.connect(lambda checked: o.setNode(nodeNone)) u.btnTable.clicked.connect(lambda checked: o.setNode(nodeTable)) u.btnComment.clicked.connect(lambda checked: o.setNode(nodeComment)) u.btnImage.clicked.connect(lambda checked: o.setNode(nodeImage)) u.btnExport.clicked.connect(lambda checked: o.exportGraph()) u.chkHierarchy.clicked.connect(lambda checked: o.do_update()) menu = QtWidgets.QMenu(u.btnLayout) for name, func in o.layouts(): menu.addAction(name, func) u.btnLayout.setMenu(menu)
def __init__(self, owner, logTab=True): self.owner = owner QtWidgets.QWidget.__init__(self) uiPath = g.os_path_join(g.app.leoDir, 'plugins', 'ToDo.ui') # change dir to get themed icons theme = g.app.config.getString('color_theme') if theme: testPath = g.os_path_join( g.app.homeLeoDir, 'themes', theme, 'Icons', 'cleo') if g.os_path_exists(testPath): iconPath = g.os_path_dirname(testPath) else: testPath = g.os_path_join( g.app.loadDir, '..', 'themes', theme, 'Icons', 'cleo') if g.os_path_exists(testPath): iconPath = g.os_path_dirname(testPath) else: iconPath = g.os_path_join(g.app.leoDir, 'Icons') else: iconPath = g.os_path_join(g.app.leoDir, 'Icons') os.chdir(iconPath) form_class, base_class = uic.loadUiType(uiPath) if logTab: self.owner.c.frame.log.createTab('Task', widget = self) self.UI = form_class() self.UI.setupUi(self) u = self.UI o = self.owner self.menu = QtWidgets.QMenu() self.populateMenu(self.menu, o) u.butMenu.setMenu(self.menu) if isQt5: u.butHelp.clicked.connect(lambda checked: o.showHelp()) u.butClrProg.clicked.connect(lambda checked: o.progress_clear()) u.butClrTime.clicked.connect(lambda checked: o.clear_time_req()) u.butPriClr.clicked.connect(lambda checked: o.priority_clear()) # if live update is too slow change valueChanged(*) to editingFinished() u.spinTime.valueChanged.connect( lambda v: o.set_time_req(val=u.spinTime.value())) u.spinProg.valueChanged.connect( lambda v: o.set_progress(val=u.spinProg.value())) else: self.connect(u.butHelp, QtCore.SIGNAL("clicked()"), o.showHelp) self.connect(u.butClrProg, QtCore.SIGNAL("clicked()"), o.progress_clear) self.connect(u.butClrTime, QtCore.SIGNAL("clicked()"), o.clear_time_req) self.connect(u.butPriClr, QtCore.SIGNAL("clicked()"), o.priority_clear) # if live update is too slow change valueChanged(*) to editingFinished() self.connect(u.spinTime, QtCore.SIGNAL("valueChanged(double)"), lambda v: o.set_time_req(val=u.spinTime.value())) self.connect(u.spinProg, QtCore.SIGNAL("valueChanged(int)"), lambda v: o.set_progress(val=u.spinProg.value())) u.dueDateEdit.dateChanged.connect( lambda v: o.set_due_date(val=u.dueDateEdit.date())) u.dueTimeEdit.timeChanged.connect( lambda v: o.set_due_time(val=u.dueTimeEdit.time())) u.nxtwkDateEdit.dateChanged.connect( lambda v: o.set_due_date(val=u.nxtwkDateEdit.date(), field='nextworkdate')) u.nxtwkTimeEdit.timeChanged.connect( lambda v: o.set_due_time(val=u.nxtwkTimeEdit.time(), field='nextworktime')) u.dueDateToggle.stateChanged.connect( lambda v: o.set_due_date(val=u.dueDateEdit.date(), mode='check')) u.dueTimeToggle.stateChanged.connect( lambda v: o.set_due_time(val=u.dueTimeEdit.time(), mode='check')) u.nxtwkDateToggle.stateChanged.connect( lambda v: o.set_due_date(val=u.nxtwkDateEdit.date(), mode='check', field='nextworkdate')) u.nxtwkTimeToggle.stateChanged.connect( lambda v: o.set_due_time(val=u.nxtwkTimeEdit.time(), mode='check', field='nextworktime')) for but in ["butPri1", "butPri6", "butPriChk", "butPri2", "butPri4", "butPri5", "butPri8", "butPri9", "butPri0", "butPriToDo", "butPriXgry", "butPriBang", "butPriX", "butPriQuery", "butPriBullet", "butPri7", "butPri3"]: w = getattr(u, but) # w.property() seems to give QVariant in python 2.x and int in 3.x!? try: pri = int(w.property('priority')) except (TypeError, ValueError): try: pri, ok = w.property('priority').toInt() except (TypeError, ValueError): pri = -1 # pylint: disable=cell-var-from-loop def setter(pri=pri): o.setPri(pri) if isQt5: w.clicked.connect(lambda checked, setter=setter: setter()) else: self.connect(w, QtCore.SIGNAL("clicked()"), setter) offsets = self.owner.c.config.getData('todo_due_date_offsets') if not offsets: offsets = '+7 +0 +1 +2 +3 +4 +5 +6 +10 +14 +21 +28 +42 +60 +90 +120 +150 ' \ '>7 <7 <14 >14 <28 >28'.split() self.date_offset_default = int(offsets[0].strip('>').replace('<', '-')) offsets = sorted(set(offsets), key=lambda x: (x[0],int(x[1:].strip('>').replace('<', '-')))) u.dueDateOffset.addItems(offsets) u.dueDateOffset.setCurrentIndex(self.date_offset_default) if isQt5: self.UI.dueDateOffset.activated.connect( lambda v: o.set_date_offset(field='duedate')) else: self.connect(self.UI.dueDateOffset, QtCore.SIGNAL("activated(int)"), lambda v: o.set_date_offset(field='duedate')) u.nxtwkDateOffset.addItems(offsets) u.nxtwkDateOffset.setCurrentIndex(self.date_offset_default) if isQt5: self.UI.nxtwkDateOffset.activated.connect( lambda v: o.set_date_offset(field='nextworkdate')) else: self.connect(self.UI.nxtwkDateOffset, QtCore.SIGNAL("activated(int)"), lambda v: o.set_date_offset(field='nextworkdate')) self.setDueDate = self.make_func(self.UI.dueDateEdit, self.UI.dueDateToggle, 'setDate', datetime.date.today() + datetime.timedelta(self.date_offset_default)) self.setDueTime = self.make_func(self.UI.dueTimeEdit, self.UI.dueTimeToggle, 'setTime', datetime.datetime.now().time()) self.setNextWorkDate = self.make_func(self.UI.nxtwkDateEdit, self.UI.nxtwkDateToggle, 'setDate', datetime.date.today() + datetime.timedelta(self.date_offset_default)) self.setNextWorkTime = self.make_func(self.UI.nxtwkTimeEdit, self.UI.nxtwkTimeToggle, 'setTime', datetime.datetime.now().time()) if isQt5: self.UI.butDetails.clicked.connect( lambda checked: self.UI.frmDetails.setVisible(not self.UI.frmDetails.isVisible())) else: self.connect(self.UI.butDetails, QtCore.SIGNAL("clicked()"), lambda: self.UI.frmDetails.setVisible(not self.UI.frmDetails.isVisible())) if self.owner.c.config.getBool("todo_compact_interface"): self.UI.frmDetails.setVisible(False) if isQt5: self.UI.butNext.clicked.connect( lambda checked: self.owner.c.selectVisNext()) self.UI.butNextTodo.clicked.connect( lambda checked: self.owner.find_todo()) self.UI.butApplyDueOffset.clicked.connect( lambda checked: o.set_date_offset(field='duedate')) self.UI.butApplyOffset.clicked.connect( lambda checked: o.set_date_offset(field='nextworkdate')) else: self.connect(self.UI.butNext, QtCore.SIGNAL("clicked()"), lambda: self.owner.c.selectVisNext()) self.connect(self.UI.butNextTodo, QtCore.SIGNAL("clicked()"), self.owner.find_todo) self.connect(self.UI.butApplyDueOffset, QtCore.SIGNAL("clicked()"), lambda: o.set_date_offset(field='duedate')) self.connect(self.UI.butApplyOffset, QtCore.SIGNAL("clicked()"), lambda: o.set_date_offset(field='nextworkdate')) n = g.app.config.getInt("todo_calendar_n") cols = g.app.config.getInt("todo_calendar_cols") if n or cols: self.UI.dueDateEdit.calendarWidget().build(n or 3, cols or 3) self.UI.nxtwkDateEdit.calendarWidget().build(n or 3, cols or 3)