--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/example/smfclientapp/displaywidget.cpp Tue May 18 17:33:55 2010 +0530
@@ -0,0 +1,199 @@
+/**
+ * Copyright (c) 2010 Sasken Communication Technologies Ltd.
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html"
+ *
+ * Initial Contributors:
+ * Chandradeep Gandhi, Sasken Communication Technologies Ltd - Initial contribution
+ *
+ * Contributors:
+ * Manasij Roy, Nalina Hariharan
+ */
+
+
+
+#include "displaywidget.h"
+#include <QApplication>
+#include <QDesktopWidget>
+
+DisplayWidget::DisplayWidget(QWidget *parent)
+ : QWidget(parent)
+{
+ ui.setupUi(this);
+ ui.verticalLayout->setGeometry(QApplication::desktop()->availableGeometry());
+ //Add item as and when they are implemented
+ ui.comboBox_intf->addItem("Contact Fetcher");
+ ui.comboBox_intf->addItem("Post Provider");
+// connect(ui.comboBox_intf,
+// SIGNAL(currentIndexChanged(int)),
+// this,
+// SLOT(interfaceSelected(int)));
+ connect(ui.pushButton_intf,SIGNAL(clicked()),this,SLOT(interfaceSelected()));
+ connect(ui.pushButton_SP,SIGNAL(clicked()),this,SLOT(serviceProviderSelected()));
+ connect(ui.pushButton_service,SIGNAL(clicked()),this,SLOT(serviceSelected()));
+ writeLog("Start");
+}
+void DisplayWidget::interfaceSelected()
+ {
+ SmfClient client;
+ //TODO:- PM should use commented interface name instead
+// QString name("org.symbian.smf.client.contact.posts");
+ QString intfName;
+ switch(ui.comboBox_intf->currentIndex())
+ {
+ case 0:
+ intfName = "org.symbian.smf.client.contact.fetcher";
+ break;
+ case 1:
+ intfName = "posts";
+ break;
+ default:
+ //should not reach here!!!!
+ break;
+ }
+ writeLog("Before client.GetServices");
+ providerList= client.GetServices(intfName);
+ ui.comboBox__SP->clear();
+ //add provider names to the combobox
+ for(int i=0; i< providerList->count();i++)
+ {
+ SmfProvider provider = providerList->at(i);
+ ui.comboBox__SP->addItem(provider.serviceName());
+ }
+
+ //logging for debugging purpose
+ writeLog("GetServices count=");
+ QString c = QString::number(providerList->count());
+ writeLog(c);
+ //serviceProviderSelected
+// connect(ui.comboBox__SP,
+// SIGNAL(currentIndexChanged(int)),
+// this,
+// SLOT(serviceProviderSelected(int)));
+ }
+void DisplayWidget::serviceProviderSelected()
+ {
+
+ switch(ui.comboBox_intf->currentIndex())
+ {
+ case 0:
+ ui.comboBox_service->addItem("Get Friend List");
+ //ui.comboBox_3->addItem("Get Group List");
+ break;
+ case 1:
+ ui.comboBox_service->addItem("Get Own Posts");
+ //ui.comboBox_3->addItem("Get Friend's Posts");
+ break;
+ }
+// connect(ui.comboBox_service,
+// SIGNAL(currentIndexChanged(int)),
+// this,
+// SLOT(serviceSelected(int)));
+ }
+void DisplayWidget::serviceSelected()
+ {
+ SmfProvider smfP(providerList->at(ui.comboBox_service->currentIndex()));
+
+ writeLog("Selected SmfProvider=");
+ writeLog(smfP.m_description);
+ writeLog(smfP.m_serviceUrl.toString());
+ writeLog(smfP.m_appUrl.toString());
+ switch(ui.comboBox_intf->currentIndex())
+ {
+ case 1:
+ m_postProvider = new SmfPostProvider(&smfP);
+ //TODO:- it should be nested switch case as there are multiple APIs under one interface
+ //connect to appropriate slot
+ connect(m_postProvider,
+ SIGNAL(postsAvailable(SmfPostList*, SmfError, SmfResultPage)),
+ this,
+ SLOT(showPosts(SmfPostList* , SmfError , SmfResultPage )));
+
+ writeLog("Before m_postProvider->posts=");
+ //request for self posts
+ m_postProvider->posts();
+ break;
+ case 0:
+ m_contactFetcher = new SmfContactFetcher(&smfP);
+ //connect to appropriate slot
+ connect(m_contactFetcher,
+ SIGNAL(friendsListAvailable(SmfContactList*, SmfError , SmfResultPage)),
+ this,
+ SLOT(showFriends(SmfContactList*, SmfError , SmfResultPage)));
+
+ writeLog("Before m_contactFetcher->friends=");
+ //request for friends, excluding paging info
+ m_contactFetcher->friends();
+ break;
+ }
+ }
+void DisplayWidget::showPosts(SmfPostList* postlist, SmfError error, SmfResultPage resultPage)
+ {
+ writeLog("TestScreen::showPosts");
+ ui.listWidget->clear();
+ ui.listWidget->setVerticalScrollBar(ui.verticalScrollBar_list);
+ writeLog("TestScreen::showPosts count=");
+ writeLog(QString::number(postlist->count()));
+ writeLog("Error=");
+ writeLog(QString::number(error));
+ if(error)
+ {
+ QString smferrString("Smf Error code=");
+ smferrString += QString::number(error);
+ QMessageBox::information(this,"Error",smferrString,QMessageBox::Ok);
+ }
+ //display post description
+
+ foreach(SmfPost post, *postlist)
+ {
+ QString desc = post.description();
+ ui.listWidget->addItem(desc);
+ }
+ ui.listWidget->show();
+ }
+void DisplayWidget::showFriends(SmfContactList* frnds, SmfError err, SmfResultPage)
+ {
+ splash.finish(this);
+ writeLog("TestScreen::showFriends count=");
+ writeLog(QString::number(frnds->count()));
+ writeLog("Error=");
+ writeLog(QString::number(err));
+ //display friends
+
+ foreach(SmfContact frnd, *frnds)
+ {
+ //lets display only street
+ QVariant nameVar = frnd.value("Name");
+ QContactName name = nameVar.value<QContactName>();
+ QString fname;
+ QString lname;
+#ifdef OLDER_QT_MOBILITY
+ fname = name.first();
+ lname = name.last();
+#else
+ fname = name.firstName();
+ lname = name.lastName();
+#endif
+
+ ui.listWidget->addItem(fname);
+ }
+ ui.listWidget->show();
+ }
+void DisplayWidget::writeLog(QString log) const
+ {
+#ifdef WRITE_LOG
+ QFile file("c:\\data\\SmfClientLogs.txt");
+ if (!file.open(QIODevice::Append | QIODevice::Text))
+ ;
+ QTextStream out(&file);
+ out << log << "\n";
+ file.close();
+#endif
+ }
+DisplayWidget::~DisplayWidget()
+{
+
+}