harmonizing handling of local/global hint tables
This commit is contained in:
parent
4fde9abd02
commit
b6df087756
@ -220,51 +220,38 @@ void QskSkin::setSkinHint( QskAspect::Aspect aspect, const QVariant& skinHint )
|
||||
{
|
||||
using namespace QskAspect;
|
||||
|
||||
auto aspectEdge = aspect;
|
||||
aspectEdge.clearEdge();
|
||||
auto aspectEdges = aspect;
|
||||
aspectEdges.clearEdge();
|
||||
|
||||
if ( !bitcount || edges & TopEdge )
|
||||
setSkinHint( aspectEdge | TopEdge, skinHint );
|
||||
setSkinHint( aspectEdges | TopEdge, skinHint );
|
||||
|
||||
if ( !bitcount || ( edges & LeftEdge ) )
|
||||
setSkinHint( aspectEdge | LeftEdge, skinHint );
|
||||
setSkinHint( aspectEdges | LeftEdge, skinHint );
|
||||
|
||||
if ( !bitcount || ( edges & RightEdge ) )
|
||||
setSkinHint( aspectEdge | RightEdge, skinHint );
|
||||
setSkinHint( aspectEdges | RightEdge, skinHint );
|
||||
|
||||
if ( !bitcount || ( edges & BottomEdge ) )
|
||||
setSkinHint( aspectEdge | BottomEdge, skinHint );
|
||||
setSkinHint( aspectEdges | BottomEdge, skinHint );
|
||||
}
|
||||
|
||||
if ( bitcount > 1 ) // Allows 0 to imply AllEdges
|
||||
return;
|
||||
}
|
||||
|
||||
auto it = m_data->skinHints.find( aspect );
|
||||
if ( it == m_data->skinHints.end() )
|
||||
{
|
||||
bool isSame = true;
|
||||
auto it = m_data->skinHints.find( aspect );
|
||||
if ( it == m_data->skinHints.end() )
|
||||
{
|
||||
m_data->skinHints.emplace( aspect, skinHint );
|
||||
isSame = false;
|
||||
}
|
||||
else if ( it->second != skinHint )
|
||||
{
|
||||
it->second = skinHint;
|
||||
isSame = false;
|
||||
}
|
||||
|
||||
if ( isSame )
|
||||
return;
|
||||
m_data->skinHints.emplace( aspect, skinHint );
|
||||
}
|
||||
else if ( it->second != skinHint )
|
||||
{
|
||||
it->second = skinHint;
|
||||
}
|
||||
|
||||
if ( aspect.isAnimator() )
|
||||
m_data->animatorAspects[ aspect.subControl() ].insert( aspect );
|
||||
|
||||
#if 0
|
||||
// do we want to have such a signal - or maybe better an event ???
|
||||
Q_EMIT skinHintChanged( aspect );
|
||||
#endif
|
||||
}
|
||||
|
||||
void QskSkin::removeSkinHint( QskAspect::Aspect aspect )
|
||||
|
@ -382,13 +382,10 @@ void QskSkinnable::setSkinHint( QskAspect::Aspect aspect, const QVariant& skinHi
|
||||
auto it = m_data->skinHints->find( aspect );
|
||||
if ( it == m_data->skinHints->end() )
|
||||
{
|
||||
( *m_data->skinHints )[ aspect ] = skinHint;
|
||||
m_data->skinHints->emplace( aspect, skinHint );
|
||||
}
|
||||
else
|
||||
else if ( it->second != skinHint )
|
||||
{
|
||||
if ( it->second == skinHint )
|
||||
return;
|
||||
|
||||
it->second = skinHint;
|
||||
}
|
||||
|
||||
@ -399,10 +396,6 @@ void QskSkinnable::setSkinHint( QskAspect::Aspect aspect, const QVariant& skinHi
|
||||
|
||||
m_data->anminatorAspects->insert( aspect );
|
||||
}
|
||||
else
|
||||
{
|
||||
owningControl()->update();
|
||||
}
|
||||
}
|
||||
|
||||
QVariant QskSkinnable::effectiveHint(
|
||||
|
Loading…
x
Reference in New Issue
Block a user