Discussion:
[GNOME-ABRT PATCH] Improve user experience
Jakub Filak
2013-09-11 12:48:55 UTC
Permalink
- replace some of "N/A"s by more specific information
- use 1 instead of "None" as count if count element is missing
- use "N/A" instead of empty fields

Closes #26

Signed-off-by: Jakub Filak <jfilak-H+wXaHxf7aLQT0dZR+***@public.gmane.org>
---
src/gnome_abrt/application.py | 2 +-
src/gnome_abrt/problems.py | 5 ++++-
src/gnome_abrt/views.py | 33 ++++++++++++++++++++++++++++-----
3 files changed, 33 insertions(+), 7 deletions(-)

diff --git a/src/gnome_abrt/application.py b/src/gnome_abrt/application.py
index 8517eaa..e4e24d9 100644
--- a/src/gnome_abrt/application.py
+++ b/src/gnome_abrt/application.py
@@ -38,7 +38,7 @@ class Application(object):
elif executable:
self.name = os.path.basename(executable)
else:
- self.name = "N/A"
+ self.name = None

self.icon = icon

diff --git a/src/gnome_abrt/problems.py b/src/gnome_abrt/problems.py
index 123e312..6e00c40 100644
--- a/src/gnome_abrt/problems.py
+++ b/src/gnome_abrt/problems.py
@@ -175,7 +175,10 @@ class Problem:
return self.get_submission()

if cached and item in self.data:
- return self.data[item]
+ retval = self.data[item]
+ if retval is None and item == "count":
+ return 1
+ return retval

loaded = self.__loaditems__(item)
if item in loaded:
diff --git a/src/gnome_abrt/views.py b/src/gnome_abrt/views.py
index ce68674..1d7ddb9 100644
--- a/src/gnome_abrt/views.py
+++ b/src/gnome_abrt/views.py
@@ -81,8 +81,15 @@ class ProblemsFilter:
def problem_to_storage_values(problem):
# not localizable, it is a format for tree view column
app = problem.get_application()
- return ["{0!s}\n{1!s}".format(app.name or _("N/A"),
- problem['type'] or ""),
+
+ if app.name:
+ name = app.name
+ typ = problem['type']
+ else:
+ name = problem['type']
+ typ = ""
+
+ return ["{0!s}\n{1!s}".format(name, typ),
"{0!s}\n{1!s}".format(fancydate(problem['date_last']),
problem['count']),
problem]
@@ -597,10 +604,26 @@ class OopsWindow(Gtk.ApplicationWindow):
app = problem['application']
self._builder.lbl_summary.set_text(problem['reason'] or "")
self._builder.lbl_app_name_value.set_text(app.name or _("N/A"))
- self._builder.lbl_reason.set_text("{0} {1}".format(
- app.name or _("N/A"), _(' crashed').strip()))
+
+ if app.name:
+ self._builder.lbl_reason.set_text("{0} {1}".format(
+ app.name, _(' crashed').strip()))
+ else:
+ # If Application's name is unknown, display neutral
+ # header "'Type' problem has been detected":
+ # Kerneloops problem has been detected
+ # CCpp problem has been detected
+ # Python problem has been detected
+ # Ruby problem has been detected
+ # VMCore problem has been detected
+ # AVC problem has been detected
+ # Java problem has been detected
+ self._builder.lbl_reason.set_text(
+ _("{0} problem has been detected").format(
+ problem['type']))
+
self._builder.lbl_app_version_value.set_text(
- problem['package'] or "")
+ problem['package'] or _("N/A"))
self._builder.lbl_detected_value.set_text(
problem['date'].strftime(
locale.nl_langinfo(locale.D_FMT)))
--
1.8.3.1
Denys Vlasenko
2013-09-12 07:16:07 UTC
Permalink
Post by Jakub Filak
- replace some of "N/A"s by more specific information
- use 1 instead of "None" as count if count element is missing
- use "N/A" instead of empty fields
Closes #26
Pushed, thanks!

Loading...