class ScrollArea : public QScrollArea
{
public:
- ScrollArea(QWidget *parent):
+ explicit ScrollArea(QWidget *parent):
QScrollArea(parent) {
message.setParent(this);
message.setVisible(false);
message.setPalette(pal);
message.setAutoFillBackground(true);
- timer.setSingleShot(true);
- timer.setInterval(2500);
- connect(&timer, SIGNAL(timeout()),
+ message_timer.setSingleShot(true);
+ message_timer.setInterval(2500);
+ connect(&message_timer, SIGNAL(timeout()),
&message, SLOT(hide()));
+
+#ifdef Q_WS_MAEMO_5
+ // disable overshooting because it somehow causes repaint events for the whole widget (slow)
+ QAbstractKineticScroller *scroller = property("kineticScroller").value<QAbstractKineticScroller *>();
+ if (scroller)
+ scroller->setOvershootPolicy(QAbstractKineticScroller::OvershootAlwaysOff);
+#endif
}
void showMessage(const QString &s) {
message.setText(s);
message.show();
- timer.start();
+ message_timer.start();
}
protected:
virtual void resizeEvent(QResizeEvent* ev) {
virtual void scrollContentsBy(int dx, int dy) {
QScrollArea::scrollContentsBy(dx, dy);
if(widget())
- widget()->update(); //update whole widget
+ message.hide(); //overlay-widget slows down scrolling
}
private:
QLabel message;
- QTimer timer;
+ QTimer message_timer;
};
#endif