summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-02-25 16:57:02 +0100
committerJiri Moskovcak <jmoskovc@redhat.com>2009-02-25 16:57:02 +0100
commit5ae2f59adcbe977d16a089e4251657b9e36c47b5 (patch)
tree736bc9cc119df37b4aad515d85265f0502ee5605
parent2f6dcf6f12e0c81e928506cbc9ac1d4f87d87514 (diff)
downloadabrt-5ae2f59adcbe977d16a089e4251657b9e36c47b5.tar.gz
abrt-5ae2f59adcbe977d16a089e4251657b9e36c47b5.tar.xz
abrt-5ae2f59adcbe977d16a089e4251657b9e36c47b5.zip
report from GUI
-rw-r--r--src/Gui/CCDBusBackend.py7
-rw-r--r--src/Gui/CCMainWindow.py12
-rw-r--r--src/Gui/CCReport.py30
-rw-r--r--src/Gui/CCReporterDialog.py34
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