145 return m_colorsModel; |
148 return m_colorsModel; |
146 } |
149 } |
147 |
150 |
148 QStandardItemModel * DataManager::bindsModel() |
151 QStandardItemModel * DataManager::bindsModel() |
149 { |
152 { |
|
153 KeyMap km = KeyMap::instance(); |
150 if(m_bindsModel == NULL) |
154 if(m_bindsModel == NULL) |
151 { |
155 { |
152 m_bindsModel = new QStandardItemModel(); |
156 m_bindsModel = new QStandardItemModel(); |
153 |
157 |
154 QStandardItem * firstItem = new QStandardItem(); |
158 QStandardItem * firstItem = new QStandardItem(); |
158 |
162 |
159 for(int j = 0; sdlkeys[j][1][0] != '\0'; j++) |
163 for(int j = 0; sdlkeys[j][1][0] != '\0'; j++) |
160 { |
164 { |
161 QStandardItem * item = new QStandardItem(); |
165 QStandardItem * item = new QStandardItem(); |
162 QString keyId = QString(sdlkeys[j][0]); |
166 QString keyId = QString(sdlkeys[j][0]); |
163 QString keyTr = HWApplication::translate("binds (keys)", sdlkeys[j][1]); |
167 QString keyDisplay; |
164 item->setData((keyId == "none" || keyTr.contains(": ")) ? keyTr : HWApplication::translate("binds (keys)", "Keyboard") + QString(": ") + keyTr, Qt::DisplayRole); |
168 bool isKeyboard = !QString(sdlkeys[j][1]).contains(": "); |
|
169 if (keyId == "none" || (!isKeyboard)) |
|
170 keyDisplay = HWApplication::translate("binds (keys)", sdlkeys[j][1]); |
|
171 else |
|
172 // Get key name with respect to keyboard layout |
|
173 keyDisplay = QString(SDL_GetKeyName(SDL_GetKeyFromScancode(km.getScancodeFromKeyname(sdlkeys[j][0])))); |
|
174 |
|
175 bool kbFallback = keyDisplay.trimmed().isEmpty(); |
|
176 if (kbFallback) |
|
177 { |
|
178 // If SDL doesn't know a name, show fallback enclosed in brackets |
|
179 keyDisplay = QString(sdlkeys[j][1]) + QString(" ") + HWApplication::translate("binds (keys)", "(unsupported)"); |
|
180 } |
|
181 if (isKeyboard) |
|
182 { |
|
183 if (!kbFallback) |
|
184 keyDisplay = HWApplication::translate("binds (keys)", keyDisplay.toUtf8().constData()); |
|
185 keyDisplay = HWApplication::translate("binds (keys)", "Keyboard") + QString(": ") + keyDisplay; |
|
186 } |
|
187 item->setData(keyDisplay, Qt::DisplayRole); |
165 item->setData(sdlkeys[j][0], Qt::UserRole + 1); |
188 item->setData(sdlkeys[j][0], Qt::UserRole + 1); |
166 m_bindsModel->appendRow(item); |
189 m_bindsModel->appendRow(item); |
167 } |
190 } |
168 } |
191 } |
169 |
192 |