From 609f72b68df7d8c5a029d5faf1867ef68a5ff6ef Mon Sep 17 00:00:00 2001 From: Holger Cremer Date: Wed, 10 Jun 2015 22:23:24 +0200 Subject: show a popup for invalid product or missing login --- src/scanner-session/scannersession-interface.vala | 1 + src/scanner-session/scannersession.vala | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src/scanner-session') diff --git a/src/scanner-session/scannersession-interface.vala b/src/scanner-session/scannersession-interface.vala index 0f81dd4..ec5e487 100644 --- a/src/scanner-session/scannersession-interface.vala +++ b/src/scanner-session/scannersession-interface.vala @@ -16,6 +16,7 @@ [DBus (name = "io.mainframe.shopsystem.ScannerSession")] public interface ScannerSession : Object { public abstract signal void msg(MessageType type, string message); + public abstract signal void popup(string title, string message); } public enum MessageType { diff --git a/src/scanner-session/scannersession.vala b/src/scanner-session/scannersession.vala index 5498b83..9e87682 100644 --- a/src/scanner-session/scannersession.vala +++ b/src/scanner-session/scannersession.vala @@ -26,6 +26,7 @@ public class ScannerSessionImplementation { private SerialDevice dev; public signal void msg(MessageType type, string message); + public signal void popup(string title, string message); public ScannerSessionImplementation() { try { @@ -172,7 +173,9 @@ public class ScannerSessionImplementation { } catch(DatabaseError e) { if(e is DatabaseError.PRODUCT_NOT_FOUND) { audio.play_user(theme, "error"); - send_message(MessageType.ERROR, "Error: unknown product: %llu".printf(id)); + var msg = "Error: unknown product: %llu".printf(id); + send_message(MessageType.ERROR, msg); + popup("Attention", msg); } else { audio.play_user(theme, "error"); send_message(MessageType.ERROR, "Error: %s", e.message); @@ -183,10 +186,12 @@ public class ScannerSessionImplementation { if(!logged_in) { var mprice = db.get_product_price(1, id); var gprice = db.get_product_price(0, id); - + var msg = @"article info: $name (Member: $mprice €, Guest: $gprice €)"; audio.play_system("error.ogg"); - send_message(MessageType.INFO, @"article info: $name (Member: $mprice €, Guest: $gprice €)"); + send_message(MessageType.INFO, msg); send_message(MessageType.ERROR, "Login required for purchase!"); + popup("Attention", "%s\nLogin required for purchase!".printf(msg)); + return false; } -- cgit v1.2.3