summaryrefslogtreecommitdiff
path: root/core/applets/clipboardapplet
Side-by-side diff
Diffstat (limited to 'core/applets/clipboardapplet') (more/less context) (show whitespace changes)
-rw-r--r--core/applets/clipboardapplet/clipboard.cpp15
-rw-r--r--core/applets/clipboardapplet/clipboard.h4
2 files changed, 16 insertions, 3 deletions
diff --git a/core/applets/clipboardapplet/clipboard.cpp b/core/applets/clipboardapplet/clipboard.cpp
index 5848d0f..4fbdf6f 100644
--- a/core/applets/clipboardapplet/clipboard.cpp
+++ b/core/applets/clipboardapplet/clipboard.cpp
@@ -123,10 +123,11 @@ ClipboardApplet::ClipboardApplet( QWidget *parent, const char *name ) : QWidget(
m_clipboardPixmap = QPixmap ( paste_xpm );
- QTimer *timer = new QTimer ( this );
+ m_timer = new QTimer ( this );
connect ( QApplication::clipboard ( ), SIGNAL( dataChanged ( )), this, SLOT( newData ( )));
- connect ( timer, SIGNAL( timeout ( )), this, SLOT( newData ( )));
+ connect ( m_timer, SIGNAL( timeout ( )), this, SLOT( newData ( )));
+ connect ( qApp, SIGNAL( aboutToQuit ( )), this, SLOT( shutdown ( )));
- timer-> start ( 1000 );
+ m_timer-> start ( 1500 );
m_menu = 0;
@@ -139,4 +140,12 @@ ClipboardApplet::~ClipboardApplet ( )
}
+void ClipboardApplet::shutdown ( )
+{
+ // the timer has to be stopped, or Qt/E will hang on quit()
+ // see launcher/desktop.cpp
+
+ m_timer-> stop ( );
+}
+
void ClipboardApplet::mousePressEvent ( QMouseEvent *)
{
diff --git a/core/applets/clipboardapplet/clipboard.h b/core/applets/clipboardapplet/clipboard.h
index 84743d9..ec87d39 100644
--- a/core/applets/clipboardapplet/clipboard.h
+++ b/core/applets/clipboardapplet/clipboard.h
@@ -25,4 +25,6 @@
#include <qstringlist.h>
+class QTimer;
+
class ClipboardApplet : public QWidget
{
@@ -39,4 +41,5 @@ private slots:
void action ( int );
void newData ( );
+ void shutdown ( );
private:
@@ -45,4 +48,5 @@ private:
bool m_dirty;
QString m_lasttext;
+ QTimer * m_timer;
QPixmap m_clipboardPixmap;