--- a/src/hbwidgets/widgets/hbpushbutton.cpp Thu Sep 02 20:44:51 2010 +0300
+++ b/src/hbwidgets/widgets/hbpushbutton.cpp Fri Sep 17 08:32:10 2010 +0300
@@ -258,13 +258,6 @@
q->grabGesture(Qt::TapGesture);
}
}
-
- if( !focusItem ) {
- focusItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_PushButton_focus, q);
- //focus primitive is will not be visible by default,
- //only in case of keyboard focus events it will be Visible.
- focusItem->setVisible( false );
- }
}
void HbPushButtonPrivate::_q_handleLongKeyPress( )
@@ -680,21 +673,31 @@
void HbPushButton::recreatePrimitives()
{
Q_D( HbPushButton );
- HbWidget::recreatePrimitives();
-
- delete d->frameItem;
- d->frameItem = 0;
- delete d->iconItem;
- d->iconItem = 0;
- delete d->textItem;
- d->textItem = 0;
- delete d->touchArea;
- d->touchArea = 0;
- delete d->additionalTextItem;
- d->additionalTextItem = 0;
- delete d->focusItem;
- d->focusItem = 0;
-
+ HbWidget::recreatePrimitives();
+ if ( d->frameItem ) {
+ delete d->frameItem;
+ d->frameItem = 0;
+ }
+ if ( d->iconItem ) {
+ delete d->iconItem;
+ d->iconItem = 0;
+ }
+ if ( d->textItem ) {
+ delete d->textItem ;
+ d->textItem = 0;
+ }
+ if ( d->touchArea ) {
+ delete d->touchArea ;
+ d->touchArea = 0;
+ }
+ if ( d->additionalTextItem ) {
+ delete d->additionalTextItem ;
+ d->additionalTextItem = 0;
+ }
+ if ( d->focusItem ) {
+ delete d->focusItem ;
+ d->focusItem = 0;
+ }
d->createPrimitives( );
setFrameBackground( 0 );
}
@@ -706,9 +709,25 @@
{
Q_D( HbPushButton );
HbWidget::updatePrimitives( );
-
HbStyleOptionPushButton buttonOption;
initStyleOption(&buttonOption);
+ //update the button color property information
+ if ( d->checkable ) {
+ if ( d->checked ) {
+ setProperty( "state", "latched" );
+ }
+ else {
+ setProperty( "state", "normal" );
+ }
+ }
+ else{
+ if ( d->down ) {
+ setProperty( "state", "pressed" );
+ }
+ else {
+ setProperty( "state", "normal" );
+ }
+ }
if ( d->textItem ) {
HbStylePrivate::updatePrimitive( d->textItem, HbStylePrivate::P_PushButton_text, &buttonOption );
}
@@ -917,11 +936,11 @@
#ifdef HB_EFFECTS
HbEffect::start( this, HB_PUSHBUTTON_TYPE, "pressed" );
#endif
- if( d->checkable && !d->checked) {
+ /* if( d->checkable && !d->checked) {
setProperty( "state", "latched" );
}else if(!d->checkable) {
setProperty( "state", "pressed" );
- }
+ }*/
}
break;
case Qt::GestureUpdated:
@@ -939,11 +958,11 @@
HbEffect::start( this, HB_PUSHBUTTON_TYPE, "released" );
#endif
}
- if( d->checkable && !d->checked) {
+ /*if( d->checkable && !d->checked) {
setProperty( "state", "latched" );
}else {
setProperty( "state", "normal" );
- }
+ }*/
break;
default:
break;
@@ -985,15 +1004,15 @@
Q_D( HbPushButton );
if( ( event->reason() == Qt::TabFocusReason || event->reason() == Qt::BacktabFocusReason )
&& ( d->navigationKeyPress ) ) {
- if( d->focusItem ) {
+ if( !d->focusItem ) {
+ d->focusItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_PushButton_focus, this);
+ } else {
d->focusItem->setVisible( true );
if( hasFocus() ) {
HbStyleOptionPushButton buttonOption;
initStyleOption( &buttonOption );
HbStylePrivate::updatePrimitive( d->focusItem,HbStylePrivate::P_PushButton_focus, &buttonOption );
- }
- } else {
- d->focusItem = HbStylePrivate::createPrimitive(HbStylePrivate::P_PushButton_focus, this);
+ }
}
}
HbAbstractButton::focusInEvent( event );