summaryrefslogtreecommitdiffstats
path: root/src/Gui/CCMainWindow.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/Gui/CCMainWindow.py')
-rw-r--r--src/Gui/CCMainWindow.py33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/Gui/CCMainWindow.py b/src/Gui/CCMainWindow.py
index 4c35afa..ef373ed 100644
--- a/src/Gui/CCMainWindow.py
+++ b/src/Gui/CCMainWindow.py
@@ -9,11 +9,14 @@ from CC_gui_functions import *
from CCDumpList import getDumpList, DumpList
from CCReporterDialog import ReporterDialog
from CCReport import Report
+from exception import installExceptionHandler, handleMyException
try:
import rpm
except:
rpm = None
+installExceptionHandler("cc-gui", "0.0.1")
+
class MainWindow():
def __init__(self):
self.theme = theme = gtk.icon_theme_get_default()
@@ -80,9 +83,15 @@ class MainWindow():
def hydrate(self):
self.dumpsListStore.clear()
self.rows = self.ccdaemon.getDumps()
- dumplist = getDumpList(self.ccdaemon, refresh=True)
+ try:
+ dumplist = getDumpList(self.ccdaemon, refresh=True)
+ except Exception, e:
+ gui_error_message("Error while loading the dumplist, please check if crash-catcher daemon is running\n %s" % e.message)
for entry in dumplist:
- icon = get_icon_for_package(self.theme,entry.getPackageName())
+ try:
+ icon = get_icon_for_package(self.theme,entry.getPackageName())
+ except:
+ icon = None
self.dumpsListStore.append([icon, entry.getPackage(),entry.getExecutable(), entry.getTime("%Y.%m.%d %H:%M:%S"),entry.getCount(), entry])
def filter_dumps(self, model, miter, data):
@@ -128,12 +137,20 @@ class MainWindow():
pass
#print "got another crash, refresh gui?"
- def on_analyze_complete_cb(self, daemon, UUID):
+ def on_analyze_complete_cb(self, daemon, report):
dumplist = getDumpList(self.ccdaemon)
- entry = dumplist.ddict[UUID]
- print "GUI: Analyze for package %s crash with UUID %s is complete" % (entry.Package, UUID)
+ #entry = dumplist.ddict[UUID]
+ # tady asi nedostanem UUID, ale vysledek nasi volane metody
+ #print report
+ #print "GUI: Analyze for package %s crash with UUID %s is complete" % (entry.Package, UUID)
print "We should refresh the UI ..."
-
+ if not report:
+ gui_error_message("Unable to get report! Debuginfo missing?")
+ return
+ report_dialog = ReporterDialog(report)
+ result = report_dialog.run()
+ if result:
+ self.ccdaemon.Report(result)
#ret = gui_question_dialog("GUI: Analyze for package %s crash with UUID %s is complete" % (entry.Package, UUID),self.window)
#if ret == gtk.RESPONSE_YES:
# self.hydrate()
@@ -156,13 +173,13 @@ class MainWindow():
# do this async and wait for yum to end with debuginfoinstal
gui_error_message("Error getting the report: %s" % e.message)
return
-
+ return
if not report:
gui_error_message("Unable to get report! Debuginfo missing?")
return
report_dialog = ReporterDialog(report)
result = report_dialog.run()
- if result == gtk.RESPONSE_APPLY:
+ if result:
self.ccdaemon.Report(result)