Improvements of People dialog. Patch from Phenom (slightly modified).

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@7603 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2014-10-12 20:07:12 +00:00
parent 20786dbfeb
commit d79f5e10fb
12 changed files with 1020 additions and 992 deletions

View File

@ -101,11 +101,9 @@ CreateCircleDialog::~CreateCircleDialog()
void CreateCircleDialog::editExistingId(const RsGxsGroupId &circleId, const bool &clearList /*= true*/) void CreateCircleDialog::editExistingId(const RsGxsGroupId &circleId, const bool &clearList /*= true*/)
{ {
std::cerr << "CreateCircleDialog::editExistingId() : " << circleId;
std::cerr << std::endl;
/* load this circle */ /* load this circle */
mIsExistingCircle = true; mIsExistingCircle = true;
mClearList = clearList; mClearList = clearList;
requestCircle(circleId); requestCircle(circleId);
@ -240,15 +238,6 @@ void CreateCircleDialog::addCircle(const RsGxsCircleDetails &cirDetails)
QString nickname = QString::fromUtf8(gxs_details.mNickname.c_str()); QString nickname = QString::fromUtf8(gxs_details.mNickname.c_str());
QString idtype = tr("Anon Id"); QString idtype = tr("Anon Id");
/** Can we have known peers on mUnknownPeers (TODO)
if (gxs_details.mPgpKnown) {
RsPeerDetails details;
rsPeers->getGPGDetails(gxs_details.mPgpId, details);
idtype = QString::fromUtf8(details.name.c_str());
}else{
idtype = tr("PGP Linked Id");
}//if (gxs_details.mPgpKnown)*/
addMember(keyId, idtype, nickname); addMember(keyId, idtype, nickname);
}//if(!gxs_id.isNull() && rsIdentity->getIdDetails(gxs_id,gxs_details)) }//if(!gxs_id.isNull() && rsIdentity->getIdDetails(gxs_id,gxs_details))
@ -487,7 +476,7 @@ void CreateCircleDialog::loadCircle(uint32_t token)
QTreeWidget *tree = ui.treeWidget_membership; QTreeWidget *tree = ui.treeWidget_membership;
if (!mClearList) tree->clear(); if (mClearList) tree->clear();
std::vector<RsGxsCircleGroup> groups; std::vector<RsGxsCircleGroup> groups;
if (!rsGxsCircles->getGroupData(token, groups)) { if (!rsGxsCircles->getGroupData(token, groups)) {

View File

@ -13,12 +13,11 @@ CircleWidget::CircleWidget(QString name/*=QString()*/
ui(new Ui::CircleWidget) ui(new Ui::CircleWidget)
{ {
ui->setupUi(this); ui->setupUi(this);
std::string desc_string = _group_info.mGroupName ; m_myName = name;
QString cirName = QString::fromUtf8(desc_string.c_str());
if (name=="") m_myName = cirName;
ui->label->setText(m_myName); ui->label->setText(m_myName);
ui->label->setToolTip(m_myName);
_scene = new QGraphicsScene(this); _scene = new QGraphicsScene(this);
_scene->addText(tr("Empty %1").arg(getName())); _scene->addText(tr("Empty Circle"));
ui->graphicsView->setScene(_scene); ui->graphicsView->setScene(_scene);
//To grab events //To grab events
@ -48,8 +47,9 @@ void CircleWidget::updateData(const RsGroupMetaData& gxs_group_info
QString cirName = QString::fromUtf8(desc_string.c_str()); QString cirName = QString::fromUtf8(desc_string.c_str());
m_myName = cirName; m_myName = cirName;
ui->label->setText(m_myName); ui->label->setText(m_myName);
ui->label->setToolTip(m_myName);
update(); update();
}//if (gxs_group_info!=_group_info) }//if (_group_info != gxs_group_info)
if (_circle_details != details) { if (_circle_details != details) {
_circle_details=details; _circle_details=details;
@ -67,10 +67,9 @@ void CircleWidget::updateData(const RsGroupMetaData& gxs_group_info
for (itAllowedPeers it = _circle_details.mAllowedPeers.begin() for (itAllowedPeers it = _circle_details.mAllowedPeers.begin()
; it != _circle_details.mAllowedPeers.end() ; it != _circle_details.mAllowedPeers.end()
; ++it ) { ; ++it ) {
RsPgpId id = it->first; RsPgpId pgp_id = it->first;
emit askForPGPIdentityWidget(id); emit askForPGPIdentityWidget(pgp_id);
///** (TODO) Is it needed?
std::list<RsGxsId> gxs_id_list = it->second; std::list<RsGxsId> gxs_id_list = it->second;
typedef std::list<RsGxsId>::const_iterator itGxsId; typedef std::list<RsGxsId>::const_iterator itGxsId;
for (itGxsId curs=gxs_id_list.begin() for (itGxsId curs=gxs_id_list.begin()
@ -81,7 +80,6 @@ void CircleWidget::updateData(const RsGroupMetaData& gxs_group_info
emit askForGXSIdentityWidget(gxs_id); emit askForGXSIdentityWidget(gxs_id);
}//if(!gxs_id.isNull()) }//if(!gxs_id.isNull())
}//for (itGxsId curs=gxs_id_list.begin() }//for (itGxsId curs=gxs_id_list.begin()
//*//
}//for (itAllowedPeers it = _circle_details.mAllowedPeers.begin() }//for (itAllowedPeers it = _circle_details.mAllowedPeers.begin()
update(); update();
@ -122,14 +120,25 @@ const QPixmap CircleWidget::getDragImage()
void CircleWidget::addIdent(IdentityWidget *item) void CircleWidget::addIdent(IdentityWidget *item)
{ {
if (item){ if (item){
RsGxsId id = RsGxsId(item->groupInfo().mMeta.mGroupId); std::string id;
if (item->haveGXSId()) {
id =item->groupInfo().mMeta.mGroupId.toStdString();
} else {//if (item->haveGXSId())
id =item->keyId().toStdString();
}//else (item->haveGXSId())
if (!_list.contains(id)){ if (!_list.contains(id)){
_list[id] = item; _list[id] = item;
connect(item,SIGNAL(imageUpdated()), this, SLOT(updateIdImage()));
updateScene(); updateScene();
}//if (!list.contains(item)) }//if (!_list.contains(id))
}//if (item) }//if (item)
} }
void CircleWidget::updateIdImage()
{
updateScene();
}
void CircleWidget::updateScene() void CircleWidget::updateScene()
{ {
const qreal PI = qAtan(1.0)*4; const qreal PI = qAtan(1.0)*4;
@ -151,7 +160,7 @@ void CircleWidget::updateScene()
qreal sizeY = topleftY*2; qreal sizeY = topleftY*2;
int curs = 0; int curs = 0;
typedef QMap<RsGxsId, IdentityWidget*>::const_iterator itList; typedef QMap<std::string, IdentityWidget*>::const_iterator itList;
for (itList it=_list.constBegin(); it!=_list.constEnd(); ++it){ for (itList it=_list.constBegin(); it!=_list.constEnd(); ++it){
QPixmap pix = it.value()->getImage(); QPixmap pix = it.value()->getImage();
pix = pix.scaled(sizeX, sizeY); pix = pix.scaled(sizeX, sizeY);
@ -159,6 +168,15 @@ void CircleWidget::updateScene()
qreal x = (qCos(curs*pitch)*radiusX)-(sizeX/2)+topleftX+radiusX; qreal x = (qCos(curs*pitch)*radiusX)-(sizeX/2)+topleftX+radiusX;
qreal y = (qSin(curs*pitch)*radiusY)-(sizeY/2)+topleftY+radiusY; qreal y = (qSin(curs*pitch)*radiusY)-(sizeY/2)+topleftY+radiusY;
item->setPos(QPointF(x, y)); item->setPos(QPointF(x, y));
QString name = it.value()->getName();
QString idKey = it.value()->keyId();
QString gxsId = it.value()->gxsId();
if (idKey == gxsId) gxsId.clear();
item->setToolTip(name.append("\n")
.append(idKey).append(gxsId.isEmpty()?"":"\n")
.append(gxsId));
++curs; ++curs;
}//for (itList it=_list.constBegin(); it!=_list.constEnd(); ++it) }//for (itList it=_list.constBegin(); it!=_list.constEnd(); ++it)
emit imageUpdated();
} }

View File

@ -31,7 +31,7 @@ public:
//End Properties //End Properties
void addIdent(IdentityWidget* item); void addIdent(IdentityWidget* item);
const QMap<RsGxsId, IdentityWidget*> idents() const {return _list;} const QMap<std::string, IdentityWidget*> idents() const {return _list;}
const RsGroupMetaData& groupInfo() const { return _group_info;} const RsGroupMetaData& groupInfo() const { return _group_info;}
const RsGxsCircleDetails& circleDetails() const {return _circle_details;} const RsGxsCircleDetails& circleDetails() const {return _circle_details;}
@ -40,11 +40,14 @@ signals:
void askForGXSIdentityWidget(RsGxsId gxs_id); void askForGXSIdentityWidget(RsGxsId gxs_id);
void askForPGPIdentityWidget(RsPgpId pgp_id); void askForPGPIdentityWidget(RsPgpId pgp_id);
private slots:
void updateIdImage();
private: private:
void updateScene(); void updateScene();
QGraphicsScene* _scene; QGraphicsScene* _scene;
QMap<RsGxsId, IdentityWidget*> _list; QMap<std::string, IdentityWidget*> _list;
RsGroupMetaData _group_info ; RsGroupMetaData _group_info ;
RsGxsCircleDetails _circle_details ; RsGxsCircleDetails _circle_details ;

View File

@ -54,13 +54,19 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="label"> <widget class="ElidedLabel" name="label">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
<height>15</height> <height>15</height>
</size> </size>
</property> </property>
<property name="maximumSize">
<size>
<width>200</width>
<height>16777215</height>
</size>
</property>
<property name="text"> <property name="text">
<string>TextLabel</string> <string>TextLabel</string>
</property> </property>
@ -71,6 +77,14 @@
</item> </item>
</layout> </layout>
</widget> </widget>
<customwidgets>
<customwidget>
<class>ElidedLabel</class>
<extends>QLabel</extends>
<header location="global">gui/common/ElidedLabel.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>

View File

@ -8,68 +8,34 @@
#include <QMimeData> #include <QMimeData>
#include <QGraphicsProxyWidget> #include <QGraphicsProxyWidget>
IdentityWidget::IdentityWidget(const RsGxsIdGroup &gxs_group_info, QString name/*=QString()*/, QWidget *parent/*=0*/) : IdentityWidget::IdentityWidget(QString name/*=QString()*/, QWidget *parent/*=0*/) :
FlowLayoutItem(name, parent), FlowLayoutItem(name, parent),
_group_info(gxs_group_info),
ui(new Ui::IdentityWidget) ui(new Ui::IdentityWidget)
{ {
ui->setupUi(this); ui->setupUi(this);
_isGXS=true; _haveGXSId = false;
_havePGPDetail = false;
std::string desc_string = _group_info.mMeta.mGroupName ; m_myName = name;
QString idName = QString::fromUtf8(desc_string.c_str());
if (name=="") m_myName = idName;
ui->labelName->setText(m_myName); ui->labelName->setText(m_myName);
ui->labelName->setToolTip(m_myName);
QFont font = ui->labelName->font(); QFont font = ui->labelName->font();
font.setItalic(false); font.setItalic(false);
ui->labelKeyId->setText(QString::fromStdString(_group_info.mMeta.mGroupId.toStdString()));
ui->labelName->setFont(font); ui->labelName->setFont(font);
_keyId="";
ui->labelKeyId->setText(_keyId);
ui->labelKeyId->setToolTip(_keyId);
ui->labelKeyId->setVisible(false); ui->labelKeyId->setVisible(false);
ui->pbAdd->setVisible(false); ui->labelGXSId->setText(_keyId);
_scene = new QGraphicsScene(this); ui->labelGXSId->setToolTip(_keyId);
/// (TODO) Get real ident icon ui->labelGXSId->setVisible(false);
QImage image = GxsIdDetails::makeDefaultIcon(RsGxsId(_group_info.mMeta.mGroupId));
_scene->addPixmap(QPixmap::fromImage(image.scaled(ui->graphicsView->width(),ui->graphicsView->height())));
//scene->setBackgroundBrush(QBrush(QColor(qrand()%255,qrand()%255,qrand()%255)));
//scene->addText(QString("Hello, %1").arg(getName()));
ui->graphicsView->setScene(_scene);
//To grab events
ui->graphicsView->setEnabled(false);
ui->graphicsView->setAlignment(Qt::AlignLeft | Qt::AlignTop);
setIsCurrent(false);
setIsSelected(false);
setAcceptDrops(true);
}
IdentityWidget::IdentityWidget(const RsPeerDetails &pgp_details, QString name/*=QString()*/, QWidget *parent/*=0*/) :
FlowLayoutItem(name, parent),
_details(pgp_details),
ui(new Ui::IdentityWidget)
{
ui->setupUi(this);
_isGXS=false;
QString idName = QString::fromUtf8(pgp_details.name.c_str());
if (name=="") m_myName = idName;
ui->labelName->setText(m_myName);
QFont font = ui->labelName->font();
font.setItalic(true);
ui->labelKeyId->setText(QString::fromStdString(pgp_details.gpg_id.toStdString()));
ui->labelName->setFont(font);
ui->labelKeyId->setVisible(false);
ui->pbAdd->setVisible(false); ui->pbAdd->setVisible(false);
QObject::connect(ui->pbAdd, SIGNAL(clicked()), this, SLOT(pbAdd_clicked()));
_scene = new QGraphicsScene(this); _scene = new QGraphicsScene(this);
/// (TODO) Get real ident icon
QPixmap avatar;
AvatarDefs::getAvatarFromSslId(pgp_details.id.toStdString(), avatar);
_scene->addPixmap(avatar.scaled(ui->graphicsView->width(),ui->graphicsView->height()));
//scene->setBackgroundBrush(QBrush(QColor(qrand()%255,qrand()%255,qrand()%255)));
//scene->addText(QString("Hello, %1").arg(getName()));
ui->graphicsView->setScene(_scene); ui->graphicsView->setScene(_scene);
//To grab events //To grab events
@ -88,6 +54,92 @@ IdentityWidget::~IdentityWidget()
delete ui; delete ui;
} }
void IdentityWidget::updateData(const RsGxsIdGroup &gxs_group_info)
{
if (_group_info.mMeta.mGroupId != gxs_group_info.mMeta.mGroupId) {
_group_info = gxs_group_info;
_haveGXSId = true;
m_myName = QString::fromUtf8(_group_info.mMeta.mGroupName.c_str());
ui->labelName->setText(m_myName);
if (_havePGPDetail) {
ui->labelName->setToolTip(tr("GXS name: ").append(m_myName).append("\n")
.append(tr("PGP name: ").append(_nickname)));
} else {//if (m_myName != _nickname)
ui->labelName->setToolTip(tr("GXS name: ").append(m_myName));
}//else (m_myName != _nickname)
_gxsId = QString::fromStdString(_group_info.mMeta.mGroupId.toStdString());
ui->labelGXSId->setText(_gxsId);
ui->labelGXSId->setToolTip(tr("GXS id: ").append(_gxsId));
if (!_havePGPDetail) {
QFont font = ui->labelName->font();
font.setItalic(false);
ui->labelName->setFont(font);
_keyId=QString::fromStdString(_group_info.mMeta.mGroupId.toStdString());
ui->labelKeyId->setText(_keyId);
ui->labelKeyId->setToolTip(tr("GXS id: ").append(_keyId));
ui->labelKeyId->setVisible(false);
/// (TODO) Get real ident icon
QImage image = GxsIdDetails::makeDefaultIcon(RsGxsId(_group_info.mMeta.mGroupId));
if (_avatar != image) {
_avatar = image;
_scene->clear();
_scene->addPixmap(QPixmap::fromImage(image.scaled(ui->graphicsView->width(),ui->graphicsView->height())));
emit imageUpdated();
}//if (_avatar != image)
}//if (!_havePGPDetail)
}//if (_group_info != gxs_group_info)
}
void IdentityWidget::updateData(const RsPeerDetails &pgp_details)
{
if (_details.id != pgp_details.id)
{
_details = pgp_details;
_havePGPDetail = true;
_nickname = QString::fromUtf8(_details.name.c_str());
if (!_haveGXSId) m_myName = _nickname;
ui->labelName->setText(m_myName);
if (_haveGXSId) {
ui->labelName->setToolTip(tr("GXS name: ").append(m_myName).append("\n")
.append(tr("PGP name: ").append(_nickname)));
} else {//if (m_myName != _nickname)
ui->labelName->setToolTip(tr("PGP name: ").append(_nickname));
}//else (m_myName != _nickname)
QFont font = ui->labelName->font();
font.setItalic(true);
ui->labelName->setFont(font);
_keyId = QString::fromStdString(_details.gpg_id.toStdString());
ui->labelKeyId->setText(_keyId);
ui->labelKeyId->setToolTip(tr("PGP id: ").append(_keyId));
QPixmap avatar;
AvatarDefs::getAvatarFromGpgId(_details.gpg_id.toStdString(), avatar);
if (_avatar != avatar.toImage()) {
_avatar = avatar.toImage();
_scene->clear();
_scene->addPixmap(avatar.scaled(ui->graphicsView->width(),ui->graphicsView->height()));
emit imageUpdated();
}//if (_avatar != avatar.toImage())
}//if (_details != gpg_details)
}
void IdentityWidget::updateData(const RsGxsIdGroup &gxs_group_info, const RsPeerDetails &pgp_details)
{
updateData(gxs_group_info);
updateData(pgp_details);
}
QSize IdentityWidget::sizeHint() QSize IdentityWidget::sizeHint()
{ {
QSize size; QSize size;
@ -136,6 +188,7 @@ void IdentityWidget::setIsCurrent(bool value)
{ {
m_isCurrent=value; m_isCurrent=value;
ui->labelKeyId->setVisible(value); ui->labelKeyId->setVisible(value);
ui->labelGXSId->setVisible(value && (_haveGXSId && _havePGPDetail));
ui->pbAdd->setVisible(value); ui->pbAdd->setVisible(value);
} }
/* /*
@ -143,3 +196,8 @@ bool IdentityWidget::isCurrent()
{ {
return m_isCurrent; return m_isCurrent;
}*/ }*/
void IdentityWidget::pbAdd_clicked()
{
emit addButtonClicked();
}

View File

@ -2,8 +2,9 @@
#define IDENTITYWIDGET_H #define IDENTITYWIDGET_H
#include "gui/common/FlowLayout.h" #include "gui/common/FlowLayout.h"
#include <QWidget> #include <QImage>
#include <QGraphicsScene> #include <QGraphicsScene>
#include <QWidget>
#include <retroshare/rsidentity.h> #include <retroshare/rsidentity.h>
#include <retroshare/rspeers.h> #include <retroshare/rspeers.h>
@ -16,9 +17,13 @@ class IdentityWidget : public FlowLayoutItem
Q_OBJECT Q_OBJECT
public: public:
explicit IdentityWidget(const RsGxsIdGroup& gxs_group_info, QString name = QString(), QWidget *parent = 0); explicit IdentityWidget(QString name = QString()
explicit IdentityWidget(const RsPeerDetails& gpg_details, QString name = QString(), QWidget *parent = 0); , QWidget *parent = 0);
~IdentityWidget(); ~IdentityWidget();
void updateData(const RsGxsIdGroup& gxs_group_info);
void updateData(const RsPeerDetails& pgp_details);
void updateData(const RsGxsIdGroup& gxs_group_info
, const RsPeerDetails& pgp_details);
//Start QWidget Properties //Start QWidget Properties
QSize sizeHint(); QSize sizeHint();
@ -26,20 +31,36 @@ public:
virtual const QPixmap getImage(); virtual const QPixmap getImage();
virtual const QPixmap getDragImage(); virtual const QPixmap getDragImage();
virtual void setIsSelected(bool value); virtual void setIsSelected(bool value);
//virtual bool isSelected();
virtual void setIsCurrent(bool value); virtual void setIsCurrent(bool value);
//virtual bool isCurrent();
//End Properties //End Properties
const bool isGXS() { return _isGXS; }
bool haveGXSId() { return _haveGXSId; }
bool havePGPDetail() { return _havePGPDetail; }
const RsGxsIdGroup& groupInfo() const { return _group_info; } const RsGxsIdGroup& groupInfo() const { return _group_info; }
const RsPeerDetails& details() const { return _details; } const RsPeerDetails& details() const { return _details; }
const QString keyId() const { return _keyId; }
const QString idtype() const { return _idtype; }
const QString nickname() const { return _nickname; }
const QString gxsId() const { return _gxsId; }
signals:
void addButtonClicked();
private slots:
void pbAdd_clicked();
private: private:
bool _isGXS; bool _haveGXSId;
bool _havePGPDetail;
RsGxsIdGroup _group_info; RsGxsIdGroup _group_info;
RsPeerDetails _details; RsPeerDetails _details;
QGraphicsScene* _scene; QGraphicsScene* _scene;
QImage _avatar;
QString _keyId;
QString _idtype;
QString _nickname;
QString _gxsId;
Ui::IdentityWidget *ui; Ui::IdentityWidget *ui;
}; };

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>102</width> <width>102</width>
<height>153</height> <height>158</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
@ -54,13 +54,19 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="labelName"> <widget class="ElidedLabel" name="labelName">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
<height>15</height> <height>15</height>
</size> </size>
</property> </property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text"> <property name="text">
<string>Name</string> <string>Name</string>
</property> </property>
@ -73,7 +79,13 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="labelKeyId"> <widget class="ElidedLabel" name="labelKeyId">
<property name="minimumSize">
<size>
<width>0</width>
<height>15</height>
</size>
</property>
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>100</width> <width>100</width>
@ -88,6 +100,28 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="ElidedLabel" name="labelGXSId">
<property name="minimumSize">
<size>
<width>0</width>
<height>15</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>100</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>GXSId</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item> <item>
<widget class="QPushButton" name="pbAdd"> <widget class="QPushButton" name="pbAdd">
<property name="text"> <property name="text">
@ -98,5 +132,13 @@
</layout> </layout>
</widget> </widget>
<resources/> <resources/>
<customwidgets>
<customwidget>
<class>ElidedLabel</class>
<extends>QLabel</extends>
<header location="global">gui/common/ElidedLabel.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<connections/> <connections/>
</ui> </ui>

File diff suppressed because it is too large Load Diff

View File

@ -36,10 +36,6 @@
#define IMAGE_IDENTITY ":/images/identity/identities_32.png" #define IMAGE_IDENTITY ":/images/identity/identities_32.png"
class UIStateHelper;
//class IdentityItem ;
//class CircleItem ;
class PeopleDialog : public RsGxsUpdateBroadcastPage, public Ui::PeopleDialog, public TokenResponse class PeopleDialog : public RsGxsUpdateBroadcastPage, public Ui::PeopleDialog, public TokenResponse
{ {
Q_OBJECT Q_OBJECT
@ -57,8 +53,6 @@ class PeopleDialog : public RsGxsUpdateBroadcastPage, public Ui::PeopleDialog, p
virtual QString pageName() const { return tr("People") ; } //MainPage virtual QString pageName() const { return tr("People") ; } //MainPage
virtual QString helpText() const { return ""; } //MainPage virtual QString helpText() const { return ""; } //MainPage
// Derives from RsGxsUpdateBroadcastPage
// virtual void updateDisplay(bool) ;
void loadRequest(const TokenQueue * /*queue*/, const TokenRequest &req) ; void loadRequest(const TokenQueue * /*queue*/, const TokenRequest &req) ;
void requestIdList() ; void requestIdList() ;
@ -68,30 +62,44 @@ class PeopleDialog : public RsGxsUpdateBroadcastPage, public Ui::PeopleDialog, p
void insertCircles(uint32_t token) ; void insertCircles(uint32_t token) ;
protected: protected:
// Derives from RsGxsUpdateBroadcastPage
virtual void updateDisplay(bool complete); virtual void updateDisplay(bool complete);
//End RsGxsUpdateBroadcastPage
private slots: private slots:
void iw_AddButtonClickedExt();
void iw_AddButtonClickedInt();
void addToCircleExt();
void addToCircleInt();
void cw_askForGXSIdentityWidget(RsGxsId gxs_id); void cw_askForGXSIdentityWidget(RsGxsId gxs_id);
void cw_askForPGPIdentityWidget(RsPgpId pgp_id); void cw_askForPGPIdentityWidget(RsPgpId pgp_id);
void fl_flowLayoutItemDropped(QList<FlowLayoutItem *> flListItem, bool &bAccept); void cw_imageUpdatedExt();
void cw_imageUpdatedInt();
void fl_flowLayoutItemDroppedExt(QList<FlowLayoutItem *> flListItem, bool &bAccept);
void fl_flowLayoutItemDroppedInt(QList<FlowLayoutItem *> flListItem, bool &bAccept);
void pf_centerIndexChanged(int index); void pf_centerIndexChanged(int index);
void pf_mouseMoveOverSlideEvent(QMouseEvent* event, int slideIndex); void pf_mouseMoveOverSlideEvent(QMouseEvent* event, int slideIndex);
void pf_dragEnterEventOccurs(QDragEnterEvent *event); void pf_dragEnterEventOccurs(QDragEnterEvent *event);
void pf_dragMoveEventOccurs(QDragMoveEvent *event); void pf_dragMoveEventOccurs(QDragMoveEvent *event);
void pf_dropEventOccurs(QDropEvent *event); void pf_dropEventOccursExt(QDropEvent *event);
void pf_dropEventOccursInt(QDropEvent *event);
private: private:
void populatePictureFlow(); void reloadAll();
void populatePictureFlowExt();
void populatePictureFlowInt();
TokenQueue *mIdentityQueue; TokenQueue *mIdentityQueue;
TokenQueue *mCirclesQueue; TokenQueue *mCirclesQueue;
UIStateHelper *mStateHelper;
FlowLayout *_flowLayout; FlowLayout *_flowLayoutExt;
std::map<RsPgpId,IdentityWidget *> _pgp_identity_widgets ;
std::map<RsGxsId,IdentityWidget *> _gxs_identity_widgets ; std::map<RsGxsId,IdentityWidget *> _gxs_identity_widgets ;
std::map<RsGxsGroupId,CircleWidget *> _circles_widgets ; std::map<RsGxsGroupId,CircleWidget *> _ext_circles_widgets ;
//QList<IdentityWidget*> listId; QList<CircleWidget*> _extListCir;
QList<CircleWidget*> _listCir;
FlowLayout *_flowLayoutInt;
std::map<RsPgpId,IdentityWidget *> _pgp_identity_widgets ;
std::map<RsGxsGroupId,CircleWidget *> _int_circles_widgets ;
QList<CircleWidget*> _intListCir;
}; };

View File

@ -19,19 +19,7 @@
<property name="windowTitle"> <property name="windowTitle">
<string/> <string/>
</property> </property>
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="titleBarLayout">
<item row="1" column="0">
<widget class="QLabel" name="label">
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>People you may know on RetroShare</string>
</property>
</widget>
</item>
<item row="0" column="0"> <item row="0" column="0">
<widget class="QFrame" name="titleBarFrame"> <widget class="QFrame" name="titleBarFrame">
<property name="frameShape"> <property name="frameShape">
@ -40,12 +28,12 @@
<property name="frameShadow"> <property name="frameShadow">
<enum>QFrame::Sunken</enum> <enum>QFrame::Sunken</enum>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_5"> <layout class="QHBoxLayout">
<property name="margin"> <property name="margin">
<number>2</number> <number>2</number>
</property> </property>
<item> <item>
<widget class="QLabel" name="titleBarPixmap_3"> <widget class="QLabel" name="titleBarPixmap">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -70,7 +58,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLabel" name="titleBarLabel_3"> <widget class="QLabel" name="titleBarLabel">
<property name="font"> <property name="font">
<font> <font>
<pointsize>10</pointsize> <pointsize>10</pointsize>
@ -84,7 +72,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<spacer name="titleBarSpacer_3"> <spacer name="titleBarSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
@ -99,12 +87,28 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="1" column="0">
<widget class="QSplitter" name="splitter"> <widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tabExternal">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<attribute name="title">
<string>External</string>
</attribute>
<layout class="QVBoxLayout">
<item>
<widget class="QSplitter" name="splitterExternal">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<widget class="QScrollArea" name="scrollArea"> <widget class="QScrollArea" name="scrollAreaExternal">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -114,22 +118,22 @@
<property name="widgetResizable"> <property name="widgetResizable">
<bool>true</bool> <bool>true</bool>
</property> </property>
<widget class="FlowLayoutWidget" name="id"> <widget class="FlowLayoutWidget" name="idExternal">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>707</width> <width>685</width>
<height>248</height> <height>248</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout"/> <layout class="QVBoxLayout"/>
</widget> </widget>
</widget> </widget>
<widget class="QWidget" name="layoutWidget"> <widget class="QWidget" name="widgetExternal">
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="layoutExternal">
<item row="0" column="0"> <item row="0" column="0">
<widget class="QLabel" name="label_2"> <widget class="QLabel" name="label_External">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed"> <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
@ -142,7 +146,7 @@
</font> </font>
</property> </property>
<property name="text"> <property name="text">
<string>Drag people to your Circles</string> <string>Drag your circles or people to each other.</string>
</property> </property>
<property name="alignment"> <property name="alignment">
<set>Qt::AlignCenter</set> <set>Qt::AlignCenter</set>
@ -150,12 +154,90 @@
</widget> </widget>
</item> </item>
<item row="1" column="0"> <item row="1" column="0">
<widget class="PictureFlow" name="pictureFlowWidget" native="true"> <widget class="PictureFlow" name="pictureFlowWidgetExternal" native="true">
<property name="widgetResizable" stdset="0"> <property name="widgetResizable" stdset="0">
<bool>true</bool> <bool>true</bool>
</property> </property>
</widget> </widget>
</item> </item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="tabInternal">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<attribute name="title">
<string>Internal</string>
</attribute>
<layout class="QVBoxLayout">
<item>
<widget class="QSplitter" name="splitterInternal">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="QScrollArea" name="scrollAreaInternal">
<property name="minimumSize">
<size>
<width>0</width>
<height>250</height>
</size>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<widget class="FlowLayoutWidget" name="idInternal">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>685</width>
<height>248</height>
</rect>
</property>
<layout class="QVBoxLayout"/>
</widget>
</widget>
<widget class="QWidget" name="widgetInternal">
<layout class="QGridLayout" name="layoutInternal">
<item row="0" column="0">
<widget class="QLabel" name="label_Internal">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Drag your circles or people to each other.</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="PictureFlow" name="pictureFlowWidgetInternal" native="true">
<property name="widgetResizable" stdset="0">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</widget> </widget>

View File

@ -97,7 +97,7 @@ PhotoShare::PhotoShare(QWidget *parent)
requestAlbumData(); requestAlbumData();
} }
void PhotoShare::~PhotoShare() PhotoShare::~PhotoShare()
{ {
delete(mPhotoQueue); delete(mPhotoQueue);
} }

View File

@ -122,6 +122,10 @@ signals:
///Signales when the widget is dropped. ///Signales when the widget is dropped.
void flowLayoutItemDropped(QList <FlowLayoutItem*> listItem, bool &bAccept); void flowLayoutItemDropped(QList <FlowLayoutItem*> listItem, bool &bAccept);
/// \brief updated
///Signales when the image (getImage) is updated.
void imageUpdated();
protected: protected:
void keyPressEvent(QKeyEvent *event){event->ignore();} void keyPressEvent(QKeyEvent *event){event->ignore();}
void keyReleaseEvent(QKeyEvent *event){event->ignore();} void keyReleaseEvent(QKeyEvent *event){event->ignore();}