using QskGrdient::Stops for separator hints
This commit is contained in:
parent
fe8e696f40
commit
f14036c124
|
@ -176,12 +176,7 @@ namespace
|
|||
|
||||
void Editor::setSeparator( QskAspect aspect )
|
||||
{
|
||||
QskLinearGradient gradient( Qt::Vertical, m_pal.lighter110, m_pal.darker125 );
|
||||
|
||||
if ( aspect.placement() == QskAspect::Vertical )
|
||||
gradient.setOrientation( Qt::Horizontal );
|
||||
|
||||
setGradient( aspect, gradient );
|
||||
setGradient( aspect, m_pal.lighter110, m_pal.darker125 );
|
||||
setBoxShape( aspect, 0 );
|
||||
setBoxBorderMetrics( aspect, 0 );
|
||||
}
|
||||
|
@ -351,11 +346,8 @@ void Editor::setupMenu()
|
|||
const bool isCascading = qskMaybeDesktopPlatform();
|
||||
setFlagHint( Q::Panel | A::Style, isCascading );
|
||||
|
||||
#if 0
|
||||
setPadding( Q::Separator, QMarginsF( 10, 0, 10, 0 ) );
|
||||
#endif
|
||||
setMetric( Q::Separator | A::Size, qskDpiScaled( 2 ) );
|
||||
setSeparator( Q::Separator | A::Horizontal );
|
||||
setSeparator( Q::Separator );
|
||||
|
||||
setPadding( Q::Segment, QskMargins( 2, 10, 2, 10 ) );
|
||||
setSpacing( Q::Segment, 5 );
|
||||
|
@ -471,9 +463,7 @@ void Editor::setupSeparator()
|
|||
using Q = QskSeparator;
|
||||
|
||||
setMetric( Q::Panel | A::Size, 4 );
|
||||
|
||||
setSeparator( Q::Panel | A::Horizontal );
|
||||
setSeparator( Q::Panel | A::Vertical );
|
||||
setSeparator( Q::Panel );
|
||||
}
|
||||
|
||||
void Editor::setupSegmentedBar()
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
#include "QskFunctions.h"
|
||||
#include "QskMargins.h"
|
||||
#include "QskFunctions.h"
|
||||
#include "QskLinearGradient.h"
|
||||
|
||||
#include <qfontmetrics.h>
|
||||
#include <qmath.h>
|
||||
|
@ -531,7 +532,11 @@ QSGNode* QskMenuSkinlet::updateSampleNode( const QskSkinnable* skinnable,
|
|||
|
||||
if ( subControl == Q::Separator )
|
||||
{
|
||||
return updateBoxNode( menu, node, rect, subControl );
|
||||
auto gradient = menu->gradientHint( subControl );
|
||||
if ( ( gradient.type() == QskGradient::Stops ) && !gradient.isMonochrome() )
|
||||
gradient = QskLinearGradient( Qt::Vertical, gradient.stops() );
|
||||
|
||||
return updateBoxNode( menu, node, rect, gradient, subControl );
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "QskSeparatorSkinlet.h"
|
||||
#include "QskSeparator.h"
|
||||
|
||||
#include "QskLinearGradient.h"
|
||||
#include "QskAspect.h"
|
||||
|
||||
QskSeparatorSkinlet::QskSeparatorSkinlet( QskSkin* skin )
|
||||
|
@ -38,7 +39,21 @@ QSGNode* QskSeparatorSkinlet::updateSubNode(
|
|||
{
|
||||
case PanelRole:
|
||||
{
|
||||
return updateBoxNode( separator, node, QskSeparator::Panel );
|
||||
using Q = QskSeparator;
|
||||
|
||||
const auto rect = separator->subControlRect( Q::Panel );
|
||||
|
||||
auto gradient = separator->gradientHint( Q::Panel );
|
||||
if ( ( gradient.type() == QskGradient::Stops ) && !gradient.isMonochrome() )
|
||||
{
|
||||
// gradient in opposite orientation
|
||||
const auto orientation = ( separator->orientation() == Qt::Vertical )
|
||||
? Qt::Horizontal : Qt::Vertical;
|
||||
|
||||
gradient = QskLinearGradient( orientation, gradient.stops() );
|
||||
}
|
||||
|
||||
return updateBoxNode( separator, node, rect, gradient, Q::Panel );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue