Submitting following changes -
AuthApps for Last.fm and Twitter added
API for checking ServiceAuthorization added for SMFCredMgrClient
API added for forcefully removing credential details from SMFCredMgr
Extra argument checks in SMfClient APIs
APIs for service login and logout from SMFClient
Redundant members removed from SmfServerSymbian
DSM bug fixes
Test Apps included
#include "CustomListWidget.h"
#include <qlistwidget.h>
#include <qboxlayout.h>
#include <qlabel.h>
#include <qdebug.h>
#include "ScreenSize.h"
#include <qpushbutton.h>
#include "WidgetConstants.h"
CustomListWidget::CustomListWidget()
{
setStyleSheet("selection-color: yellow;"
"selection-background-color: grey;");
}
CustomListWidget::~CustomListWidget()
{
}
void CustomListWidget::AddListItem(QString aIconPath,QString aFirstLine,QString aSecondLine)
{
QWidget* customwidget = new QWidget;
QHBoxLayout* HMainlayout = new QHBoxLayout(customwidget);
QLabel *lab =new QLabel();
lab->setPixmap(QPixmap(aIconPath));
lab->setFixedSize(60,60);
HMainlayout->addWidget(lab);
//To add First & second row horizontal layouts
QVBoxLayout* VTextlayout = new QVBoxLayout;
QHBoxLayout* HFirstrowLayout = new QHBoxLayout;
//Add FirstLine label
QLabel *lab1 =new QLabel(aFirstLine);
lab1->setStyleSheet("font: bold 20px;");
HFirstrowLayout->addWidget(lab1);
//Add Images to
QLabel *Img1lab =new QLabel();
Img1lab->setPixmap(QPixmap(aIconPath));
Img1lab->setFixedSize(10,10);
QLabel *Img2lab =new QLabel();
Img2lab->setPixmap(QPixmap(aIconPath));
Img2lab->setFixedSize(10,10);
QLabel *Img3lab =new QLabel();
Img3lab->setPixmap(QPixmap(aIconPath));
Img3lab->setFixedSize(10,10);
HFirstrowLayout->addWidget(Img1lab);
HFirstrowLayout->addWidget(Img2lab);
HFirstrowLayout->addWidget(Img3lab);
// HFirstrowLayout->setAlignment(Img3lab,Qt::AlignRight);
// HFirstrowLayout->setAlignment(Img2lab,Qt::AlignRight);
// HFirstrowLayout->setAlignment(Img1lab,Qt::AlignRight);
VTextlayout->addLayout(HFirstrowLayout);
QHBoxLayout* HSecondrowLayout = new QHBoxLayout;
QLabel *lab2 =new QLabel(aSecondLine);
lab2->setStyleSheet("font: 16px;");
HSecondrowLayout->addWidget(lab2);
QLabel *Timestamplabel =new QLabel("00:00 JUL 12");
Timestamplabel->setStyleSheet("font: 12px;");
HSecondrowLayout->addWidget(Timestamplabel);
HSecondrowLayout->setAlignment(Timestamplabel,Qt::AlignRight);
VTextlayout->addLayout(HSecondrowLayout);
HMainlayout->addLayout(VTextlayout);
customwidget->setLayout(HMainlayout);
QListWidgetItem *item=new QListWidgetItem;
//customlist->adjustSize();
//customlist->adjustSize();
item->setSizeHint(QSize(60,60));
addItem(item);
setItemWidget(item,customwidget);
}
void CustomListWidget::AddListItem(QMainWindow *mainWindow,QStringList aIconPath,QStringList aNames)
{
Q_UNUSED(mainWindow)
qDebug()<<"Inside GridView::CreateGridView()";
qDebug()<<"aIconPath count = "<<aIconPath.count();
qDebug()<<"names count = "<<aNames.count();
int row;
int col;
//QWidget* widget = new QWidget();
QGridLayout* GridLayout = new QGridLayout(this);
if((6 == aIconPath.count()) || (5 == aIconPath.count()))
{
row = 3;
col = 2;
}
else if((4 == aIconPath.count()) || (3 == aIconPath.count()))
{
row = col = 2;
}
else if((2 == aIconPath.count()) || (1 == aIconPath.count()))
{
row = 1;
col = 2;
}
else if(0 == aIconPath.count())
{
row = col = 0;
}
int rowSpace = (ScreenSize::GetScreenRect().height() - (KHeadNameHeight+ToolbarIconHeight+2*KWidgetGapFactor))/row;
int colSpace = (ScreenSize::GetScreenRect().width() - 2*KWidgetGapFactor )/col;
int index = 0;
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
QPushButton *pushBtn = new QPushButton();
qDebug()<<"name = "<<aNames[index];
pushBtn->setGeometry(i*colSpace,(j*rowSpace + KWidgetGapFactor),colSpace,rowSpace);
pushBtn->setIconSize(QSize(colSpace-(3*KWidgetGapFactor),colSpace+(3*KWidgetGapFactor)));
qDebug()<<"icon = "<<aIconPath[index];
pushBtn->setIcon(QIcon(aIconPath[index]));
qDebug()<<"After image display";
GridLayout->addWidget(pushBtn,i,j);
index++;
if(index == aNames.count())
{
qDebug()<<"Count became same so exiting";
break;
}
}
if(index == aNames.count())
{
qDebug()<<"Count became same so exiting";
break;
}
}
//Its required please don't remove
show();
}
QWidget* CustomListWidget::CreateListwidget(SmfContactList* friendsList)
{
qDebug()<<"Inside CustomListWidget::CreateListwidget() for friends";
qDebug()<<"Friends count = "<<friendsList->count();
QListWidget* customlist = new QListWidget();
// Todo:- Display something when no friends are available
foreach(SmfContact contact, *friendsList)
{
QString name(contact.value("Name").value<QContactName>().firstName());
QString status(contact.value("Presence").value<QContactPresence>().customMessage());
if(!status.size())
status.append("Not available");
//QUrl url(contact.value("Avatar").value<QContactAvatar>().imageUrl());
QString url("C:\\data\\sample.bmp"); // ToDo:- should be the profile image path
QWidget* widgetItem = new QWidget();
QHBoxLayout* HMainlayout = new QHBoxLayout(widgetItem);
QLabel *lab =new QLabel();
lab->setPixmap(QPixmap(url));
lab->setFixedSize(60,60);
HMainlayout->addWidget(lab);
//To add First & second row horizontal layouts
QVBoxLayout* VTextlayout = new QVBoxLayout;
QHBoxLayout* HFirstrowLayout = new QHBoxLayout;
//Add FirstLine label
QLabel *lab1 = new QLabel(name);
lab1->setStyleSheet("font: bold 16px;");
HFirstrowLayout->addWidget(lab1);
//Add Images to
QLabel *Img1lab =new QLabel();
Img1lab->setPixmap(QPixmap(url));
Img1lab->setFixedSize(10,10);
QLabel *Img2lab =new QLabel();
Img2lab->setPixmap(QPixmap(url));
Img2lab->setFixedSize(10,10);
QLabel *Img3lab =new QLabel();
Img3lab->setPixmap(QPixmap(url));
Img3lab->setFixedSize(10,10);
HFirstrowLayout->addWidget(Img1lab);
HFirstrowLayout->addWidget(Img2lab);
HFirstrowLayout->addWidget(Img3lab);
// HFirstrowLayout->setAlignment(Img3lab,Qt::AlignRight);
// HFirstrowLayout->setAlignment(Img2lab,Qt::AlignRight);
// HFirstrowLayout->setAlignment(Img1lab,Qt::AlignRight);
VTextlayout->addLayout(HFirstrowLayout);
QHBoxLayout* HSecondrowLayout = new QHBoxLayout;
QLabel *lab2 =new QLabel(status);
lab2->setStyleSheet("font: 8px;");
HSecondrowLayout->addWidget(lab2);
QLabel *Timestamplabel =new QLabel("");
Timestamplabel->setStyleSheet("font: 7px;");
HSecondrowLayout->addWidget(Timestamplabel);
HSecondrowLayout->setAlignment(Timestamplabel,Qt::AlignRight);
VTextlayout->addLayout(HSecondrowLayout);
HMainlayout->addLayout(VTextlayout);
widgetItem->setLayout(HMainlayout);
QListWidgetItem *item=new QListWidgetItem;
//customlist->adjustSize();
//customlist->adjustSize();
item->setSizeHint(QSize(60,60));
customlist->addItem(item);
customlist->setItemWidget(item,widgetItem);
}
customlist->setStyleSheet("selection-color: yellow;"
"selection-background-color: grey;");
return customlist;
}
QWidget* CustomListWidget::CreateListwidget(SmfPostList *postsList)
{
qDebug()<<"Inside CustomListWidget::CreateListwidget() for posts";
qDebug()<<"Posts count = "<<postsList->count();
QListWidget* customlist = new QListWidget();
// Todo:- Display something when no posts are available
foreach(SmfPost post, *postsList)
{
QString text(post.description());
QString ownerName(post.owner().value("Name").value<QContactName>().firstName());
//QUrl url(contact.value("Avatar").value<QContactAvatar>().imageUrl());
QString url("C:\\data\\sample.bmp"); // ToDo:- should be the profile image path
QWidget* widgetItem = new QWidget();
QHBoxLayout* HMainlayout = new QHBoxLayout(widgetItem);
QLabel *lab =new QLabel();
lab->setPixmap(QPixmap(url));
lab->setFixedSize(60,60);
HMainlayout->addWidget(lab);
//To add First & second row horizontal layouts
QVBoxLayout* VTextlayout = new QVBoxLayout;
QHBoxLayout* HFirstrowLayout = new QHBoxLayout;
//Add FirstLine label
QLabel *lab1 = new QLabel(ownerName);
lab1->setStyleSheet("font: bold 16px;");
HFirstrowLayout->addWidget(lab1);
//Add Images to
QLabel *Img1lab =new QLabel();
Img1lab->setPixmap(QPixmap(url));
Img1lab->setFixedSize(10,10);
QLabel *Img2lab =new QLabel();
Img2lab->setPixmap(QPixmap(url));
Img2lab->setFixedSize(10,10);
QLabel *Img3lab =new QLabel();
Img3lab->setPixmap(QPixmap(url));
Img3lab->setFixedSize(10,10);
HFirstrowLayout->addWidget(Img1lab);
HFirstrowLayout->addWidget(Img2lab);
HFirstrowLayout->addWidget(Img3lab);
// HFirstrowLayout->setAlignment(Img3lab,Qt::AlignRight);
// HFirstrowLayout->setAlignment(Img2lab,Qt::AlignRight);
// HFirstrowLayout->setAlignment(Img1lab,Qt::AlignRight);
VTextlayout->addLayout(HFirstrowLayout);
QHBoxLayout* HSecondrowLayout = new QHBoxLayout;
QLabel *lab2 =new QLabel(text);
lab2->setStyleSheet("font: 8px;");
HSecondrowLayout->addWidget(lab2);
QLabel *Timestamplabel =new QLabel("");
Timestamplabel->setStyleSheet("font: 7px;");
HSecondrowLayout->addWidget(Timestamplabel);
HSecondrowLayout->setAlignment(Timestamplabel,Qt::AlignRight);
VTextlayout->addLayout(HSecondrowLayout);
HMainlayout->addLayout(VTextlayout);
widgetItem->setLayout(HMainlayout);
QListWidgetItem *item=new QListWidgetItem;
//customlist->adjustSize();
//customlist->adjustSize();
item->setSizeHint(QSize(60,60));
customlist->addItem(item);
customlist->setItemWidget(item,widgetItem);
}
customlist->setStyleSheet("selection-color: yellow;"
"selection-background-color: grey;");
return customlist;
}
/*QWidget* CreateListwidget(SmfActivityEntryList *activityList)
{
}*/
/*QWidget* CustomListWidget::CreateListwidget(QString aIconPath,QString aFirstLine,QString aSecondLine)
{
qDebug()<<"Inside CustomListWidget::CreateListwidget()";
qDebug()<<"Icon path = "<<aIconPath;
qDebug()<<"firstline = "<<aFirstLine;
qDebug()<<"second line = "<<aSecondLine;
QListWidget* customlist = new QListWidget();
//for(int i =0;i<2;i++)
//{
QWidget* widgetItem = new QWidget();
QHBoxLayout* HMainlayout = new QHBoxLayout(widgetItem);
QLabel *lab =new QLabel();
lab->setPixmap(QPixmap(aIconPath));
lab->setFixedSize(60,60);
HMainlayout->addWidget(lab);
//To add First & second row horizontal layouts
QVBoxLayout* VTextlayout = new QVBoxLayout;
QHBoxLayout* HFirstrowLayout = new QHBoxLayout;
//Add FirstLine label
QLabel *lab1 =new QLabel(aFirstLine);
lab1->setStyleSheet("font: bold 16px;");
HFirstrowLayout->addWidget(lab1);
//Add Images to
QLabel *Img1lab =new QLabel();
Img1lab->setPixmap(QPixmap(aIconPath));
Img1lab->setFixedSize(10,10);
QLabel *Img2lab =new QLabel();
Img2lab->setPixmap(QPixmap(aIconPath));
Img2lab->setFixedSize(10,10);
QLabel *Img3lab =new QLabel();
Img3lab->setPixmap(QPixmap(aIconPath));
Img3lab->setFixedSize(10,10);
HFirstrowLayout->addWidget(Img1lab);
HFirstrowLayout->addWidget(Img2lab);
HFirstrowLayout->addWidget(Img3lab);
// HFirstrowLayout->setAlignment(Img3lab,Qt::AlignRight);
// HFirstrowLayout->setAlignment(Img2lab,Qt::AlignRight);
// HFirstrowLayout->setAlignment(Img1lab,Qt::AlignRight);
VTextlayout->addLayout(HFirstrowLayout);
QHBoxLayout* HSecondrowLayout = new QHBoxLayout;
QLabel *lab2 =new QLabel(aSecondLine);
lab2->setStyleSheet("font: 8px;");
HSecondrowLayout->addWidget(lab2);
QLabel *Timestamplabel =new QLabel("00:00 JUN 29");
Timestamplabel->setStyleSheet("font: 7px;");
HSecondrowLayout->addWidget(Timestamplabel);
HSecondrowLayout->setAlignment(Timestamplabel,Qt::AlignRight);
VTextlayout->addLayout(HSecondrowLayout);
HMainlayout->addLayout(VTextlayout);
widgetItem->setLayout(HMainlayout);
QListWidgetItem *item=new QListWidgetItem;
//customlist->adjustSize();
//customlist->adjustSize();
item->setSizeHint(QSize(60,60));
customlist->addItem(item);
customlist->setItemWidget(item,widgetItem);
//}
customlist->setStyleSheet("selection-color: yellow;"
"selection-background-color: grey;");
return customlist;
}*/