diff -r 923ff622b8b9 -r 4633027730f5 src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectutils.cpp --- a/src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectutils.cpp Tue Jul 06 14:36:53 2010 +0300 +++ b/src/hbplugins/feedback/feedbackeffectplugin/hbfeedbackeffectutils.cpp Wed Aug 18 10:05:37 2010 +0300 @@ -64,11 +64,11 @@ */ int HbFeedbackEffectUtils::parentItemType(const HbWidget *widget) { - int graphicsItemType = 0; - if (const HbWidget *parent = dynamic_cast(widget->parentItem())) { - graphicsItemType = parent->type(); - } - return graphicsItemType; + QGraphicsItem *parent = widget->parentItem(); + if(parent) + return parent->type(); + else + return 0; } /*! @@ -268,6 +268,11 @@ effect = HbFeedback::None; } } + + if (widget->type() == Hb::ItemType_ComboBox) { + effect = HbFeedback::BasicButton; + } + break; case HbFeedbackEffectUtils::List: @@ -277,13 +282,10 @@ else { effect = HbFeedback::BasicItem; } - if (widget->type() == Hb::ItemType_DataFormViewItem) { - effect = HbFeedback::SensitiveItem; - } - else if (widget->type() == HbPrivate::ItemType_DataGroup) { + if (widget->type() == Hb::ItemType_DataFormViewItem || + widget->type() == HbPrivate::ItemType_DataGroup) { effect = HbFeedback::None; } - break; case HbFeedbackEffectUtils::Grid: @@ -326,7 +328,14 @@ break; case HbFeedbackEffectUtils::Editor: - effect = HbFeedback::Editor; + if (const HbAbstractEdit* editor = qobject_cast(widget)) { + if(editor->isReadOnly() && (Hb::TextCursorHidden == editor->cursorVisibility())) { + // cannot edit nor select + effect = HbFeedback::None; + } else { + effect = HbFeedback::Editor; + } + } break; default: @@ -360,7 +369,8 @@ if (viewItem->type() == Hb::ItemType_RadioButtonListViewItem) { effect = HbFeedback::BasicItem; } - else if(viewItem->type() == Hb::ItemType_TumbleViewItem ) { + else if(viewItem->type() == Hb::ItemType_DatePickerViewItem || + viewItem->type() == Hb::ItemType_TumbleViewItem) { effect = HbFeedback::BasicItem; } @@ -373,6 +383,10 @@ effect = HbFeedback::BasicItem; } } + // Combo box drop down list + if (QString(widget->metaObject()->className()) == "HbComboListViewItem") { + effect = HbFeedback::BasicItem; + } } } @@ -468,6 +482,7 @@ else if (widget->type() == Hb::ItemType_DataFormViewItem) { effect = HbFeedback::None; } + break; case HbFeedbackEffectUtils::Grid: @@ -532,7 +547,8 @@ if (viewItem->type() == Hb::ItemType_RadioButtonListViewItem) { effect = HbFeedback::Checkbox; } - else if(viewItem->type() == Hb::ItemType_TumbleViewItem ) { + else if(viewItem->type() == Hb::ItemType_DatePickerViewItem || + viewItem->type() == Hb::ItemType_TumbleViewItem) { effect = HbFeedback::BasicItem; } else if (widget->type() == Hb::ItemType_NotificationDialog) { @@ -542,6 +558,11 @@ if (modifiers & Hb::ModifierExpandedItem || modifiers & Hb::ModifierCollapsedItem) { effect = HbFeedback::BasicItem; } + + // Combo box drop down list + if (QString(widget->metaObject()->className()) == "HbComboListViewItem") { + effect = HbFeedback::BasicItem; + } } } @@ -567,7 +588,7 @@ // input widget special case if (widget->type() == Hb::ItemType_InputButtonGroup && modifiers & Hb::ModifierInputFunctionButton) { - effect = HbFeedback::BasicKeypad; + effect = HbFeedback::SensitiveKeypad; } else if (widget->type() == Hb::ItemType_InputButtonGroup) { effect = HbFeedback::SensitiveKeypad;