From 104266da0f92ab2a765598dde59bf2e7f6426484 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 9 Oct 2009 23:27:51 +0300 Subject: Show first key binding conflict --- src/gui/setup_keyboard.cpp | 5 ++--- src/keyboardconfig.cpp | 5 +++++ src/keyboardconfig.h | 5 +++++ 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/gui/setup_keyboard.cpp b/src/gui/setup_keyboard.cpp index d9117b8a..0f92d066 100644 --- a/src/gui/setup_keyboard.cpp +++ b/src/gui/setup_keyboard.cpp @@ -116,9 +116,8 @@ void Setup_Keyboard::apply() if (keyboard.hasConflicts()) { - new OkDialog(_("Key Conflict(s) Detected"), - _("Resolve them, or gameplay may result in strange " - "behaviour.")); + new OkDialog(_("Key Conflict(s) Detected."), + keyboard.getBindError()); } keyboard.setEnabled(true); keyboard.store(); diff --git a/src/keyboardconfig.cpp b/src/keyboardconfig.cpp index 8e021aa6..8dc2f0c5 100644 --- a/src/keyboardconfig.cpp +++ b/src/keyboardconfig.cpp @@ -165,10 +165,15 @@ bool KeyboardConfig::hasConflicts() (mKey[i].value == mKey[j].value) ) { + mBindError = strprintf(_("Conflict \"%s\" and \"%s\" keys. " + "Resolve them, or gameplay may result" + " in strange behaviour."), + mKey[i].caption.c_str(), mKey[j].caption.c_str()); return true; } } } + mBindError = ""; return false; } diff --git a/src/keyboardconfig.h b/src/keyboardconfig.h index b6a07f16..c6d0b723 100644 --- a/src/keyboardconfig.h +++ b/src/keyboardconfig.h @@ -139,6 +139,9 @@ class KeyboardConfig */ void refreshActiveKeys(); + std::string getBindError() + { return mBindError; } + /** * All the key functions. * KEY_NO_VALUE is used in initialization, and should be unchanged. @@ -225,6 +228,8 @@ class KeyboardConfig KeyFunction mKey[KEY_TOTAL]; /**< Pointer to all the key data */ Uint8 *mActiveKeys; /**< Stores a list of all the keys */ + + std::string mBindError; }; extern KeyboardConfig keyboard; -- cgit v1.2.3-60-g2f50