diff options
author | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-02-25 16:57:02 +0100 |
---|---|---|
committer | Jiri Moskovcak <jmoskovc@redhat.com> | 2009-02-25 16:57:02 +0100 |
commit | 5ae2f59adcbe977d16a089e4251657b9e36c47b5 (patch) | |
tree | 736bc9cc119df37b4aad515d85265f0502ee5605 | |
parent | 2f6dcf6f12e0c81e928506cbc9ac1d4f87d87514 (diff) | |
download | abrt-5ae2f59adcbe977d16a089e4251657b9e36c47b5.tar.gz abrt-5ae2f59adcbe977d16a089e4251657b9e36c47b5.tar.xz abrt-5ae2f59adcbe977d16a089e4251657b9e36c47b5.zip |
report from GUI
-rw-r--r-- | src/Gui/CCDBusBackend.py | 7 | ||||
-rw-r--r-- | src/Gui/CCMainWindow.py | 12 | ||||
-rw-r--r-- | src/Gui/CCReport.py | 30 | ||||
-rw-r--r-- | src/Gui/CCReporterDialog.py | 34 |
4 files changed, 70 insertions, 13 deletions
diff --git a/src/Gui/CCDBusBackend.py b/src/Gui/CCDBusBackend.py index ad3e82cb..2235e784 100644 --- a/src/Gui/CCDBusBackend.py +++ b/src/Gui/CCDBusBackend.py @@ -48,9 +48,16 @@ class DBusManager(gobject.GObject): except Exception, e: raise Exception(e.message + "\nPlease check if crash-catcher daemon is running.") + def getReport(self, UUID): + return self.cc.CreateReport(UUID) + + def Report(self,report): + return self.cc.Report(report) + def getDumps(self): row_dict = None rows = [] + # FIXME check the arguments for row in self.cc.GetCrashInfosMap(""): row_dict = {} for column in row: diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py index 02f2a030..a579ee4a 100644 --- a/src/Gui/CCMainWindow.py +++ b/src/Gui/CCMainWindow.py @@ -10,6 +10,7 @@ import sys from CC_gui_functions import * from CCDumpList import getDumpList, DumpList from CCReporterDialog import ReporterDialog +from CCReport import Report def cb(self, *args): pass @@ -95,7 +96,7 @@ class MainWindow(): #self.rows = self.ccdaemon.getDumps() #row_c = 0 for entry in dumplist: - self.dumpsListStore.append([entry.getTime("%Y:%m:%d"),entry.getPackage(),entry]) + self.dumpsListStore.append([entry.getTime("%m.%d."),entry.getPackage(),entry]) #row_c += 1 def on_tvDumps_cursor_changed(self,treeview): @@ -125,8 +126,13 @@ class MainWindow(): return dump = dumpsListStore.get_value(dumpsListStore.get_iter(path[0]), len(self.dlist.get_columns())) # show the report window with selected dump - report_dialog = ReporterDialog(dump) - report_dialog.run() + report = self.ccdaemon.getReport(dump.getUUID()) + report_dialog = ReporterDialog(report) + result = report_dialog.run() + if result == -1: + pass + else: + self.ccdaemon.Report(result) def on_bQuit_clicked(self, button): gtk.main_quit() diff --git a/src/Gui/CCReport.py b/src/Gui/CCReport.py new file mode 100644 index 00000000..ea2ed75e --- /dev/null +++ b/src/Gui/CCReport.py @@ -0,0 +1,30 @@ +from datetime import datetime + +class Report(): + """Class for mapping the report to pyhon object""" + def __init__(self, report): + self.UUID = None + self.Architecture = None + self.Kernel = None + self.Release = None + self.Executable = None + self.CmdLine = None + self.Package = None + self.TextData1 = None + self.TextData2 = None + self.BinaryData1 = None + self.BinaryData2 = None + for item in report: + self.__dict__[item] = report[item] + + def getUUID(self): + return self.UUID + + def getArchitecture(self): + return self.Architecture + + def getExecutable(self): + return self.Executable + + def getPackage(self): + return self.Package diff --git a/src/Gui/CCReporterDialog.py b/src/Gui/CCReporterDialog.py index fa6e2423..c186de17 100644 --- a/src/Gui/CCReporterDialog.py +++ b/src/Gui/CCReporterDialog.py @@ -4,12 +4,13 @@ import gtk import gtk.glade import sys from CC_gui_functions import * -from CCDumpList import getDumpList, DumpList +from CCReport import Report +#from CCDumpList import getDumpList, DumpList class ReporterDialog(): """Reporter window""" - def __init__(self, dump): - self.dump = dump + def __init__(self, report): + self.report = report #Set the Glade file # FIXME add to path self.gladefile = "../share/crash-catcher/ccgui.glade" @@ -17,7 +18,7 @@ class ReporterDialog(): #Get the Main Window, and connect the "destroy" event self.window = self.wTree.get_widget("reporter_dialog") - #init the dumps treeview + #init the reports treeview self.tvReport = self.wTree.get_widget("tvReport") columns = [None]*2 columns[0] = gtk.TreeViewColumn('Item') @@ -26,7 +27,7 @@ class ReporterDialog(): self.reportListStore = gtk.ListStore(str, str, bool) # set filter #self.modelfilter = self.reportListStore.filter_new() - #self.modelfilter.set_visible_func(self.filter_dumps, None) + #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) @@ -39,6 +40,7 @@ class ReporterDialog(): # 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() @@ -49,14 +51,26 @@ class ReporterDialog(): def on_apply_clicked(self, button, treeview): #print treeview - self.window.hide() + #self.window.destroy(); + print self.report + return self.report + def on_cancel_clicked(self, button, treeview): + #print treeview + #self.window.destroy(); + return -1 + def hydrate(self): - for item in self.dump.__dict__: - self.reportListStore.append([item, self.dump.__dict__[item], False]) + for item in self.report: + self.reportListStore.append([item, self.report[item], False]) self.reportListStore.append(["Comment","", True]) def run(self): - self.window.show() - + result = self.window.run() + if result == -1: + self.window.destroy() + return -1 + else: + self.window.destroy() + return self.report |