summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/cardmon/cardmon.cpp45
-rw-r--r--core/applets/cardmon/cardmon.h7
2 files changed, 40 insertions, 12 deletions
diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp
index ac2aea2..3dd9f54 100644
--- a/core/applets/cardmon/cardmon.cpp
+++ b/core/applets/cardmon/cardmon.cpp
@@ -25,7 +25,7 @@
25#include <qpainter.h> 25#include <qpainter.h>
26#include <qmessagebox.h> 26#include <qmessagebox.h>
27#include <qpopupmenu.h>
28#include <qfile.h> 27#include <qfile.h>
29#include <qtextstream.h> 28#include <qtextstream.h>
29#include <qtimer.h>
30 30
31#include <stdio.h> 31#include <stdio.h>
@@ -55,4 +55,6 @@ CardMonitor::CardMonitor( QWidget *parent ) : QWidget( parent ),
55 getStatusSd(TRUE); 55 getStatusSd(TRUE);
56 repaint(FALSE); 56 repaint(FALSE);
57 popUpMenu = 0;
58 popUpMenuTimer = 0;
57} 59}
58 60
@@ -60,4 +62,30 @@ CardMonitor::~CardMonitor() {
60} 62}
61 63
64void CardMonitor::popUp(QString message) {
65 if ( ! popUpMenu ) {
66 popUpMenu = new QPopupMenu();
67 }
68 popUpMenu->clear();
69 popUpMenu->insertItem( message, 0 );
70
71 QPoint p = mapToGlobal ( QPoint ( 0, 0 ));
72 QSize s = popUpMenu->sizeHint ( );
73 popUpMenu->popup( QPoint (
74 p. x ( ) + ( width ( ) / 2 ) - ( s. width ( ) / 2 ),
75 p. y ( ) - s. height ( ) ), 0);
76
77 if ( ! popUpMenuTimer ) {
78 popUpMenuTimer = new QTimer( this );
79 connect( popUpMenuTimer, SIGNAL(timeout()), this, SLOT(popUpTimeout()) );
80 }
81 timerEvent(0);
82 popUpMenuTimer->start( 2000 );
83}
84
85void CardMonitor::popUpTimeout() {
86 popUpMenu->hide();
87 popUpMenuTimer->stop();
88}
89
62void CardMonitor::mousePressEvent( QMouseEvent * ) { 90void CardMonitor::mousePressEvent( QMouseEvent * ) {
63 QPopupMenu *menu = new QPopupMenu(); 91 QPopupMenu *menu = new QPopupMenu();
@@ -89,6 +117,5 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
89 if ( ( err == 127 ) || ( err < 0 ) ) { 117 if ( ( err == 127 ) || ( err < 0 ) ) {
90 qDebug("Could not execute `/sbin/cardctl eject 0'! err=%d", err); 118 qDebug("Could not execute `/sbin/cardctl eject 0'! err=%d", err);
91 QMessageBox::warning( this, tr("CardMonitor"), tr("CF/PCMCIA card eject failed!"), 119 popUp( tr("CF/PCMCIA card eject failed!"));
92 tr("&OK") );
93 } 120 }
94 } else if ( opt == 0 ) { 121 } else if ( opt == 0 ) {
@@ -97,6 +124,5 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
97 if ( ( err != 0 ) ) { 124 if ( ( err != 0 ) ) {
98 qDebug("Could not execute `/etc/sdcontrol comeject'! err=%d", err); 125 qDebug("Could not execute `/etc/sdcontrol comeject'! err=%d", err);
99 QMessageBox::warning( this, tr("CardMonitor"), tr("SD/MMC card eject failed!"), 126 popUp( tr("SD/MMC card eject failed!"));
100 tr("&OK") );
101 } 127 }
102 } else if ( opt == 2 ) { 128 } else if ( opt == 2 ) {
@@ -105,6 +131,5 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
105 if ( ( err == 127 ) || ( err < 0 ) ) { 131 if ( ( err == 127 ) || ( err < 0 ) ) {
106 qDebug("Could not execute `/sbin/cardctl eject 1'! err=%d", err); 132 qDebug("Could not execute `/sbin/cardctl eject 1'! err=%d", err);
107 QMessageBox::warning( this, tr("CardMonitor"), tr("CF/PCMCIA card eject failed!"), 133 popUp( tr("CF/PCMCIA card eject failed!"));
108 tr("&OK") );
109 } 134 }
110 } 135 }
@@ -202,6 +227,5 @@ bool CardMonitor::getStatusPcmcia( int showPopUp = FALSE ) {
202 text += cardInPcmcia1Name; 227 text += cardInPcmcia1Name;
203 } 228 }
204 QMessageBox::warning( this, tr("CardMonitor"), text, 229 popUp( text );
205 tr("&OK") );
206 } 230 }
207 231
@@ -234,6 +258,5 @@ bool CardMonitor::getStatusSd( int showPopUp = FALSE ) {
234 if(cardInSd) { text += "SD Inserted"; } 258 if(cardInSd) { text += "SD Inserted"; }
235 else { text += "SD Removed"; } 259 else { text += "SD Removed"; }
236 QMessageBox::warning( this, tr("CardMonitor"), text, 260 popUp( text );
237 tr("&OK") );
238 } 261 }
239 262
diff --git a/core/applets/cardmon/cardmon.h b/core/applets/cardmon/cardmon.h
index f9e3819..34b8d95 100644
--- a/core/applets/cardmon/cardmon.h
+++ b/core/applets/cardmon/cardmon.h
@@ -22,4 +22,6 @@
22#include <qwidget.h> 22#include <qwidget.h>
23#include <qpixmap.h> 23#include <qpixmap.h>
24#include <qpopupmenu.h>
25#include <qtimer.h>
24 26
25class CardMonitor : public QWidget { 27class CardMonitor : public QWidget {
@@ -33,4 +35,5 @@ public:
33private slots: 35private slots:
34 void cardMessage( const QCString &msg, const QByteArray & ); 36 void cardMessage( const QCString &msg, const QByteArray & );
37 void popUpTimeout();
35 38
36protected: 39protected:
@@ -39,4 +42,6 @@ protected:
39private: 42private:
40 QPixmap pm; 43 QPixmap pm;
44 QPopupMenu *popUpMenu;
45 QTimer *popUpMenuTimer;
41 // pcmcia socket 0 46 // pcmcia socket 0
42 bool cardInPcmcia0; 47 bool cardInPcmcia0;
@@ -47,5 +52,5 @@ private:
47 bool cardInSd; 52 bool cardInSd;
48 void iconShow(); 53 void iconShow();
49 54 void popUp(QString message);
50}; 55};
51 56