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;
|
using namespace QskAspect;
|
||||||
|
|
||||||
auto aspectEdge = aspect;
|
auto aspectEdges = aspect;
|
||||||
aspectEdge.clearEdge();
|
aspectEdges.clearEdge();
|
||||||
|
|
||||||
if ( !bitcount || edges & TopEdge )
|
if ( !bitcount || edges & TopEdge )
|
||||||
setSkinHint( aspectEdge | TopEdge, skinHint );
|
setSkinHint( aspectEdges | TopEdge, skinHint );
|
||||||
|
|
||||||
if ( !bitcount || ( edges & LeftEdge ) )
|
if ( !bitcount || ( edges & LeftEdge ) )
|
||||||
setSkinHint( aspectEdge | LeftEdge, skinHint );
|
setSkinHint( aspectEdges | LeftEdge, skinHint );
|
||||||
|
|
||||||
if ( !bitcount || ( edges & RightEdge ) )
|
if ( !bitcount || ( edges & RightEdge ) )
|
||||||
setSkinHint( aspectEdge | RightEdge, skinHint );
|
setSkinHint( aspectEdges | RightEdge, skinHint );
|
||||||
|
|
||||||
if ( !bitcount || ( edges & BottomEdge ) )
|
if ( !bitcount || ( edges & BottomEdge ) )
|
||||||
setSkinHint( aspectEdge | BottomEdge, skinHint );
|
setSkinHint( aspectEdges | BottomEdge, skinHint );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( bitcount > 1 ) // Allows 0 to imply AllEdges
|
if ( bitcount > 1 ) // Allows 0 to imply AllEdges
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto it = m_data->skinHints.find( aspect );
|
||||||
|
if ( it == m_data->skinHints.end() )
|
||||||
{
|
{
|
||||||
bool isSame = true;
|
m_data->skinHints.emplace( aspect, skinHint );
|
||||||
auto it = m_data->skinHints.find( aspect );
|
}
|
||||||
if ( it == m_data->skinHints.end() )
|
else if ( it->second != skinHint )
|
||||||
{
|
{
|
||||||
m_data->skinHints.emplace( aspect, skinHint );
|
it->second = skinHint;
|
||||||
isSame = false;
|
|
||||||
}
|
|
||||||
else if ( it->second != skinHint )
|
|
||||||
{
|
|
||||||
it->second = skinHint;
|
|
||||||
isSame = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( isSame )
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( aspect.isAnimator() )
|
if ( aspect.isAnimator() )
|
||||||
m_data->animatorAspects[ aspect.subControl() ].insert( aspect );
|
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 )
|
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 );
|
auto it = m_data->skinHints->find( aspect );
|
||||||
if ( it == m_data->skinHints->end() )
|
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;
|
it->second = skinHint;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -399,10 +396,6 @@ void QskSkinnable::setSkinHint( QskAspect::Aspect aspect, const QVariant& skinHi
|
|||||||
|
|
||||||
m_data->anminatorAspects->insert( aspect );
|
m_data->anminatorAspects->insert( aspect );
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
owningControl()->update();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant QskSkinnable::effectiveHint(
|
QVariant QskSkinnable::effectiveHint(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user