skin transition code moved to support
This commit is contained in:
parent
1f899ebdbf
commit
1c78044984
@ -159,28 +159,11 @@ namespace
|
|||||||
void changeSkin( int index )
|
void changeSkin( int index )
|
||||||
{
|
{
|
||||||
const auto names = qskSkinManager->skinNames();
|
const auto names = qskSkinManager->skinNames();
|
||||||
if ( index < 0 || index >= names.size() )
|
|
||||||
return;
|
|
||||||
|
|
||||||
if ( index == names.indexOf( qskSetup->skinName() ) )
|
if ( ( index >= 0 ) && ( index < names.size() )
|
||||||
return;
|
&& ( index != names.indexOf( qskSetup->skinName() ) ) )
|
||||||
|
|
||||||
auto oldSkin = qskSetup->skin();
|
|
||||||
if ( oldSkin->parent() == qskSetup )
|
|
||||||
oldSkin->setParent( nullptr ); // otherwise setSkin deletes it
|
|
||||||
|
|
||||||
if ( auto newSkin = qskSetup->setSkin( names[ index ] ) )
|
|
||||||
{
|
{
|
||||||
QskSkinTransition transition;
|
Skinny::setSkin( index, 500 );
|
||||||
|
|
||||||
transition.setSourceSkin( oldSkin );
|
|
||||||
transition.setTargetSkin( newSkin );
|
|
||||||
transition.setAnimation( 500 );
|
|
||||||
|
|
||||||
transition.process();
|
|
||||||
|
|
||||||
if ( oldSkin->parent() == nullptr )
|
|
||||||
delete oldSkin;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -135,13 +135,25 @@ static bool pluginPath = initPluginPath();
|
|||||||
Q_COREAPP_STARTUP_FUNCTION( initFonts )
|
Q_COREAPP_STARTUP_FUNCTION( initFonts )
|
||||||
|
|
||||||
void Skinny::changeSkin( QskAnimationHint hint )
|
void Skinny::changeSkin( QskAnimationHint hint )
|
||||||
|
{
|
||||||
|
const auto names = qskSkinManager->skinNames();
|
||||||
|
if ( names.size() > 1 )
|
||||||
|
{
|
||||||
|
auto index = names.indexOf( qskSetup->skinName() );
|
||||||
|
index = ( index + 1 ) % names.size();
|
||||||
|
|
||||||
|
setSkin( index, hint );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Skinny::setSkin( int index, QskAnimationHint hint )
|
||||||
{
|
{
|
||||||
const auto names = qskSkinManager->skinNames();
|
const auto names = qskSkinManager->skinNames();
|
||||||
if ( names.size() <= 1 )
|
if ( names.size() <= 1 )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int index = names.indexOf( qskSetup->skinName() );
|
if ( index == names.indexOf( qskSetup->skinName() ) )
|
||||||
index = ( index + 1 ) % names.size();
|
return;
|
||||||
|
|
||||||
auto oldSkin = qskSetup->skin();
|
auto oldSkin = qskSetup->skin();
|
||||||
if ( oldSkin->parent() == qskSetup )
|
if ( oldSkin->parent() == qskSetup )
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
namespace Skinny
|
namespace Skinny
|
||||||
{
|
{
|
||||||
SKINNY_EXPORT void changeSkin( QskAnimationHint hint = 500 );
|
SKINNY_EXPORT void changeSkin( QskAnimationHint hint = 500 );
|
||||||
|
SKINNY_EXPORT void setSkin( int index, QskAnimationHint hint = 500 );
|
||||||
SKINNY_EXPORT void changeFonts( int increment );
|
SKINNY_EXPORT void changeFonts( int increment );
|
||||||
SKINNY_EXPORT void init();
|
SKINNY_EXPORT void init();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user