mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-12-15 16:49:20 -05:00
Added cleanup code for GXS services in rsinit (services now based in GXS_phase1 folder in .retroshare/ folder
disabled msg synchronisation by default through compilation #define (use GXS_ENABLE_MSG_SYNC to enable message sync) Finally removed v2 suffix from all photo components and filenames (please edit your libretroshare.pro file accordingly) git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.5-gxs-b1@5883 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
da39d1de77
commit
744a78b140
20 changed files with 2202 additions and 2179 deletions
|
|
@ -1,190 +1,190 @@
|
|||
#include <QBuffer>
|
||||
|
||||
#include "AlbumCreateDialog.h"
|
||||
#include "ui_AlbumCreateDialog.h"
|
||||
|
||||
#include "util/misc.h"
|
||||
#include "gxs/rsgxsflags.h"
|
||||
|
||||
AlbumCreateDialog::AlbumCreateDialog(TokenQueue *photoQueue, RsPhotoV2 *rs_photo, QWidget *parent):
|
||||
QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint),
|
||||
ui(new Ui::AlbumCreateDialog), mPhotoQueue(photoQueue), mRsPhoto(rs_photo), mPhotoSelected(NULL)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->headerFrame->setHeaderImage(QPixmap(":/images/album_create_64.png"));
|
||||
ui->headerFrame->setHeaderText(tr("Create Album"));
|
||||
|
||||
|
||||
#if QT_VERSION >= 0x040700
|
||||
ui->lineEdit_Title_2->setPlaceholderText(tr("Untitle Album"));
|
||||
ui->lineEdit_Caption_2->setPlaceholderText(tr("Say something about this album..."));
|
||||
//ui->textEdit_Description->setPlaceholderText(tr("Say something about this album...")) ;
|
||||
ui->lineEdit_Where->setPlaceholderText(tr("Where were this taken?"));
|
||||
#endif
|
||||
|
||||
ui->backButton->hide();
|
||||
|
||||
connect(ui->publishButton, SIGNAL(clicked()), this, SLOT(publishAlbum()));
|
||||
connect(ui->AlbumThumbNail, SIGNAL(clicked()), this, SLOT(addAlbumThumbnail()));
|
||||
|
||||
connect(ui->addphotosButton, SIGNAL(clicked()),this, SLOT(changePage()));
|
||||
connect(ui->backButton, SIGNAL(clicked()),this, SLOT(backPage()));
|
||||
|
||||
|
||||
mPhotoDrop = ui->scrollAreaWidgetContents;
|
||||
mPhotoDrop->setPhotoItemHolder(this);
|
||||
|
||||
|
||||
}
|
||||
|
||||
AlbumCreateDialog::~AlbumCreateDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
#define PUBLIC_INDEX 0
|
||||
#define RESTRICTED_INDEX 1
|
||||
#define PRIVATE_INDEX 2
|
||||
|
||||
void AlbumCreateDialog::publishAlbum()
|
||||
{
|
||||
// get fields for album to publish, publish and then exit dialog
|
||||
RsPhotoAlbum album;
|
||||
|
||||
album.mCaption = ui->lineEdit_Caption_2->text().toStdString();
|
||||
album.mPhotographer = ui->lineEdit_Photographer->text().toStdString();
|
||||
album.mMeta.mGroupName = ui->lineEdit_Title_2->text().toStdString();
|
||||
album.mDescription = ui->textEdit_Description->toPlainText().toStdString();
|
||||
album.mWhere = ui->lineEdit_Where->text().toStdString();
|
||||
album.mPhotographer = ui->lineEdit_Photographer->text().toStdString();
|
||||
getAlbumThumbnail(album.mThumbnail);
|
||||
|
||||
|
||||
int currIndex = ui->privacyComboBox->currentIndex();
|
||||
|
||||
switch(currIndex)
|
||||
{
|
||||
case PUBLIC_INDEX:
|
||||
album.mMeta.mGroupFlags |= GXS_SERV::FLAG_PRIVACY_PUBLIC;
|
||||
break;
|
||||
case RESTRICTED_INDEX:
|
||||
album.mMeta.mGroupFlags |= GXS_SERV::FLAG_PRIVACY_RESTRICTED;
|
||||
break;
|
||||
case PRIVATE_INDEX:
|
||||
album.mMeta.mGroupFlags |= GXS_SERV::FLAG_PRIVACY_PRIVATE;
|
||||
break;
|
||||
}
|
||||
|
||||
uint32_t token;
|
||||
mRsPhoto->submitAlbumDetails(token, album);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_GROUPINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
|
||||
publishPhotos();
|
||||
|
||||
close();
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::publishPhotos()
|
||||
{
|
||||
// get fields for album to publish, publish and then exit dialog
|
||||
RsPhotoAlbum album;
|
||||
|
||||
QSet<PhotoItem*> photos;
|
||||
|
||||
mPhotoDrop->getPhotos(photos);
|
||||
|
||||
QSetIterator<PhotoItem*> sit(photos);
|
||||
|
||||
while(sit.hasNext())
|
||||
{
|
||||
PhotoItem* item = sit.next();
|
||||
uint32_t token;
|
||||
RsPhotoPhoto photo = item->getPhotoDetails();
|
||||
photo.mMeta.mGroupId = album.mMeta.mGroupId;
|
||||
mRsPhoto->submitPhoto(token, photo);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool AlbumCreateDialog::getAlbumThumbnail(RsPhotoThumbnail &nail)
|
||||
{
|
||||
const QPixmap *tmppix = &mThumbNail;
|
||||
|
||||
QByteArray ba;
|
||||
QBuffer buffer(&ba);
|
||||
|
||||
if(!tmppix->isNull())
|
||||
{
|
||||
// send chan image
|
||||
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
tmppix->save(&buffer, "PNG"); // writes image into ba in PNG format
|
||||
|
||||
RsPhotoThumbnail tmpnail;
|
||||
tmpnail.data = (uint8_t *) ba.data();
|
||||
tmpnail.size = ba.size();
|
||||
|
||||
nail.copyFrom(tmpnail);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
nail.data = NULL;
|
||||
nail.size = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::addAlbumThumbnail()
|
||||
{
|
||||
QPixmap img = misc::getOpenThumbnailedPicture(this, tr("Load Album Thumbnail"), 128, 128);
|
||||
|
||||
if (img.isNull())
|
||||
return;
|
||||
|
||||
mThumbNail = img;
|
||||
|
||||
// to show the selected
|
||||
ui->AlbumThumbNail->setIcon(mThumbNail);
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::changePage()
|
||||
{
|
||||
int nextPage = ui->stackedWidget->currentIndex() + 1;
|
||||
if (nextPage >= ui->stackedWidget->count())
|
||||
nextPage = 0;
|
||||
ui->stackedWidget->setCurrentIndex(nextPage);
|
||||
|
||||
ui->backButton->show();
|
||||
ui->addphotosButton->hide();
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::backPage()
|
||||
{
|
||||
int nextPage = ui->stackedWidget->currentIndex() - 1;
|
||||
if (nextPage >= ui->stackedWidget->count())
|
||||
nextPage = 0;
|
||||
ui->stackedWidget->setCurrentIndex(nextPage);
|
||||
|
||||
ui->backButton->hide();
|
||||
ui->addphotosButton->show();
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::notifySelection(PhotoShareItem *selection)
|
||||
{
|
||||
|
||||
PhotoItem* pItem = dynamic_cast<PhotoItem*>(selection);
|
||||
|
||||
if(mPhotoSelected == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
mPhotoSelected->setSelected(false);
|
||||
mPhotoSelected = pItem;
|
||||
}
|
||||
|
||||
mPhotoSelected->setSelected(true);
|
||||
}
|
||||
#include <QBuffer>
|
||||
|
||||
#include "AlbumCreateDialog.h"
|
||||
#include "ui_AlbumCreateDialog.h"
|
||||
|
||||
#include "util/misc.h"
|
||||
#include "gxs/rsgxsflags.h"
|
||||
|
||||
AlbumCreateDialog::AlbumCreateDialog(TokenQueue *photoQueue, RsPhoto *rs_photo, QWidget *parent):
|
||||
QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint),
|
||||
ui(new Ui::AlbumCreateDialog), mPhotoQueue(photoQueue), mRsPhoto(rs_photo), mPhotoSelected(NULL)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->headerFrame->setHeaderImage(QPixmap(":/images/album_create_64.png"));
|
||||
ui->headerFrame->setHeaderText(tr("Create Album"));
|
||||
|
||||
|
||||
#if QT_VERSION >= 0x040700
|
||||
ui->lineEdit_Title_2->setPlaceholderText(tr("Untitle Album"));
|
||||
ui->lineEdit_Caption_2->setPlaceholderText(tr("Say something about this album..."));
|
||||
//ui->textEdit_Description->setPlaceholderText(tr("Say something about this album...")) ;
|
||||
ui->lineEdit_Where->setPlaceholderText(tr("Where were this taken?"));
|
||||
#endif
|
||||
|
||||
ui->backButton->hide();
|
||||
|
||||
connect(ui->publishButton, SIGNAL(clicked()), this, SLOT(publishAlbum()));
|
||||
connect(ui->AlbumThumbNail, SIGNAL(clicked()), this, SLOT(addAlbumThumbnail()));
|
||||
|
||||
connect(ui->addphotosButton, SIGNAL(clicked()),this, SLOT(changePage()));
|
||||
connect(ui->backButton, SIGNAL(clicked()),this, SLOT(backPage()));
|
||||
|
||||
|
||||
mPhotoDrop = ui->scrollAreaWidgetContents;
|
||||
mPhotoDrop->setPhotoItemHolder(this);
|
||||
|
||||
|
||||
}
|
||||
|
||||
AlbumCreateDialog::~AlbumCreateDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
#define PUBLIC_INDEX 0
|
||||
#define RESTRICTED_INDEX 1
|
||||
#define PRIVATE_INDEX 2
|
||||
|
||||
void AlbumCreateDialog::publishAlbum()
|
||||
{
|
||||
// get fields for album to publish, publish and then exit dialog
|
||||
RsPhotoAlbum album;
|
||||
|
||||
album.mCaption = ui->lineEdit_Caption_2->text().toStdString();
|
||||
album.mPhotographer = ui->lineEdit_Photographer->text().toStdString();
|
||||
album.mMeta.mGroupName = ui->lineEdit_Title_2->text().toStdString();
|
||||
album.mDescription = ui->textEdit_Description->toPlainText().toStdString();
|
||||
album.mWhere = ui->lineEdit_Where->text().toStdString();
|
||||
album.mPhotographer = ui->lineEdit_Photographer->text().toStdString();
|
||||
getAlbumThumbnail(album.mThumbnail);
|
||||
|
||||
|
||||
int currIndex = ui->privacyComboBox->currentIndex();
|
||||
|
||||
switch(currIndex)
|
||||
{
|
||||
case PUBLIC_INDEX:
|
||||
album.mMeta.mGroupFlags |= GXS_SERV::FLAG_PRIVACY_PUBLIC;
|
||||
break;
|
||||
case RESTRICTED_INDEX:
|
||||
album.mMeta.mGroupFlags |= GXS_SERV::FLAG_PRIVACY_RESTRICTED;
|
||||
break;
|
||||
case PRIVATE_INDEX:
|
||||
album.mMeta.mGroupFlags |= GXS_SERV::FLAG_PRIVACY_PRIVATE;
|
||||
break;
|
||||
}
|
||||
|
||||
uint32_t token;
|
||||
mRsPhoto->submitAlbumDetails(token, album);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_GROUPINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
|
||||
publishPhotos();
|
||||
|
||||
close();
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::publishPhotos()
|
||||
{
|
||||
// get fields for album to publish, publish and then exit dialog
|
||||
RsPhotoAlbum album;
|
||||
|
||||
QSet<PhotoItem*> photos;
|
||||
|
||||
mPhotoDrop->getPhotos(photos);
|
||||
|
||||
QSetIterator<PhotoItem*> sit(photos);
|
||||
|
||||
while(sit.hasNext())
|
||||
{
|
||||
PhotoItem* item = sit.next();
|
||||
uint32_t token;
|
||||
RsPhotoPhoto photo = item->getPhotoDetails();
|
||||
photo.mMeta.mGroupId = album.mMeta.mGroupId;
|
||||
mRsPhoto->submitPhoto(token, photo);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool AlbumCreateDialog::getAlbumThumbnail(RsPhotoThumbnail &nail)
|
||||
{
|
||||
const QPixmap *tmppix = &mThumbNail;
|
||||
|
||||
QByteArray ba;
|
||||
QBuffer buffer(&ba);
|
||||
|
||||
if(!tmppix->isNull())
|
||||
{
|
||||
// send chan image
|
||||
|
||||
buffer.open(QIODevice::WriteOnly);
|
||||
tmppix->save(&buffer, "PNG"); // writes image into ba in PNG format
|
||||
|
||||
RsPhotoThumbnail tmpnail;
|
||||
tmpnail.data = (uint8_t *) ba.data();
|
||||
tmpnail.size = ba.size();
|
||||
|
||||
nail.copyFrom(tmpnail);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
nail.data = NULL;
|
||||
nail.size = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::addAlbumThumbnail()
|
||||
{
|
||||
QPixmap img = misc::getOpenThumbnailedPicture(this, tr("Load Album Thumbnail"), 128, 128);
|
||||
|
||||
if (img.isNull())
|
||||
return;
|
||||
|
||||
mThumbNail = img;
|
||||
|
||||
// to show the selected
|
||||
ui->AlbumThumbNail->setIcon(mThumbNail);
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::changePage()
|
||||
{
|
||||
int nextPage = ui->stackedWidget->currentIndex() + 1;
|
||||
if (nextPage >= ui->stackedWidget->count())
|
||||
nextPage = 0;
|
||||
ui->stackedWidget->setCurrentIndex(nextPage);
|
||||
|
||||
ui->backButton->show();
|
||||
ui->addphotosButton->hide();
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::backPage()
|
||||
{
|
||||
int nextPage = ui->stackedWidget->currentIndex() - 1;
|
||||
if (nextPage >= ui->stackedWidget->count())
|
||||
nextPage = 0;
|
||||
ui->stackedWidget->setCurrentIndex(nextPage);
|
||||
|
||||
ui->backButton->hide();
|
||||
ui->addphotosButton->show();
|
||||
}
|
||||
|
||||
void AlbumCreateDialog::notifySelection(PhotoShareItem *selection)
|
||||
{
|
||||
|
||||
PhotoItem* pItem = dynamic_cast<PhotoItem*>(selection);
|
||||
|
||||
if(mPhotoSelected == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
mPhotoSelected->setSelected(false);
|
||||
mPhotoSelected = pItem;
|
||||
}
|
||||
|
||||
mPhotoSelected->setSelected(true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,50 +1,51 @@
|
|||
#ifndef ALBUMCREATEDIALOG_H
|
||||
#define ALBUMCREATEDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "util/TokenQueue.h"
|
||||
#include "retroshare/rsphotoV2.h"
|
||||
#include "PhotoShareItemHolder.h"
|
||||
#include "PhotoItem.h"
|
||||
#include "PhotoDrop.h"
|
||||
|
||||
namespace Ui {
|
||||
class AlbumCreateDialog;
|
||||
}
|
||||
|
||||
|
||||
class AlbumCreateDialog : public QDialog, public PhotoShareItemHolder
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AlbumCreateDialog(TokenQueue* photoQueue, RsPhotoV2* rs_photo, QWidget *parent = 0);
|
||||
~AlbumCreateDialog();
|
||||
|
||||
void notifySelection(PhotoShareItem* selection);
|
||||
|
||||
|
||||
private slots:
|
||||
void publishAlbum();
|
||||
void publishPhotos();
|
||||
void addAlbumThumbnail();
|
||||
void changePage();
|
||||
void backPage();
|
||||
|
||||
|
||||
private:
|
||||
|
||||
bool getAlbumThumbnail(RsPhotoThumbnail &nail);
|
||||
private:
|
||||
Ui::AlbumCreateDialog *ui;
|
||||
|
||||
TokenQueue* mPhotoQueue;
|
||||
RsPhotoV2* mRsPhoto;
|
||||
QPixmap mThumbNail;
|
||||
PhotoDrop* mPhotoDrop;
|
||||
PhotoItem* mPhotoSelected;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // ALBUMCREATEDIALOG_H
|
||||
#ifndef ALBUMCREATEDIALOG_H
|
||||
#define ALBUMCREATEDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "util/TokenQueue.h"
|
||||
#include "retroshare/rsphoto.h"
|
||||
#include "retroshare/rsphoto.h"
|
||||
#include "PhotoShareItemHolder.h"
|
||||
#include "PhotoItem.h"
|
||||
#include "PhotoDrop.h"
|
||||
|
||||
namespace Ui {
|
||||
class AlbumCreateDialog;
|
||||
}
|
||||
|
||||
|
||||
class AlbumCreateDialog : public QDialog, public PhotoShareItemHolder
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AlbumCreateDialog(TokenQueue* photoQueue, RsPhoto* rs_photo, QWidget *parent = 0);
|
||||
~AlbumCreateDialog();
|
||||
|
||||
void notifySelection(PhotoShareItem* selection);
|
||||
|
||||
|
||||
private slots:
|
||||
void publishAlbum();
|
||||
void publishPhotos();
|
||||
void addAlbumThumbnail();
|
||||
void changePage();
|
||||
void backPage();
|
||||
|
||||
|
||||
private:
|
||||
|
||||
bool getAlbumThumbnail(RsPhotoThumbnail &nail);
|
||||
private:
|
||||
Ui::AlbumCreateDialog *ui;
|
||||
|
||||
TokenQueue* mPhotoQueue;
|
||||
RsPhoto* mRsPhoto;
|
||||
QPixmap mThumbNail;
|
||||
PhotoDrop* mPhotoDrop;
|
||||
PhotoItem* mPhotoSelected;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // ALBUMCREATEDIALOG_H
|
||||
|
|
|
|||
|
|
@ -1,112 +1,112 @@
|
|||
#include <QPixmap>
|
||||
|
||||
#include "AlbumDialog.h"
|
||||
#include "ui_AlbumDialog.h"
|
||||
#include "gxs/rsgxsflags.h"
|
||||
|
||||
AlbumDialog::AlbumDialog(const RsPhotoAlbum& album, TokenQueue* photoQueue, RsPhotoV2* rs_Photo, QWidget *parent) :
|
||||
QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint),
|
||||
ui(new Ui::AlbumDialog), mRsPhoto(rs_Photo), mPhotoQueue(photoQueue), mAlbum(album), mPhotoSelected(NULL)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->headerFrame->setHeaderImage(QPixmap(":/images/kview_64.png"));
|
||||
ui->headerFrame->setHeaderText(tr("Album"));
|
||||
|
||||
connect(ui->pushButton_PublishPhotos, SIGNAL(clicked()), this, SLOT(updateAlbumPhotos()));
|
||||
connect(ui->pushButton_DeletePhoto, SIGNAL(clicked()), this, SLOT(deletePhoto()));
|
||||
|
||||
mPhotoDrop = ui->scrollAreaWidgetContents;
|
||||
|
||||
if(!(mAlbum.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN))
|
||||
{
|
||||
ui->scrollAreaPhotos->setEnabled(false);
|
||||
ui->pushButton_DeletePhoto->setEnabled(false);
|
||||
}
|
||||
mPhotoDrop->setPhotoItemHolder(this);
|
||||
|
||||
setUp();
|
||||
}
|
||||
|
||||
|
||||
void AlbumDialog::setUp()
|
||||
{
|
||||
ui->lineEdit_Title->setText(QString::fromStdString(mAlbum.mMeta.mGroupName));
|
||||
ui->lineEdit_Caption->setText(QString::fromStdString(mAlbum.mCaption));
|
||||
ui->lineEdit_Category->setText(QString::fromStdString(mAlbum.mCategory));
|
||||
ui->lineEdit_Identity->setText(QString::fromStdString(mAlbum.mMeta.mAuthorId));
|
||||
ui->lineEdit_Where->setText(QString::fromStdString(mAlbum.mWhere));
|
||||
ui->textEdit_description->setText(QString::fromStdString(mAlbum.mDescription));
|
||||
|
||||
|
||||
QPixmap qtn;
|
||||
qtn.loadFromData(mAlbum.mThumbnail.data, mAlbum.mThumbnail.size, mAlbum.mThumbnail.type.c_str());
|
||||
|
||||
if(mAlbum.mThumbnail.size != 0)
|
||||
{
|
||||
ui->label_thumbNail->setPixmap(qtn);
|
||||
}
|
||||
else
|
||||
{
|
||||
// display a default Album icon when album has no Thumbnail
|
||||
ui->label_thumbNail->setPixmap(QPixmap(":/images/album_default_128.png"));
|
||||
}
|
||||
}
|
||||
|
||||
void AlbumDialog::updateAlbumPhotos(){
|
||||
|
||||
QSet<PhotoItem*> photos;
|
||||
|
||||
mPhotoDrop->getPhotos(photos);
|
||||
|
||||
QSetIterator<PhotoItem*> sit(photos);
|
||||
|
||||
while(sit.hasNext())
|
||||
{
|
||||
PhotoItem* item = sit.next();
|
||||
uint32_t token;
|
||||
RsPhotoPhoto photo = item->getPhotoDetails();
|
||||
photo.mMeta.mGroupId = mAlbum.mMeta.mGroupId;
|
||||
mRsPhoto->submitPhoto(token, photo);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
}
|
||||
close();
|
||||
}
|
||||
|
||||
void AlbumDialog::deletePhoto(){
|
||||
|
||||
if(mPhotoSelected)
|
||||
{
|
||||
mPhotoSelected->setSelected(false);
|
||||
mPhotoDrop->deletePhoto(mPhotoSelected);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void AlbumDialog::editPhoto()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
AlbumDialog::~AlbumDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void AlbumDialog::notifySelection(PhotoShareItem *selection)
|
||||
{
|
||||
|
||||
PhotoItem* pItem = dynamic_cast<PhotoItem*>(selection);
|
||||
|
||||
if(mPhotoSelected == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
mPhotoSelected->setSelected(false);
|
||||
mPhotoSelected = pItem;
|
||||
}
|
||||
|
||||
mPhotoSelected->setSelected(true);
|
||||
}
|
||||
#include <QPixmap>
|
||||
|
||||
#include "AlbumDialog.h"
|
||||
#include "ui_AlbumDialog.h"
|
||||
#include "gxs/rsgxsflags.h"
|
||||
|
||||
AlbumDialog::AlbumDialog(const RsPhotoAlbum& album, TokenQueue* photoQueue, RsPhoto* rs_Photo, QWidget *parent) :
|
||||
QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint),
|
||||
ui(new Ui::AlbumDialog), mRsPhoto(rs_Photo), mPhotoQueue(photoQueue), mAlbum(album), mPhotoSelected(NULL)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->headerFrame->setHeaderImage(QPixmap(":/images/kview_64.png"));
|
||||
ui->headerFrame->setHeaderText(tr("Album"));
|
||||
|
||||
connect(ui->pushButton_PublishPhotos, SIGNAL(clicked()), this, SLOT(updateAlbumPhotos()));
|
||||
connect(ui->pushButton_DeletePhoto, SIGNAL(clicked()), this, SLOT(deletePhoto()));
|
||||
|
||||
mPhotoDrop = ui->scrollAreaWidgetContents;
|
||||
|
||||
if(!(mAlbum.mMeta.mSubscribeFlags & GXS_SERV::GROUP_SUBSCRIBE_ADMIN))
|
||||
{
|
||||
ui->scrollAreaPhotos->setEnabled(false);
|
||||
ui->pushButton_DeletePhoto->setEnabled(false);
|
||||
}
|
||||
mPhotoDrop->setPhotoItemHolder(this);
|
||||
|
||||
setUp();
|
||||
}
|
||||
|
||||
|
||||
void AlbumDialog::setUp()
|
||||
{
|
||||
ui->lineEdit_Title->setText(QString::fromStdString(mAlbum.mMeta.mGroupName));
|
||||
ui->lineEdit_Caption->setText(QString::fromStdString(mAlbum.mCaption));
|
||||
ui->lineEdit_Category->setText(QString::fromStdString(mAlbum.mCategory));
|
||||
ui->lineEdit_Identity->setText(QString::fromStdString(mAlbum.mMeta.mAuthorId));
|
||||
ui->lineEdit_Where->setText(QString::fromStdString(mAlbum.mWhere));
|
||||
ui->textEdit_description->setText(QString::fromStdString(mAlbum.mDescription));
|
||||
|
||||
|
||||
QPixmap qtn;
|
||||
qtn.loadFromData(mAlbum.mThumbnail.data, mAlbum.mThumbnail.size, mAlbum.mThumbnail.type.c_str());
|
||||
|
||||
if(mAlbum.mThumbnail.size != 0)
|
||||
{
|
||||
ui->label_thumbNail->setPixmap(qtn);
|
||||
}
|
||||
else
|
||||
{
|
||||
// display a default Album icon when album has no Thumbnail
|
||||
ui->label_thumbNail->setPixmap(QPixmap(":/images/album_default_128.png"));
|
||||
}
|
||||
}
|
||||
|
||||
void AlbumDialog::updateAlbumPhotos(){
|
||||
|
||||
QSet<PhotoItem*> photos;
|
||||
|
||||
mPhotoDrop->getPhotos(photos);
|
||||
|
||||
QSetIterator<PhotoItem*> sit(photos);
|
||||
|
||||
while(sit.hasNext())
|
||||
{
|
||||
PhotoItem* item = sit.next();
|
||||
uint32_t token;
|
||||
RsPhotoPhoto photo = item->getPhotoDetails();
|
||||
photo.mMeta.mGroupId = mAlbum.mMeta.mGroupId;
|
||||
mRsPhoto->submitPhoto(token, photo);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
}
|
||||
close();
|
||||
}
|
||||
|
||||
void AlbumDialog::deletePhoto(){
|
||||
|
||||
if(mPhotoSelected)
|
||||
{
|
||||
mPhotoSelected->setSelected(false);
|
||||
mPhotoDrop->deletePhoto(mPhotoSelected);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void AlbumDialog::editPhoto()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
AlbumDialog::~AlbumDialog()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void AlbumDialog::notifySelection(PhotoShareItem *selection)
|
||||
{
|
||||
|
||||
PhotoItem* pItem = dynamic_cast<PhotoItem*>(selection);
|
||||
|
||||
if(mPhotoSelected == NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
mPhotoSelected->setSelected(false);
|
||||
mPhotoSelected = pItem;
|
||||
}
|
||||
|
||||
mPhotoSelected->setSelected(true);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,43 +1,43 @@
|
|||
#ifndef ALBUMDIALOG_H
|
||||
#define ALBUMDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "retroshare/rsphotoV2.h"
|
||||
#include "util/TokenQueue.h"
|
||||
#include "PhotoShareItemHolder.h"
|
||||
#include "PhotoItem.h"
|
||||
#include "PhotoDrop.h"
|
||||
|
||||
namespace Ui {
|
||||
class AlbumDialog;
|
||||
}
|
||||
|
||||
class AlbumDialog : public QDialog, public PhotoShareItemHolder
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AlbumDialog(const RsPhotoAlbum& album, TokenQueue* photoQueue, RsPhotoV2* rs_Photo, QWidget *parent = 0);
|
||||
~AlbumDialog();
|
||||
|
||||
void notifySelection(PhotoShareItem* selection);
|
||||
|
||||
private:
|
||||
|
||||
void setUp();
|
||||
|
||||
private slots:
|
||||
|
||||
void updateAlbumPhotos();
|
||||
void deletePhoto();
|
||||
void editPhoto();
|
||||
private:
|
||||
Ui::AlbumDialog *ui;
|
||||
RsPhotoV2* mRsPhoto;
|
||||
TokenQueue* mPhotoQueue;
|
||||
RsPhotoAlbum mAlbum;
|
||||
PhotoDrop* mPhotoDrop;
|
||||
PhotoItem* mPhotoSelected;
|
||||
};
|
||||
|
||||
#endif // ALBUMDIALOG_H
|
||||
#ifndef ALBUMDIALOG_H
|
||||
#define ALBUMDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "retroshare/rsphoto.h"
|
||||
#include "util/TokenQueue.h"
|
||||
#include "PhotoShareItemHolder.h"
|
||||
#include "PhotoItem.h"
|
||||
#include "PhotoDrop.h"
|
||||
|
||||
namespace Ui {
|
||||
class AlbumDialog;
|
||||
}
|
||||
|
||||
class AlbumDialog : public QDialog, public PhotoShareItemHolder
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AlbumDialog(const RsPhotoAlbum& album, TokenQueue* photoQueue, RsPhoto* rs_Photo, QWidget *parent = 0);
|
||||
~AlbumDialog();
|
||||
|
||||
void notifySelection(PhotoShareItem* selection);
|
||||
|
||||
private:
|
||||
|
||||
void setUp();
|
||||
|
||||
private slots:
|
||||
|
||||
void updateAlbumPhotos();
|
||||
void deletePhoto();
|
||||
void editPhoto();
|
||||
private:
|
||||
Ui::AlbumDialog *ui;
|
||||
RsPhoto* mRsPhoto;
|
||||
TokenQueue* mPhotoQueue;
|
||||
RsPhotoAlbum mAlbum;
|
||||
PhotoDrop* mPhotoDrop;
|
||||
PhotoItem* mPhotoSelected;
|
||||
};
|
||||
|
||||
#endif // ALBUMDIALOG_H
|
||||
|
|
|
|||
|
|
@ -1,38 +1,38 @@
|
|||
#ifndef ALBUMITEM_H
|
||||
#define ALBUMITEM_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "string.h"
|
||||
#include "retroshare/rsphotoV2.h"
|
||||
#include "PhotoShareItemHolder.h"
|
||||
|
||||
namespace Ui {
|
||||
class AlbumItem;
|
||||
}
|
||||
|
||||
class AlbumItem : public QWidget, public PhotoShareItem
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AlbumItem(const RsPhotoAlbum& album, PhotoShareItemHolder* albumHolder, QWidget *parent = 0);
|
||||
virtual ~AlbumItem();
|
||||
|
||||
const RsPhotoAlbum& getAlbum();
|
||||
|
||||
bool isSelected() { return mSelected ;}
|
||||
void setSelected(bool selected);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
|
||||
private:
|
||||
void setUp();
|
||||
private:
|
||||
Ui::AlbumItem *ui;
|
||||
RsPhotoAlbum mAlbum;
|
||||
PhotoShareItemHolder* mAlbumHolder;
|
||||
bool mSelected;
|
||||
};
|
||||
|
||||
#endif // ALBUMITEM_H
|
||||
#ifndef ALBUMITEM_H
|
||||
#define ALBUMITEM_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "string.h"
|
||||
#include "retroshare/rsphoto.h"
|
||||
#include "PhotoShareItemHolder.h"
|
||||
|
||||
namespace Ui {
|
||||
class AlbumItem;
|
||||
}
|
||||
|
||||
class AlbumItem : public QWidget, public PhotoShareItem
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AlbumItem(const RsPhotoAlbum& album, PhotoShareItemHolder* albumHolder, QWidget *parent = 0);
|
||||
virtual ~AlbumItem();
|
||||
|
||||
const RsPhotoAlbum& getAlbum();
|
||||
|
||||
bool isSelected() { return mSelected ;}
|
||||
void setSelected(bool selected);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
|
||||
private:
|
||||
void setUp();
|
||||
private:
|
||||
Ui::AlbumItem *ui;
|
||||
RsPhotoAlbum mAlbum;
|
||||
PhotoShareItemHolder* mAlbumHolder;
|
||||
bool mSelected;
|
||||
};
|
||||
|
||||
#endif // ALBUMITEM_H
|
||||
|
|
|
|||
|
|
@ -1,29 +1,29 @@
|
|||
#ifndef PHOTOCOMMENTITEM_H
|
||||
#define PHOTOCOMMENTITEM_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "retroshare/rsphotoV2.h"
|
||||
|
||||
namespace Ui {
|
||||
class PhotoCommentItem;
|
||||
}
|
||||
|
||||
class PhotoCommentItem : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PhotoCommentItem(const RsPhotoComment& comment, QWidget *parent = 0);
|
||||
~PhotoCommentItem();
|
||||
|
||||
const RsPhotoComment& getComment();
|
||||
|
||||
private:
|
||||
|
||||
void setUp();
|
||||
private:
|
||||
Ui::PhotoCommentItem *ui;
|
||||
RsPhotoComment mComment;
|
||||
};
|
||||
|
||||
#endif // PHOTOCOMMENTITEM_H
|
||||
#ifndef PHOTOCOMMENTITEM_H
|
||||
#define PHOTOCOMMENTITEM_H
|
||||
|
||||
#include <QWidget>
|
||||
#include "retroshare/rsphoto.h"
|
||||
|
||||
namespace Ui {
|
||||
class PhotoCommentItem;
|
||||
}
|
||||
|
||||
class PhotoCommentItem : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PhotoCommentItem(const RsPhotoComment& comment, QWidget *parent = 0);
|
||||
~PhotoCommentItem();
|
||||
|
||||
const RsPhotoComment& getComment();
|
||||
|
||||
private:
|
||||
|
||||
void setUp();
|
||||
private:
|
||||
Ui::PhotoCommentItem *ui;
|
||||
RsPhotoComment mComment;
|
||||
};
|
||||
|
||||
#endif // PHOTOCOMMENTITEM_H
|
||||
|
|
|
|||
|
|
@ -1,237 +1,237 @@
|
|||
#include <iostream>
|
||||
#include <QVBoxLayout>
|
||||
#include "PhotoDialog.h"
|
||||
#include "ui_PhotoDialog.h"
|
||||
#include "retroshare/rsidentity.h"
|
||||
#include "AddCommentDialog.h"
|
||||
|
||||
PhotoDialog::PhotoDialog(RsPhotoV2 *rs_photo, const RsPhotoPhoto &photo, QWidget *parent) :
|
||||
QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint),
|
||||
ui(new Ui::PhotoDialog), mRsPhoto(rs_photo), mPhotoQueue(new TokenQueue(mRsPhoto->getTokenService(), this)),
|
||||
mPhotoDetails(photo)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setAttribute ( Qt::WA_DeleteOnClose, true );
|
||||
|
||||
connect(ui->pushButton_AddComment, SIGNAL(clicked()), this, SLOT(createComment()));
|
||||
connect(ui->pushButton_AddCommentDlg, SIGNAL(clicked()), this, SLOT(addComment()));
|
||||
connect(ui->fullscreenButton, SIGNAL(clicked()),this, SLOT(setFullScreen()));
|
||||
|
||||
#if QT_VERSION >= 0x040700
|
||||
ui->lineEdit->setPlaceholderText(tr("Write a comment...")) ;
|
||||
#endif
|
||||
|
||||
setUp();
|
||||
}
|
||||
|
||||
PhotoDialog::~PhotoDialog()
|
||||
{
|
||||
delete ui;
|
||||
delete mPhotoQueue;
|
||||
}
|
||||
|
||||
void PhotoDialog::setUp()
|
||||
{
|
||||
QPixmap qtn;
|
||||
qtn.loadFromData(mPhotoDetails.mThumbnail.data, mPhotoDetails.mThumbnail.size, mPhotoDetails.mThumbnail.type.c_str());
|
||||
ui->label_Photo->setPixmap(qtn);
|
||||
ui->lineEdit_Title->setText(QString::fromStdString(mPhotoDetails.mMeta.mMsgName));
|
||||
|
||||
requestComments();
|
||||
}
|
||||
|
||||
void PhotoDialog::addComment()
|
||||
{
|
||||
AddCommentDialog dlg(this);
|
||||
if (dlg.exec() == QDialog::Accepted) {
|
||||
RsPhotoComment comment;
|
||||
comment.mComment = dlg.getComment().toUtf8().constData();
|
||||
|
||||
uint32_t token;
|
||||
comment.mMeta.mGroupId = mPhotoDetails.mMeta.mGroupId;
|
||||
comment.mMeta.mParentId = mPhotoDetails.mMeta.mOrigMsgId;
|
||||
mRsPhoto->submitComment(token, comment);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void PhotoDialog::clearComments()
|
||||
{
|
||||
//QLayout* l = ui->scrollAreaWidgetContents->layout();
|
||||
QSetIterator<PhotoCommentItem*> sit(mComments);
|
||||
while(sit.hasNext())
|
||||
{
|
||||
PhotoCommentItem* item = sit.next();
|
||||
ui->verticalLayout->removeWidget(item);
|
||||
item->setParent(NULL);
|
||||
delete item;
|
||||
}
|
||||
|
||||
mComments.clear();
|
||||
}
|
||||
|
||||
void PhotoDialog::resetComments()
|
||||
{
|
||||
QSetIterator<PhotoCommentItem*> sit(mComments);
|
||||
//QLayout* l = ui->scrollAreaWidgetContents->layout();
|
||||
while(sit.hasNext())
|
||||
{
|
||||
PhotoCommentItem* item = sit.next();
|
||||
ui->verticalLayout->insertWidget(0,item);
|
||||
}
|
||||
}
|
||||
|
||||
void PhotoDialog::requestComments()
|
||||
{
|
||||
RsTokReqOptions opts;
|
||||
opts.mMsgFlagMask = RsPhotoV2::FLAG_MSG_TYPE_MASK;
|
||||
opts.mMsgFlagFilter = RsPhotoV2::FLAG_MSG_TYPE_PHOTO_COMMENT;
|
||||
|
||||
opts.mReqType = GXS_REQUEST_TYPE_MSG_IDS;
|
||||
opts.mReqType = GXS_REQUEST_TYPE_MSG_RELATED_DATA;
|
||||
opts.mOptions = RS_TOKREQOPT_MSG_PARENT | RS_TOKREQOPT_MSG_LATEST;
|
||||
RsGxsGrpMsgIdPair msgId;
|
||||
uint32_t token;
|
||||
msgId.first = mPhotoDetails.mMeta.mGroupId;
|
||||
msgId.second = mPhotoDetails.mMeta.mMsgId;
|
||||
std::vector<RsGxsGrpMsgIdPair> msgIdV;
|
||||
msgIdV.push_back(msgId);
|
||||
mPhotoQueue->requestMsgRelatedInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, msgIdV, 0);
|
||||
}
|
||||
|
||||
void PhotoDialog::createComment()
|
||||
{
|
||||
RsPhotoComment comment;
|
||||
QString commentString = ui->lineEdit->text();
|
||||
|
||||
comment.mComment = commentString.toUtf8().constData();
|
||||
|
||||
uint32_t token;
|
||||
comment.mMeta.mGroupId = mPhotoDetails.mMeta.mGroupId;
|
||||
comment.mMeta.mParentId = mPhotoDetails.mMeta.mOrigMsgId;
|
||||
mRsPhoto->submitComment(token, comment);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
|
||||
ui->lineEdit->clear();
|
||||
}
|
||||
|
||||
|
||||
/*************** message loading **********************/
|
||||
|
||||
void PhotoDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
||||
{
|
||||
std::cerr << "PhotoShare::loadRequest()";
|
||||
std::cerr << std::endl;
|
||||
|
||||
if (queue == mPhotoQueue)
|
||||
{
|
||||
/* now switch on req */
|
||||
switch(req.mType)
|
||||
{
|
||||
case TOKENREQ_MSGINFO:
|
||||
{
|
||||
switch(req.mAnsType)
|
||||
{
|
||||
case RS_TOKREQ_ANSTYPE_DATA:
|
||||
loadComment(req.mToken);
|
||||
break;
|
||||
case RS_TOKREQ_ANSTYPE_LIST:
|
||||
loadList(req.mToken);
|
||||
break;
|
||||
case RS_TOKREQ_ANSTYPE_ACK:
|
||||
acknowledgeComment(req.mToken);
|
||||
break;
|
||||
default:
|
||||
std::cerr << "PhotoShare::loadRequest() ERROR: MSG INVALID TYPE";
|
||||
std::cerr << std::endl;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
std::cerr << "PhotoShare::loadRequest() ERROR: INVALID TYPE";
|
||||
std::cerr << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void PhotoDialog::loadComment(uint32_t token)
|
||||
{
|
||||
|
||||
clearComments();
|
||||
|
||||
PhotoRelatedCommentResult results;
|
||||
mRsPhoto->getPhotoRelatedComment(token, results);
|
||||
|
||||
PhotoRelatedCommentResult::iterator mit = results.begin();
|
||||
|
||||
for(; mit != results.end(); mit++)
|
||||
{
|
||||
const std::vector<RsPhotoComment>& commentV = mit->second;
|
||||
std::vector<RsPhotoComment>::const_iterator vit = commentV.begin();
|
||||
|
||||
for(; vit != commentV.end(); vit++)
|
||||
{
|
||||
addComment(*vit);
|
||||
}
|
||||
}
|
||||
|
||||
resetComments();
|
||||
}
|
||||
|
||||
void PhotoDialog::loadList(uint32_t token)
|
||||
{
|
||||
GxsMsgReq msgIds;
|
||||
mRsPhoto->getMsgList(token, msgIds);
|
||||
RsTokReqOptions opts;
|
||||
|
||||
// just use data as no need to worry about getting comments
|
||||
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
|
||||
uint32_t reqToken;
|
||||
mPhotoQueue->requestMsgInfo(reqToken, RS_TOKREQ_ANSTYPE_DATA, opts, msgIds, 0);
|
||||
}
|
||||
|
||||
void PhotoDialog::addComment(const RsPhotoComment &comment)
|
||||
{
|
||||
PhotoCommentItem* item = new PhotoCommentItem(comment);
|
||||
mComments.insert(item);
|
||||
}
|
||||
|
||||
void PhotoDialog::acknowledgeComment(uint32_t token)
|
||||
{
|
||||
RsGxsGrpMsgIdPair msgId;
|
||||
mRsPhoto->acknowledgeMsg(token, msgId);
|
||||
|
||||
if(msgId.first.empty() || msgId.second.empty()){
|
||||
|
||||
}else
|
||||
{
|
||||
requestComments();
|
||||
}
|
||||
}
|
||||
|
||||
void PhotoDialog::setFullScreen()
|
||||
{
|
||||
if (!isFullScreen()) {
|
||||
// hide menu & toolbars
|
||||
|
||||
#ifdef Q_WS_X11
|
||||
show();
|
||||
raise();
|
||||
setWindowState( windowState() | Qt::WindowFullScreen );
|
||||
#else
|
||||
setWindowState( windowState() | Qt::WindowFullScreen );
|
||||
show();
|
||||
raise();
|
||||
#endif
|
||||
} else {
|
||||
|
||||
setWindowState( windowState() ^ Qt::WindowFullScreen );
|
||||
show();
|
||||
}
|
||||
}
|
||||
#include <iostream>
|
||||
#include <QVBoxLayout>
|
||||
#include "PhotoDialog.h"
|
||||
#include "ui_PhotoDialog.h"
|
||||
#include "retroshare/rsidentity.h"
|
||||
#include "AddCommentDialog.h"
|
||||
|
||||
PhotoDialog::PhotoDialog(RsPhoto *rs_photo, const RsPhotoPhoto &photo, QWidget *parent) :
|
||||
QDialog(parent, Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint),
|
||||
ui(new Ui::PhotoDialog), mRsPhoto(rs_photo), mPhotoQueue(new TokenQueue(mRsPhoto->getTokenService(), this)),
|
||||
mPhotoDetails(photo)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setAttribute ( Qt::WA_DeleteOnClose, true );
|
||||
|
||||
connect(ui->pushButton_AddComment, SIGNAL(clicked()), this, SLOT(createComment()));
|
||||
connect(ui->pushButton_AddCommentDlg, SIGNAL(clicked()), this, SLOT(addComment()));
|
||||
connect(ui->fullscreenButton, SIGNAL(clicked()),this, SLOT(setFullScreen()));
|
||||
|
||||
#if QT_VERSION >= 0x040700
|
||||
ui->lineEdit->setPlaceholderText(tr("Write a comment...")) ;
|
||||
#endif
|
||||
|
||||
setUp();
|
||||
}
|
||||
|
||||
PhotoDialog::~PhotoDialog()
|
||||
{
|
||||
delete ui;
|
||||
delete mPhotoQueue;
|
||||
}
|
||||
|
||||
void PhotoDialog::setUp()
|
||||
{
|
||||
QPixmap qtn;
|
||||
qtn.loadFromData(mPhotoDetails.mThumbnail.data, mPhotoDetails.mThumbnail.size, mPhotoDetails.mThumbnail.type.c_str());
|
||||
ui->label_Photo->setPixmap(qtn);
|
||||
ui->lineEdit_Title->setText(QString::fromStdString(mPhotoDetails.mMeta.mMsgName));
|
||||
|
||||
requestComments();
|
||||
}
|
||||
|
||||
void PhotoDialog::addComment()
|
||||
{
|
||||
AddCommentDialog dlg(this);
|
||||
if (dlg.exec() == QDialog::Accepted) {
|
||||
RsPhotoComment comment;
|
||||
comment.mComment = dlg.getComment().toUtf8().constData();
|
||||
|
||||
uint32_t token;
|
||||
comment.mMeta.mGroupId = mPhotoDetails.mMeta.mGroupId;
|
||||
comment.mMeta.mParentId = mPhotoDetails.mMeta.mOrigMsgId;
|
||||
mRsPhoto->submitComment(token, comment);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
}
|
||||
}
|
||||
|
||||
void PhotoDialog::clearComments()
|
||||
{
|
||||
//QLayout* l = ui->scrollAreaWidgetContents->layout();
|
||||
QSetIterator<PhotoCommentItem*> sit(mComments);
|
||||
while(sit.hasNext())
|
||||
{
|
||||
PhotoCommentItem* item = sit.next();
|
||||
ui->verticalLayout->removeWidget(item);
|
||||
item->setParent(NULL);
|
||||
delete item;
|
||||
}
|
||||
|
||||
mComments.clear();
|
||||
}
|
||||
|
||||
void PhotoDialog::resetComments()
|
||||
{
|
||||
QSetIterator<PhotoCommentItem*> sit(mComments);
|
||||
//QLayout* l = ui->scrollAreaWidgetContents->layout();
|
||||
while(sit.hasNext())
|
||||
{
|
||||
PhotoCommentItem* item = sit.next();
|
||||
ui->verticalLayout->insertWidget(0,item);
|
||||
}
|
||||
}
|
||||
|
||||
void PhotoDialog::requestComments()
|
||||
{
|
||||
RsTokReqOptions opts;
|
||||
opts.mMsgFlagMask = RsPhoto::FLAG_MSG_TYPE_MASK;
|
||||
opts.mMsgFlagFilter = RsPhoto::FLAG_MSG_TYPE_PHOTO_COMMENT;
|
||||
|
||||
opts.mReqType = GXS_REQUEST_TYPE_MSG_IDS;
|
||||
opts.mReqType = GXS_REQUEST_TYPE_MSG_RELATED_DATA;
|
||||
opts.mOptions = RS_TOKREQOPT_MSG_PARENT | RS_TOKREQOPT_MSG_LATEST;
|
||||
RsGxsGrpMsgIdPair msgId;
|
||||
uint32_t token;
|
||||
msgId.first = mPhotoDetails.mMeta.mGroupId;
|
||||
msgId.second = mPhotoDetails.mMeta.mMsgId;
|
||||
std::vector<RsGxsGrpMsgIdPair> msgIdV;
|
||||
msgIdV.push_back(msgId);
|
||||
mPhotoQueue->requestMsgRelatedInfo(token, RS_TOKREQ_ANSTYPE_DATA, opts, msgIdV, 0);
|
||||
}
|
||||
|
||||
void PhotoDialog::createComment()
|
||||
{
|
||||
RsPhotoComment comment;
|
||||
QString commentString = ui->lineEdit->text();
|
||||
|
||||
comment.mComment = commentString.toUtf8().constData();
|
||||
|
||||
uint32_t token;
|
||||
comment.mMeta.mGroupId = mPhotoDetails.mMeta.mGroupId;
|
||||
comment.mMeta.mParentId = mPhotoDetails.mMeta.mOrigMsgId;
|
||||
mRsPhoto->submitComment(token, comment);
|
||||
mPhotoQueue->queueRequest(token, TOKENREQ_MSGINFO, RS_TOKREQ_ANSTYPE_ACK, 0);
|
||||
|
||||
ui->lineEdit->clear();
|
||||
}
|
||||
|
||||
|
||||
/*************** message loading **********************/
|
||||
|
||||
void PhotoDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
|
||||
{
|
||||
std::cerr << "PhotoShare::loadRequest()";
|
||||
std::cerr << std::endl;
|
||||
|
||||
if (queue == mPhotoQueue)
|
||||
{
|
||||
/* now switch on req */
|
||||
switch(req.mType)
|
||||
{
|
||||
case TOKENREQ_MSGINFO:
|
||||
{
|
||||
switch(req.mAnsType)
|
||||
{
|
||||
case RS_TOKREQ_ANSTYPE_DATA:
|
||||
loadComment(req.mToken);
|
||||
break;
|
||||
case RS_TOKREQ_ANSTYPE_LIST:
|
||||
loadList(req.mToken);
|
||||
break;
|
||||
case RS_TOKREQ_ANSTYPE_ACK:
|
||||
acknowledgeComment(req.mToken);
|
||||
break;
|
||||
default:
|
||||
std::cerr << "PhotoShare::loadRequest() ERROR: MSG INVALID TYPE";
|
||||
std::cerr << std::endl;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
{
|
||||
std::cerr << "PhotoShare::loadRequest() ERROR: INVALID TYPE";
|
||||
std::cerr << std::endl;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void PhotoDialog::loadComment(uint32_t token)
|
||||
{
|
||||
|
||||
clearComments();
|
||||
|
||||
PhotoRelatedCommentResult results;
|
||||
mRsPhoto->getPhotoRelatedComment(token, results);
|
||||
|
||||
PhotoRelatedCommentResult::iterator mit = results.begin();
|
||||
|
||||
for(; mit != results.end(); mit++)
|
||||
{
|
||||
const std::vector<RsPhotoComment>& commentV = mit->second;
|
||||
std::vector<RsPhotoComment>::const_iterator vit = commentV.begin();
|
||||
|
||||
for(; vit != commentV.end(); vit++)
|
||||
{
|
||||
addComment(*vit);
|
||||
}
|
||||
}
|
||||
|
||||
resetComments();
|
||||
}
|
||||
|
||||
void PhotoDialog::loadList(uint32_t token)
|
||||
{
|
||||
GxsMsgReq msgIds;
|
||||
mRsPhoto->getMsgList(token, msgIds);
|
||||
RsTokReqOptions opts;
|
||||
|
||||
// just use data as no need to worry about getting comments
|
||||
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
|
||||
uint32_t reqToken;
|
||||
mPhotoQueue->requestMsgInfo(reqToken, RS_TOKREQ_ANSTYPE_DATA, opts, msgIds, 0);
|
||||
}
|
||||
|
||||
void PhotoDialog::addComment(const RsPhotoComment &comment)
|
||||
{
|
||||
PhotoCommentItem* item = new PhotoCommentItem(comment);
|
||||
mComments.insert(item);
|
||||
}
|
||||
|
||||
void PhotoDialog::acknowledgeComment(uint32_t token)
|
||||
{
|
||||
RsGxsGrpMsgIdPair msgId;
|
||||
mRsPhoto->acknowledgeMsg(token, msgId);
|
||||
|
||||
if(msgId.first.empty() || msgId.second.empty()){
|
||||
|
||||
}else
|
||||
{
|
||||
requestComments();
|
||||
}
|
||||
}
|
||||
|
||||
void PhotoDialog::setFullScreen()
|
||||
{
|
||||
if (!isFullScreen()) {
|
||||
// hide menu & toolbars
|
||||
|
||||
#ifdef Q_WS_X11
|
||||
show();
|
||||
raise();
|
||||
setWindowState( windowState() | Qt::WindowFullScreen );
|
||||
#else
|
||||
setWindowState( windowState() | Qt::WindowFullScreen );
|
||||
show();
|
||||
raise();
|
||||
#endif
|
||||
} else {
|
||||
|
||||
setWindowState( windowState() ^ Qt::WindowFullScreen );
|
||||
show();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,62 +1,62 @@
|
|||
#ifndef PHOTODIALOG_H
|
||||
#define PHOTODIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QSet>
|
||||
#include "retroshare/rsphotoV2.h"
|
||||
#include "util/TokenQueue.h"
|
||||
#include "PhotoCommentItem.h"
|
||||
|
||||
namespace Ui {
|
||||
class PhotoDialog;
|
||||
}
|
||||
|
||||
class PhotoDialog : public QDialog, public TokenResponse
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PhotoDialog(RsPhotoV2* rs_photo, const RsPhotoPhoto& photo, QWidget *parent = 0);
|
||||
~PhotoDialog();
|
||||
|
||||
private slots:
|
||||
|
||||
void addComment();
|
||||
void createComment();
|
||||
void setFullScreen();
|
||||
|
||||
public:
|
||||
void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
||||
private:
|
||||
void setUp();
|
||||
|
||||
/*!
|
||||
* clears comments
|
||||
* and places them back in dialog
|
||||
*/
|
||||
void resetComments();
|
||||
|
||||
/*!
|
||||
* Request comments
|
||||
*/
|
||||
void requestComments();
|
||||
|
||||
/*!
|
||||
* Simply removes comments but doesn't place them back in dialog
|
||||
*/
|
||||
void clearComments();
|
||||
|
||||
void acknowledgeComment(uint32_t token);
|
||||
void loadComment(uint32_t token);
|
||||
void loadList(uint32_t token);
|
||||
void addComment(const RsPhotoComment& comment);
|
||||
private:
|
||||
Ui::PhotoDialog *ui;
|
||||
|
||||
RsPhotoV2* mRsPhoto;
|
||||
TokenQueue* mPhotoQueue;
|
||||
RsPhotoPhoto mPhotoDetails;
|
||||
QSet<PhotoCommentItem*> mComments;
|
||||
};
|
||||
|
||||
#endif // PHOTODIALOG_H
|
||||
#ifndef PHOTODIALOG_H
|
||||
#define PHOTODIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QSet>
|
||||
#include "retroshare/rsphoto.h"
|
||||
#include "util/TokenQueue.h"
|
||||
#include "PhotoCommentItem.h"
|
||||
|
||||
namespace Ui {
|
||||
class PhotoDialog;
|
||||
}
|
||||
|
||||
class PhotoDialog : public QDialog, public TokenResponse
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PhotoDialog(RsPhoto* rs_photo, const RsPhotoPhoto& photo, QWidget *parent = 0);
|
||||
~PhotoDialog();
|
||||
|
||||
private slots:
|
||||
|
||||
void addComment();
|
||||
void createComment();
|
||||
void setFullScreen();
|
||||
|
||||
public:
|
||||
void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
||||
private:
|
||||
void setUp();
|
||||
|
||||
/*!
|
||||
* clears comments
|
||||
* and places them back in dialog
|
||||
*/
|
||||
void resetComments();
|
||||
|
||||
/*!
|
||||
* Request comments
|
||||
*/
|
||||
void requestComments();
|
||||
|
||||
/*!
|
||||
* Simply removes comments but doesn't place them back in dialog
|
||||
*/
|
||||
void clearComments();
|
||||
|
||||
void acknowledgeComment(uint32_t token);
|
||||
void loadComment(uint32_t token);
|
||||
void loadList(uint32_t token);
|
||||
void addComment(const RsPhotoComment& comment);
|
||||
private:
|
||||
Ui::PhotoDialog *ui;
|
||||
|
||||
RsPhoto* mRsPhoto;
|
||||
TokenQueue* mPhotoQueue;
|
||||
RsPhotoPhoto mPhotoDetails;
|
||||
QSet<PhotoCommentItem*> mComments;
|
||||
};
|
||||
|
||||
#endif // PHOTODIALOG_H
|
||||
|
|
|
|||
|
|
@ -1,52 +1,52 @@
|
|||
#ifndef PHOTOITEM_H
|
||||
#define PHOTOITEM_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QLabel>
|
||||
#include "PhotoShareItemHolder.h"
|
||||
#include "retroshare/rsphotoV2.h"
|
||||
|
||||
namespace Ui {
|
||||
class PhotoItem;
|
||||
}
|
||||
|
||||
class PhotoItem : public QWidget, public PhotoShareItem
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
PhotoItem(PhotoShareItemHolder *holder, const RsPhotoPhoto& photo, QWidget* parent = 0);
|
||||
PhotoItem(PhotoShareItemHolder *holder, const QString& path, QWidget* parent = 0); // for new photos.
|
||||
~PhotoItem();
|
||||
void setSelected(bool selected);
|
||||
bool isSelected(){ return mSelected; }
|
||||
const RsPhotoPhoto& getPhotoDetails();
|
||||
bool getPhotoThumbnail(RsPhotoThumbnail &nail);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
|
||||
private:
|
||||
void updateImage(const RsPhotoThumbnail &thumbnail);
|
||||
void setUp();
|
||||
|
||||
private slots:
|
||||
void setTitle();
|
||||
void setPhotoGrapher();
|
||||
|
||||
private:
|
||||
Ui::PhotoItem *ui;
|
||||
|
||||
QPixmap mThumbNail;
|
||||
|
||||
QPixmap getPixmap() { return mThumbNail; }
|
||||
|
||||
bool mSelected;
|
||||
RsPhotoPhoto mPhotoDetails;
|
||||
PhotoShareItemHolder* mHolder;
|
||||
|
||||
QLabel *mTitleLabel, *mPhotoGrapherLabel;
|
||||
};
|
||||
|
||||
#endif // PHOTOITEM_H
|
||||
#ifndef PHOTOITEM_H
|
||||
#define PHOTOITEM_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QLabel>
|
||||
#include "PhotoShareItemHolder.h"
|
||||
#include "retroshare/rsphoto.h"
|
||||
|
||||
namespace Ui {
|
||||
class PhotoItem;
|
||||
}
|
||||
|
||||
class PhotoItem : public QWidget, public PhotoShareItem
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
|
||||
PhotoItem(PhotoShareItemHolder *holder, const RsPhotoPhoto& photo, QWidget* parent = 0);
|
||||
PhotoItem(PhotoShareItemHolder *holder, const QString& path, QWidget* parent = 0); // for new photos.
|
||||
~PhotoItem();
|
||||
void setSelected(bool selected);
|
||||
bool isSelected(){ return mSelected; }
|
||||
const RsPhotoPhoto& getPhotoDetails();
|
||||
bool getPhotoThumbnail(RsPhotoThumbnail &nail);
|
||||
|
||||
protected:
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
|
||||
private:
|
||||
void updateImage(const RsPhotoThumbnail &thumbnail);
|
||||
void setUp();
|
||||
|
||||
private slots:
|
||||
void setTitle();
|
||||
void setPhotoGrapher();
|
||||
|
||||
private:
|
||||
Ui::PhotoItem *ui;
|
||||
|
||||
QPixmap mThumbNail;
|
||||
|
||||
QPixmap getPixmap() { return mThumbNail; }
|
||||
|
||||
bool mSelected;
|
||||
RsPhotoPhoto mPhotoDetails;
|
||||
PhotoShareItemHolder* mHolder;
|
||||
|
||||
QLabel *mTitleLabel, *mPhotoGrapherLabel;
|
||||
};
|
||||
|
||||
#endif // PHOTOITEM_H
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,97 +1,97 @@
|
|||
#ifndef PHOTOSHARE_H
|
||||
#define PHOTOSHARE_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <map>
|
||||
#include "ui_PhotoShare.h"
|
||||
|
||||
#include "retroshare/rsphotoV2.h"
|
||||
#include "retroshare-gui/mainpage.h"
|
||||
|
||||
#include "AlbumCreateDialog.h"
|
||||
#include "AlbumDialog.h"
|
||||
#include "PhotoDialog.h"
|
||||
|
||||
#include "AlbumItem.h"
|
||||
#include "PhotoItem.h"
|
||||
#include "PhotoSlideShow.h"
|
||||
|
||||
#include "util/TokenQueue.h"
|
||||
#include "PhotoShareItemHolder.h"
|
||||
|
||||
namespace Ui {
|
||||
class PhotoShare;
|
||||
}
|
||||
|
||||
class PhotoShare : public MainPage, public TokenResponse, public PhotoShareItemHolder
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PhotoShare(QWidget *parent = 0);
|
||||
|
||||
void notifySelection(PhotoShareItem* selection);
|
||||
|
||||
private slots:
|
||||
void checkUpdate();
|
||||
void createAlbum();
|
||||
void OpenAlbumDialog();
|
||||
void OpenPhotoDialog();
|
||||
void OpenSlideShow();
|
||||
void updateAlbums();
|
||||
void subscribeToAlbum();
|
||||
void deleteAlbum(const RsGxsGroupId&);
|
||||
|
||||
private:
|
||||
/* Request Response Functions for loading data */
|
||||
void requestAlbumList(std::list<std::string>& ids);
|
||||
void requestAlbumData(std::list<RsGxsGroupId> &ids);
|
||||
|
||||
/*!
|
||||
* request data for all groups
|
||||
*/
|
||||
void requestAlbumData();
|
||||
void requestPhotoList(GxsMsgReq &albumIds);
|
||||
void requestPhotoList(const std::string &albumId);
|
||||
void requestPhotoData(GxsMsgReq &photoIds);
|
||||
void requestPhotoData(const std::list<RsGxsGroupId> &grpIds);
|
||||
|
||||
void loadAlbumList(const uint32_t &token);
|
||||
bool loadAlbumData(const uint32_t &token);
|
||||
void loadPhotoList(const uint32_t &token);
|
||||
void loadPhotoData(const uint32_t &token);
|
||||
|
||||
void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
||||
|
||||
void acknowledgeGroup(const uint32_t &token);
|
||||
void acknowledgeMessage(const uint32_t &token);
|
||||
|
||||
/* Grunt work of setting up the GUI */
|
||||
|
||||
void addAlbum(const RsPhotoAlbum &album);
|
||||
void addPhoto(const RsPhotoPhoto &photo);
|
||||
|
||||
void clearAlbums();
|
||||
void clearPhotos();
|
||||
void deleteAlbums();
|
||||
/*!
|
||||
* Fills up photo ui with photos held in mPhotoItems (current groups photos)
|
||||
*/
|
||||
void updatePhotos();
|
||||
|
||||
private:
|
||||
AlbumItem* mAlbumSelected;
|
||||
PhotoItem* mPhotoSelected;
|
||||
|
||||
|
||||
TokenQueue *mPhotoQueue;
|
||||
|
||||
/* UI - from Designer */
|
||||
Ui::PhotoShare ui;
|
||||
|
||||
QSet<AlbumItem*> mAlbumItems;
|
||||
QSet<PhotoItem*> mPhotoItems; // the current album selected
|
||||
|
||||
};
|
||||
|
||||
#endif // PHOTOSHARE_H
|
||||
#ifndef PHOTOSHARE_H
|
||||
#define PHOTOSHARE_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <map>
|
||||
#include "ui_PhotoShare.h"
|
||||
|
||||
#include "retroshare/rsphoto.h"
|
||||
#include "retroshare-gui/mainpage.h"
|
||||
|
||||
#include "AlbumCreateDialog.h"
|
||||
#include "AlbumDialog.h"
|
||||
#include "PhotoDialog.h"
|
||||
|
||||
#include "AlbumItem.h"
|
||||
#include "PhotoItem.h"
|
||||
#include "PhotoSlideShow.h"
|
||||
|
||||
#include "util/TokenQueue.h"
|
||||
#include "PhotoShareItemHolder.h"
|
||||
|
||||
namespace Ui {
|
||||
class PhotoShare;
|
||||
}
|
||||
|
||||
class PhotoShare : public MainPage, public TokenResponse, public PhotoShareItemHolder
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
PhotoShare(QWidget *parent = 0);
|
||||
|
||||
void notifySelection(PhotoShareItem* selection);
|
||||
|
||||
private slots:
|
||||
void checkUpdate();
|
||||
void createAlbum();
|
||||
void OpenAlbumDialog();
|
||||
void OpenPhotoDialog();
|
||||
void OpenSlideShow();
|
||||
void updateAlbums();
|
||||
void subscribeToAlbum();
|
||||
void deleteAlbum(const RsGxsGroupId&);
|
||||
|
||||
private:
|
||||
/* Request Response Functions for loading data */
|
||||
void requestAlbumList(std::list<std::string>& ids);
|
||||
void requestAlbumData(std::list<RsGxsGroupId> &ids);
|
||||
|
||||
/*!
|
||||
* request data for all groups
|
||||
*/
|
||||
void requestAlbumData();
|
||||
void requestPhotoList(GxsMsgReq &albumIds);
|
||||
void requestPhotoList(const std::string &albumId);
|
||||
void requestPhotoData(GxsMsgReq &photoIds);
|
||||
void requestPhotoData(const std::list<RsGxsGroupId> &grpIds);
|
||||
|
||||
void loadAlbumList(const uint32_t &token);
|
||||
bool loadAlbumData(const uint32_t &token);
|
||||
void loadPhotoList(const uint32_t &token);
|
||||
void loadPhotoData(const uint32_t &token);
|
||||
|
||||
void loadRequest(const TokenQueue *queue, const TokenRequest &req);
|
||||
|
||||
void acknowledgeGroup(const uint32_t &token);
|
||||
void acknowledgeMessage(const uint32_t &token);
|
||||
|
||||
/* Grunt work of setting up the GUI */
|
||||
|
||||
void addAlbum(const RsPhotoAlbum &album);
|
||||
void addPhoto(const RsPhotoPhoto &photo);
|
||||
|
||||
void clearAlbums();
|
||||
void clearPhotos();
|
||||
void deleteAlbums();
|
||||
/*!
|
||||
* Fills up photo ui with photos held in mPhotoItems (current groups photos)
|
||||
*/
|
||||
void updatePhotos();
|
||||
|
||||
private:
|
||||
AlbumItem* mAlbumSelected;
|
||||
PhotoItem* mPhotoSelected;
|
||||
|
||||
|
||||
TokenQueue *mPhotoQueue;
|
||||
|
||||
/* UI - from Designer */
|
||||
Ui::PhotoShare ui;
|
||||
|
||||
QSet<AlbumItem*> mAlbumItems;
|
||||
QSet<PhotoItem*> mPhotoItems; // the current album selected
|
||||
|
||||
};
|
||||
|
||||
#endif // PHOTOSHARE_H
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ PhotoSlideShow::PhotoSlideShow(const RsPhotoAlbum& album, QWidget *parent)
|
|||
connect(ui.pushButton_Close, SIGNAL( clicked( void ) ), this, SLOT( closeShow( void ) ) );
|
||||
connect(ui.fullscreenButton, SIGNAL(clicked()),this, SLOT(setFullScreen()));
|
||||
|
||||
mPhotoQueue = new TokenQueue(rsPhotoV2->getTokenService(), this);
|
||||
mPhotoQueue = new TokenQueue(rsPhoto->getTokenService(), this);
|
||||
|
||||
mRunning = true;
|
||||
mShotActive = true;
|
||||
|
|
@ -236,7 +236,7 @@ bool PhotoSlideShow::loadPhotoData(const uint32_t &token)
|
|||
std::cerr << std::endl;
|
||||
|
||||
PhotoResult res;
|
||||
rsPhotoV2->getPhoto(token, res);
|
||||
rsPhoto->getPhoto(token, res);
|
||||
PhotoResult::iterator mit = res.begin();
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
#include "ui_PhotoSlideShow.h"
|
||||
|
||||
#include <retroshare/rsphotoV2.h>
|
||||
#include <retroshare/rsphoto.h>
|
||||
#include "util/TokenQueue.h"
|
||||
#include "AlbumItem.h"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue