summaryrefslogtreecommitdiff
path: root/libopie/pim/opimmainwindow.cpp
Side-by-side diff
Diffstat (limited to 'libopie/pim/opimmainwindow.cpp') (more/less context) (show 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,16 +1,17 @@
#include <qapplication.h>
#include <qcopchannel_qws.h>
#include <qpe/qcopenvelope_qws.h>
+#include "opimresolver.h"
#include "opimmainwindow.h"
OPimMainWindow::OPimMainWindow( const QString& service, QWidget* parent,
const char* name, WFlags flag )
- : QMainWindow( parent, name, flag ), m_service( service ), m_fallBack(0l) {
+ : QMainWindow( parent, name, flag ), m_rtti(-1), m_service( service ), m_fallBack(0l) {
/*
* let's generate our QCopChannel
*/
m_str = QString("QPE/"+m_service).local8Bit();
m_channel= new QCopChannel(m_str, this );
@@ -26,12 +27,15 @@ OPimMainWindow::OPimMainWindow( const QString& service, QWidget* parent,
OPimMainWindow::~OPimMainWindow() {
delete m_channel;
}
QCopChannel* OPimMainWindow::channel() {
return m_channel;
}
+void OPimMainWindow::doSetDocument( const QString& ) {
+
+}
void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array ) {
/*
* create demands to create
* a new record...
*/
QDataStream stream(array, IO_ReadOnly);
@@ -66,6 +70,36 @@ void OPimMainWindow::appMessage( const QCString& cmd, const QByteArray& array )
m_fallBack = record(rtti, array );
if (!m_fallBack) return;
add( *m_fallBack );
delete m_fallBack;
}
}
+/* implement the url scripting here */
+void OPimMainWindow::setDocument( const QString& str) {
+ doSetDocument( str );
+}
+/*
+ * we now try to get the array demarshalled
+ * check if the rtti matches this one
+ */
+OPimRecord* OPimMainWindow::record( int rtti, const QByteArray& array ) {
+ if ( service() != rtti )
+ return 0l;
+
+ OPimRecord* record = OPimResolver::self()->record( rtti );
+ QDataStream str(array, IO_ReadOnly );
+ if ( !record || !record->loadFromStream(str) ) {
+ delete record;
+ record = 0l;
+ }
+
+ return record;
+}
+/*
+ * get the rtti for the service
+ */
+int OPimMainWindow::service() {
+ if ( m_rtti == -1 )
+ m_rtti = OPimResolver::self()->serviceId( m_service );
+
+ return m_rtti;
+}