summaryrefslogtreecommitdiff
path: root/libopie2/opiepim
Unidiff
Diffstat (limited to 'libopie2/opiepim') (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,6 +1,8 @@
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
6#include "opimresolver.h" 8#include "opimresolver.h"
@@ -17,6 +19,8 @@ OPimMainWindow::OPimMainWindow( const QString& service, QWidget* parent,
17 m_channel= new QCopChannel(m_str, this ); 19 m_channel= new QCopChannel(m_str, this );
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 */
22 connect(qApp, SIGNAL(flush() ), 26 connect(qApp, SIGNAL(flush() ),
@@ -50,7 +54,7 @@ void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array )
50 QCopEnvelope e(m_str, "removed(bool)" ); 54 QCopEnvelope e(m_str, "removed(bool)" );
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);
56 }else if ( cmd == "show(int)" ) { 60 }else if ( cmd == "show(int)" ) {
@@ -70,6 +74,16 @@ void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array )
70 if (!m_fallBack) return; 74 if (!m_fallBack) return;
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}
75/* implement the url scripting here */ 89/* implement the url scripting here */
@@ -102,3 +116,23 @@ int OPimMainWindow::service() {
102 116
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
@@ -20,6 +20,7 @@
20 */ 20 */
21 21
22class QCopChannel; 22class QCopChannel;
23class QDateTime;
23class OPimMainWindow : public QMainWindow { 24class OPimMainWindow : public QMainWindow {
24 Q_OBJECT 25 Q_OBJECT
25public: 26public:
@@ -56,9 +57,19 @@ protected slots:
56 /** make a copy of it! */ 57 /** make a copy of it! */
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& );
64 void setDocument( const QString& ); 75 void setDocument( const QString& );
@@ -73,14 +84,13 @@ private:
73 QString m_service; 84 QString m_service;
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();
86}; 96};