From 72081cbfef03a69ed6f9ca7826854b6cf10dc2fe Mon Sep 17 00:00:00 2001 From: sandman Date: Sun, 28 Jul 2002 00:44:43 +0000 Subject: Workaround for a weird Qt/E bug, resulting in qpe hanging if clipboard applet is loaded and qpe is terminated via shutdown applet. --- (limited to 'core/applets/clipboardapplet') 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 @@ -122,12 +122,13 @@ ClipboardApplet::ClipboardApplet( QWidget *parent, const char *name ) : QWidget( setFixedHeight ( 18 ); 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; m_dirty = true; @@ -138,6 +139,14 @@ 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 *) { if ( m_dirty ) { 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 @@ -24,6 +24,8 @@ #include #include +class QTimer; + class ClipboardApplet : public QWidget { Q_OBJECT @@ -38,12 +40,14 @@ protected: private slots: void action ( int ); void newData ( ); + void shutdown ( ); private: QPopupMenu * m_menu; QStringList m_history; bool m_dirty; QString m_lasttext; + QTimer * m_timer; QPixmap m_clipboardPixmap; }; -- cgit v0.9.0.2