summaryrefslogtreecommitdiff
authorharlekin <harlekin>2002-06-22 22:25:56 (UTC)
committer harlekin <harlekin>2002-06-22 22:25:56 (UTC)
commitb6f6bab5e56f352a4f71dadb40530d6cdcaea3cc (patch) (unidiff)
treeb58cfac35b73d8a85944b42aad3344dee0a979a2
parentdc0bab1611d87c39d3729aa05d8b01f639120052 (diff)
downloadopie-b6f6bab5e56f352a4f71dadb40530d6cdcaea3cc.zip
opie-b6f6bab5e56f352a4f71dadb40530d6cdcaea3cc.tar.gz
opie-b6f6bab5e56f352a4f71dadb40530d6cdcaea3cc.tar.bz2
nicer card inserted popup + cleanups
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
@@ -23,11 +23,11 @@
23 23
24#include <qcopchannel_qws.h> 24#include <qcopchannel_qws.h>
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>
32#include <unistd.h> 32#include <unistd.h>
33#include <stdlib.h> 33#include <stdlib.h>
@@ -53,13 +53,41 @@ CardMonitor::CardMonitor( QWidget *parent ) : QWidget( parent ),
53 setFixedSize( pm.size() ); 53 setFixedSize( pm.size() );
54 getStatusPcmcia(TRUE); 54 getStatusPcmcia(TRUE);
55 getStatusSd(TRUE); 55 getStatusSd(TRUE);
56 repaint(FALSE); 56 repaint(FALSE);
57 popUpMenu = 0;
58 popUpMenuTimer = 0;
57} 59}
58 60
59CardMonitor::~CardMonitor() { 61CardMonitor::~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();
64 QString cmd; 92 QString cmd;
65 int err=0; 93 int err=0;
@@ -87,26 +115,23 @@ void CardMonitor::mousePressEvent( QMouseEvent * ) {
87 cmd = "/sbin/cardctl eject 0"; 115 cmd = "/sbin/cardctl eject 0";
88 err = system( (const char *) cmd ); 116 err = system( (const char *) cmd );
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 ) {
95 cmd = "/etc/sdcontrol compeject"; 122 cmd = "/etc/sdcontrol compeject";
96 err = system( (const char *) cmd ); 123 err = system( (const char *) cmd );
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 ) {
103 cmd = "/sbin/cardctl eject 1"; 129 cmd = "/sbin/cardctl eject 1";
104 err = system( (const char *) cmd ); 130 err = system( (const char *) cmd );
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 }
111 136
112 delete menu; 137 delete menu;
@@ -200,10 +225,9 @@ bool CardMonitor::getStatusPcmcia( int showPopUp = FALSE ) {
200 if(cardInPcmcia1) { text += tr("New card: "); } 225 if(cardInPcmcia1) { text += tr("New card: "); }
201 else { text += tr("Ejected: "); } 226 else { text += tr("Ejected: "); }
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
208 f.close(); 232 f.close();
209 233
@@ -232,10 +256,9 @@ bool CardMonitor::getStatusSd( int showPopUp = FALSE ) {
232 if(!showPopUp && cardWas != cardInSd) { 256 if(!showPopUp && cardWas != cardInSd) {
233 QString text = ""; 257 QString text = "";
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
240#else 263#else
241#error "Not on Linux" 264#error "Not on Linux"
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
@@ -20,8 +20,10 @@
20#define CARDMON_H 20#define CARDMON_H
21 21
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 {
26 Q_OBJECT 28 Q_OBJECT
27public: 29public:
@@ -31,23 +33,26 @@ public:
31 bool getStatusSd( int showPopUp = FALSE ); 33 bool getStatusSd( int showPopUp = FALSE );
32 34
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:
37 void paintEvent( QPaintEvent* ); 40 void paintEvent( QPaintEvent* );
38 void mousePressEvent( QMouseEvent * ); 41 void mousePressEvent( QMouseEvent * );
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;
43 QString cardInPcmcia0Name; 48 QString cardInPcmcia0Name;
44 // pcmcia socket 1 49 // pcmcia socket 1
45 bool cardInPcmcia1; 50 bool cardInPcmcia1;
46 QString cardInPcmcia1Name; 51 QString cardInPcmcia1Name;
47 bool cardInSd; 52 bool cardInSd;
48 void iconShow(); 53 void iconShow();
49 54 void popUp(QString message);
50}; 55};
51 56
52#endif 57#endif
53 58