X-Git-Url: http://git.maemo.org/git/?p=presencevnc;a=blobdiff_plain;f=src%2Fscrollarea.h;h=7faf680071b5ff639c0d5e2eb48f10594a87917c;hp=fa59830dea65eeddc54e3c36424a2bb94c1c0510;hb=d05da98d2b57cd4c1a3a844600140238c94be33a;hpb=f238da62b6d98097e193c1539611beed34ab0ba3 diff --git a/src/scrollarea.h b/src/scrollarea.h index fa59830..7faf680 100644 --- a/src/scrollarea.h +++ b/src/scrollarea.h @@ -19,9 +19,9 @@ #ifndef SCROLLAREA_H #define SCROLLAREA_H -#include -#include -#include +#include "fullscreenexitbutton.h" + +#include //fixes tearing during scrolling and can display messages class ScrollArea : public QScrollArea @@ -30,7 +30,8 @@ class ScrollArea : public QScrollArea public: explicit ScrollArea(QWidget *parent): QScrollArea(parent), - message(this) + message(this), + fullscreen_exit_button(parent) //owned by parent! { message.setVisible(false); message.setAlignment(Qt::AlignCenter); @@ -44,10 +45,18 @@ public: message.setAutoFillBackground(true); message_timer.setSingleShot(true); - message_timer.setInterval(2500); + message_timer.setInterval(4000); connect(&message_timer, SIGNAL(timeout()), &message, SLOT(hide())); + connect(&fullscreen_exit_button, SIGNAL(clicked()), + this, SIGNAL(fullscreenButtonClicked())); + + button_reenable_timer.setSingleShot(true); + button_reenable_timer.setInterval(500); + connect(&button_reenable_timer, SIGNAL(timeout()), + &fullscreen_exit_button, SLOT(reenable())); + #ifdef Q_WS_MAEMO_5 // disable overshooting because it somehow causes repaint events for the whole widget (slow) QAbstractKineticScroller *scroller = property("kineticScroller").value(); @@ -65,6 +74,9 @@ public slots: //provided for convenience void showMessage(QString /*title*/, QString msg) { showMessage(msg); } + +signals: + void fullscreenButtonClicked(); protected: virtual void resizeEvent(QResizeEvent* ev) { QScrollArea::resizeEvent(ev); @@ -72,11 +84,18 @@ protected: } virtual void scrollContentsBy(int dx, int dy) { QScrollArea::scrollContentsBy(dx, dy); - if(widget()) - message.hide(); //overlay-widget slows down scrolling + if(widget()) { + //overlay-widgets slow down scrolling + message.hide(); + fullscreen_exit_button.hide(); + fullscreen_exit_button.setEnabled(false); + button_reenable_timer.start(); + } } private: QLabel message; QTimer message_timer; + FullScreenExitButton fullscreen_exit_button; + QTimer button_reenable_timer; }; #endif