diff options
author | Holger Cremer <HolgerCremer@gmail.com> | 2015-06-10 22:23:24 +0200 |
---|---|---|
committer | Holger Cremer <HolgerCremer@gmail.com> | 2015-06-10 22:23:24 +0200 |
commit | 609f72b68df7d8c5a029d5faf1867ef68a5ff6ef (patch) | |
tree | fa545c306893ecdee61e23a6707e6b70d15694de /src/scanner-session | |
parent | c2b6e54ba93bb2f28e65626417e2cee29f8eec64 (diff) | |
download | serial-barcode-scanner-609f72b68df7d8c5a029d5faf1867ef68a5ff6ef.tar.bz2 |
show a popup for invalid product or missing login
Diffstat (limited to 'src/scanner-session')
-rw-r--r-- | src/scanner-session/scannersession-interface.vala | 1 | ||||
-rw-r--r-- | src/scanner-session/scannersession.vala | 11 |
2 files changed, 9 insertions, 3 deletions
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; } |