code simplified
This commit is contained in:
parent
f4060f2e75
commit
469e110f82
|
@ -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 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue