QskInputPanel fixed
This commit is contained in:
parent
e6f0088ae4
commit
e5a053462c
|
@ -151,20 +151,25 @@ static qreal qskKeyStretch( Qt::Key key )
|
||||||
case Qt::Key_Shift:
|
case Qt::Key_Shift:
|
||||||
case Qt::Key_CapsLock:
|
case Qt::Key_CapsLock:
|
||||||
return 1.5;
|
return 1.5;
|
||||||
|
|
||||||
case Qt::Key_Space:
|
case Qt::Key_Space:
|
||||||
return 3.5;
|
return 3.5;
|
||||||
|
|
||||||
case Qt::Key_Return:
|
case Qt::Key_Return:
|
||||||
case Qt::Key_Mode_switch:
|
case Qt::Key_Mode_switch:
|
||||||
|
|
||||||
// Possibly smaller
|
// Possibly smaller
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1.0;
|
return 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static qreal qskRowStretch( const QskInputPanel::KeyRow& keyRow )
|
static qreal qskRowStretch( const QskInputPanel::KeyRow& keyRow )
|
||||||
{
|
{
|
||||||
qreal stretch = 0;
|
qreal stretch = 0;
|
||||||
|
|
||||||
for ( const auto& key : keyRow )
|
for ( const auto& key : keyRow )
|
||||||
{
|
{
|
||||||
if ( !key )
|
if ( !key )
|
||||||
|
@ -172,6 +177,7 @@ static qreal qskRowStretch( const QskInputPanel::KeyRow& keyRow )
|
||||||
|
|
||||||
stretch += qskKeyStretch( key );
|
stretch += qskKeyStretch( key );
|
||||||
}
|
}
|
||||||
|
|
||||||
return stretch;
|
return stretch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,29 +267,39 @@ QString QskInputPanel::textForKey( Qt::Key key ) const
|
||||||
key &= ~KeyStates;
|
key &= ~KeyStates;
|
||||||
|
|
||||||
// Special cases
|
// Special cases
|
||||||
switch ( key ) {
|
switch ( key )
|
||||||
|
{
|
||||||
case Qt::Key_Backspace:
|
case Qt::Key_Backspace:
|
||||||
case Qt::Key_Muhenkan:
|
case Qt::Key_Muhenkan:
|
||||||
return QChar( 0x232B );
|
return QChar( 0x232B );
|
||||||
|
|
||||||
case Qt::Key_CapsLock:
|
case Qt::Key_CapsLock:
|
||||||
case Qt::Key_Kana_Lock:
|
case Qt::Key_Kana_Lock:
|
||||||
return QChar( 0x21E7 );
|
return QChar( 0x21E7 );
|
||||||
|
|
||||||
case Qt::Key_Shift:
|
case Qt::Key_Shift:
|
||||||
case Qt::Key_Kana_Shift:
|
case Qt::Key_Kana_Shift:
|
||||||
return QChar( 0x2B06 );
|
return QChar( 0x2B06 );
|
||||||
|
|
||||||
case Qt::Key_Mode_switch:
|
case Qt::Key_Mode_switch:
|
||||||
return QChar( 0x2026 );
|
return QChar( 0x2026 );
|
||||||
|
|
||||||
case Qt::Key_Return:
|
case Qt::Key_Return:
|
||||||
case Qt::Key_Kanji:
|
case Qt::Key_Kanji:
|
||||||
return QChar( 0x23CE );
|
return QChar( 0x23CE );
|
||||||
|
|
||||||
case Qt::Key_Left:
|
case Qt::Key_Left:
|
||||||
return QChar( 0x2190 );
|
return QChar( 0x2190 );
|
||||||
|
|
||||||
case Qt::Key_Right:
|
case Qt::Key_Right:
|
||||||
return QChar( 0x2192 );
|
return QChar( 0x2192 );
|
||||||
|
|
||||||
case Qt::Key_ApplicationLeft:
|
case Qt::Key_ApplicationLeft:
|
||||||
return QChar( 0x2B05 );
|
return QChar( 0x2B05 );
|
||||||
|
|
||||||
case Qt::Key_ApplicationRight:
|
case Qt::Key_ApplicationRight:
|
||||||
return QChar( 0x27A1 );
|
return QChar( 0x27A1 );
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -297,18 +313,24 @@ QString QskInputPanel::textForKey( Qt::Key key ) const
|
||||||
QString QskInputPanel::displayLanguageName() const
|
QString QskInputPanel::displayLanguageName() const
|
||||||
{
|
{
|
||||||
const auto locale = this->locale();
|
const auto locale = this->locale();
|
||||||
|
|
||||||
switch ( locale.language() )
|
switch ( locale.language() )
|
||||||
{
|
{
|
||||||
case QLocale::Bulgarian:
|
case QLocale::Bulgarian:
|
||||||
return QStringLiteral( "български език" );
|
return QStringLiteral( "български език" );
|
||||||
|
|
||||||
case QLocale::Czech:
|
case QLocale::Czech:
|
||||||
return QStringLiteral( "Čeština" );
|
return QStringLiteral( "Čeština" );
|
||||||
|
|
||||||
case QLocale::German:
|
case QLocale::German:
|
||||||
return QStringLiteral( "Deutsch" );
|
return QStringLiteral( "Deutsch" );
|
||||||
|
|
||||||
case QLocale::Danish:
|
case QLocale::Danish:
|
||||||
return QStringLiteral( "Dansk" );
|
return QStringLiteral( "Dansk" );
|
||||||
|
|
||||||
case QLocale::Greek:
|
case QLocale::Greek:
|
||||||
return QStringLiteral( "Eλληνικά" );
|
return QStringLiteral( "Eλληνικά" );
|
||||||
|
|
||||||
case QLocale::English:
|
case QLocale::English:
|
||||||
{
|
{
|
||||||
switch ( locale.country() )
|
switch ( locale.country() )
|
||||||
|
@ -318,52 +340,73 @@ QString QskInputPanel::displayLanguageName() const
|
||||||
case QLocale::UnitedStatesMinorOutlyingIslands:
|
case QLocale::UnitedStatesMinorOutlyingIslands:
|
||||||
case QLocale::UnitedStatesVirginIslands:
|
case QLocale::UnitedStatesVirginIslands:
|
||||||
return QStringLiteral( "English (US)" );
|
return QStringLiteral( "English (US)" );
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return QStringLiteral( "English (UK)" );
|
return QStringLiteral( "English (UK)" );
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case QLocale::Spanish:
|
case QLocale::Spanish:
|
||||||
return QStringLiteral( "Español" );
|
return QStringLiteral( "Español" );
|
||||||
|
|
||||||
case QLocale::Finnish:
|
case QLocale::Finnish:
|
||||||
return QStringLiteral( "Suomi" );
|
return QStringLiteral( "Suomi" );
|
||||||
|
|
||||||
case QLocale::French:
|
case QLocale::French:
|
||||||
return QStringLiteral( "Français" );
|
return QStringLiteral( "Français" );
|
||||||
|
|
||||||
case QLocale::Hungarian:
|
case QLocale::Hungarian:
|
||||||
return QStringLiteral( "Magyar" );
|
return QStringLiteral( "Magyar" );
|
||||||
|
|
||||||
case QLocale::Italian:
|
case QLocale::Italian:
|
||||||
return QStringLiteral( "Italiano" );
|
return QStringLiteral( "Italiano" );
|
||||||
|
|
||||||
case QLocale::Japanese:
|
case QLocale::Japanese:
|
||||||
return QStringLiteral( "日本語" );
|
return QStringLiteral( "日本語" );
|
||||||
|
|
||||||
case QLocale::Latvian:
|
case QLocale::Latvian:
|
||||||
return QStringLiteral( "Latviešu" );
|
return QStringLiteral( "Latviešu" );
|
||||||
|
|
||||||
case QLocale::Lithuanian:
|
case QLocale::Lithuanian:
|
||||||
return QStringLiteral( "Lietuvių" );
|
return QStringLiteral( "Lietuvių" );
|
||||||
|
|
||||||
case QLocale::Dutch:
|
case QLocale::Dutch:
|
||||||
return QStringLiteral( "Nederlands" );
|
return QStringLiteral( "Nederlands" );
|
||||||
|
|
||||||
case QLocale::Portuguese:
|
case QLocale::Portuguese:
|
||||||
return QStringLiteral( "Português" );
|
return QStringLiteral( "Português" );
|
||||||
|
|
||||||
case QLocale::Romanian:
|
case QLocale::Romanian:
|
||||||
return QStringLiteral( "Română" );
|
return QStringLiteral( "Română" );
|
||||||
|
|
||||||
case QLocale::Russia:
|
case QLocale::Russia:
|
||||||
return QStringLiteral( "Русский" );
|
return QStringLiteral( "Русский" );
|
||||||
|
|
||||||
case QLocale::Slovenian:
|
case QLocale::Slovenian:
|
||||||
return QStringLiteral( "Slovenščina" );
|
return QStringLiteral( "Slovenščina" );
|
||||||
|
|
||||||
case QLocale::Slovak:
|
case QLocale::Slovak:
|
||||||
return QStringLiteral( "Slovenčina" );
|
return QStringLiteral( "Slovenčina" );
|
||||||
|
|
||||||
case QLocale::Turkish:
|
case QLocale::Turkish:
|
||||||
return QStringLiteral( "Türkçe" );
|
return QStringLiteral( "Türkçe" );
|
||||||
|
|
||||||
case QLocale::Chinese:
|
case QLocale::Chinese:
|
||||||
return QStringLiteral( "中文" );
|
return QStringLiteral( "中文" );
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return QLocale::languageToString( locale.language() );
|
return QLocale::languageToString( locale.language() );
|
||||||
}
|
}
|
||||||
|
|
||||||
void QskInputPanel::setPreeditGroups( const QVector< Qt::Key >& groups )
|
void QskInputPanel::setPreeditGroups( const QVector< Qt::Key >& groups )
|
||||||
{
|
{
|
||||||
auto& topRow = m_data->keyTable[ LowercaseMode ].data[ 0 ];
|
auto& topRow = m_data->keyTable[ LowercaseMode ].data[ 0 ];
|
||||||
|
|
||||||
for ( const auto& group : groups )
|
for ( const auto& group : groups )
|
||||||
{
|
{
|
||||||
auto& keyData = topRow[ &group - groups.data() ];
|
auto& keyData = topRow[ &group - groups.data() ];
|
||||||
|
@ -392,6 +435,7 @@ bool QskInputPanel::advanceFocus( bool forward )
|
||||||
auto offset = forward ? 1 : -1;
|
auto offset = forward ? 1 : -1;
|
||||||
|
|
||||||
auto focusKeyIndex = m_data->focusKeyIndex;
|
auto focusKeyIndex = m_data->focusKeyIndex;
|
||||||
|
|
||||||
Q_FOREVER
|
Q_FOREVER
|
||||||
{
|
{
|
||||||
focusKeyIndex += offset;
|
focusKeyIndex += offset;
|
||||||
|
@ -420,6 +464,7 @@ bool QskInputPanel::activateFocusKey()
|
||||||
if ( m_data->focusKeyIndex > 0 && m_data->focusKeyIndex < RowCount * KeyCount )
|
if ( m_data->focusKeyIndex > 0 && m_data->focusKeyIndex < RowCount * KeyCount )
|
||||||
{
|
{
|
||||||
auto& keyData = keyDataAt( m_data->focusKeyIndex );
|
auto& keyData = keyDataAt( m_data->focusKeyIndex );
|
||||||
|
|
||||||
if ( keyData.key & KeyPressed )
|
if ( keyData.key & KeyPressed )
|
||||||
handleKey( m_data->focusKeyIndex );
|
handleKey( m_data->focusKeyIndex );
|
||||||
else
|
else
|
||||||
|
@ -457,6 +502,7 @@ void QskInputPanel::clearFocusKey()
|
||||||
keyDataAt( m_data->focusKeyIndex ).key &= ~KeyFocused;
|
keyDataAt( m_data->focusKeyIndex ).key &= ~KeyFocused;
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
m_data->focusKeyIndex = -1;
|
m_data->focusKeyIndex = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -475,6 +521,7 @@ void QskInputPanel::setCandidateOffset( int candidateOffset )
|
||||||
for ( int i = 0; i < count; ++i )
|
for ( int i = 0; i < count; ++i )
|
||||||
{
|
{
|
||||||
auto& keyData = topRow[ i + groupCount ];
|
auto& keyData = topRow[ i + groupCount ];
|
||||||
|
|
||||||
if ( continueLeft && i == 0 )
|
if ( continueLeft && i == 0 )
|
||||||
keyData.key = Qt::Key_ApplicationLeft;
|
keyData.key = Qt::Key_ApplicationLeft;
|
||||||
else if ( continueRight && ( i == KeyCount - groupCount - 1 ) )
|
else if ( continueRight && ( i == KeyCount - groupCount - 1 ) )
|
||||||
|
@ -566,6 +613,7 @@ void QskInputPanel::touchEvent( QTouchEvent* e )
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto rect = keyboardRect();
|
const auto rect = keyboardRect();
|
||||||
|
|
||||||
for ( const auto& tp : e->touchPoints() )
|
for ( const auto& tp : e->touchPoints() )
|
||||||
{
|
{
|
||||||
const auto pos = tp.pos();
|
const auto pos = tp.pos();
|
||||||
|
@ -587,6 +635,7 @@ void QskInputPanel::touchEvent( QTouchEvent* e )
|
||||||
|
|
||||||
const auto keyIndex = m_data->keyTable[ m_data->mode ].indexOf( keyData );
|
const auto keyIndex = m_data->keyTable[ m_data->mode ].indexOf( keyData );
|
||||||
auto it = m_data->activeKeys.find( tp.id() );
|
auto it = m_data->activeKeys.find( tp.id() );
|
||||||
|
|
||||||
if ( tp.state() == Qt::TouchPointReleased )
|
if ( tp.state() == Qt::TouchPointReleased )
|
||||||
{
|
{
|
||||||
const int repeatCount = it->second.count;
|
const int repeatCount = it->second.count;
|
||||||
|
@ -613,6 +662,7 @@ void QskInputPanel::touchEvent( QTouchEvent* e )
|
||||||
keyDataAt( it->second.keyIndex ).key &= ~KeyPressed;
|
keyDataAt( it->second.keyIndex ).key &= ~KeyPressed;
|
||||||
it->second.count = 0;
|
it->second.count = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
it->second.keyIndex = keyIndex;
|
it->second.keyIndex = keyIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -680,6 +730,7 @@ void QskInputPanel::handleKey( int keyIndex )
|
||||||
// Preedit keys
|
// Preedit keys
|
||||||
const auto row = keyIndex / KeyCount;
|
const auto row = keyIndex / KeyCount;
|
||||||
const auto column = keyIndex % KeyCount;
|
const auto column = keyIndex % KeyCount;
|
||||||
|
|
||||||
if ( m_data->mode == LowercaseMode && !m_data->groups.isEmpty() && row == 0 )
|
if ( m_data->mode == LowercaseMode && !m_data->groups.isEmpty() && row == 0 )
|
||||||
{
|
{
|
||||||
if ( key == Qt::Key_ApplicationLeft
|
if ( key == Qt::Key_ApplicationLeft
|
||||||
|
@ -708,15 +759,18 @@ void QskInputPanel::handleKey( int keyIndex )
|
||||||
case Qt::Key_Kana_Lock:
|
case Qt::Key_Kana_Lock:
|
||||||
setMode( UppercaseMode ); // Lock caps
|
setMode( UppercaseMode ); // Lock caps
|
||||||
return;
|
return;
|
||||||
|
|
||||||
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;
|
return;
|
||||||
|
|
||||||
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< QskInputPanel::Mode >(
|
setMode( static_cast< QskInputPanel::Mode >(
|
||||||
m_data->mode ? ( ( m_data->mode + 1 ) % QskInputPanel::ModeCount )
|
m_data->mode ? ( ( m_data->mode + 1 ) % QskInputPanel::ModeCount )
|
||||||
: SpecialCharacterMode ) );
|
: SpecialCharacterMode ) );
|
||||||
return;
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -763,18 +817,23 @@ void QskInputPanel::updateLocale( const QLocale& locale )
|
||||||
case QLocale::Bulgarian:
|
case QLocale::Bulgarian:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.bg;
|
m_data->currentLayout = &qskInputPanelLayouts.bg;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Czech:
|
case QLocale::Czech:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.cs;
|
m_data->currentLayout = &qskInputPanelLayouts.cs;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::German:
|
case QLocale::German:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.de;
|
m_data->currentLayout = &qskInputPanelLayouts.de;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Danish:
|
case QLocale::Danish:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.da;
|
m_data->currentLayout = &qskInputPanelLayouts.da;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Greek:
|
case QLocale::Greek:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.el;
|
m_data->currentLayout = &qskInputPanelLayouts.el;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::English:
|
case QLocale::English:
|
||||||
{
|
{
|
||||||
switch ( locale.country() )
|
switch ( locale.country() )
|
||||||
|
@ -794,59 +853,76 @@ void QskInputPanel::updateLocale( const QLocale& locale )
|
||||||
case QLocale::Spanish:
|
case QLocale::Spanish:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.es;
|
m_data->currentLayout = &qskInputPanelLayouts.es;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Finnish:
|
case QLocale::Finnish:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.fi;
|
m_data->currentLayout = &qskInputPanelLayouts.fi;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::French:
|
case QLocale::French:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.fr;
|
m_data->currentLayout = &qskInputPanelLayouts.fr;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Hungarian:
|
case QLocale::Hungarian:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.hu;
|
m_data->currentLayout = &qskInputPanelLayouts.hu;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Italian:
|
case QLocale::Italian:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.it;
|
m_data->currentLayout = &qskInputPanelLayouts.it;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Japanese:
|
case QLocale::Japanese:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.ja;
|
m_data->currentLayout = &qskInputPanelLayouts.ja;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Latvian:
|
case QLocale::Latvian:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.lv;
|
m_data->currentLayout = &qskInputPanelLayouts.lv;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Lithuanian:
|
case QLocale::Lithuanian:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.lt;
|
m_data->currentLayout = &qskInputPanelLayouts.lt;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Dutch:
|
case QLocale::Dutch:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.nl;
|
m_data->currentLayout = &qskInputPanelLayouts.nl;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Portuguese:
|
case QLocale::Portuguese:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.pt;
|
m_data->currentLayout = &qskInputPanelLayouts.pt;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Romanian:
|
case QLocale::Romanian:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.ro;
|
m_data->currentLayout = &qskInputPanelLayouts.ro;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Russia:
|
case QLocale::Russia:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.ru;
|
m_data->currentLayout = &qskInputPanelLayouts.ru;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Slovenian:
|
case QLocale::Slovenian:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.sl;
|
m_data->currentLayout = &qskInputPanelLayouts.sl;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Slovak:
|
case QLocale::Slovak:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.sk;
|
m_data->currentLayout = &qskInputPanelLayouts.sk;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Turkish:
|
case QLocale::Turkish:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.tr;
|
m_data->currentLayout = &qskInputPanelLayouts.tr;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QLocale::Chinese:
|
case QLocale::Chinese:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.zh;
|
m_data->currentLayout = &qskInputPanelLayouts.zh;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
qWarning() << "QskInputPanel: unsupported locale:" << locale;
|
qWarning() << "QskInputPanel: unsupported locale:" << locale;
|
||||||
|
|
||||||
case QLocale::C:
|
case QLocale::C:
|
||||||
m_data->currentLayout = &qskInputPanelLayouts.en_US;
|
m_data->currentLayout = &qskInputPanelLayouts.en_US;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_EMIT displayLanguageName();
|
Q_EMIT displayLanguageNameChanged();
|
||||||
|
|
||||||
updateKeyData();
|
updateKeyData();
|
||||||
setMode( LowercaseMode );
|
setMode( LowercaseMode );
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace
|
||||||
private:
|
private:
|
||||||
virtual QskControl* owningControl() const override final
|
virtual QskControl* owningControl() const override final
|
||||||
{
|
{
|
||||||
return const_cast< QskInputPanel * >( m_panel );
|
return const_cast< QskInputPanel* >( m_panel );
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -146,6 +146,7 @@ QSGNode* QskInputPanelSkinlet::updatePanelNode(
|
||||||
const auto rowIndex = &keyRow - panelKeyData;
|
const auto rowIndex = &keyRow - panelKeyData;
|
||||||
auto& frames = panelNode->frames[ rowIndex ];
|
auto& frames = panelNode->frames[ rowIndex ];
|
||||||
auto& glyphs = panelNode->glyphs[ rowIndex ];
|
auto& glyphs = panelNode->glyphs[ rowIndex ];
|
||||||
|
|
||||||
for ( const auto& keyData : keyRow )
|
for ( const auto& keyData : keyRow )
|
||||||
{
|
{
|
||||||
const auto colIndex = &keyData - keyRow;
|
const auto colIndex = &keyData - keyRow;
|
||||||
|
|
Loading…
Reference in New Issue