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
68
69
70
71
72
|
import pygtk
pygtk.require("2.0")
import gtk
import gtk.glade
import sys
from CC_gui_functions import *
from CCReport import Report
#from CCDumpList import getDumpList, DumpList
class ReporterDialog():
"""Reporter window"""
def __init__(self, report):
self.report = report
#Set the Glade file
# FIXME add to path
self.gladefile = "/usr/share/crash-catcher/ccgui.glade"
self.wTree = gtk.glade.XML(self.gladefile)
#Get the Main Window, and connect the "destroy" event
self.window = self.wTree.get_widget("reporter_dialog")
#init the reports treeview
self.tvReport = self.wTree.get_widget("tvReport")
columns = [None]*2
columns[0] = gtk.TreeViewColumn('Item')
columns[1] = gtk.TreeViewColumn('Value')
self.reportListStore = gtk.ListStore(str, str, bool)
# set filter
#self.modelfilter = self.reportListStore.filter_new()
#self.modelfilter.set_visible_func(self.filter_reports, None)
self.tvReport.set_model(self.reportListStore)
renderer = gtk.CellRendererText()
column = gtk.TreeViewColumn('Item', renderer, text=0)
self.tvReport.append_column(column)
renderer = gtk.CellRendererText()
column = gtk.TreeViewColumn('Value', renderer, text=1, editable=2)
self.tvReport.append_column(column)
renderer.connect('edited',self.column_edited,self.reportListStore)
# connect the signals
#self.wTree.get_widget("bApply").connect("clicked", self.on_apply_clicked, self.tvReport)
#self.wTree.get_widget("bCancel").connect("clicked", self.on_cancel_clicked, self.tvReport)
self.hydrate()
def column_edited(self, cell, path, new_text, model):
# 1 means the second cell
model[path][1] = new_text
return
def on_apply_clicked(self, button, treeview):
pass
def on_cancel_clicked(self, button, treeview):
pass
def hydrate(self):
editable = ["Comment", "TextData1", "TextData2"]
for item in self.report:
self.reportListStore.append([item, self.report[item], item in editable])
#self.reportListStore.append(["Comment","", True])
def run(self):
result = self.window.run()
if result == gtk.RESPONSE_CANCEL:
self.window.destroy()
return result
else:
self.window.destroy()
return self.report
|