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

View File

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