-rw-r--r-- | core/applets/cardmon/cardmon.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/core/applets/cardmon/cardmon.cpp b/core/applets/cardmon/cardmon.cpp index d6ac616..53497df 100644 --- a/core/applets/cardmon/cardmon.cpp +++ b/core/applets/cardmon/cardmon.cpp | |||
@@ -1,148 +1,149 @@ | |||
1 | /* | 1 | /* |
2 | * cardmon.cpp | 2 | * cardmon.cpp |
3 | * | 3 | * |
4 | * --------------------- | 4 | * --------------------- |
5 | * | 5 | * |
6 | * copyright : (c) 2002 by Maximilian Reiss | 6 | * copyright : (c) 2002 by Maximilian Reiss |
7 | * email : max.reiss@gmx.de | 7 | * email : max.reiss@gmx.de |
8 | * based on two apps by Devin Butterfield | 8 | * based on two apps by Devin Butterfield |
9 | */ | 9 | */ |
10 | /*************************************************************************** | 10 | /*************************************************************************** |
11 | * * | 11 | * * |
12 | * This program is free software; you can redistribute it and/or modify * | 12 | * This program is free software; you can redistribute it and/or modify * |
13 | * it under the terms of the GNU General Public License as published by * | 13 | * it under the terms of the GNU General Public License as published by * |
14 | * the Free Software Foundation; either version 2 of the License, or * | 14 | * the Free Software Foundation; either version 2 of the License, or * |
15 | * (at your option) any later version. * | 15 | * (at your option) any later version. * |
16 | * * | 16 | * * |
17 | ***************************************************************************/ | 17 | ***************************************************************************/ |
18 | 18 | ||
19 | #include "cardmon.h" | 19 | #include "cardmon.h" |
20 | 20 | ||
21 | /* OPIE */ | 21 | /* OPIE */ |
22 | #include <opie2/odebug.h> | 22 | #include <opie2/odebug.h> |
23 | #include <opie2/odevice.h> | 23 | #include <opie2/odevice.h> |
24 | #include <opie2/otaskbarapplet.h> | 24 | #include <opie2/otaskbarapplet.h> |
25 | #include <opie2/oprocess.h> | 25 | #include <opie2/oprocess.h> |
26 | 26 | ||
27 | #include <qpe/applnk.h> | 27 | #include <qpe/applnk.h> |
28 | #include <qpe/resource.h> | 28 | #include <qpe/resource.h> |
29 | using namespace Opie::Core; | 29 | using namespace Opie::Core; |
30 | using namespace Opie::Ui; | 30 | using namespace Opie::Ui; |
31 | 31 | ||
32 | /* QT */ | 32 | /* QT */ |
33 | #include <qcopchannel_qws.h> | 33 | #include <qcopchannel_qws.h> |
34 | #include <qpainter.h> | 34 | #include <qpainter.h> |
35 | #include <qfile.h> | 35 | #include <qfile.h> |
36 | #include <qtextstream.h> | 36 | #include <qtextstream.h> |
37 | #include <qsound.h> | 37 | #include <qsound.h> |
38 | #include <qtimer.h> | 38 | #include <qtimer.h> |
39 | 39 | ||
40 | /* STD */ | 40 | /* STD */ |
41 | #include <stdio.h> | 41 | #include <stdio.h> |
42 | #include <unistd.h> | 42 | #include <unistd.h> |
43 | #include <stdlib.h> | 43 | #include <stdlib.h> |
44 | #include <string.h> | 44 | #include <string.h> |
45 | #include <fcntl.h> | 45 | #include <fcntl.h> |
46 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) | 46 | #if defined(_OS_LINUX_) || defined(Q_OS_LINUX) |
47 | #include <sys/vfs.h> | 47 | #include <sys/vfs.h> |
48 | #include <mntent.h> | 48 | #include <mntent.h> |
49 | #endif | 49 | #endif |
50 | 50 | ||
51 | CardMonitor::CardMonitor( QWidget * parent ) : QWidget( parent ), | 51 | CardMonitor::CardMonitor( QWidget * parent ) : QWidget( parent ) |
52 | pm( Resource::loadPixmap( "cardmon/pcmcia" ) ) { | 52 | { |
53 | pm = Resource::loadImage( "cardmon/pcmcia").smoothScale(AppLnk::smallIconSize(), AppLnk::smallIconSize()); | ||
53 | 54 | ||
54 | QCopChannel * pcmciaChannel = new QCopChannel( "QPE/Card", this ); | 55 | QCopChannel * pcmciaChannel = new QCopChannel( "QPE/Card", this ); |
55 | connect( pcmciaChannel, | 56 | connect( pcmciaChannel, |
56 | SIGNAL( received(const QCString&,const QByteArray&) ), this, | 57 | SIGNAL( received(const QCString&,const QByteArray&) ), this, |
57 | SLOT( cardMessage(const QCString&,const QByteArray&) ) ); | 58 | SLOT( cardMessage(const QCString&,const QByteArray&) ) ); |
58 | 59 | ||
59 | QCopChannel *sdChannel = new QCopChannel( "QPE/Card", this ); | 60 | QCopChannel *sdChannel = new QCopChannel( "QPE/Card", this ); |
60 | connect( sdChannel, | 61 | connect( sdChannel, |
61 | SIGNAL( received(const QCString&,const QByteArray&) ), this, | 62 | SIGNAL( received(const QCString&,const QByteArray&) ), this, |
62 | SLOT( cardMessage(const QCString&,const QByteArray&) ) ); | 63 | SLOT( cardMessage(const QCString&,const QByteArray&) ) ); |
63 | 64 | ||
64 | cardInPcmcia0 = FALSE; | 65 | cardInPcmcia0 = FALSE; |
65 | cardInPcmcia1 = FALSE; | 66 | cardInPcmcia1 = FALSE; |
66 | cardInSd = FALSE; | 67 | cardInSd = FALSE; |
67 | m_process = 0; | 68 | m_process = 0; |
68 | 69 | ||
69 | setFocusPolicy( NoFocus ); | 70 | setFocusPolicy( NoFocus ); |
70 | 71 | ||
71 | setFixedWidth ( AppLnk::smallIconSize() ); | 72 | setFixedWidth ( AppLnk::smallIconSize() ); |
72 | setFixedHeight ( AppLnk::smallIconSize() ); | 73 | setFixedHeight ( AppLnk::smallIconSize() ); |
73 | 74 | ||
74 | getStatusPcmcia( TRUE ); | 75 | getStatusPcmcia( TRUE ); |
75 | getStatusSd( TRUE ); | 76 | getStatusSd( TRUE ); |
76 | repaint( FALSE ); | 77 | repaint( FALSE ); |
77 | popupMenu = 0; | 78 | popupMenu = 0; |
78 | } | 79 | } |
79 | 80 | ||
80 | CardMonitor::~CardMonitor() { | 81 | CardMonitor::~CardMonitor() { |
81 | delete popupMenu; | 82 | delete popupMenu; |
82 | } | 83 | } |
83 | 84 | ||
84 | void CardMonitor::popUp( QString message, QString icon ) { | 85 | void CardMonitor::popUp( QString message, QString icon ) { |
85 | if ( !popupMenu ) { | 86 | if ( !popupMenu ) { |
86 | popupMenu = new QPopupMenu( this ); | 87 | popupMenu = new QPopupMenu( this ); |
87 | } | 88 | } |
88 | 89 | ||
89 | popupMenu->clear(); | 90 | popupMenu->clear(); |
90 | if ( icon.isEmpty() ) { | 91 | if ( icon.isEmpty() ) { |
91 | popupMenu->insertItem( message, 0 ); | 92 | popupMenu->insertItem( message, 0 ); |
92 | } else { | 93 | } else { |
93 | popupMenu->insertItem( QIconSet( Resource::loadPixmap( icon ) ), | 94 | popupMenu->insertItem( QIconSet( Resource::loadPixmap( icon ) ), |
94 | message, 0 ); | 95 | message, 0 ); |
95 | } | 96 | } |
96 | 97 | ||
97 | QPoint p = mapToGlobal( QPoint( 0, 0 ) ); | 98 | QPoint p = mapToGlobal( QPoint( 0, 0 ) ); |
98 | QSize s = popupMenu->sizeHint(); | 99 | QSize s = popupMenu->sizeHint(); |
99 | popupMenu->popup( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), | 100 | popupMenu->popup( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), |
100 | p.y() - s.height() ), 0 ); | 101 | p.y() - s.height() ), 0 ); |
101 | 102 | ||
102 | QTimer::singleShot( 2000, this, SLOT( popupTimeout() ) ); | 103 | QTimer::singleShot( 2000, this, SLOT( popupTimeout() ) ); |
103 | } | 104 | } |
104 | 105 | ||
105 | void CardMonitor::popupTimeout() { | 106 | void CardMonitor::popupTimeout() { |
106 | popupMenu->hide(); | 107 | popupMenu->hide(); |
107 | } | 108 | } |
108 | 109 | ||
109 | void CardMonitor::mousePressEvent( QMouseEvent * ) { | 110 | void CardMonitor::mousePressEvent( QMouseEvent * ) { |
110 | QPopupMenu * menu = new QPopupMenu( this ); | 111 | QPopupMenu * menu = new QPopupMenu( this ); |
111 | QStringList cmd; | 112 | QStringList cmd; |
112 | bool execute = true; | 113 | bool execute = true; |
113 | 114 | ||
114 | if ( cardInSd ) { | 115 | if ( cardInSd ) { |
115 | menu->insertItem( QIconSet( Resource::loadPixmap( "cardmon/ide" ) ), | 116 | menu->insertItem( QIconSet( Resource::loadPixmap( "cardmon/ide" ) ), |
116 | tr( "Eject SD/MMC card" ), 0 ); | 117 | tr( "Eject SD/MMC card" ), 0 ); |
117 | } | 118 | } |
118 | 119 | ||
119 | if ( cardInPcmcia0 ) { | 120 | if ( cardInPcmcia0 ) { |
120 | menu-> | 121 | menu-> |
121 | insertItem( QIconSet | 122 | insertItem( QIconSet |
122 | ( Resource::loadPixmap( "cardmon/" + cardInPcmcia0Type ) ), | 123 | ( Resource::loadPixmap( "cardmon/" + cardInPcmcia0Type ) ), |
123 | tr( "Eject card 0: %1" ).arg( cardInPcmcia0Name ), 1 ); | 124 | tr( "Eject card 0: %1" ).arg( cardInPcmcia0Name ), 1 ); |
124 | } | 125 | } |
125 | 126 | ||
126 | if ( cardInPcmcia1 ) { | 127 | if ( cardInPcmcia1 ) { |
127 | menu-> | 128 | menu-> |
128 | insertItem( QIconSet | 129 | insertItem( QIconSet |
129 | ( Resource::loadPixmap( "cardmon/" + cardInPcmcia1Type ) ), | 130 | ( Resource::loadPixmap( "cardmon/" + cardInPcmcia1Type ) ), |
130 | tr( "Eject card 1: %1" ).arg( cardInPcmcia1Name ), 2 ); | 131 | tr( "Eject card 1: %1" ).arg( cardInPcmcia1Name ), 2 ); |
131 | } | 132 | } |
132 | 133 | ||
133 | QPoint p = mapToGlobal( QPoint( 0, 0 ) ); | 134 | QPoint p = mapToGlobal( QPoint( 0, 0 ) ); |
134 | QSize s = menu->sizeHint(); | 135 | QSize s = menu->sizeHint(); |
135 | int opt = menu->exec( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), | 136 | int opt = menu->exec( QPoint( p.x() + ( width() / 2 ) - ( s.width() / 2 ), |
136 | p.y() - s.height() ), 0 ); | 137 | p.y() - s.height() ), 0 ); |
137 | 138 | ||
138 | if ( opt == 1 ) { | 139 | if ( opt == 1 ) { |
139 | m_commandOrig = PCMCIA_Socket1; | 140 | m_commandOrig = PCMCIA_Socket1; |
140 | cmd << "/sbin/cardctl" << "eject" << "0"; | 141 | cmd << "/sbin/cardctl" << "eject" << "0"; |
141 | } else if ( opt == 0 ) { | 142 | } else if ( opt == 0 ) { |
142 | m_commandOrig = MMC_Socket; | 143 | m_commandOrig = MMC_Socket; |
143 | cmd << "umount" << cardSdName; | 144 | cmd << "umount" << cardSdName; |
144 | } else if ( opt == 2 ) { | 145 | } else if ( opt == 2 ) { |
145 | m_commandOrig = PCMCIA_Socket2; | 146 | m_commandOrig = PCMCIA_Socket2; |
146 | cmd << "/sbin/cardctl" << "eject" << "1"; | 147 | cmd << "/sbin/cardctl" << "eject" << "1"; |
147 | }else | 148 | }else |
148 | execute = false; | 149 | execute = false; |