-rw-r--r-- | libopie2/opiepim/ui/opimmainwindow.cpp | 36 | ||||
-rw-r--r-- | libopie2/opiepim/ui/opimmainwindow.h | 26 |
2 files changed, 53 insertions, 9 deletions
diff --git a/libopie2/opiepim/ui/opimmainwindow.cpp b/libopie2/opiepim/ui/opimmainwindow.cpp index 92be2fd..7e57f3a 100644 --- a/libopie2/opiepim/ui/opimmainwindow.cpp +++ b/libopie2/opiepim/ui/opimmainwindow.cpp | |||
@@ -5,2 +5,3 @@ | |||
5 | 5 | ||
6 | #include "opimresolver.h" | ||
6 | #include "opimmainwindow.h" | 7 | #include "opimmainwindow.h" |
@@ -9,3 +10,3 @@ OPimMainWindow::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 | ||
@@ -31,2 +32,5 @@ QCopChannel* OPimMainWindow::channel() { | |||
31 | } | 32 | } |
33 | void OPimMainWindow::doSetDocument( const QString& ) { | ||
34 | |||
35 | } | ||
32 | void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array ) { | 36 | void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array ) { |
@@ -71 +75,31 @@ void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array ) | |||
71 | } | 75 | } |
76 | /* implement the url scripting here */ | ||
77 | void 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 | */ | ||
84 | OPimRecord* 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 | */ | ||
100 | int OPimMainWindow::service() { | ||
101 | if ( m_rtti == -1 ) | ||
102 | m_rtti = OPimResolver::self()->serviceId( m_service ); | ||
103 | |||
104 | return m_rtti; | ||
105 | } | ||
diff --git a/libopie2/opiepim/ui/opimmainwindow.h b/libopie2/opiepim/ui/opimmainwindow.h index 94100bd..34b8a71 100644 --- a/libopie2/opiepim/ui/opimmainwindow.h +++ b/libopie2/opiepim/ui/opimmainwindow.h | |||
@@ -34,2 +34,7 @@ public: | |||
34 | protected slots: | 34 | protected slots: |
35 | /* | ||
36 | * called when a setDocument | ||
37 | * couldn't be handled by this window | ||
38 | */ | ||
39 | virtual void doSetDocument( const QString& ); | ||
35 | /* for syncing */ | 40 | /* for syncing */ |
@@ -53,10 +58,3 @@ protected slots: | |||
53 | 58 | ||
54 | /* I would love to do this as a template | 59 | |
55 | * but can't think of a right way | ||
56 | * because I need signal and slots -zecke | ||
57 | */ | ||
58 | /* | ||
59 | * the only pointer in the whole PIM API :( | ||
60 | */ | ||
61 | virtual OPimRecord* record( int rtti, const QByteArray& ) = 0; | ||
62 | QCopChannel* channel(); | 60 | QCopChannel* channel(); |
@@ -65,2 +63,3 @@ private slots: | |||
65 | void appMessage( const QCString&, const QByteArray& ); | 63 | void appMessage( const QCString&, const QByteArray& ); |
64 | void setDocument( const QString& ); | ||
66 | 65 | ||
@@ -71,2 +70,3 @@ private: | |||
71 | 70 | ||
71 | int m_rtti; | ||
72 | QCopChannel* m_channel; | 72 | QCopChannel* m_channel; |
@@ -75,2 +75,12 @@ private: | |||
75 | OPimRecord* m_fallBack; | 75 | OPimRecord* m_fallBack; |
76 | |||
77 | /* I would love to do this as a template | ||
78 | * but can't think of a right way | ||
79 | * because I need signal and slots -zecke | ||
80 | */ | ||
81 | /* | ||
82 | * the only pointer in the whole PIM API :( | ||
83 | */ | ||
84 | virtual OPimRecord* record( int rtti, const QByteArray& ) ; | ||
85 | int service(); | ||
76 | }; | 86 | }; |