aboutsummaryrefslogtreecommitdiff
path: root/plainqt
diff options
context:
space:
mode:
authorBernd Lamecker <Bernd.Lamecker@basyskom.de>2010-04-14 13:13:35 +0200
committerTorsten Rahn <Torsten.Rahn@basyskom.de>2010-04-22 15:43:21 +0200
commit3f06a79133ce4d6c555a71620226075764f7ee30 (patch)
tree3820c32abc60e563e9deec6a875e5f88c5921cde /plainqt
parentade52530fb2c84d9eb9d464e337c5d532d60abda (diff)
Changes: fixed kinetic scrolling in plain Qt
RevBy: TrustMe
Diffstat (limited to 'plainqt')
-rw-r--r--plainqt/style/qtmaemo6scrollbareventfilter.cpp33
-rw-r--r--plainqt/style/qtmaemo6scrollbareventfilter.h24
2 files changed, 36 insertions, 21 deletions
diff --git a/plainqt/style/qtmaemo6scrollbareventfilter.cpp b/plainqt/style/qtmaemo6scrollbareventfilter.cpp
index e9b1627b..982ac7e8 100644
--- a/plainqt/style/qtmaemo6scrollbareventfilter.cpp
+++ b/plainqt/style/qtmaemo6scrollbareventfilter.cpp
@@ -33,10 +33,12 @@
#include <mapplicationpagestyle.h>
#include <mpositionindicatorstyle.h>
#include <mwidgetstyle.h>
+#include <MScalableImage>
+
#include <mwidgetfadeinanimationstyle.h>
#include <mwidgetfadeoutanimationstyle.h>
-#include <MScalableImage>
+#ifdef SHOW_SCROLLING_THUMBNAIL
AbstractScrollAreaThumbView::AbstractScrollAreaThumbView(QWidget *parent /*= NULL*/)
: QLabel(parent)
{
@@ -71,15 +73,17 @@ void AbstractScrollAreaThumbView::paintEvent(QPaintEvent *event)
painter.drawPixmap(event->rect(), pix);
}
}
-
+#endif //SHOW_SCROLLING_THUMBNAIL
QtMaemo6ScrollBarEventFilter::QtMaemo6ScrollBarEventFilter(QObject *parent) :
QObject(parent),
- m_scrollBarsAlwaysVisible(false),
+#ifdef SHOW_SCROLLING_THUMBNAIL
m_scrollAreaThumbnailMaxSize(200),
m_scrollAreaThumbnailOffset(20),
m_scrollAreaThumbnailBorder(3),
- m_showScrollAreaThumbnailFactor(0.2)
+ m_showScrollAreaThumbnailFactor(0.2),
+#endif //SHOW_SCROLLING_THUMBNAIL
+ m_scrollBarsAlwaysVisible(false)
{}
QtMaemo6ScrollBarEventFilter::~QtMaemo6ScrollBarEventFilter()
@@ -97,7 +101,7 @@ void QtMaemo6ScrollBarEventFilter::enableOn(QObject *o)
scrollAreaThumbView->setObjectName(SCROLLAREATHUMBVIEW);
scrollAreaThumbView->setOpacity(0);
}
-#endif
+#endif //SHOW_SCROLLING_THUMBNAIL
//FIXME: find a more proper solution without manipulating the widget's properties
// turn the scrollbars off for ScrollArea, they are handled manually by the style
abstractScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@@ -177,7 +181,7 @@ bool QtMaemo6ScrollBarEventFilter::eventFilter(QObject *obj, QEvent *event)
if (QLabel *scrollAreaThumbView = scrollArea->findChild<QLabel *>(SCROLLAREATHUMBVIEW)) {
setScrollAreaThumbGeometry(scrollAreaThumbView);
}
-#endif
+#endif //SHOW_SCROLLING_THUMBNAIL
}
}
break;
@@ -202,11 +206,11 @@ void QtMaemo6ScrollBarEventFilter::setScrollBarVisibility(QScrollBar *scrollBar)
void QtMaemo6ScrollBarEventFilter::generateScrollAreaThumb(QAbstractScrollArea *scrollArea,
bool forceUpdate /*= false*/)
{
+#ifndef SHOW_SCROLLING_THUMBNAIL
//surpress unused warning while this is inactive
Q_UNUSED(scrollArea);
Q_UNUSED(forceUpdate);
-
-#ifdef SHOW_SCROLLING_THUMBNAIL
+#else
if (AbstractScrollAreaThumbView *scrollAreaThumbView =
scrollArea->findChild<AbstractScrollAreaThumbView *>(SCROLLAREATHUMBVIEW)) {
if (scrollAreaThumbView) {
@@ -252,7 +256,7 @@ void QtMaemo6ScrollBarEventFilter::generateScrollAreaThumb(QAbstractScrollArea *
}
}
}
-#endif
+#endif //SHOW_SCROLLING_THUMBNAIL
}
void QtMaemo6ScrollBarEventFilter::cleanUpTimerMap()
@@ -271,6 +275,9 @@ void QtMaemo6ScrollBarEventFilter::cleanUpTimerMap()
void QtMaemo6ScrollBarEventFilter::setScrollAreaThumbGeometry(QLabel *label)
{
+#ifndef SHOW_SCROLLING_THUMBNAIL
+ Q_UNUSED(label);
+#else
if (label->pixmap()) {
if (qApp->isRightToLeft()) {
label->setGeometry(m_scrollAreaThumbnailOffset, m_scrollAreaThumbnailOffset,
@@ -280,15 +287,21 @@ void QtMaemo6ScrollBarEventFilter::setScrollAreaThumbGeometry(QLabel *label)
m_scrollAreaThumbnailOffset, label->pixmap()->width(), label->pixmap()->height());
}
}
+#endif //SHOW_SCROLLING_THUMBNAIL
}
void QtMaemo6ScrollBarEventFilter::scrollBarValueChanged()
{
+
if (QScrollBar *scrollBar = qobject_cast<QScrollBar *>(sender())) {
if (QAbstractScrollArea *scrollArea = qobject_cast<QAbstractScrollArea *>(scrollBar->parent())) {
int scrollBarRange = scrollBar->maximum() - scrollBar->minimum();
+#ifndef SHOW_SCROLLING_THUMBNAIL
+ Q_UNUSED(scrollArea);
+#else
double factor = 0;
+
if (scrollBar->orientation() == Qt::Horizontal)
factor = scrollBarRange / (double)scrollArea->viewport()->childrenRect().size().width();
else
@@ -302,7 +315,7 @@ void QtMaemo6ScrollBarEventFilter::scrollBarValueChanged()
fadeInOutAnimation(scrollArea->findChild<QLabel *>(SCROLLAREATHUMBVIEW), "opacity");
}
-
+#endif //SHOW_SCROLLING_THUMBNAIL
//only show the scrollBar if it has a valid range
if (scrollBarRange)
fadeInOutAnimation(scrollBar, WIDGET_OPACITY);
diff --git a/plainqt/style/qtmaemo6scrollbareventfilter.h b/plainqt/style/qtmaemo6scrollbareventfilter.h
index b6061c33..01873531 100644
--- a/plainqt/style/qtmaemo6scrollbareventfilter.h
+++ b/plainqt/style/qtmaemo6scrollbareventfilter.h
@@ -32,7 +32,7 @@ class QSequentialAnimationGroup;
#define SCROLLAREATHUMBVIEW "scrollAreaThumbView"
#define WIDGET_OPACITY "widgetOpacity"
-
+#ifdef SHOW_SCROLLING_THUMBNAIL
/*!
* this class shows a thumbnail of any other widget placed within an
* scrollarea. It marks the currently visible part in the scrollarea's
@@ -82,7 +82,7 @@ protected:
QRect m_visibleRect;
double m_opacity;
};
-
+#endif //SHOW_SCROLLING_THUMBNAIL
/*!
* this class handles visibility of scrollbars.
@@ -139,14 +139,14 @@ protected Q_SLOTS:
void cleanUpTimerMap();
/*!
- * places the scrolling preview thumb
+ * this slot is called, if a scrollbars value changed
*/
- void setScrollAreaThumbGeometry(QLabel *label);
+ void scrollBarValueChanged();
/*!
- * this slot is called, if a scrollbars value changed
+ * places the scrolling preview thumb
*/
- void scrollBarValueChanged();
+ void setScrollAreaThumbGeometry(QLabel *label);
/*!
* Generates a thumbnail pixmap of the whole scrollarea contents
@@ -156,8 +156,14 @@ protected Q_SLOTS:
* \param forceUpdate forces to redraw the cached pixmap
*/
void generateScrollAreaThumb(QAbstractScrollArea *scrollArea, bool forceUpdate = false);
-
protected:
+#ifdef SHOW_SCROLLING_THUMBNAIL
+ const int m_scrollAreaThumbnailMaxSize;
+ const int m_scrollAreaThumbnailOffset;
+ const int m_scrollAreaThumbnailBorder;
+ const double m_showScrollAreaThumbnailFactor;
+#endif //SHOW_SCROLLING_THUMBNAIL
+
enum AnimationState {
FadeIn = 0,
Show = 1,
@@ -166,10 +172,6 @@ protected:
QMap<const QWidget *, QSequentialAnimationGroup *> m_pendingAnimations;
bool m_scrollBarsAlwaysVisible;
- const int m_scrollAreaThumbnailMaxSize;
- const int m_scrollAreaThumbnailOffset;
- const int m_scrollAreaThumbnailBorder;
- const double m_showScrollAreaThumbnailFactor;
};