From ef0e679344d8376c3b8ab1f79e4e6f99efed0ba2 Mon Sep 17 00:00:00 2001 From: Vasily Date: Tue, 23 Apr 2019 17:45:48 +0200 Subject: [PATCH] Add support for space token to keyboard_input --- src/keyboard_input/input_parser.cpp | 7 ++++++- test/keyboard_input/tst_parsertest.cpp | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/keyboard_input/input_parser.cpp b/src/keyboard_input/input_parser.cpp index fce3d02..3fe16e5 100644 --- a/src/keyboard_input/input_parser.cpp +++ b/src/keyboard_input/input_parser.cpp @@ -74,7 +74,12 @@ std::vector ParseKeyboardInputsToTokens( const std::string inputs ) continue; } - if ( !isupper( *ch ) ) + if ( isspace( *ch ) ) + { + tokens.push_back( Token::TOKEN_NEW_SEQUENCE ); + } + + if ( !isupper( *ch ) || isspace( *ch ) ) { // LOG incorrect character continue; diff --git a/test/keyboard_input/tst_parsertest.cpp b/test/keyboard_input/tst_parsertest.cpp index ce6215f..8279a9a 100644 --- a/test/keyboard_input/tst_parsertest.cpp +++ b/test/keyboard_input/tst_parsertest.cpp @@ -26,6 +26,8 @@ private slots: void functionKeys(); void shouldExitEarlyFunctionKey(); + + void releaseHeldKeys(); }; const std::string alphabet = "abcdefghijklmnopqrstuvxyz"; @@ -185,6 +187,14 @@ void ParserTest::shouldExitEarlyFunctionKey() QVERIFY( t == e ); } +void ParserTest::releaseHeldKeys() +{ + auto t = ParseKeyboardInputsToTokens( "a s" ); + auto e = std::vector( + { Token::KEY_a, Token::TOKEN_NEW_SEQUENCE, Token::KEY_s } ); + QVERIFY( t == e ); +} + QTEST_APPLESS_MAIN( ParserTest ) #include "tst_parsertest.moc"