equal
deleted
inserted
replaced
24 #include "hgcontainer.h" |
24 #include "hgcontainer.h" |
25 #include "hgcoverflowcontainer.h" |
25 #include "hgcoverflowcontainer.h" |
26 #include "hgscrollbuffermanager.h" |
26 #include "hgscrollbuffermanager.h" |
27 #include "hgwidgetitem.h" |
27 #include "hgwidgetitem.h" |
28 #include "trace.h" |
28 #include "trace.h" |
29 //#include "hgindexfeedback.h" |
29 #include "hgindexfeedback.h" |
30 |
30 |
31 static const int INITIAL_SCROLLBAR_HIDE_TIMEOUT(4000); |
31 static const int INITIAL_SCROLLBAR_HIDE_TIMEOUT(4000); |
32 static const int DEFAULT_BUFFER_SIZE(25); |
32 static const int DEFAULT_BUFFER_SIZE(25); |
33 |
33 |
34 HgWidgetPrivate::HgWidgetPrivate() : |
34 HgWidgetPrivate::HgWidgetPrivate() : |
38 mDefaultSelectionModel(0), |
38 mDefaultSelectionModel(0), |
39 mScrollBar(0), |
39 mScrollBar(0), |
40 mAbleToScroll(false), |
40 mAbleToScroll(false), |
41 mHandleLongPress(false), |
41 mHandleLongPress(false), |
42 mBufferSize(DEFAULT_BUFFER_SIZE), |
42 mBufferSize(DEFAULT_BUFFER_SIZE), |
43 mStaticScrollDirection(false) |
43 mStaticScrollDirection(false), |
|
44 mIndexFeedback(0), |
|
45 mIndexFeedbackPolicy(HgWidget::IndexFeedbackNone) |
44 { |
46 { |
45 FUNC_LOG; |
47 FUNC_LOG; |
46 } |
48 } |
47 |
49 |
48 HgWidgetPrivate::~HgWidgetPrivate() |
50 HgWidgetPrivate::~HgWidgetPrivate() |
61 |
63 |
62 mScrollBarHideTimer = new QTimer(); |
64 mScrollBarHideTimer = new QTimer(); |
63 mScrollBarHideTimer->setSingleShot(true); |
65 mScrollBarHideTimer->setSingleShot(true); |
64 |
66 |
65 q->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
67 q->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
66 q->setFlag( QGraphicsItem::ItemClipsChildrenToShape, true ); |
|
67 q->setFocusPolicy(Qt::StrongFocus); |
68 q->setFocusPolicy(Qt::StrongFocus); |
68 |
69 |
69 createScrollBar(container->scrollDirection()); |
70 createScrollBar(container->scrollDirection()); |
70 |
71 |
71 //QObject::connect(&(mScrollBarHideTimer), SIGNAL(timeout()), q, SLOT(_q_hideScrollBars())); |
72 //QObject::connect(&(mScrollBarHideTimer), SIGNAL(timeout()), q, SLOT(_q_hideScrollBars())); |
84 q->connect(mContainer, SIGNAL(scrollingEnded()), q, SIGNAL(scrollingEnded())); |
85 q->connect(mContainer, SIGNAL(scrollingEnded()), q, SIGNAL(scrollingEnded())); |
85 q->connect(mScrollBarHideTimer, SIGNAL(timeout()), q, SLOT(_q_hideScrollBars())); |
86 q->connect(mScrollBarHideTimer, SIGNAL(timeout()), q, SLOT(_q_hideScrollBars())); |
86 q->connect( HbTheme::instance(), SIGNAL(changed()), q, SLOT(_q_themeChanged())); |
87 q->connect( HbTheme::instance(), SIGNAL(changed()), q, SLOT(_q_themeChanged())); |
87 |
88 |
88 mContainer->setHandleLongPress(mHandleLongPress); |
89 mContainer->setHandleLongPress(mHandleLongPress); |
89 |
|
90 // mIndexFeedback = new HgIndexFeedback(q); |
|
91 // mIndexFeedback->setWidget(q); |
|
92 |
|
93 } |
90 } |
94 |
91 |
95 void HgWidgetPrivate::setModel( QAbstractItemModel *model ) |
92 void HgWidgetPrivate::setModel( QAbstractItemModel *model ) |
96 { |
93 { |
97 FUNC_LOG; |
94 FUNC_LOG; |
141 mContainer->setSelectionModel(selectionModel, defaultItem); |
138 mContainer->setSelectionModel(selectionModel, defaultItem); |
142 delete oldSelectionModel; |
139 delete oldSelectionModel; |
143 } |
140 } |
144 |
141 |
145 if (mContainer->selectionModel()) { |
142 if (mContainer->selectionModel()) { |
146 // if (mIndexFeedback) { |
143 // TODO, optimize this, do we really need to destroy the instance. |
147 // delete mIndexFeedback; |
144 if (mIndexFeedback) { |
148 // mIndexFeedback = 0; |
145 delete mIndexFeedback; |
149 // } |
146 mIndexFeedback = 0; |
150 // mIndexFeedback = new HgIndexFeedback(q); |
147 } |
151 // mIndexFeedback->setWidget(q); |
148 if (mIndexFeedbackPolicy != HgWidget::IndexFeedbackNone) { |
152 |
149 mIndexFeedback = new HgIndexFeedback(q); |
|
150 mIndexFeedback->setWidget(q); |
|
151 mIndexFeedback->setIndexFeedbackPolicy(mIndexFeedbackPolicy); |
|
152 } |
153 } |
153 } |
154 } |
154 } |
155 } |
155 } |
156 |
156 |
157 QItemSelectionModel *HgWidgetPrivate::selectionModel() const |
157 QItemSelectionModel *HgWidgetPrivate::selectionModel() const |
671 !mContainer || |
671 !mContainer || |
672 scrollAreaBoundingRect == mContainer->boundingRect() ) |
672 scrollAreaBoundingRect == mContainer->boundingRect() ) |
673 return; |
673 return; |
674 |
674 |
675 mContainer->resize(scrollAreaBoundingRect.size()); |
675 mContainer->resize(scrollAreaBoundingRect.size()); |
676 |
676 |
677 updateScrollMetrics(mContainer->scrollPosition()); |
677 updateScrollMetrics(mContainer->scrollPosition()); |
678 } |
678 } |
679 |
679 |
680 |
680 |
681 void HgWidgetPrivate::lostForeground() |
681 void HgWidgetPrivate::lostForeground() |
763 } |
763 } |
764 |
764 |
765 void HgWidgetPrivate::setIndexFeedbackPolicy( HgWidget::IndexFeedbackPolicy policy) |
765 void HgWidgetPrivate::setIndexFeedbackPolicy( HgWidget::IndexFeedbackPolicy policy) |
766 { |
766 { |
767 Q_UNUSED(policy) |
767 Q_UNUSED(policy) |
768 // mIndexFeedback->setIndexFeedbackPolicy(policy); |
768 Q_Q(HgWidget); |
|
769 mIndexFeedbackPolicy = policy; |
|
770 if (!mIndexFeedback && policy != HgWidget::IndexFeedbackNone) { |
|
771 mIndexFeedback = new HgIndexFeedback(q); |
|
772 mIndexFeedback->setWidget(q); |
|
773 } else if (mIndexFeedback && policy == HgWidget::IndexFeedbackNone) { |
|
774 delete mIndexFeedback; |
|
775 mIndexFeedback = 0; |
|
776 } |
|
777 |
|
778 if (mIndexFeedback && policy != HgWidget::IndexFeedbackNone) { |
|
779 mIndexFeedback->setIndexFeedbackPolicy(policy); |
|
780 } |
769 } |
781 } |
770 |
782 |
771 HgWidget::IndexFeedbackPolicy HgWidgetPrivate::indexFeedbackPolicy() const |
783 HgWidget::IndexFeedbackPolicy HgWidgetPrivate::indexFeedbackPolicy() const |
772 { |
784 { |
773 // return mIndexFeedback->indexFeedbackPolicy(); |
785 return mIndexFeedback ? mIndexFeedback->indexFeedbackPolicy() : |
774 return HgWidget::IndexFeedbackNone; |
786 HgWidget::IndexFeedbackNone; |
775 } |
787 } |
776 |
788 |
777 void HgWidgetPrivate::setDefaultImage(QImage defaultImage) |
789 void HgWidgetPrivate::setDefaultImage(QImage defaultImage) |
778 { |
790 { |
779 mContainer->setDefaultImage(defaultImage); |
791 mContainer->setDefaultImage(defaultImage); |