[gnome-sudoku] SudokuPrinter: clean up error dialog



commit ad3ae64c4126c4d6ff660f9668e97d45fbc288b5
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Sat May 31 18:16:20 2014 -0500

    SudokuPrinter: clean up error dialog
    
    I'm not actually sure how to test this. How do you make printing fail?

 po/POTFILES.in          |    1 +
 po/POTFILES.skip        |    1 +
 src/sudoku-printer.vala |   19 +++++++++++--------
 3 files changed, 13 insertions(+), 8 deletions(-)
---
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 65eaa8b..f02b6ea 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -8,4 +8,5 @@ data/gnome-sudoku.desktop.in
 data/org.gnome.gnome-sudoku.gschema.xml
 [type: gettext/glade]data/print-games.ui
 src/gnome-sudoku.vala
+src/sudoku-printer.vala
 src/sudoku-solver.vala
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 85179f1..ea93181 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -1,3 +1,4 @@
 data/gnome-sudoku.desktop
 src/gnome-sudoku.c
+src/sudoku-printer.c
 src/sudoku-solver.c
diff --git a/src/sudoku-printer.vala b/src/sudoku-printer.vala
index 58e23ce..80ab3d3 100644
--- a/src/sudoku-printer.vala
+++ b/src/sudoku-printer.vala
@@ -17,17 +17,20 @@ public class SudokuPrinter : GLib.Object {
 
     public PrintOperationResult print_sudoku ()
     {
-        PrintOperationResult result = print_op.run (Gtk.PrintOperationAction.PRINT_DIALOG, window);
-        if (result == Gtk.PrintOperationResult.ERROR)
+        try
+        {
+            var result = print_op.run (Gtk.PrintOperationAction.PRINT_DIALOG, window);
+            return result;
+        }
+        catch (GLib.Error e)
         {
-            Gtk.MessageDialog error_dialog = new Gtk.MessageDialog (window, 
Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE, "Error printing file\n");
-            error_dialog.response.connect ((w) => {
-                error_dialog.destroy ();
-            });
-            error_dialog.show ();
+            new Gtk.MessageDialog (window, Gtk.DialogFlags.MODAL,
+                                   Gtk.MessageType.ERROR, Gtk.ButtonsType.CLOSE,
+                                   /* Error message if printing fails */
+                                   "%s\n%s".printf (_("Error printing file:"), e.message)).run ();
         }
 
-        return result;
+        return Gtk.PrintOperationResult.ERROR;
     }
 
     public SudokuPrinter (SudokuBoard[] boards, ref ApplicationWindow window, int sudokus_per_page = 1)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]