mirror of https://github.com/stella-emu/stella.git
added filtering to text pasted to EditableWidget
updated doc for UI keys (TODO: UI edit keys)
This commit is contained in:
parent
3b64e55304
commit
ecb42a5b51
131
docs/index.html
131
docs/index.html
|
@ -1364,8 +1364,8 @@
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Toggle windowed/fullscreen mode</td>
|
<td>Toggle windowed/fullscreen mode</td>
|
||||||
<td>Alt + Enter</td>
|
<td>Alt + Return</td>
|
||||||
<td>Cmd + Enter</td>
|
<td>Cmd + Return</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Toggle adapting display refresh rate to game frame rate
|
<td>Toggle adapting display refresh rate to game frame rate
|
||||||
|
@ -1757,11 +1757,6 @@
|
||||||
<td>Backspace</td>
|
<td>Backspace</td>
|
||||||
<td>Backspace</td>
|
<td>Backspace</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>Go to parent directory (UI mode)</td>
|
|
||||||
<td>Backspace</td>
|
|
||||||
<td>Backspace</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><i>Decrease</i> emulation speed (disables 'Turbo' mode)</td>
|
<td><i>Decrease</i> emulation speed (disables 'Turbo' mode)</td>
|
||||||
<td>Shift-Control + s</td>
|
<td>Shift-Control + s</td>
|
||||||
|
@ -1867,8 +1862,129 @@
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<p><b>UI Keys (can be remapped)</b></p>
|
||||||
|
|
||||||
|
<table BORDER=2 cellpadding=4>
|
||||||
|
<tr>
|
||||||
|
<th>Function</th>
|
||||||
|
<th>Key (Standard)</th>
|
||||||
|
<th>Key (macOS)</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move Up</td>
|
||||||
|
<td>Up arrow</td>
|
||||||
|
<td>Up arrow</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move Down</td>
|
||||||
|
<td>Down arrow</td>
|
||||||
|
<td>Down arrow</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move Left</td>
|
||||||
|
<td>Left arrow</td>
|
||||||
|
<td>Left arrow</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move Right</td>
|
||||||
|
<td>Right arrow</td>
|
||||||
|
<td>Right arrow</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move Home</td>
|
||||||
|
<td>Home</td>
|
||||||
|
<td>Home</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move End</td>
|
||||||
|
<td>End</td>
|
||||||
|
<td>End</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move Page Up</td>
|
||||||
|
<td>Page Up</td>
|
||||||
|
<td>Page Up</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move Page Down</td>
|
||||||
|
<td>Page Down</td>
|
||||||
|
<td>Page Down</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>OK</td>
|
||||||
|
<td>-</td>
|
||||||
|
<td>-</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Cancel</td>
|
||||||
|
<td>Escape</td>
|
||||||
|
<td>Escape</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Select item</td>
|
||||||
|
<td>Return/Enter/Space</td>
|
||||||
|
<td>Return/Enter/Space</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move to previous object</td>
|
||||||
|
<td>Shift + Tab</td>
|
||||||
|
<td>Shift + Tab</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move to next object</td>
|
||||||
|
<td>Tab</td>
|
||||||
|
<td>Tab</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move to previous tab</td>
|
||||||
|
<td>Shift-Control + Tab</td>
|
||||||
|
<td>Shift-Control + Tab</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move to next tab</td>
|
||||||
|
<td>Control + Tab</td>
|
||||||
|
<td>Control + Tab</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Go to parent directory</td>
|
||||||
|
<td>Backspace</td>
|
||||||
|
<td>Backspace</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Toggle windowed/fullscreen mode</td>
|
||||||
|
<td>Alt + Return</td>
|
||||||
|
<td>Cmd + Return</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Exit emulator</td>
|
||||||
|
<td>Control + q</td>
|
||||||
|
<td>Cmd + q</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
<p><b>UI Keys in Text Editing areas (cannot be remapped)</b></p>
|
<p><b>UI Keys in Text Editing areas (cannot be remapped)</b></p>
|
||||||
|
|
||||||
|
*** TODO!!! ***
|
||||||
|
|
||||||
|
<table BORDER=2 cellpadding=4>
|
||||||
|
<tr>
|
||||||
|
<th>Function</th>
|
||||||
|
<th>Key (Standard)</th>
|
||||||
|
<th>Key (macOS)</th>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Move cursor to beginning of line</td>
|
||||||
|
<td>Home, Control + a</td>
|
||||||
|
<td>Home, Control + a</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>...</td>
|
||||||
|
<td>...</td>
|
||||||
|
<td>...</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</br>
|
||||||
|
|
||||||
<table BORDER=2 cellpadding=4>
|
<table BORDER=2 cellpadding=4>
|
||||||
<tr><th>Key</th><th>Editor Function</th></tr>
|
<tr><th>Key</th><th>Editor Function</th></tr>
|
||||||
<tr><td>Home, Control + a</td><td>Move cursor to beginning of line</td></tr>
|
<tr><td>Home, Control + a</td><td>Move cursor to beginning of line</td></tr>
|
||||||
|
@ -1884,6 +2000,7 @@
|
||||||
<tr><td>Control + v, Shift + Insert</td><td>Paste clipboard contents</td></tr>
|
<tr><td>Control + v, Shift + Insert</td><td>Paste clipboard contents</td></tr>
|
||||||
<tr><td>Control + x, Shift + Delete</td><td>Cut entire line to clipboard</td></tr>
|
<tr><td>Control + x, Shift + Delete</td><td>Cut entire line to clipboard</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
</blockquote></br>
|
</blockquote></br>
|
||||||
|
|
||||||
<h2><b><a name="ControlMap">Controller Map</a></b></h2>
|
<h2><b><a name="ControlMap">Controller Map</a></b></h2>
|
||||||
|
|
|
@ -187,6 +187,10 @@ bool EditableWidget::handleControlKeys(StellaKey key, StellaMod mod)
|
||||||
sendCommand(EditableWidget::kChangedCmd, key, _id);
|
sendCommand(EditableWidget::kChangedCmd, key, _id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case KBDK_Z:
|
||||||
|
// TODO: undo
|
||||||
|
break;
|
||||||
|
|
||||||
case KBDK_LEFT:
|
case KBDK_LEFT:
|
||||||
handled = moveWord(-1, shift);
|
handled = moveWord(-1, shift);
|
||||||
if(!shift)
|
if(!shift)
|
||||||
|
@ -700,10 +704,26 @@ bool EditableWidget::pasteSelectedText()
|
||||||
instance().eventHandler().pasteText(pasted);
|
instance().eventHandler().pasteText(pasted);
|
||||||
// remove the currently selected text
|
// remove the currently selected text
|
||||||
killSelectedText();
|
killSelectedText();
|
||||||
// insert paste text instead
|
// insert filtered paste text instead
|
||||||
_editString.insert(_caretPos, pasted);
|
ostringstream buf;
|
||||||
|
bool lastOk = true; // only one filler char per invalid character (block)
|
||||||
|
|
||||||
|
for(char c : pasted)
|
||||||
|
if(_filter(tolower(c)))
|
||||||
|
{
|
||||||
|
buf << c;
|
||||||
|
lastOk = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if(lastOk)
|
||||||
|
buf << '_';
|
||||||
|
lastOk = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
_editString.insert(_caretPos, buf.str());
|
||||||
// position cursor at the end of pasted text
|
// position cursor at the end of pasted text
|
||||||
_caretPos += int(pasted.length());
|
_caretPos += int(buf.str().length());
|
||||||
|
|
||||||
return selected || !pasted.empty();
|
return selected || !pasted.empty();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue