summaryrefslogtreecommitdiff
path: root/plugins/Logger.py
blob: 575fd5b7622e6b0fe954376cbb84de91dd175da7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
from PyQt4 import QtGui
from clPlugin import *
import log
from misc import Button

LOGGER_LEVEL_DEFAULT=log.LOG_NORMAL

class wgLogger(QtGui.QWidget):
	"""Shows log information"""
	" list containing the log"
	log=None
	btnClear=None
	p=None
	def __init__(self, p, parent=None):
		QtGui.QWidget.__init__(self, parent)
		self.p=p
		
		self.log=QtGui.QListWidget(self)
		self.btnClear=Button("Clear", self.clear)
		self.cmbLevel=QtGui.QComboBox(self)
		
		self.cmbLevel.addItem("Nothing")
		self.cmbLevel.addItem("Important")
		self.cmbLevel.addItem("Normal")
		self.cmbLevel.addItem("Extended")
		self.cmbLevel.addItem("Debug")
		
		self.cmbLevel.setCurrentIndex(int(self.p.getSetting("level")))
		self.onCmbLevelChanged(self.cmbLevel.currentIndex())

		layout=QtGui.QVBoxLayout()
		layout2=QtGui.QHBoxLayout()
		self.setLayout(layout)

		layout2.addWidget(self.cmbLevel)
		layout2.addWidget(self.btnClear)
		layout.addLayout(layout2)
		layout.addWidget(self.log)
		
		self.connect(self.cmbLevel, QtCore.SIGNAL('currentIndexChanged(int)'),self.onCmbLevelChanged)
	
	def onCmbLevelChanged(self, newval):
		log.setLevel(newval)
		log.extended("Switching loglevel to %s"%(str(newval)))
		settings.set("logger.level", newval)
	def writer(self, item, level):
		self.log.addItem(item)
		self.log.setCurrentRow(self.log.count()-1)
		#self.log.scrollToItem(self.log.item(self.log.count()))
	def clear(self):
		self.log.clear()

class pluginLogger(Plugin):
	o=None
	def __init__(self, winMain):
		Plugin.__init__(self, winMain, 'Logger')
	def _load(self):
		self.o=wgLogger(self, None)
		log.setWriter(self.o.writer)
	def _unload(self):
		self.o=None
		log.setWriter(log._writer)
	def getInfo(self):
		return "Shows information from the log."
	
	def _getDockWidget(self):
		return self._createDock(self.o)