summaryrefslogtreecommitdiff
path: root/libopie2
Unidiff
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiepim/ui/opimmainwindow.cpp36
-rw-r--r--libopie2/opiepim/ui/opimmainwindow.h18
2 files changed, 49 insertions, 5 deletions
diff --git a/libopie2/opiepim/ui/opimmainwindow.cpp b/libopie2/opiepim/ui/opimmainwindow.cpp
index d1eec19..4044bc1 100644
--- a/libopie2/opiepim/ui/opimmainwindow.cpp
+++ b/libopie2/opiepim/ui/opimmainwindow.cpp
@@ -1,5 +1,7 @@
1#include <qapplication.h> 1#include <qapplication.h>
2#include <qdatetime.h>
2#include <qcopchannel_qws.h> 3#include <qcopchannel_qws.h>
3 4
5#include <qpe/sound.h>
4#include <qpe/qcopenvelope_qws.h> 6#include <qpe/qcopenvelope_qws.h>
5 7
@@ -18,4 +20,6 @@ OPimMainWindow::OPimMainWindow( const QString& service, QWidget* parent,
18 connect(m_channel, SIGNAL(received(const QCString&, const QByteArray& ) ), 20 connect(m_channel, SIGNAL(received(const QCString&, const QByteArray& ) ),
19 this, SLOT( appMessage( const QCString&, const QByteArray& ) ) ); 21 this, SLOT( appMessage( const QCString&, const QByteArray& ) ) );
22 connect(qApp, SIGNAL(appMessage(const QCString&, const QByteArray& ) ),
23 this, SLOT( appMessage( const QCString&, const QByteArray& ) ) );
20 24
21 /* connect flush and reload */ 25 /* connect flush and reload */
@@ -51,5 +55,5 @@ void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array )
51 e << rem; 55 e << rem;
52 }else if ( cmd == "beam(int)" ) { 56 }else if ( cmd == "beam(int)" ) {
53 int uid, trans; 57 int uid;
54 stream >> uid; 58 stream >> uid;
55 beam( uid); 59 beam( uid);
@@ -71,4 +75,14 @@ void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array )
71 add( *m_fallBack ); 75 add( *m_fallBack );
72 delete m_fallBack; 76 delete m_fallBack;
77 }else if ( cmd == "alarm(QDateTime,int)" ) {
78 QDateTime dt; int uid;
79 stream >> dt;
80 stream >> uid;
81 qWarning(" Date: %s Uid: %d", dt.toString().latin1(), uid );
82 QDateTime current = QDateTime::currentDateTime();
83 if ( current.time().hour() != dt.time().hour() && current.time().minute() != dt.time().minute() )
84 return;
85 doAlarm( dt, uid );
86
73 } 87 }
74} 88}
@@ -103,2 +117,22 @@ int OPimMainWindow::service() {
103 return m_rtti; 117 return m_rtti;
104} 118}
119void OPimMainWindow::doAlarm( const QDateTime&, int ) {
120
121}
122void OPimMainWindow::startAlarm(int count ) {
123 m_alarmCount = count;
124 m_playedCount = 0;
125 Sound::soundAlarm();
126 m_timerId = startTimer( 5000 );
127}
128void OPimMainWindow::killAlarm() {
129 killTimer( m_timerId );
130}
131void OPimMainWindow::timerEvent( QTimerEvent* e) {
132 if ( m_playedCount <m_alarmCount ) {
133 m_playedCount++;
134 Sound::soundAlarm();
135 }else {
136 killTimer( e->timerId() );
137 }
138}
diff --git a/libopie2/opiepim/ui/opimmainwindow.h b/libopie2/opiepim/ui/opimmainwindow.h
index dca3c82..855d364 100644
--- a/libopie2/opiepim/ui/opimmainwindow.h
+++ b/libopie2/opiepim/ui/opimmainwindow.h
@@ -21,4 +21,5 @@
21 21
22class QCopChannel; 22class QCopChannel;
23class QDateTime;
23class OPimMainWindow : public QMainWindow { 24class OPimMainWindow : public QMainWindow {
24 Q_OBJECT 25 Q_OBJECT
@@ -57,7 +58,17 @@ protected slots:
57 virtual void add( const OPimRecord& ) = 0; 58 virtual void add( const OPimRecord& ) = 0;
58 59
60 virtual void doAlarm( const QDateTime&, int uid );
59 61
60 QCopChannel* channel(); 62 QCopChannel* channel();
61 63
64protected:
65 /**
66 * start to play soundAlarm()
67 * @param count How many times the alarm is played
68 */
69 void startAlarm(int count = 10);
70 void killAlarm();
71 void timerEvent( QTimerEvent* );
72
62private slots: 73private slots:
63 void appMessage( const QCString&, const QByteArray& ); 74 void appMessage( const QCString&, const QByteArray& );
@@ -74,12 +85,11 @@ private:
74 QCString m_str; 85 QCString m_str;
75 OPimRecord* m_fallBack; 86 OPimRecord* m_fallBack;
76 87 int m_alarmCount;
88 int m_playedCount;
89 int m_timerId;
77 /* I would love to do this as a template 90 /* I would love to do this as a template
78 * but can't think of a right way 91 * but can't think of a right way
79 * because I need signal and slots -zecke 92 * because I need signal and slots -zecke
80 */ 93 */
81 /*
82 * the only pointer in the whole PIM API :(
83 */
84 virtual OPimRecord* record( int rtti, const QByteArray& ) ; 94 virtual OPimRecord* record( int rtti, const QByteArray& ) ;
85 int service(); 95 int service();