summaryrefslogtreecommitdiff
path: root/libopie/pim/opimmainwindow.cpp
Unidiff
Diffstat (limited to 'libopie/pim/opimmainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/pim/opimmainwindow.cpp36
1 files changed, 35 insertions, 1 deletions
diff --git a/libopie/pim/opimmainwindow.cpp b/libopie/pim/opimmainwindow.cpp
index 92be2fd..7e57f3a 100644
--- a/libopie/pim/opimmainwindow.cpp
+++ b/libopie/pim/opimmainwindow.cpp
@@ -1,43 +1,47 @@
1#include <qapplication.h> 1#include <qapplication.h>
2#include <qcopchannel_qws.h> 2#include <qcopchannel_qws.h>
3 3
4#include <qpe/qcopenvelope_qws.h> 4#include <qpe/qcopenvelope_qws.h>
5 5
6#include "opimresolver.h"
6#include "opimmainwindow.h" 7#include "opimmainwindow.h"
7 8
8OPimMainWindow::OPimMainWindow( const QString& service, QWidget* parent, 9OPimMainWindow::OPimMainWindow( const QString& service, QWidget* parent,
9 const char* name, WFlags flag ) 10 const char* name, WFlags flag )
10 : QMainWindow( parent, name, flag ), m_service( service ), m_fallBack(0l) { 11 : QMainWindow( parent, name, flag ), m_rtti(-1), m_service( service ), m_fallBack(0l) {
11 12
12 /* 13 /*
13 * let's generate our QCopChannel 14 * let's generate our QCopChannel
14 */ 15 */
15 m_str = QString("QPE/"+m_service).local8Bit(); 16 m_str = QString("QPE/"+m_service).local8Bit();
16 m_channel= new QCopChannel(m_str, this ); 17 m_channel= new QCopChannel(m_str, this );
17 connect(m_channel, SIGNAL(received(const QCString&, const QByteArray& ) ), 18 connect(m_channel, SIGNAL(received(const QCString&, const QByteArray& ) ),
18 this, SLOT( appMessage( const QCString&, const QByteArray& ) ) ); 19 this, SLOT( appMessage( const QCString&, const QByteArray& ) ) );
19 20
20 /* connect flush and reload */ 21 /* connect flush and reload */
21 connect(qApp, SIGNAL(flush() ), 22 connect(qApp, SIGNAL(flush() ),
22 this, SLOT(flush() ) ); 23 this, SLOT(flush() ) );
23 connect(qApp, SIGNAL(reload() ), 24 connect(qApp, SIGNAL(reload() ),
24 this, SLOT(reload() ) ); 25 this, SLOT(reload() ) );
25} 26}
26OPimMainWindow::~OPimMainWindow() { 27OPimMainWindow::~OPimMainWindow() {
27 delete m_channel; 28 delete m_channel;
28} 29}
29QCopChannel* OPimMainWindow::channel() { 30QCopChannel* OPimMainWindow::channel() {
30 return m_channel; 31 return m_channel;
31} 32}
33void OPimMainWindow::doSetDocument( const QString& ) {
34
35}
32void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array ) { 36void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array ) {
33 /* 37 /*
34 * create demands to create 38 * create demands to create
35 * a new record... 39 * a new record...
36 */ 40 */
37 QDataStream stream(array, IO_ReadOnly); 41 QDataStream stream(array, IO_ReadOnly);
38 if ( cmd == "create()" ) { 42 if ( cmd == "create()" ) {
39 int uid = create(); 43 int uid = create();
40 QCopEnvelope e(m_str, "created(int)" ); 44 QCopEnvelope e(m_str, "created(int)" );
41 e << uid; 45 e << uid;
42 }else if ( cmd == "remove(int)" ) { 46 }else if ( cmd == "remove(int)" ) {
43 int uid; 47 int uid;
@@ -60,12 +64,42 @@ void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array )
60 edit( uid ); 64 edit( uid );
61 }else if ( cmd == "add(int,QByteArray)" ) { 65 }else if ( cmd == "add(int,QByteArray)" ) {
62 int rtti; 66 int rtti;
63 QByteArray array; 67 QByteArray array;
64 stream >> rtti; 68 stream >> rtti;
65 stream >> array; 69 stream >> array;
66 m_fallBack = record(rtti, array ); 70 m_fallBack = record(rtti, array );
67 if (!m_fallBack) return; 71 if (!m_fallBack) return;
68 add( *m_fallBack ); 72 add( *m_fallBack );
69 delete m_fallBack; 73 delete m_fallBack;
70 } 74 }
71} 75}
76/* implement the url scripting here */
77void OPimMainWindow::setDocument( const QString& str) {
78 doSetDocument( str );
79}
80/*
81 * we now try to get the array demarshalled
82 * check if the rtti matches this one
83 */
84OPimRecord* OPimMainWindow::record( int rtti, const QByteArray& array ) {
85 if ( service() != rtti )
86 return 0l;
87
88 OPimRecord* record = OPimResolver::self()->record( rtti );
89 QDataStream str(array, IO_ReadOnly );
90 if ( !record || !record->loadFromStream(str) ) {
91 delete record;
92 record = 0l;
93 }
94
95 return record;
96}
97/*
98 * get the rtti for the service
99 */
100int OPimMainWindow::service() {
101 if ( m_rtti == -1 )
102 m_rtti = OPimResolver::self()->serviceId( m_service );
103
104 return m_rtti;
105}