code simplified

This commit is contained in:
Uwe Rathmann 2018-04-06 09:00:09 +02:00
parent f4060f2e75
commit 469e110f82
2 changed files with 25 additions and 33 deletions

View File

@ -291,7 +291,11 @@ QskVirtualKeyboard::QskVirtualKeyboard( QQuickItem* parent ):
qRegisterMetaType< Qt::Key >();
setFlag( ItemHasContents );
setAcceptedMouseButtons( Qt::LeftButton );
setFlag( ItemIsFocusScope, true );
#if 0
// TODO ...
setTabFence( true );
#endif
initSizePolicy( QskSizePolicy::Expanding, QskSizePolicy::Expanding );
@ -300,12 +304,6 @@ QskVirtualKeyboard::QskVirtualKeyboard( QQuickItem* parent ):
connect( this, &QskControl::localeChanged,
this, &QskVirtualKeyboard::updateLocale );
setFlag( ItemIsFocusScope, true );
#if 0
setTabFence( true );
#endif
setAutoLayoutChildren( true );
m_data->buttonsBox = new QskLinearBox( Qt::Vertical, this );
@ -332,9 +330,6 @@ QskVirtualKeyboard::QskVirtualKeyboard( QQuickItem* parent ):
m_data->keyButtons.append( button );
}
}
connect( this, &QskVirtualKeyboard::modeChanged,
this, [ this ]() { updateLayout(); } );
}
QskVirtualKeyboard::~QskVirtualKeyboard()
@ -638,25 +633,33 @@ void QskVirtualKeyboard::handleKey( int keyIndex )
{
case Qt::Key_CapsLock:
case Qt::Key_Kana_Lock:
{
setMode( UppercaseMode ); // Lock caps
return;
break;
}
case Qt::Key_Shift:
case Qt::Key_Kana_Shift:
{
setMode( LowercaseMode ); // Unlock caps
return;
break;
}
case Qt::Key_Mode_switch: // Cycle through modes, but skip caps
{
setMode( static_cast< QskVirtualKeyboard::Mode >(
m_data->mode ? ( ( m_data->mode + 1 ) % QskVirtualKeyboard::ModeCount )
: SpecialCharacterMode ) );
return;
break;
}
default:
break;
{
QGuiApplication::inputMethod()->invokeAction(
static_cast< QInputMethod::Action >( Compose ), key );
}
}
compose( key );
}
void QskVirtualKeyboard::handleCandidateKey( int index, const QString& text )
@ -671,7 +674,9 @@ void QskVirtualKeyboard::handleCandidateKey( int index, const QString& text )
}
else
{
selectCandidate( index );
QGuiApplication::inputMethod()->invokeAction(
static_cast< QInputMethod::Action >( SelectCandidate ), index );
setPreeditCandidates( QVector< QString >() );
}
}
@ -691,18 +696,6 @@ QString QskVirtualKeyboard::currentTextForKeyIndex( int keyIndex ) const
return text;
}
void QskVirtualKeyboard::compose( int key )
{
QGuiApplication::inputMethod()->invokeAction(
static_cast< QInputMethod::Action >( Compose ), key );
}
void QskVirtualKeyboard::selectCandidate( int index )
{
QGuiApplication::inputMethod()->invokeAction(
static_cast< QInputMethod::Action >( SelectCandidate ), index );
}
void QskVirtualKeyboard::updateLocale( const QLocale& locale )
{
switch( locale.language() )
@ -864,6 +857,8 @@ void QskVirtualKeyboard::updateKeyData()
void QskVirtualKeyboard::setMode( QskVirtualKeyboard::Mode mode )
{
m_data->mode = mode;
polish();
Q_EMIT modeChanged( m_data->mode );
}

View File

@ -129,10 +129,10 @@ public:
QString currentTextForKeyIndex( int keyIndex ) const;
void handleCandidateKey( int index, const QString& text );
void setCandidateBarVisible( bool visible );
public Q_SLOTS:
void setPreeditCandidates( const QVector< QString >& );
void setCandidateBarVisible( bool visible );
protected:
virtual bool eventFilter( QObject*, QEvent* ) override;
@ -142,9 +142,6 @@ private:
void createUI();
void updateUI(); // e.g. called when updating Pinyin suggestions
void compose( int );
void selectGroup( int );
void selectCandidate( int );
void setCandidateOffset( int );
void updateKeyData();