Merge alfadur's commits
authorWuzzy <Wuzzy2@mail.ru>
Wed, 01 May 2019 00:13:23 +0200
changeset 14869 9078d787d491
parent 14868 349a87011080 (diff)
parent 14866 e088bd03812d (current diff)
child 14870 ce98c37826a7
Merge alfadur's commits
--- a/QTfrontend/sdlkeys.cpp	Wed May 01 00:29:46 2019 +0300
+++ b/QTfrontend/sdlkeys.cpp	Wed May 01 00:13:23 2019 +0200
@@ -22,6 +22,7 @@
 
 char sdlkeys[1024][2][128] =
 {
+    // Mouse
     {"mousel", QT_TRANSLATE_NOOP("binds (keys)", "Mouse: Left button")},
     {"mousem", QT_TRANSLATE_NOOP("binds (keys)", "Mouse: Middle button")},
     {"mouser", QT_TRANSLATE_NOOP("binds (keys)", "Mouse: Right button")},
@@ -29,6 +30,8 @@
     {"mousex2", QT_TRANSLATE_NOOP("binds (keys)", "Mouse: X2 button")},
     {"wheelup", QT_TRANSLATE_NOOP("binds (keys)", "Mouse: Wheel up")},
     {"wheeldown", QT_TRANSLATE_NOOP("binds (keys)", "Mouse: Wheel down")},
+
+    // Keyboard
     {"backspace", QT_TRANSLATE_NOOP("binds (keys)", "Backspace")},
     {"tab", QT_TRANSLATE_NOOP("binds (keys)", "Tab")},
     {"clear", QT_TRANSLATE_NOOP("binds (keys)", "Clear")},
@@ -83,7 +86,6 @@
     {"x", "X"},
     {"y", "Y"},
     {"z", "Z"},
-    {"delete", QT_TRANSLATE_NOOP("binds (keys)", "Delete")},
     {"keypad_0", QT_TRANSLATE_NOOP("binds (keys)", "Keypad 0")},
     {"keypad_1", QT_TRANSLATE_NOOP("binds (keys)", "Keypad 1")},
     {"keypad_2", QT_TRANSLATE_NOOP("binds (keys)", "Keypad 2")},
@@ -105,6 +107,7 @@
     {"right", QT_TRANSLATE_NOOP("binds (keys)", "Right")},
     {"left", QT_TRANSLATE_NOOP("binds (keys)", "Left")},
     {"insert", QT_TRANSLATE_NOOP("binds (keys)", "Insert")},
+    {"delete", QT_TRANSLATE_NOOP("binds (keys)", "Delete")},
     {"home", QT_TRANSLATE_NOOP("binds (keys)", "Home")},
     {"end", QT_TRANSLATE_NOOP("binds (keys)", "End")},
     {"pageup", QT_TRANSLATE_NOOP("binds (keys)", "PageUp")},
@@ -139,6 +142,9 @@
     {"left_gui", QT_TRANSLATE_NOOP("binds (keys)", "Left GUI")}
 };
 
+// helper list for sdlkeys. true for keyboard keys, false for other
+bool sdlkeys_iskeyboard[1024];
+
 // button name definitions for Microsoft's XBox360 controller
 // don't modify button order!
 char xb360buttons[10][128] =
--- a/QTfrontend/sdlkeys.h	Wed May 01 00:29:46 2019 +0300
+++ b/QTfrontend/sdlkeys.h	Wed May 01 00:13:23 2019 +0200
@@ -20,6 +20,7 @@
 #define SDLKEYS_H
 
 extern char sdlkeys[1024][2][128];
+extern bool sdlkeys_iskeyboard[1024];
 extern char xb360buttons[10][128];
 extern char xbox360axes[10][128];
 extern char xb360dpad[128];
--- a/QTfrontend/util/DataManager.cpp	Wed May 01 00:29:46 2019 +0300
+++ b/QTfrontend/util/DataManager.cpp	Wed May 01 00:13:23 2019 +0200
@@ -165,7 +165,7 @@
             QStandardItem * item = new QStandardItem();
             QString keyId = QString(sdlkeys[j][0]);
             QString keyDisplay;
-            bool isKeyboard = !QString(sdlkeys[j][1]).contains(": ");
+            bool isKeyboard = sdlkeys_iskeyboard[j] == true;
             if (keyId == "none" || (!isKeyboard))
                 keyDisplay = HWApplication::translate("binds (keys)", sdlkeys[j][1]);
             else
--- a/QTfrontend/util/SDLInteraction.cpp	Wed May 01 00:29:46 2019 +0300
+++ b/QTfrontend/util/SDLInteraction.cpp	Wed May 01 00:13:23 2019 +0200
@@ -50,14 +50,25 @@
     m_musicTrack = "";
     m_isPlayingMusic = false;
     lastchannel = 0;
+    int i;
+    // Initialize sdlkeys_iskeyboard
+    for (i=0; i<1024; i++) {
+        // First 7 entries are mouse buttons (see sdlkeys.cpp)
+        if ((i > 6) && (sdlkeys[i][0][0] != '\0'))
+            sdlkeys_iskeyboard[i] = true;
+        else
+            sdlkeys_iskeyboard[i] = false;
+    }
+
     if(SDL_NumJoysticks())
         addGameControllerKeys();
 
-    int i = 0;
+    // Add special "none" key at the end of list
+    i = 0;
     while(i < 1024 && sdlkeys[i][1][0] != '\0')
         i++;
     sprintf(sdlkeys[i][0], "none");
-    sprintf(sdlkeys[i++][1], "%s", HWApplication::translate("binds (keys)", unboundcontrol).toUtf8().constData());
+    sprintf(sdlkeys[i][1], "%s", HWApplication::translate("binds (keys)", unboundcontrol).toUtf8().constData());
 
     SDL_QuitSubSystem(SDL_INIT_JOYSTICK);