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