merged with upstream/master

This commit is contained in:
csoler 2020-03-19 09:15:45 +01:00
commit cd4594d0a3
No known key found for this signature in database
GPG Key ID: 7BCA522266C0804C
94 changed files with 1010 additions and 1792 deletions

View File

@ -113,8 +113,6 @@ int p3GxsTunnelService::tick()
flush() ;
rstime::rs_usleep(1000*500);
return 0 ;
}

View File

@ -43,6 +43,13 @@ struct RsGxsFile : RsSerializable
RS_SERIAL_PROCESS(mHash);
RS_SERIAL_PROCESS(mSize);
}
void clear()
{
mName.clear();
mHash.clear();
mSize = 0;
}
};
struct RsGxsImage : RsSerializable

View File

@ -34,110 +34,57 @@
class RsPhoto;
extern RsPhoto *rsPhoto;
/******************* NEW STUFF FOR NEW CACHE SYSTEM *********/
#define RSPHOTO_MODE_NEW 1
#define RSPHOTO_MODE_OWN 2
#define RSPHOTO_MODE_REMOTE 3
/* If these flags are no set - the Photo inherits values from the Album
*/
#define RSPHOTO_FLAGS_ATTRIB_TITLE 0x0001
#define RSPHOTO_FLAGS_ATTRIB_CAPTION 0x0002
#define RSPHOTO_FLAGS_ATTRIB_DESC 0x0004
#define RSPHOTO_FLAGS_ATTRIB_PHOTOGRAPHER 0x0008
#define RSPHOTO_FLAGS_ATTRIB_WHERE 0x0010
#define RSPHOTO_FLAGS_ATTRIB_WHEN 0x0020
#define RSPHOTO_FLAGS_ATTRIB_OTHER 0x0040
#define RSPHOTO_FLAGS_ATTRIB_CATEGORY 0x0080
#define RSPHOTO_FLAGS_ATTRIB_HASHTAGS 0x0100
#define RSPHOTO_FLAGS_ATTRIB_ORDER 0x0200
#define RSPHOTO_FLAGS_ATTRIB_THUMBNAIL 0x0400
#define RSPHOTO_FLAGS_ATTRIB_MODE 0x0800
#define RSPHOTO_FLAGS_ATTRIB_AUTHOR 0x1000 // PUSH UP ORDER
#define RSPHOTO_FLAGS_ATTRIB_PHOTO 0x2000 // PUSH UP ORDER.
class RsPhotoPhoto
{
public:
public:
RsMsgMetaData mMeta;
RsMsgMetaData mMeta;
RsPhotoPhoto();
RsPhotoPhoto();
// THESE ARE IN THE META DATA.
//std::string mAlbumId;
//std::string mId;
//std::string mTitle; // only used by Album.
std::string mCaption;
std::string mDescription;
std::string mPhotographer;
std::string mWhere;
std::string mWhen;
std::string mOther;
std::string mCategory;
// V2 PhotoMsg - keep it simple.
// mMeta.mTitle used for Photo Caption.
// mDescription optional field for addtional notes.
// mLowResImage - < 50k jpg of image.
// mPhotoFile - transfer details for original photo.
std::string mDescription;
uint32_t mOrder;
RsGxsImage mLowResImage;
RsGxsFile mPhotoFile;
std::string mHashTags;
uint32_t mSetFlags;
int mOrder;
RsGxsImage mThumbnail;
int mMode;
// These are not saved.
std::string path; // if in Mode NEW.
uint32_t mModFlags;
// These are not saved.
std::string mPath; // if New photo
};
class RsPhotoAlbumShare
{
public:
uint32_t mShareType;
std::string mShareGroupId;
std::string mPublishKey;
uint32_t mCommentMode;
uint32_t mResizeMode;
};
#define RSPHOTO_SHAREMODE_LOWRESONLY (1)
#define RSPHOTO_SHAREMODE_ORIGINAL (2)
#define RSPHOTO_SHAREMODE_DUP_ORIGINAL (3)
#define RSPHOTO_SHAREMODE_DUP_200K (4)
#define RSPHOTO_SHAREMODE_DUP_1M (5)
class RsPhotoAlbum
{
public:
RsPhotoAlbum();
public:
RsPhotoAlbum();
RsGroupMetaData mMeta;
RsGroupMetaData mMeta;
// THESE ARE IN THE META DATA.
//std::string mAlbumId;
//std::string mTitle; // only used by Album.
// V2 Album - keep it simple.
// mMeta.mTitle.
uint32_t mShareMode;
std::string mCaption;
std::string mDescription;
std::string mPhotographer;
std::string mWhere;
std::string mWhen;
std::string mOther;
std::string mCategory;
std::string mCaption;
std::string mDescription;
std::string mPhotographer;
std::string mWhere;
std::string mWhen;
std::string mHashTags;
RsGxsImage mThumbnail;
RsGxsImage mThumbnail;
int mMode;
std::string mPhotoPath;
RsPhotoAlbumShare mShareOptions;
// These aren't saved.
uint32_t mSetFlags;
uint32_t mModFlags;
// Below is not saved.
bool mAutoDownload;
};
std::ostream &operator<<(std::ostream &out, const RsPhotoPhoto &photo);
std::ostream &operator<<(std::ostream &out, const RsPhotoAlbum &album);
@ -145,14 +92,7 @@ typedef std::map<RsGxsGroupId, std::vector<RsPhotoPhoto> > PhotoResult;
class RsPhoto: public RsGxsIfaceHelper, public RsGxsCommentService
{
public:
static const uint32_t FLAG_MSG_TYPE_PHOTO_POST;
static const uint32_t FLAG_MSG_TYPE_PHOTO_COMMENT;
static const uint32_t FLAG_MSG_TYPE_MASK;
explicit RsPhoto(RsGxsIface &gxs) : RsGxsIfaceHelper(gxs) { return; }
virtual ~RsPhoto() { return; }

View File

@ -642,14 +642,10 @@ void upnphandler::setExternalPort(unsigned short eport_in)
dataMtx.unlock(); /*** UNLOCK MUTEX ***/
}
/* as determined by uPnP */
bool upnphandler::getInternalAddress(struct sockaddr_storage &addr)
/* as determined by uPnP */
bool upnphandler::getInternalAddress(struct sockaddr_storage &addr)
{
// std::cerr << "UPnPHandler::getInternalAddress() pre Lock!" << std::endl;
dataMtx.lock(); /*** LOCK MUTEX ***/
// std::cerr << "UPnPHandler::getInternalAddress() postLock!" << std::endl;
std::cerr << "UPnPHandler::getInternalAddress()" << std::endl;
RS_STACK_MUTEX(dataMtx);
// copy to universal addr.
sockaddr_storage_clear(addr);
@ -657,18 +653,15 @@ bool upnphandler::getInternalAddress(struct sockaddr_storage &addr)
bool valid = (upnpState >= RS_UPNP_S_ACTIVE);
dataMtx.unlock(); /*** UNLOCK MUTEX ***/
Dbg2() << __PRETTY_FUNCTION__ << " valid: " << valid
<< " addr: " << addr << std::endl;
return valid;
}
bool upnphandler::getExternalAddress(struct sockaddr_storage &addr)
bool upnphandler::getExternalAddress(sockaddr_storage &addr)
{
// std::cerr << "UPnPHandler::getExternalAddress() pre Lock!" << std::endl;
dataMtx.lock(); /*** LOCK MUTEX ***/
// std::cerr << "UPnPHandler::getExternalAddress() postLock!" << std::endl;
std::cerr << "UPnPHandler::getExternalAddress()" << std::endl;
RS_STACK_MUTEX(dataMtx);
// copy to universal addr.
sockaddr_storage_clear(addr);
@ -676,7 +669,8 @@ bool upnphandler::getExternalAddress(struct sockaddr_storage &addr)
bool valid = (upnpState == RS_UPNP_S_ACTIVE);
dataMtx.unlock(); /*** UNLOCK MUTEX ***/
Dbg2() << __PRETTY_FUNCTION__ << " valid: " << valid
<< " addr: " << addr << std::endl;
return valid;
}

View File

@ -28,7 +28,7 @@
/* platform independent networking... */
#include "pqi/pqinetwork.h"
#include "pqi/pqiassist.h"
#include "util/rsdebug.h"
#include "util/rsthreads.h"
class upnpentry
@ -97,7 +97,7 @@ bool shutdown_upnp();
bool initUPnPState();
bool printUPnPState();
private:
private:
bool background_setup_upnp(bool, bool);
bool checkUPnPActive();
@ -123,4 +123,5 @@ bool checkUPnPActive();
/* active port forwarding */
std::list<upnpforward> activeForwards;
RS_SET_CONTEXT_DEBUG_LEVEL(1)
};

View File

@ -42,55 +42,44 @@ RsItem *RsGxsPhotoSerialiser::create_item(uint16_t service, uint8_t item_sub_id)
void RsGxsPhotoAlbumItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
{
RsTypeSerializer::serial_process<uint32_t>(j,ctx,TLV_TYPE_UINT32_PARAM,album.mShareMode,"mShareMode");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_CAPTION, album.mCaption, "mCaption");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_CATEGORY, album.mCategory, "mCategory");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DESCR, album.mDescription, "mDescription");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_HASH_TAG, album.mHashTags, "mHashTags");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_MSG, album.mOther, "mOther");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_PATH, album.mPhotoPath, "mPhotoPath");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_NAME, album.mPhotographer, "mPhotographer");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DATE, album.mWhen, "mWhen");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_LOCATION, album.mWhere, "mWhere");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DATE, album.mWhen, "mWhen");
album.mThumbnail.serial_process(j, ctx);
}
void RsGxsPhotoPhotoItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& ctx)
{
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CAPTION, photo.mCaption, "mCaption");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_CATEGORY, photo.mCategory, "mCategory");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DESCR, photo.mDescription, "mDescription");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_HASH_TAG, photo.mHashTags, "mHashTags");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_MSG, photo.mOther, "mOther");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_PIC_AUTH, photo.mPhotographer, "mPhotographer");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_DATE, photo.mWhen, "mWhen");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_LOCATION, photo.mWhere, "mWhere");
photo.mThumbnail.serial_process(j, ctx);
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DESCR, photo.mDescription, "mDescription");
RsTypeSerializer::serial_process<uint32_t>(j,ctx,TLV_TYPE_UINT32_PARAM,photo.mOrder,"mOrder");
photo.mLowResImage.serial_process(j, ctx);
photo.mPhotoFile.serial_process(j, ctx);
}
void RsGxsPhotoAlbumItem::clear()
{
album.mShareMode = RSPHOTO_SHAREMODE_LOWRESONLY;
album.mCaption.clear();
album.mCategory.clear();
album.mDescription.clear();
album.mHashTags.clear();
album.mOther.clear();
album.mPhotoPath.clear();
album.mPhotographer.clear();
album.mWhen.clear();
album.mWhere.clear();
album.mWhen.clear();
album.mThumbnail.clear();
// not saved
album.mAutoDownload = false;
}
void RsGxsPhotoPhotoItem::clear()
{
photo.mCaption.clear();
photo.mCategory.clear();
photo.mDescription.clear();
photo.mHashTags.clear();
photo.mOther.clear();
photo.mPhotographer.clear();
photo.mWhen.clear();
photo.mWhere.clear();
photo.mThumbnail.clear();
photo.mOrder = 0;
photo.mLowResImage.clear();
photo.mPhotoFile.clear();
// not saved
photo.mPath.clear();
}

View File

@ -25,19 +25,14 @@
RsPhoto *rsPhoto = NULL;
const uint32_t RsPhoto::FLAG_MSG_TYPE_MASK = 0x000f;
const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_POST = 0x0001;
const uint32_t RsPhoto::FLAG_MSG_TYPE_PHOTO_COMMENT = 0x0002;
RsPhotoPhoto::RsPhotoPhoto()
:mSetFlags(0), mOrder(0), mMode(0), mModFlags(0)
:mOrder(0)
{
return;
}
RsPhotoAlbum::RsPhotoAlbum()
:mMode(0), mSetFlags(0), mModFlags(0)
:mShareMode(RSPHOTO_SHAREMODE_LOWRESONLY), mAutoDownload(false)
{
return;
}

View File

@ -74,7 +74,6 @@
#define IMAGE_COLLOPEN ":/icons/collections.png"
#define IMAGE_EDITSHARE ":/images/edit_16.png"
#define IMAGE_MYFILES ":/icons/svg/folders1.svg"
#define IMAGE_REMOVE ":/images/deletemail24.png"
/*define viewType_CB value */
#define VIEW_TYPE_TREE 0
@ -228,7 +227,7 @@ SharedFilesDialog::SharedFilesDialog(RetroshareDirModel *_tree_model,RetroshareD
sendlinkAct = new QAction(QIcon(IMAGE_COPYLINK), tr( "Send retroshare Links" ), this );
connect( sendlinkAct , SIGNAL( triggered() ), this, SLOT( sendLinkTo( ) ) );
removeExtraFileAct = new QAction(QIcon(IMAGE_REMOVE), tr( "Stop sharing this file" ), this );
removeExtraFileAct = new QAction(QIcon(), tr( "Stop sharing this file" ), this );
connect( removeExtraFileAct , SIGNAL( triggered() ), this, SLOT( removeExtraFile() ) );
collCreateAct= new QAction(QIcon(IMAGE_COLLCREATE), tr("Create Collection..."), this) ;

View File

@ -2119,7 +2119,7 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
{
if(own_identities.size() <= 1)
{
QAction *action = contextMenu->addAction(QIcon(":/images/chat_24.png"), tr("Chat with this person"), this, SLOT(chatIdentity()));
QAction *action = contextMenu->addAction(QIcon(":/icons/png/chats.png"), tr("Chat with this person"), this, SLOT(chatIdentity()));
if(own_identities.empty())
action->setEnabled(false) ;
@ -2128,7 +2128,7 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
}
else
{
QMenu *mnu = contextMenu->addMenu(QIcon(":/images/chat_24.png"),tr("Chat with this person as...")) ;
QMenu *mnu = contextMenu->addMenu(QIcon(":/icons/png/chats.png"),tr("Chat with this person as...")) ;
for(std::list<RsGxsId>::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
{
@ -2145,18 +2145,17 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
}
}
}
if (n_selected_items==1)
contextMenu->addAction(QIcon(":/images/chat_24.png"),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ;
// always allow to send messages
contextMenu->addAction(QIcon(":/images/mail_new.png"), tr("Send message"), this, SLOT(sendMsg()));
contextMenu->addAction(QIcon(":/icons/mail/write-mail.png"), tr("Send message"), this, SLOT(sendMsg()));
contextMenu->addSeparator();
if(n_is_a_contact == 0)
contextMenu->addAction(QIcon(), tr("Add to Contacts"), this, SLOT(addtoContacts()));
if (n_selected_items==1)
contextMenu->addAction(QIcon(""),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ;
if(n_is_not_a_contact == 0)
contextMenu->addAction(QIcon(":/images/cancel.png"), tr("Remove from Contacts"), this, SLOT(removefromContacts()));
@ -2176,7 +2175,7 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
{
contextMenu->addSeparator();
contextMenu->addAction(QIcon(":/images/chat_24.png"),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ;
contextMenu->addAction(QIcon(""),tr("Copy identity to clipboard"),this,SLOT(copyRetroshareLink())) ;
contextMenu->addAction(ui->editIdentity);
contextMenu->addAction(ui->removeIdentity);
}

View File

@ -142,8 +142,6 @@
#define IMAGE_BWGRAPH ":/icons/png/bandwidth.png"
#define IMAGE_MESSENGER ":/images/rsmessenger48.png"
#define IMAGE_COLOR ":/images/highlight.png"
#define IMAGE_GAMES ":/images/kgames.png"
#define IMAGE_PHOTO ":/images/lphoto.png"
#define IMAGE_NEWRSCOLLECTION ":/images/library.png"
#define IMAGE_ADDSHARE ":/images/directoryadd_24x24_shadow.png"
#define IMAGE_OPTIONS ":/images/settings.png"

View File

@ -48,11 +48,9 @@
/* Images for context menu icons */
#define IMAGE_PEERDETAILS ":/images/info16.png"
#define IMAGE_CLEAN_UNUSED ":/images/deletemail24.png"
#define IMAGE_MAKEFRIEND ":/images/user/add_user16.png"
#define IMAGE_EXPORT ""
#define IMAGE_COPYLINK ":/images/copyrslink.png"
#define IMAGE_MESSAGE ":/images/mail_new.png"
#define IMAGE_MESSAGE ":/icons/mail/write-mail.png"
/******
* #define NET_DEBUG 1
@ -130,11 +128,11 @@ void NetworkDialog::connectTreeWidgetCostumPopupMenu( QPoint /*point*/ )
return ;
if(peer_id == rsPeers->getGPGOwnId())
contextMnu->addAction(QIcon(IMAGE_EXPORT), tr("Export/create a new node"), this, SLOT(on_actionExportKey_activated()));
contextMnu->addAction(QIcon(), tr("Export/create a new node"), this, SLOT(on_actionExportKey_activated()));
contextMnu->addAction(QIcon(IMAGE_PEERDETAILS), tr("Profile details..."), this, SLOT(peerdetails()));
contextMnu->addSeparator() ;
contextMnu->addAction(QIcon(IMAGE_CLEAN_UNUSED), tr("Remove unused keys..."), this, SLOT(removeUnusedKeys()));
contextMnu->addAction(QIcon(), tr("Remove unused keys..."), this, SLOT(removeUnusedKeys()));
contextMnu->exec(QCursor::pos());
}

View File

@ -14,7 +14,7 @@
#include "IdentityItem.h"
#define IMAGE_MAKEFRIEND ":/images/user/add_user16.png"
#define IMAGE_CHAT ":/images/chat_24.png"
#define IMAGE_CHAT ":/icons/png/chats.png"
IdentityItem *IdentityItem::_selected_node = NULL ;

View File

@ -458,7 +458,7 @@ void PeopleDialog::iw_AddButtonClickedExt()
}
else
{
QMenu *mnu = contextMnu.addMenu(QIcon(":/images/chat_24.png"),tr("Chat with this person as...")) ;
QMenu *mnu = contextMnu.addMenu(QIcon(":/icons/png/chats.png"),tr("Chat with this person as...")) ;
for(std::list<RsGxsId>::const_iterator it=own_identities.begin();it!=own_identities.end();++it)
{
@ -475,15 +475,15 @@ void PeopleDialog::iw_AddButtonClickedExt()
}
}
QAction *actionsendmsg = contextMnu.addAction(QIcon(":/images/mail_new.png"), tr("Send message"), this, SLOT(sendMessage()));
QAction *actionsendmsg = contextMnu.addAction(QIcon(":/icons/mail/write-mail.png"), tr("Send message"), this, SLOT(sendMessage()));
actionsendmsg->setData( QString::fromStdString(dest->groupInfo().mMeta.mGroupId.toStdString()));
QAction *actionsendinvite = contextMnu.addAction(QIcon(":/images/mail_new.png"), tr("Send invite"), this, SLOT(sendInvite()));
QAction *actionsendinvite = contextMnu.addAction(QIcon(":/icons/mail/write-mail.png"), tr("Send invite"), this, SLOT(sendInvite()));
actionsendinvite->setData( QString::fromStdString(dest->groupInfo().mMeta.mGroupId.toStdString()));
contextMnu.addSeparator();
QAction *actionaddcontact = contextMnu.addAction(QIcon(":/images/mail_new.png"), tr("Add to Contacts"), this, SLOT(addtoContacts()));
QAction *actionaddcontact = contextMnu.addAction(QIcon(""), tr("Add to Contacts"), this, SLOT(addtoContacts()));
actionaddcontact->setData( QString::fromStdString(dest->groupInfo().mMeta.mGroupId.toStdString()));
contextMnu.addSeparator();

View File

@ -1,204 +0,0 @@
/*******************************************************************************
* retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.cpp *
* *
* Copyright (C) 2018 by Retroshare Team <retroshare.project@gmail.com> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
#include <QBuffer>
#include "AlbumCreateDialog.h"
#include "ui_AlbumCreateDialog.h"
#include "util/misc.h"
#include "retroshare/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 these 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(RsGxsImage &image)
{
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
image.copy((uint8_t *) ba.data(), ba.size());
return true;
}
image.clear();
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);
}

View File

@ -1,71 +0,0 @@
/*******************************************************************************
* retroshare-gui/src/gui/PhotoShare/AlbumCreateDialog.h *
* *
* Copyright (C) 2018 by Retroshare Team <retroshare.project@gmail.com> *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU Affero General Public License as *
* published by the Free Software Foundation, either version 3 of the *
* License, or (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU Affero General Public License for more details. *
* *
* You should have received a copy of the GNU Affero General Public License *
* along with this program. If not, see <https://www.gnu.org/licenses/>. *
* *
*******************************************************************************/
#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(RsGxsImage &image);
private:
Ui::AlbumCreateDialog *ui;
TokenQueue* mPhotoQueue;
RsPhoto* mRsPhoto;
QPixmap mThumbNail;
PhotoDrop* mPhotoDrop;
PhotoItem* mPhotoSelected;
};
#endif // ALBUMCREATEDIALOG_H

View File

@ -1,539 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>AlbumCreateDialog</class>
<widget class="QDialog" name="AlbumCreateDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>643</width>
<height>550</height>
</rect>
</property>
<property name="windowTitle">
<string>Create Album</string>
</property>
<property name="sizeGripEnabled">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout_4">
<property name="margin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="HeaderFrame" name="headerFrame">
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QStackedWidget" name="stackedWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page">
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QFrame" name="frame">
<property name="frameShape">
<enum>QFrame::NoFrame</enum>
</property>
<layout class="QGridLayout" name="gridLayout_6">
<property name="margin">
<number>0</number>
</property>
<property name="spacing">
<number>6</number>
</property>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<property name="margin">
<number>3</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_18">
<property name="text">
<string>Album Name:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="lineEdit_Title_2"/>
</item>
<item row="0" column="2" rowspan="2">
<widget class="QToolButton" name="AlbumThumbNail">
<property name="minimumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
<property name="styleSheet">
<string notr="true">
border: 2px solid white;
border-radius: 10px;
</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="Photo_images.qrc">
<normaloff>:/images/album_64.png</normaloff>:/images/album_64.png</iconset>
</property>
<property name="iconSize">
<size>
<width>64</width>
<height>64</height>
</size>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_19">
<property name="text">
<string>Category:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox_Category_2">
<item>
<property name="text">
<string>Animals</string>
</property>
</item>
<item>
<property name="text">
<string>Family</string>
</property>
</item>
<item>
<property name="text">
<string>Friends</string>
</property>
</item>
<item>
<property name="text">
<string>Flowers</string>
</property>
</item>
<item>
<property name="text">
<string>Holiday</string>
</property>
</item>
<item>
<property name="text">
<string>Landscapes</string>
</property>
</item>
<item>
<property name="text">
<string>Pets</string>
</property>
</item>
<item>
<property name="text">
<string>Portraits</string>
</property>
</item>
<item>
<property name="text">
<string>Travel</string>
</property>
</item>
<item>
<property name="text">
<string>Work</string>
</property>
</item>
<item>
<property name="text">
<string>Random</string>
</property>
</item>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="captionLabel">
<property name="text">
<string>Caption:</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QLineEdit" name="lineEdit_Caption_2"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_14">
<property name="text">
<string>Where:</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="2">
<widget class="QLineEdit" name="lineEdit_Where"/>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Photographer:</string>
</property>
</widget>
</item>
<item row="5" column="1" colspan="2">
<widget class="QLineEdit" name="lineEdit_Photographer"/>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_13">
<property name="text">
<string>Description:</string>
</property>
</widget>
</item>
<item row="6" column="1" rowspan="2" colspan="2">
<widget class="QTextEdit" name="textEdit_Description"/>
</item>
<item row="7" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="0" colspan="3">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>Share Options</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Policy:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>Quality:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>Comments:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Identity:</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="0" column="1">
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QComboBox" name="privacyComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Public</string>
</property>
</item>
<item>
<property name="text">
<string>Restricted</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_5">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Resize Images (&lt; 1Mb)</string>
</property>
</item>
<item>
<property name="text">
<string>Resize Images (&lt; 10Mb)</string>
</property>
</item>
<item>
<property name="text">
<string>Send Original Images</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox_6">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>No Comments Allowed</string>
</property>
</item>
<item>
<property name="text">
<string>Authenticated Comments</string>
</property>
</item>
<item>
<property name="text">
<string>Any Comments Allowed</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="comboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Publish with Identity</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>168</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_5" stretch="0,10">
<item>
<widget class="QLabel" name="label_17">
<property name="text">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt; font-weight:600;&quot;&gt; Drag &amp;amp; Drop to insert pictures. Click on a picture to edit details below.&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<widget class="QScrollArea" name="scrollAreaPhotos">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
<horstretch>0</horstretch>
<verstretch>10</verstretch>
</sizepolicy>
</property>
<property name="acceptDrops">
<bool>true</bool>
</property>
<property name="horizontalScrollBarPolicy">
<enum>Qt::ScrollBarAsNeeded</enum>
</property>
<property name="widgetResizable">
<bool>true</bool>
</property>
<property name="alignment">
<set>Qt::AlignBottom|Qt::AlignLeading|Qt::AlignLeft</set>
</property>
<widget class="PhotoDrop" name="scrollAreaWidgetContents">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>621</width>
<height>458</height>
</rect>
</property>
<property name="styleSheet">
<string notr="true">QWidget#scrollAreaWidgetContents{border: none;}</string>
</property>
<layout class="QGridLayout" name="gridLayout_10"/>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</item>
<item row="2" column="0">
<widget class="QFrame" name="frame">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="margin">
<number>9</number>
</property>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>419</width>
<height>18</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Cancel</set>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="backButton">
<property name="text">
<string>Back</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="addphotosButton">
<property name="text">
<string>Add Photos</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="publishButton">
<property name="text">
<string>Publish Album</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>HeaderFrame</class>
<extends>QFrame</extends>
<header>gui/common/HeaderFrame.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>PhotoDrop</class>
<extends>QWidget</extends>
<header>gui/PhotoShare/PhotoDrop.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources>
<include location="../images.qrc"/>
<include location="Photo_images.qrc"/>
</resources>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>AlbumCreateDialog</receiver>
<slot>close()</slot>
<hints>
<hint type="sourcelabel">
<x>353</x>
<y>529</y>
</hint>
<hint type="destinationlabel">
<x>321</x>
<y>274</y>
</hint>
</hints>
</connection>
</connections>
</ui>

View File

@ -59,7 +59,6 @@ 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));
if (mAlbum.mThumbnail.mSize != 0)
{
@ -121,7 +120,7 @@ void AlbumDialog::updateAlbumPhotos()
// flag image as Deleted.
// clear image.
// clear file URL (todo)
photo.mThumbnail.clear();
photo.mLowResImage.clear();
}
break;
}
@ -221,7 +220,6 @@ void AlbumDialog::loadPhotoData(const uint32_t &token)
rsPhoto->getPhoto(token, res);
PhotoResult::iterator mit = res.begin();
for (; mit != res.end(); ++mit)
{
std::vector<RsPhotoPhoto>& photoV = mit->second;
@ -230,8 +228,7 @@ void AlbumDialog::loadPhotoData(const uint32_t &token)
for (; vit != photoV.end(); ++vit)
{
RsPhotoPhoto& photo = *vit;
if (!photo.mThumbnail.empty()) {
if (!photo.mLowResImage.empty()) {
addPhoto(photo);
}
}
@ -287,5 +284,3 @@ void AlbumDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
}
/**************************** Request / Response Filling of Data ************************/

View File

@ -22,16 +22,16 @@
#include "ui_AlbumExtra.h"
AlbumExtra::AlbumExtra(QWidget *parent) :
QWidget(NULL),
ui(new Ui::AlbumExtra)
QWidget(NULL),
ui(new Ui::AlbumExtra)
{
ui->setupUi(this);
setUp();
ui->setupUi(this);
setUp();
}
AlbumExtra::~AlbumExtra()
{
delete ui;
delete ui;
}
void AlbumExtra::setUp()
@ -39,3 +39,53 @@ void AlbumExtra::setUp()
}
void AlbumExtra::setShareMode(uint32_t mode)
{
ui->comboBox_shareMode->setCurrentIndex(mode);
}
void AlbumExtra::setCaption(const std::string &str)
{
ui->lineEdit_Caption->setText(QString::fromStdString(str));
}
void AlbumExtra::setPhotographer(const std::string &str)
{
ui->lineEdit_Photographer->setText(QString::fromStdString(str));
}
void AlbumExtra::setWhere(const std::string &str)
{
ui->lineEdit_Where->setText(QString::fromStdString(str));
}
void AlbumExtra::setWhen(const std::string &str)
{
ui->lineEdit_When->setText(QString::fromStdString(str));
}
uint32_t AlbumExtra::getShareMode()
{
return ui->comboBox_shareMode->currentIndex();
}
std::string AlbumExtra::getCaption()
{
return ui->lineEdit_Caption->text().toStdString();
}
std::string AlbumExtra::getPhotographer()
{
return ui->lineEdit_Photographer->text().toStdString();
}
std::string AlbumExtra::getWhere()
{
return ui->lineEdit_Where->text().toStdString();
}
std::string AlbumExtra::getWhen()
{
return ui->lineEdit_When->text().toStdString();
}

View File

@ -24,21 +24,33 @@
#include <QWidget>
namespace Ui {
class AlbumExtra;
class AlbumExtra;
}
class AlbumExtra : public QWidget
{
Q_OBJECT
Q_OBJECT
public:
explicit AlbumExtra(QWidget *parent = 0);
virtual ~AlbumExtra();
explicit AlbumExtra(QWidget *parent = 0);
virtual ~AlbumExtra();
void setShareMode(uint32_t mode);
void setCaption(const std::string &str);
void setPhotographer(const std::string &str);
void setWhere(const std::string &str);
void setWhen(const std::string &str);
uint32_t getShareMode();
std::string getCaption();
std::string getPhotographer();
std::string getWhere();
std::string getWhen();
private:
void setUp();
void setUp();
private:
Ui::AlbumExtra *ui;
Ui::AlbumExtra *ui;
};
#endif // ALBUMEXTRA_H

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>513</width>
<height>198</height>
<width>516</width>
<height>199</height>
</rect>
</property>
<property name="sizePolicy">
@ -21,119 +21,73 @@
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_19">
<property name="text">
<string>Category:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_Category_2">
<item>
<property name="text">
<string>Animals</string>
</property>
</item>
<item>
<property name="text">
<string>Family</string>
</property>
</item>
<item>
<property name="text">
<string>Friends</string>
</property>
</item>
<item>
<property name="text">
<string>Flowers</string>
</property>
</item>
<item>
<property name="text">
<string>Holiday</string>
</property>
</item>
<item>
<property name="text">
<string>Landscapes</string>
</property>
</item>
<item>
<property name="text">
<string>Pets</string>
</property>
</item>
<item>
<property name="text">
<string>Portraits</string>
</property>
</item>
<item>
<property name="text">
<string>Travel</string>
</property>
</item>
<item>
<property name="text">
<string>Work</string>
</property>
</item>
<item>
<property name="text">
<string>Random</string>
</property>
</item>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Quality:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QComboBox" name="comboBox_5">
<item row="0" column="1">
<widget class="QComboBox" name="comboBox_shareMode">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<item>
<property name="text">
<string>Embedded Only (&lt;50Kb)</string>
</property>
</item>
<item>
<property name="text">
<string>Share Original Images</string>
</property>
</item>
<item>
<property name="text">
<string>Copy Original Images (extra disk space)</string>
</property>
</item>
<item>
<property name="text">
<string>Resize Images (&lt; 200Kb)</string>
</property>
</item>
<item>
<property name="text">
<string>Resize Images (&lt; 1Mb)</string>
</property>
</item>
<item>
<property name="text">
<string>Resize Images (&lt; 10Mb)</string>
</property>
</item>
<item>
<property name="text">
<string>Send Original Images</string>
</property>
</item>
</widget>
</item>
<item row="2" column="0" colspan="2">
<item row="1" column="0" colspan="2">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item row="3" column="0">
<item row="2" column="0">
<widget class="QLabel" name="captionLabel">
<property name="text">
<string>Caption:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="lineEdit_Caption"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_12">
<property name="text">
<string>Photographer:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_Caption_2"/>
<widget class="QLineEdit" name="lineEdit_Photographer"/>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_14">
@ -146,14 +100,14 @@
<widget class="QLineEdit" name="lineEdit_Where"/>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_12">
<widget class="QLabel" name="label">
<property name="text">
<string>Photographer:</string>
<string>When:</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="lineEdit_Photographer"/>
<widget class="QLineEdit" name="lineEdit_When"/>
</item>
</layout>
</widget>

View File

@ -26,8 +26,8 @@
#include <iostream>
const uint32_t AlbumCreateEnabledFlags = (
GXS_GROUP_FLAGS_NAME |
GXS_GROUP_FLAGS_ICON |
GXS_GROUP_FLAGS_NAME |
GXS_GROUP_FLAGS_ICON |
GXS_GROUP_FLAGS_DESCRIPTION |
GXS_GROUP_FLAGS_DISTRIBUTION |
// GXS_GROUP_FLAGS_PUBLISHSIGN |
@ -37,21 +37,26 @@ const uint32_t AlbumCreateEnabledFlags = (
GXS_GROUP_FLAGS_EXTRA |
0);
// Album Requirements:
// - All Photos require Publish signature (PUBLISH THREADS).
// - Comments are in the threads - so these need Author signatures.
// - Author signature required for all groups.
uint32_t AlbumCreateDefaultsFlags = ( GXS_GROUP_DEFAULTS_DISTRIB_PUBLIC |
//GXS_GROUP_DEFAULTS_DISTRIB_GROUP |
//GXS_GROUP_DEFAULTS_DISTRIB_LOCAL |
GXS_GROUP_DEFAULTS_PUBLISH_OPEN |
//GXS_GROUP_DEFAULTS_PUBLISH_THREADS |
//GXS_GROUP_DEFAULTS_PUBLISH_OPEN |
GXS_GROUP_DEFAULTS_PUBLISH_THREADS |
//GXS_GROUP_DEFAULTS_PUBLISH_REQUIRED |
//GXS_GROUP_DEFAULTS_PUBLISH_ENCRYPTED |
//GXS_GROUP_DEFAULTS_PERSONAL_GPG |
GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED |
//GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB |
//GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED |
GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB |
GXS_GROUP_DEFAULTS_PERSONAL_GROUP |
//GXS_GROUP_DEFAULTS_COMMENTS_YES |
GXS_GROUP_DEFAULTS_COMMENTS_NO |
GXS_GROUP_DEFAULTS_COMMENTS_YES |
//GXS_GROUP_DEFAULTS_COMMENTS_NO |
0);
uint32_t AlbumEditEnabledFlags = AlbumCreateEnabledFlags;
@ -88,7 +93,8 @@ void AlbumGroupDialog::initUi()
setUiText(UITYPE_CONTACTS_DOCK, tr("Select Album Admins"));
// Inject Extra Widgets.
injectExtraWidget(new AlbumExtra(this));
mAlbumExtra = new AlbumExtra(this);
injectExtraWidget(mAlbumExtra);
}
QPixmap AlbumGroupDialog::serviceImage()
@ -115,11 +121,12 @@ void AlbumGroupDialog::prepareAlbumGroup(RsPhotoAlbum &group, const RsGroupMetaD
group.mThumbnail.clear();
}
// Additional Fields that we need to fill in.
group.mCaption = "Caption goes here";
group.mPhotographer = "photographer";
group.mWhere = "Where?";
// Additional Fields.
group.mShareMode = mAlbumExtra->getShareMode();
group.mCaption = mAlbumExtra->getCaption();
group.mPhotographer = mAlbumExtra->getPhotographer();
group.mWhere = mAlbumExtra->getWhere();
group.mWhen = mAlbumExtra->getWhen();
}
bool AlbumGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta)
@ -181,6 +188,12 @@ bool AlbumGroupDialog::service_loadGroup(uint32_t token, Mode /*mode*/, RsGroupM
setLogo(QPixmap(":/images/album_create_64.png"));
}
// NEED TO Load additional data....
// Load additional data....
mAlbumExtra->setShareMode(group.mShareMode);
mAlbumExtra->setCaption(group.mCaption);
mAlbumExtra->setPhotographer(group.mPhotographer);
mAlbumExtra->setWhere(group.mWhere);
mAlbumExtra->setWhen(group.mWhen);
return true;
}

View File

@ -25,6 +25,8 @@
#include "gui/gxs/GxsGroupDialog.h"
#include <retroshare/rsphoto.h>
#include "AlbumExtra.h"
class AlbumGroupDialog : public GxsGroupDialog
{
Q_OBJECT
@ -42,6 +44,7 @@ protected:
private:
void prepareAlbumGroup(RsPhotoAlbum &group, const RsGroupMetaData &meta);
AlbumExtra *mAlbumExtra;
};
#endif

View File

@ -55,7 +55,7 @@ PhotoDialog::~PhotoDialog()
void PhotoDialog::setUp()
{
QPixmap qtn;
qtn.loadFromData(mPhotoDetails.mThumbnail.mData, mPhotoDetails.mThumbnail.mSize, "PNG");
qtn.loadFromData(mPhotoDetails.mLowResImage.mData, mPhotoDetails.mLowResImage.mSize);
ui->label_Photo->setPixmap(qtn);
ui->label_Photo->setVisible(true);

View File

@ -48,16 +48,15 @@ class gridIndex
};
#define DEFAULT_ORDER_INCREMENT (100)
PhotoDrop::PhotoDrop(QWidget *parent)
: QWidget(parent)
:QWidget(parent), mLastOrder(0)
{
setAcceptDrops(true);
mSelected = NULL;
checkMoveButtons();
checkMoveButtons();
reorderPhotos();
}
@ -80,7 +79,7 @@ void PhotoDrop::resizeEvent ( QResizeEvent * event )
reorderPhotos();
}
int PhotoDrop::getPhotoCount()
int PhotoDrop::getPhotoCount()
{
std::cerr << "PhotoDrop::getPhotoCount()";
std::cerr << std::endl;
@ -147,7 +146,7 @@ PhotoItem *PhotoDrop::getPhotoIdx(int idx)
void PhotoDrop::getPhotos(QSet<PhotoItem *> &photos)
{
photos = mPhotos;
photos = mPhotos;
}
@ -453,7 +452,7 @@ void PhotoDrop::checkMoveButtons()
int count = alayout->count();
if ((!mSelected) || (count < 2))
{
buttonStatus(PHOTO_SHIFT_NO_BUTTONS);
buttonStatus(PHOTO_SHIFT_NO_BUTTONS);
return;
}
@ -462,7 +461,7 @@ void PhotoDrop::checkMoveButtons()
{
std::cerr << "PhotoDrop::checkMoveButtons() not GridLayout... not much we can do!";
std::cerr << std::endl;
buttonStatus(PHOTO_SHIFT_NO_BUTTONS);
buttonStatus(PHOTO_SHIFT_NO_BUTTONS);
return;
}
@ -477,15 +476,15 @@ void PhotoDrop::checkMoveButtons()
int maxCol = (count - 1) % mColumns;
if ((selectedRow == 0) && (selectedColumn == 0))
{
buttonStatus(PHOTO_SHIFT_RIGHT_ONLY);
buttonStatus(PHOTO_SHIFT_RIGHT_ONLY);
}
else if ((selectedRow == maxRow) && (selectedColumn == maxCol))
{
buttonStatus(PHOTO_SHIFT_LEFT_ONLY);
buttonStatus(PHOTO_SHIFT_LEFT_ONLY);
}
else
{
buttonStatus(PHOTO_SHIFT_BOTH);
buttonStatus(PHOTO_SHIFT_BOTH);
}
}
@ -547,17 +546,6 @@ void PhotoDrop::dragEnterEvent(QDragEnterEvent *event)
std::cerr << "PhotoDrop::dragEnterEvent()";
std::cerr << std::endl;
#if 0
const QStringList& formats = event->mimeData()->formats();
std::cerr << "dragEnterEvent() Formats" << std::endl;
QStringList::const_iterator it;
for (it = formats.begin(); it != formats.end(); ++it) {
std::cerr << "Format: " << (*it).toStdString();
std::cerr << std::endl;
}
#endif
if (event->mimeData()->hasUrls())
{
std::cerr << "PhotoDrop::dragEnterEvent() Accepting";
@ -589,8 +577,8 @@ void PhotoDrop::dragMoveEvent(QDragMoveEvent *event)
std::cerr << "PhotoDrop::dragMoveEvent()";
std::cerr << std::endl;
event->accept();
//event->ignore();
event->accept();
//event->ignore();
}
void PhotoDrop::dropEvent(QDropEvent *event)
@ -611,11 +599,11 @@ void PhotoDrop::dropEvent(QDropEvent *event)
std::cerr << "Whole URL: " << uit->toString().toStdString() << std::endl;
std::cerr << "or As Local File: " << localpath.toStdString() << std::endl;
PhotoItem* item = new PhotoItem(mHolder, localpath);
addPhotoItem(item);
PhotoItem* item = new PhotoItem(mHolder, localpath, mLastOrder+DEFAULT_ORDER_INCREMENT);
addPhotoItem(item);
}
event->setDropAction(Qt::CopyAction);
event->accept();
event->setDropAction(Qt::CopyAction);
event->accept();
// Notify Listeners. (only happens for drop - not programmatically added).
photosChanged();
@ -624,17 +612,17 @@ void PhotoDrop::dropEvent(QDropEvent *event)
{
std::cerr << "PhotoDrop::dropEvent Ignoring";
std::cerr << std::endl;
event->ignore();
event->ignore();
}
checkMoveButtons();
checkMoveButtons();
}
void PhotoDrop::mousePressEvent(QMouseEvent *event)
{
/* see if this is in the space of one of our children */
QPoint pos = event->pos();
QPoint pos = event->pos();
std::cerr << "PhotoDrop::mousePressEvent(" << pos.x() << ", " << pos.y() << ")";
std::cerr << std::endl;
@ -644,7 +632,7 @@ void PhotoDrop::mousePressEvent(QMouseEvent *event)
void PhotoDrop::setPhotoItemHolder(PhotoShareItemHolder *holder)
{
mHolder = holder;
mHolder = holder;
}
void PhotoDrop::addPhotoItem(PhotoItem *item)
@ -652,20 +640,25 @@ void PhotoDrop::addPhotoItem(PhotoItem *item)
std::cerr << "PhotoDrop::addPhotoItem()";
std::cerr << std::endl;
mPhotos.insert(item);
// record lastOrder number
// so any new photos can be added after this.
if (item->getPhotoDetails().mOrder > mLastOrder) {
mLastOrder = item->getPhotoDetails().mOrder;
}
mPhotos.insert(item);
layout()->addWidget(item);
//checkMoveButtons();
//checkMoveButtons();
}
bool PhotoDrop::deletePhoto(PhotoItem *item)
{
if(mPhotos.contains(item)){
mPhotos.remove(item);
layout()->removeWidget(item);
delete item;
}
else
return false;
if (mPhotos.contains(item)) {
mPhotos.remove(item);
layout()->removeWidget(item);
delete item;
}
else
return false;
}

View File

@ -55,7 +55,7 @@ public:
PhotoItem *getPhotoIdx(int idx);
void getPhotos(QSet<PhotoItem*>& photos);
void addPhotoItem(PhotoItem *item);
void addPhotoItem(PhotoItem *item);
void setPhotoItemHolder(PhotoShareItemHolder* holder);
/*!
@ -91,8 +91,9 @@ private:
PhotoItem *mSelected;
int mColumns;
PhotoShareItemHolder* mHolder;
QSet<PhotoItem*> mPhotos;
PhotoShareItemHolder* mHolder;
QSet<PhotoItem*> mPhotos;
uint32_t mLastOrder;
};
#endif

View File

@ -49,7 +49,7 @@ PhotoItem::PhotoItem(PhotoShareItemHolder *holder, const RsPhotoPhoto &photo, QW
ui->idChooser->setVisible(false);
}
PhotoItem::PhotoItem(PhotoShareItemHolder *holder, const QString& path, QWidget *parent) :
PhotoItem::PhotoItem(PhotoShareItemHolder *holder, const QString& path, uint32_t order, QWidget *parent) :
QWidget(parent),
ui(new Ui::PhotoItem), mHolder(holder)
{
@ -57,25 +57,20 @@ PhotoItem::PhotoItem(PhotoShareItemHolder *holder, const QString& path, QWidget
ui->setupUi(this);
mPhotoDetails.mOrder = order;
QPixmap qtn = QPixmap(path);
// TODO need to scale qtn to something reasonable.
// shouldn't be call thumbnail... we can do a lowRes version.
// do we need to to workout what type of file to convert to?
// jpg, png etc.
// seperate fn should handle all of this.
mThumbNail = qtn.scaled(480,480, Qt::KeepAspectRatio, Qt::SmoothTransformation);
mLowResImage = qtn.scaled(512,512, Qt::KeepAspectRatio, Qt::SmoothTransformation);
ui->label_Thumbnail->setPixmap(qtn.scaled(120, 120, Qt::KeepAspectRatio, Qt::SmoothTransformation));
ui->label_Thumbnail->setPixmap(qtn.scaled(128, 128, Qt::KeepAspectRatio, Qt::SmoothTransformation));
setSelected(false);
getThumbnail(mPhotoDetails.mThumbnail);
getLowResImage(mPhotoDetails.mLowResImage);
connect(ui->lineEdit_Title, SIGNAL(editingFinished()), this, SLOT(setTitle()));
connect(ui->lineEdit_PhotoGrapher, SIGNAL(editingFinished()), this, SLOT(setPhotoGrapher()));
ui->idChooser->loadIds(0, RsGxsId());
}
void PhotoItem::markForDeletion()
@ -114,29 +109,6 @@ void PhotoItem::setSelected(bool selected)
update();
}
bool PhotoItem::getThumbnail(RsGxsImage &image)
{
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
image.copy((uint8_t *) ba.data(), ba.size());
return true;
}
image.clear();
return false;
}
void PhotoItem::setTitle(){
mPhotoDetails.mMeta.mMsgName = ui->lineEdit_Title->text().toStdString();
@ -144,13 +116,11 @@ void PhotoItem::setTitle(){
void PhotoItem::setPhotoGrapher()
{
mPhotoDetails.mPhotographer = ui->lineEdit_PhotoGrapher->text().toStdString();
// mPhotoDetails.mPhotographer = ui->lineEdit_PhotoGrapher->text().toStdString();
}
const RsPhotoPhoto& PhotoItem::getPhotoDetails()
{
if (ui->idChooser->isVisible()) {
RsGxsId id;
switch (ui->idChooser->getChosenId(id)) {
@ -176,18 +146,34 @@ PhotoItem::~PhotoItem()
void PhotoItem::setUp()
{
mTitleLabel = new QLabel();
mPhotoGrapherLabel = new QLabel();
mTitleLabel->setText(QString::fromStdString(mPhotoDetails.mMeta.mMsgName));
mPhotoGrapherLabel->setText(QString::fromStdString(mPhotoDetails.mPhotographer));
ui->editLayOut->addWidget(mPhotoGrapherLabel);
ui->editLayOut->addWidget(mTitleLabel);
updateImage(mPhotoDetails.mThumbnail);
updateImage(mPhotoDetails.mLowResImage);
}
bool PhotoItem::getLowResImage(RsGxsImage &image)
{
const QPixmap *tmppix = &mLowResImage;
QByteArray ba;
QBuffer buffer(&ba);
if(!tmppix->isNull())
{
buffer.open(QIODevice::WriteOnly);
tmppix->save(&buffer, "JPG");
image.copy((uint8_t *) ba.data(), ba.size());
return true;
}
image.clear();
return false;
}
void PhotoItem::updateImage(const RsGxsImage &image)
@ -195,9 +181,9 @@ void PhotoItem::updateImage(const RsGxsImage &image)
if (image.mData != NULL)
{
QPixmap qtn;
qtn.loadFromData(image.mData, image.mSize, "PNG");
ui->label_Thumbnail->setPixmap(qtn.scaled(120, 120, Qt::KeepAspectRatio, Qt::SmoothTransformation));
mThumbNail = qtn;
qtn.loadFromData(image.mData, image.mSize);
ui->label_Thumbnail->setPixmap(qtn.scaled(128, 128, Qt::KeepAspectRatio, Qt::SmoothTransformation));
mLowResImage = qtn;
}
}

View File

@ -39,12 +39,12 @@ public:
enum State { New, Existing, Modified, Deleted };
PhotoItem(PhotoShareItemHolder *holder, const RsPhotoPhoto& photo, QWidget* parent = 0);
PhotoItem(PhotoShareItemHolder *holder, const QString& path, QWidget* parent = 0); // for new photos.
PhotoItem(PhotoShareItemHolder *holder, const QString& path, uint32_t order, QWidget* parent = 0); // for new photos.
~PhotoItem();
void setSelected(bool selected);
bool isSelected(){ return mSelected; }
const RsPhotoPhoto& getPhotoDetails();
bool getThumbnail(RsGxsImage &image);
bool getLowResImage(RsGxsImage &image);
void markForDeletion();
State getState() { return mState; }
@ -62,9 +62,9 @@ private:
private:
Ui::PhotoItem *ui;
QPixmap mThumbNail;
QPixmap mLowResImage;
QPixmap getPixmap() { return mThumbNail; }
QPixmap getPixmap() { return mLowResImage; }
bool mSelected;
State mState;

View File

@ -436,7 +436,7 @@ void PhotoShare::addAlbum(const RsPhotoAlbum &album)
void PhotoShare::addPhoto(const RsPhotoPhoto &photo)
{
if (!photo.mThumbnail.empty())
if (!photo.mLowResImage.empty())
{
PhotoItem* item = new PhotoItem(this, photo, this);
mPhotoItems.insert(item);

View File

@ -179,10 +179,10 @@ void PhotoSlideShow::loadImage()
if (ptr)
{
/* load into the slot */
if (ptr->mThumbnail.mData != NULL)
if (ptr->mLowResImage.mData != NULL)
{
QPixmap qtn;
GxsIdDetails::loadPixmapFromData(ptr->mThumbnail.mData, ptr->mThumbnail.mSize,qtn, GxsIdDetails::ORIGINAL);
GxsIdDetails::loadPixmapFromData(ptr->mLowResImage.mData, ptr->mLowResImage.mSize,qtn, GxsIdDetails::ORIGINAL);
QPixmap sqtn = qtn.scaled(800, 600, Qt::KeepAspectRatio, Qt::SmoothTransformation);
ui.imgLabel->setPixmap(sqtn);
@ -221,6 +221,7 @@ void PhotoSlideShow::requestPhotos()
{
RsTokReqOptions opts;
opts.mReqType = GXS_REQUEST_TYPE_MSG_DATA;
opts.mOptions = RS_TOKREQOPT_MSG_LATEST;
uint32_t token;
std::list<RsGxsGroupId> grpIds;
grpIds.push_back(mAlbum.mMeta.mGroupId);
@ -248,8 +249,7 @@ bool PhotoSlideShow::loadPhotoData(const uint32_t &token)
RsPhotoPhoto *ptr = new RsPhotoPhoto;
*ptr = photo;
ptr->mThumbnail = photo.mThumbnail; // copies data.
ptr->mOrder = i++;
ptr->mLowResImage = photo.mLowResImage; // copies data.
mPhotos[photo.mMeta.mMsgId] = ptr;
mPhotoOrder[ptr->mOrder] = photo.mMeta.mMsgId;

View File

@ -223,8 +223,8 @@
<string/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/arrow-left.png</normaloff>:/images/arrow-left.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/arrow-left.png</normaloff>:/icons/png/arrow-left.png</iconset>
</property>
</widget>
</item>
@ -244,8 +244,8 @@
<string/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/arrow-right.png</normaloff>:/images/arrow-right.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/arrow-right.png</normaloff>:/icons/png/arrow-right.png</iconset>
</property>
</widget>
</item>
@ -512,7 +512,7 @@
<string notr="true">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'MS Shell Dlg 2'; font-size:8pt;&quot;&gt;Description&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textInteractionFlags">

View File

@ -29,6 +29,7 @@
#include <QLineEdit>
#include <QMessageBox>
#include <QDesktopWidget>
#include <iostream>
@ -46,6 +47,10 @@ StartDialog::StartDialog(QWidget *parent)
#endif
Settings->loadWidgetInformation(this);
/* Put the Login dialog in the screen center */
const QRect screen = QApplication::desktop()->screenGeometry();
this->move( screen.center() - this->rect().center() );
/* get all available pgp private certificates....
* mark last one as default.

View File

@ -33,7 +33,7 @@
#include "util/TokenQueue.h"
#define IMAGE_WIRE ":/images/kgames.png"
#define IMAGE_WIRE ":/icons/wire.png"
class WireDialog : public MainPage, public TokenResponse, public PulseHolder
{

View File

@ -89,7 +89,7 @@ void WireGroupDialog::initUi()
QPixmap WireGroupDialog::serviceImage()
{
return QPixmap(":/images/wire_create_64.png");
return QPixmap(":/icons/wire-circle.png");
}
void WireGroupDialog::prepareWireGroup(RsWireGroup &group, const RsGroupMetaData &meta)

View File

@ -231,8 +231,8 @@
<string>&lt;&lt;</string>
</property>
<property name="icon">
<iconset resource="Wiki_images.qrc">
<normaloff>:/images/arrow-left.png</normaloff>:/images/arrow-left.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/arrow-left.png</normaloff>:/icons/png/arrow-left.png</iconset>
</property>
<property name="iconSize">
<size>
@ -260,8 +260,8 @@
<string>&gt;&gt;</string>
</property>
<property name="icon">
<iconset resource="Wiki_images.qrc">
<normaloff>:/images/arrow-right.png</normaloff>:/images/arrow-right.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/arrow-right.png</normaloff>:/icons/png/arrow-right.png</iconset>
</property>
<property name="iconSize">
<size>

View File

@ -1,7 +1,5 @@
<RCC>
<qresource prefix="/">
<file>images/arrow-left.png</file>
<file>images/arrow-right.png</file>
<file>images/addpage.png</file>
<file>images/editpage.png</file>
<file>images/reload.png</file>

View File

@ -93,8 +93,8 @@ ChatLobbyDialog::ChatLobbyDialog(const ChatLobbyId& lid, QWidget *parent, Qt::Wi
voteNegativeAct = new QAction(QIcon(":/icons/png/thumbs-down.png"), tr("Ban this person (Sets negative opinion)"), this);
voteNeutralAct = new QAction(QIcon(":/icons/png/thumbs-neutral.png"), tr("Give neutral opinion"), this);
votePositiveAct = new QAction(QIcon(":/icons/png/thumbs-up.png"), tr("Give positive opinion"), this);
distantChatAct = new QAction(QIcon(":/images/chat_24.png"), tr("Start private chat"), this);
sendMessageAct = new QAction(QIcon(":/images/mail_new.png"), tr("Send Message"), this);
distantChatAct = new QAction(QIcon(":/icons/png/chats.png"), tr("Start private chat"), this);
sendMessageAct = new QAction(QIcon(":/icons/mail/write-mail.png"), tr("Send Message"), this);
showInPeopleAct = new QAction(QIcon(), tr("Show author in people tab"), this);
QActionGroup *sortgrp = new QActionGroup(this);

View File

@ -65,8 +65,8 @@
#define IMAGE_EXPORTFRIEND ":/images/user/friend_suggestion16.png"
#define IMAGE_ADDFRIEND ":/images/user/add_user16.png"
#define IMAGE_FRIENDINFO ":/images/info16.png"
#define IMAGE_CHAT ":/images/chat_24.png"
#define IMAGE_MSG ":/images/mail_new.png"
#define IMAGE_CHAT ":/icons/png/chats.png"
#define IMAGE_MSG ":/icons/mail/write-mail.png"
#define IMAGE_CONNECT ":/images/connect_friend.png"
#define IMAGE_COPYLINK ":/images/copyrslink.png"
#define IMAGE_GROUP16 ":/images/user/group16.png"

View File

@ -63,8 +63,8 @@
#define IMAGE_EXPORTFRIEND ":/images/user/friend_suggestion16.png"
#define IMAGE_ADDFRIEND ":/images/user/add_user16.png"
#define IMAGE_FRIENDINFO ":/images/info16.png"
#define IMAGE_CHAT ":/images/chat_24.png"
#define IMAGE_MSG ":/images/mail_new.png"
#define IMAGE_CHAT ":/icons/png/chats.png"
#define IMAGE_MSG ":/icons/mail/write-mail.png"
#define IMAGE_CONNECT ":/images/connect_friend.png"
#define IMAGE_COPYLINK ":/images/copyrslink.png"
#define IMAGE_GROUP16 ":/images/user/group16.png"

View File

@ -182,6 +182,19 @@ p, li { white-space: pre-wrap; }
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>

View File

@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
<width>565</width>
<width>643</width>
<height>209</height>
</rect>
</property>
@ -171,8 +171,8 @@
<string>Write a quick Message</string>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/message-mail.png</normaloff>:/images/message-mail.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/mail/write-mail.png</normaloff>:/icons/mail/write-mail.png</iconset>
</property>
<property name="checkable">
<bool>false</bool>
@ -203,8 +203,8 @@
<string>Write Message</string>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/mail_send.png</normaloff>:/images/mail_send.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/mail/write-mail.png</normaloff>:/icons/mail/write-mail.png</iconset>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
@ -235,8 +235,8 @@
<string>Start Chat</string>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/chat.png</normaloff>:/images/chat.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/chats.png</normaloff>:/icons/png/chats.png</iconset>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>

View File

@ -159,8 +159,8 @@
<string>Send Message</string>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/mail_new.png</normaloff>:/images/mail_new.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/mail/write-mail.png</normaloff>:/icons/mail/write-mail.png</iconset>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>
@ -188,8 +188,8 @@
<string>Start Chat</string>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/chat_24.png</normaloff>:/images/chat_24.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/chats.png</normaloff>:/icons/png/chats.png</iconset>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonTextBesideIcon</enum>

View File

@ -585,11 +585,11 @@ void GxsGroupDialog::editGroup()
RsGroupMetaData newMeta;
newMeta.mGroupId = mGrpMeta.mGroupId;
if(!prepareGroupMetaData(newMeta))
QString reason;
if(!prepareGroupMetaData(newMeta, reason))
{
/* error message */
QMessageBox::warning(this, "RetroShare", tr("Failed to Prepare Group MetaData - please Review"), QMessageBox::Ok, QMessageBox::Ok);
QMessageBox::warning(this, "RetroShare", tr("Failed to Prepare Group MetaData: ") + reason, QMessageBox::Ok, QMessageBox::Ok);
return; //Don't add a empty name!!
}
@ -612,14 +612,22 @@ void GxsGroupDialog::editGroup()
close();
}
bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta)
bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta, QString &reason)
{
std::cerr << "GxsGroupDialog::prepareGroupMetaData()";
std::cerr << std::endl;
// here would be the place to check for empty author id
// but GXS_SERV::GRP_OPTION_AUTHEN_AUTHOR_SIGN is currently not used by any service
ui.idChooser->getChosenId(meta.mAuthorId);
if ((mDefaultsFlags & GXS_GROUP_DEFAULTS_PERSONAL_GROUP) && (meta.mAuthorId.isNull())) {
std::cerr << "GxsGroupDialog::prepareGroupMetaData()";
std::cerr << " Group needs a Personal Signature";
std::cerr << std::endl;
reason = "Missing AuthorId";
return false;
}
QString name = getName();
uint32_t flags = GXS_SERV::FLAG_PRIVACY_PUBLIC;
@ -628,6 +636,7 @@ bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta)
std::cerr << "GxsGroupDialog::prepareGroupMetaData()";
std::cerr << " Invalid GroupName";
std::cerr << std::endl;
reason = "Missing GroupName";
return false;
}
@ -641,6 +650,7 @@ bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta)
std::cerr << "GxsGroupDialog::prepareGroupMetaData()";
std::cerr << " Invalid Circles";
std::cerr << std::endl;
reason = "Invalid Circle Parameters";
return false;
}
@ -668,10 +678,11 @@ void GxsGroupDialog::createGroup()
uint32_t token;
RsGroupMetaData meta;
if (!prepareGroupMetaData(meta))
QString reason;
if (!prepareGroupMetaData(meta, reason))
{
/* error message */
QMessageBox::warning(this, "RetroShare", tr("Failed to Prepare Group MetaData - please Review"), QMessageBox::Ok, QMessageBox::Ok);
QMessageBox::warning(this, "RetroShare", tr("Failed to Prepare Group MetaData: ") + reason, QMessageBox::Ok, QMessageBox::Ok);
return; //Don't add with invalid circle.
}

View File

@ -84,10 +84,13 @@ public:
#define GXS_GROUP_DEFAULTS_PERSONAL_PGP 0x00000100
#define GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED 0x00000200
#define GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB 0x00000400
// independent from other PERSONAL FLAGS. If Group requires a AuthorId.
#define GXS_GROUP_DEFAULTS_PERSONAL_GROUP 0x00000800
#define GXS_GROUP_DEFAULTS_COMMENTS_YES 0x00001000
#define GXS_GROUP_DEFAULTS_COMMENTS_NO 0x00002000
#define GXS_GROUP_DEFAULTS_ANTISPAM_FAVOR_PGP 0x00100000
#define GXS_GROUP_DEFAULTS_ANTISPAM_TRACK 0x00200000
#define GXS_GROUP_DEFAULTS_ANTISPAM_FAVOR_PGP_KNOWN 0x00400000
@ -271,7 +274,7 @@ private:
void loadGroup(uint32_t token);
void updateFromExistingMeta(const QString &description);
bool prepareGroupMetaData(RsGroupMetaData &meta);
bool prepareGroupMetaData(RsGroupMetaData &meta, QString &reason);
std::list<std::string> mShareList;
QPixmap mPicture;

View File

@ -984,6 +984,7 @@ void GxsGroupFrameDialog::insertGroupsData(const std::map<RsGxsGroupId,RsGroupMe
/* now we can add them in as a tree! */
ui->groupTreeWidget->fillGroupItems(mYourGroups, adminList);
mYourGroups->setText(2, QString::number(mYourGroups->childCount()));
ui->groupTreeWidget->fillGroupItems(mSubscribedGroups, subList);
mSubscribedGroups->setText(2, QString::number(mSubscribedGroups->childCount())); // 1 COLUMN_UNREAD 2 COLUMN_POPULARITY
ui->groupTreeWidget->fillGroupItems(mPopularGroups, popList);

View File

@ -285,7 +285,7 @@ void GxsIdChooser::loadPrivateIds()
QString str = tr("Create new Identity");
QString id = "";
addItem(QIcon(":/images/identity/identity_create_32.png"), str, id);
addItem(QIcon(":/icons/png/add-identity.png"), str, id);
setItemData(count() - 1, QString("%1_%2").arg(TYPE_CREATE_ID).arg(str), ROLE_SORT);
setItemData(count() - 1, TYPE_CREATE_ID, ROLE_TYPE);

View File

@ -249,13 +249,13 @@ void GxsIdTreeItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem
if(id.isNull())
{
str = tr("[Notification]");
icon = QIcon(":/icons/logo_128.png");
icon = QIcon(":/icons/notification.png");
}
else if(! computeNameIconAndComment(id,str,icon,comment))
if(mReloadPeriod > 3)
{
str = tr("[Unknown]");
icon = QIcon();
icon = QIcon(":/icons/anonymous.png");
}
else
{

View File

@ -165,13 +165,13 @@ QString GxsChannelDialog::icon(IconType type)
case ICON_NEW:
return ":/icons/png/add.png";
case ICON_YOUR_GROUP:
return ":/icons/png/channel.png";
return "";
case ICON_SUBSCRIBED_GROUP:
return ":/icons/png/channel-subscribed.png";
return "";
case ICON_POPULAR_GROUP:
return ":/icons/png/channel-popular.png";
return "";
case ICON_OTHER_GROUP:
return ":/icons/png/channel-other.png";
return "";
case ICON_SEARCH:
return ":/images/find.png";
case ICON_DEFAULT:

View File

@ -348,7 +348,6 @@ QVariant RsGxsForumModel::headerData(int section, Qt::Orientation /*orientation*
case COLUMN_THREAD_TITLE: return tr("Title");
case COLUMN_THREAD_DATE: return tr("Date");
case COLUMN_THREAD_AUTHOR: return tr("Author");
case COLUMN_THREAD_DISTRIBUTION: return tr("Distribution");
default:
return QVariant();
}
@ -356,7 +355,7 @@ QVariant RsGxsForumModel::headerData(int section, Qt::Orientation /*orientation*
if(role == Qt::DecorationRole)
switch(section)
{
case COLUMN_THREAD_DISTRIBUTION: return QIcon(":/icons/flag_green.png");
case COLUMN_THREAD_DISTRIBUTION: return QIcon(":/icons/flag-green.png");
case COLUMN_THREAD_READ: return QIcon(":/images/message-state-read.png");
default:
return QVariant();

View File

@ -59,8 +59,9 @@
//#define DEBUG_FORUMS
/* Images for context menu icons */
#define IMAGE_MESSAGE ":/images/mail_new.png"
#define IMAGE_MESSAGEREPLY ":/images/mail_reply.png"
#define IMAGE_MESSAGE ":/icons/mail/compose.png"
#define IMAGE_REPLY ":/icons/mail/reply.png"
#define IMAGE_MESSAGEREPLY ":/icons/mail/write-mail.png"
#define IMAGE_MESSAGEEDIT ":/images/edit_16.png"
#define IMAGE_MESSAGEREMOVE ":/images/mail_delete.png"
#define IMAGE_DOWNLOAD ":/images/start.png"
@ -580,7 +581,7 @@ void GxsForumThreadWidget::threadListCustomPopupMenu(QPoint /*point*/)
QAction *pinUpPostAct = new QAction(QIcon(IMAGE_PINPOST), (is_pinned?tr("Un-pin this post"):tr("Pin this post up")), &contextMnu);
connect(pinUpPostAct , SIGNAL(triggered()), this, SLOT(togglePinUpPost()));
QAction *replyAct = new QAction(QIcon(IMAGE_MESSAGEREPLY), tr("Reply"), &contextMnu);
QAction *replyAct = new QAction(QIcon(IMAGE_REPLY), tr("Reply"), &contextMnu);
connect(replyAct, SIGNAL(triggered()), this, SLOT(replytoforummessage()));
QAction *replyauthorAct = new QAction(QIcon(IMAGE_MESSAGEREPLY), tr("Reply to author with private message"), &contextMnu);

View File

@ -95,7 +95,7 @@
</property>
<property name="icon">
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/add.png</normaloff>:/icons/png/add.png</iconset>
<normaloff>:/icons/mail/compose.png</normaloff>:/icons/mail/compose.png</iconset>
</property>
<property name="iconSize">
<size>
@ -264,7 +264,7 @@
</property>
<property name="icon">
<iconset resource="../icons.qrc">
<normaloff>:/icons/global_switch_on_128.png</normaloff>:/icons/global_switch_on_128.png</iconset>
<normaloff>:/icons/png/download.png</normaloff>:/icons/png/download.png</iconset>
</property>
<property name="autoRaise">
<bool>true</bool>
@ -289,8 +289,8 @@
<string notr="true"/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/replymailall24-hover.png</normaloff>:/images/replymailall24-hover.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/mail/reply.png</normaloff>:/icons/mail/reply.png</iconset>
</property>
<property name="toolButtonStyle">
<enum>Qt::ToolButtonIconOnly</enum>
@ -376,8 +376,8 @@
<string/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/back.png</normaloff>:/images/back.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/arrow-left.png</normaloff>:/icons/png/arrow-left.png</iconset>
</property>
<property name="autoRaise">
<bool>true</bool>
@ -417,8 +417,8 @@
<string/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/forward.png</normaloff>:/images/forward.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/arrow-right.png</normaloff>:/icons/png/arrow-right.png</iconset>
</property>
<property name="autoRaise">
<bool>true</bool>
@ -471,8 +471,11 @@
<string notr="true"/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/start.png</normaloff>:/images/start.png</iconset>
<iconset resource="../icons.qrc">
<normaloff>:/icons/png/next-unread.png</normaloff>:/icons/png/next-unread.png</iconset>
</property>
<property name="autoRaise">
<bool>true</bool>
</property>
</widget>
</item>
@ -524,6 +527,16 @@
</action>
</widget>
<customwidgets>
<customwidget>
<class>LineEditClear</class>
<extends>QLineEdit</extends>
<header>gui/common/LineEditClear.h</header>
</customwidget>
<customwidget>
<class>RSTextBrowser</class>
<extends>QTextBrowser</extends>
<header>gui/common/RSTextBrowser.h</header>
</customwidget>
<customwidget>
<class>SubscribeToolButton</class>
<extends>QToolButton</extends>
@ -534,16 +547,6 @@
<extends>QLabel</extends>
<header>gui/gxs/GxsIdLabel.h</header>
</customwidget>
<customwidget>
<class>LineEditClear</class>
<extends>QLineEdit</extends>
<header location="global">gui/common/LineEditClear.h</header>
</customwidget>
<customwidget>
<class>RSTextBrowser</class>
<extends>QTextBrowser</extends>
<header>gui/common/RSTextBrowser.h</header>
</customwidget>
<customwidget>
<class>ElidedLabel</class>
<extends>QLabel</extends>

View File

@ -151,13 +151,13 @@ QString GxsForumsDialog::icon(IconType type)
case ICON_NEW:
return ":/icons/png/add.png";
case ICON_YOUR_GROUP:
return ":/icons/png/feedreader.png";
return "";
case ICON_SUBSCRIBED_GROUP:
return ":/icons/png/feed-subscribed.png";
return "";
case ICON_POPULAR_GROUP:
return ":/icons/png/feed-popular.png";
return "";
case ICON_OTHER_GROUP:
return ":/icons/png/feed-other.png";
return "";
case ICON_SEARCH:
return ":/images/find.png";
case ICON_DEFAULT:

View File

@ -14,7 +14,7 @@
<string>RetroShare Help</string>
</property>
<property name="windowIcon">
<iconset resource="../../images.qrc">
<iconset>
<normaloff>:/images/help.png</normaloff>:/images/help.png</iconset>
</property>
<property name="autoFillBackground">
@ -25,7 +25,16 @@
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<item>
@ -58,7 +67,16 @@
<enum>QFrame::Raised</enum>
</property>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>9</number>
</property>
<property name="topMargin">
<number>9</number>
</property>
<property name="rightMargin">
<number>9</number>
</property>
<property name="bottomMargin">
<number>9</number>
</property>
<property name="spacing">
@ -69,7 +87,16 @@
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
@ -171,7 +198,16 @@
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
@ -238,7 +274,7 @@
<string>RetroShare Help</string>
</property>
<property name="windowIcon">
<iconset resource="../../images.qrc">
<iconset>
<normaloff>:/images/help.png</normaloff>:/images/help.png</iconset>
</property>
<attribute name="title">
@ -248,7 +284,16 @@
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<item>
@ -297,7 +342,16 @@
<string>Search</string>
</attribute>
<layout class="QGridLayout">
<property name="margin">
<property name="leftMargin">
<number>6</number>
</property>
<property name="topMargin">
<number>6</number>
</property>
<property name="rightMargin">
<number>6</number>
</property>
<property name="bottomMargin">
<number>6</number>
</property>
<property name="spacing">
@ -308,7 +362,16 @@
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item>
@ -445,8 +508,8 @@
</widget>
<action name="actionBack">
<property name="icon">
<iconset resource="../../images.qrc">
<normaloff>:/images/back.png</normaloff>:/images/back.png</iconset>
<iconset resource="../../icons.qrc">
<normaloff>:/icons/png/arrow-left.png</normaloff>:/icons/png/arrow-left.png</iconset>
</property>
<property name="text">
<string>Back</string>
@ -460,8 +523,8 @@
</action>
<action name="actionForward">
<property name="icon">
<iconset resource="../../images.qrc">
<normaloff>:/images/forward.png</normaloff>:/images/forward.png</iconset>
<iconset resource="../../icons.qrc">
<normaloff>:/icons/png/arrow-right.png</normaloff>:/icons/png/arrow-right.png</iconset>
</property>
<property name="text">
<string>Forward</string>
@ -475,8 +538,8 @@
</action>
<action name="actionHome">
<property name="icon">
<iconset resource="../../images.qrc">
<normaloff>:/images/gohome.png</normaloff>:/images/gohome.png</iconset>
<iconset resource="../../icons.qrc">
<normaloff>:/icons/png/home.png</normaloff>:/icons/png/home.png</iconset>
</property>
<property name="text">
<string>Home</string>
@ -514,8 +577,8 @@
</action>
<action name="actionClose">
<property name="icon">
<iconset resource="../../images.qrc">
<normaloff>:/images/exit_24x24.png</normaloff>:/images/exit_24x24.png</iconset>
<iconset resource="../../icons.qrc">
<normaloff>:/icons/png/exit2.png</normaloff>:/icons/png/exit2.png</iconset>
</property>
<property name="text">
<string>Close</string>
@ -551,6 +614,7 @@
</tabstops>
<resources>
<include location="../../images.qrc"/>
<include location="../../icons.qrc"/>
</resources>
<connections>
<connection>

View File

@ -56,6 +56,7 @@
<file>icons/question.png</file>
<file>icons/plugins_128.png</file>
<file>icons/png/add.png</file>
<file>icons/png/add-identity.png</file>
<file>icons/png/anonymous.png</file>
<file>icons/png/attach-image.png</file>
<file>icons/png/attach.png</file>
@ -73,9 +74,6 @@
<file>icons/png/exit.png</file>
<file>icons/png/feedreader-notify.png</file>
<file>icons/png/feedreader.png</file>
<file>icons/png/feed-other.png</file>
<file>icons/png/feed-popular.png</file>
<file>icons/png/feed-subscribed.png</file>
<file>icons/png/filesharing-notify.png</file>
<file>icons/png/filesharing.png</file>
<file>icons/png/font.png</file>
@ -243,9 +241,6 @@
<file>icons/yandex.png</file>
<file>icons/png/markdown-mark.png</file>
<file>icons/png/channel.png</file>
<file>icons/png/channel-other.png</file>
<file>icons/png/channel-popular.png</file>
<file>icons/png/channel-subscribed.png</file>
<file>icons/png/circles-black.png</file>
<file>icons/png/circles-gray.png</file>
<file>icons/png/circles-notify.png</file>
@ -299,6 +294,9 @@
<file>icons/png/add-file.png</file>
<file>icons/png/add-image.png</file>
<file>icons/png/attachements.png</file>
<file>icons/png/arrow-right.png</file>
<file>icons/png/arrow-left.png</file>
<file>icons/png/next-unread.png</file>
<file>icons/mail/compose.png</file>
<file>icons/mail/delete.png</file>
<file>icons/mail/tags.png</file>
@ -311,6 +309,7 @@
<file>icons/mail/reply.png</file>
<file>icons/mail/reply-all.png</file>
<file>icons/mail/attach24.png</file>
<file>icons/mail/write-mail.png</file>
<file>icons/textedit/align.png</file>
<file>icons/textedit/font-decrease.png</file>
<file>icons/textedit/smile.png</file>
@ -318,5 +317,8 @@
<file>icons/textedit/code.png</file>
<file>icons/fullscreen.png</file>
<file>icons/fullscreen-exit.png</file>
<file>icons/notification.png</file>
<file>icons/wire.png</file>
<file>icons/wire-circle.png</file>
</qresource>
</RCC>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 962 B

After

Width:  |  Height:  |  Size: 962 B

View File

Before

Width:  |  Height:  |  Size: 944 B

After

Width:  |  Height:  |  Size: 944 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -56,8 +56,6 @@
<file>images/list_bullet_arrow.png</file>
<file>images/rc_combined.png</file>
<file>images/combobox_arrow.png</file>
<file>images/arrow-left.png</file>
<file>images/arrow-right.png</file>
<file>help/authors.html</file>
<file>help/licence.html</file>
<file>help/thanks.html</file>
@ -81,7 +79,6 @@
<file>images/avatarstatus-bg-away-70.png</file>
<file>images/avatarstatus-bg-busy-70.png</file>
<file>images/avatarstatus-bg-offline-70.png</file>
<file>images/back.png</file>
<file>images/configure.png</file>
<file>images/copyrslink.png</file>
<file>images/contacts24.png</file>
@ -117,18 +114,14 @@
<file>images/add-share24.png</file>
<file>images/avatar_background.png</file>
<file>images/button_cancel.png</file>
<file>images/calendar.png</file>
<file>images/chat.png</file>
<file>images/chat_24.png</file>
<file>images/cancel.png</file>
<file>images/close-down.png</file>
<file>images/close_normal.png</file>
<file>images/contact_new128.png</file>
<file>images/copy.png</file>
<file>images/delete.png</file>
<file>images/deleteall.png</file>
<file>images/deletemail-pressed.png</file>
<file>images/deletemail24.png</file>
<file>images/directoryadd_24x24_shadow.png</file>
<file>images/directoryremove_24x24_shadow.png</file>
<file>images/directoryselect_24x24_shadow.png</file>
@ -197,15 +190,12 @@
<file>images/folder-outbox.png</file>
<file>images/folder-sent.png</file>
<file>images/folder-trash.png</file>
<file>images/forward.png</file>
<file>images/kgames.png</file>
<file>images/go-down.png</file>
<file>images/go-top.png</file>
<file>images/go-up.png</file>
<file>images/go-bottom.png</file>
<file>images/graph-area.png</file>
<file>images/graph-line.png</file>
<file>images/gohome.png</file>
<file>images/gpgp_key_generate.png</file>
<file>images/hide_toolbox_frame.png</file>
<file>images/hide_frame.png</file>
@ -246,17 +236,8 @@
<file>images/logo/logo_info.png</file>
<file>images/logo/logo_splash.png</file>
<file>images/logo/logo_web_nobackground.png</file>
<file>images/mail-message-new.png</file>
<file>images/mail-signed.png</file>
<file>images/mail-signature-unknown.png</file>
<file>images/mail_delete.png</file>
<file>images/mail_get.png</file>
<file>images/mail_reply.png</file>
<file>images/mail_replyall.png</file>
<file>images/mail_forward.png</file>
<file>images/mail_send.png</file>
<file>images/mail_new.png</file>
<file>images/mail_send24.png</file>
<file>images/mailforward24-hover.png</file>
<file>images/message-mail.png</file>
<file>images/message-mail-read.png</file>
@ -276,7 +257,6 @@
<file>images/mute-off-16.png</file>
<file>images/mute-on-16.png</file>
<file>images/new-mail-alert.png</file>
<file>images/new_forum16.png</file>
<file>images/newmsg.png</file>
<file>images/no_avatar_70.png</file>
<file>images/no_avatar_background.png</file>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1022 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 832 B

View File

@ -60,6 +60,7 @@
#define IMAGE_SYSTEM ":/images/user/user_request16.png"
#define IMAGE_DECRYPTMESSAGE ":/images/decrypt-mail.png"
#define IMAGE_AUTHOR_INFO ":/images/info16.png"
#define IMAGE_NOTFICATION ":/icons/notification.png"
#define IMAGE_INBOX ":/images/folder-inbox.png"
#define IMAGE_OUTBOX ":/images/folder-outbox.png"
@ -420,7 +421,7 @@ void MessagesDialog::fillQuickView()
}
item = new QListWidgetItem(tr("System"), ui.quickViewWidget);
item->setIcon(QIcon(IMAGE_SYSTEM));
item->setIcon(QIcon(IMAGE_NOTFICATION));
item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC);
item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_SYSTEM);
item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList

View File

@ -25,12 +25,6 @@
</property>
<item>
<widget class="RSTabWidget" name="tabWidget">
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="tabsClosable">
<bool>true</bool>
</property>

View File

@ -50,7 +50,7 @@ ProfileManager::ProfileManager(QWidget *parent)
/* Invoke Qt Designer generated QObject setup routine */
ui.setupUi(this);
ui.headerFrame->setHeaderImage(QPixmap(":/images/contact_new128.png"));
ui.headerFrame->setHeaderImage(QPixmap(":/icons/png/profile.png"));
ui.headerFrame->setHeaderText(tr("Profile Manager"));
connect(ui.identityTreeWidget, SIGNAL( customContextMenuRequested(QPoint)), this, SLOT( identityTreeWidgetCostumPopupMenu(QPoint)));

View File

@ -134,7 +134,7 @@ p, li { white-space: pre-wrap; }
</customwidget>
</customwidgets>
<resources>
<include location="../images.qrc"/>
<include location="../icons.qrc"/>
</resources>
<connections>
<connection>

View File

@ -860,3 +860,8 @@ PostedCreatePostDialog QPushButton#submitButton:hover {
min-width: 4em;
padding: 2px;
}
MessageWidget QTextBrowser#toText , QTextBrowser#ccText , QTextBrowser#bccText {
background: transparent;
border: none;
}

View File

@ -14,7 +14,7 @@
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">

View File

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>1283</width>
<height>929</height>
<width>712</width>
<height>502</height>
</rect>
</property>
<layout class="QVBoxLayout" name="ServerPageVLayout">
@ -26,7 +26,7 @@
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
<number>0</number>
</property>
<widget class="QWidget" name="tabNetConf">
<attribute name="title">

View File

@ -6,500 +6,534 @@
<rect>
<x>0</x>
<y>0</y>
<width>1339</width>
<height>1519</height>
<width>701</width>
<height>527</height>
</rect>
</property>
<layout class="QVBoxLayout" name="TransferPageVLayout">
<item>
<widget class="QGroupBox" name="sharedGBox">
<property name="title">
<string>Shared Directories</string>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<layout class="QVBoxLayout" name="sharedGBoxVLayout">
<item>
<widget class="QPushButton" name="editShareButton">
<property name="text">
<string>Edit Share</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="shareDownloadDirectoryCB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Automatically share incoming directory (Recommended)</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="autoCheckDirectoriesHLayout">
<item>
<widget class="QCheckBox" name="autoCheckDirectories_CB">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Auto-check shared directories every </string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="autoCheckDirectoriesDelay_SB">
<property name="suffix">
<string> minute(s)</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>5000</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="followSymLinksHLayout">
<item>
<widget class="QCheckBox" name="followSymLinks_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Tells Retroshare to follow the links. Loops and duplicate directories are automatically taken care of. If unchecked, Retroshare will just ignore symbolic links to both files and directories.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>follow symbolic links</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="ignoreDuplicatesHLayout">
<item>
<widget class="QCheckBox" name="ignoreDuplicates_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;When following sybolic links, Retroshare can encounter the same directory/file more than once. If checked, this option will make tell Retroshare to silently ignore the file. This option saves Retroshare indexing against directory loops.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Ignore duplicate files/directories</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="ignoreDuplicates_L">
<property name="text">
<string>Maximum depth (0=unlimited):</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="maxDepth_SB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This value allows you to limit the depth of the directory hierarchy you are indexing, starting from the base directory. If you allow Retroshare to follow symbolic links and unchecked &amp;quot;Ignore duplicate files/directories&amp;quot;, this option will avoid that Retroshare loops indefinitly while parsing directories.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="suffixesIgnoreListHLayout">
<item>
<widget class="QCheckBox" name="suffixesIgnoreList_CB">
<property name="text">
<string>Ignore files ending with:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="suffixesIgnoreList_LE">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Add any combination of suffixes separated by &amp;quot;;&amp;quot; for instance &amp;quot;~;.bak;.old&amp;quot;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="prefixesIgnoreListHLayout">
<item>
<widget class="QCheckBox" name="prefixesIgnoreList_CB">
<property name="text">
<string>ignore files starting with:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="prefixesIgnoreList_LE">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Add any combination of prefixes, separated by &amp;quot;;&amp;quot; for instance &amp;quot;.;~&amp;quot;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="incomingGBox">
<property name="title">
<string>Incoming Directory</string>
</property>
<layout class="QVBoxLayout" name="incomingGBoxVLayout">
<item>
<layout class="QHBoxLayout" name="incomingDirHLayout">
<item>
<widget class="QLineEdit" name="incomingDir">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="incomingButton">
<property name="minimumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="toolTip">
<string>Browse</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/directoryselect_24x24_shadow.png</normaloff>:/images/directoryselect_24x24_shadow.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="autoDLColl_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;WARNING&lt;/span&gt;: Some collection may contains a lot of files.&lt;/p&gt;&lt;p&gt;With this option you cannot check the collection contents before download.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Automatically donwload RsCollection file content (Not recommended)</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="partialGBox">
<property name="title">
<string>Partials Directory</string>
</property>
<layout class="QGridLayout" name="partialGBoxGLayout">
<item row="0" column="0">
<widget class="QLineEdit" name="partialsDir">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="partialButton">
<property name="minimumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="toolTip">
<string>Browse</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/directoryselect_24x24_shadow.png</normaloff>:/images/directoryselect_24x24_shadow.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="transfertGBox">
<property name="title">
<string>Transfer options</string>
</property>
<layout class="QVBoxLayout" name="transfertGBoxVLayout">
<item>
<layout class="QHBoxLayout" name="transfertHLayout">
<item>
<layout class="QVBoxLayout" name="transfertLabelVLayout">
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Directories</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<widget class="QGroupBox" name="sharedGBox">
<property name="title">
<string>Shared Directories</string>
</property>
<layout class="QVBoxLayout" name="sharedGBoxVLayout">
<item>
<widget class="QLabel" name="_queueSize_Label">
<widget class="QPushButton" name="editShareButton">
<property name="text">
<string>Maximum simultaneous downloads:</string>
<string>Edit Share</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_max_up_Label">
<widget class="QCheckBox" name="shareDownloadDirectoryCB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="text">
<string>Maximum uploads per friend (0 = no limit)</string>
<string>Automatically share incoming directory (Recommended)</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_defaultStrategy_Label">
<property name="text">
<string>Default chunk strategy:</string>
</property>
</widget>
<layout class="QHBoxLayout" name="autoCheckDirectoriesHLayout">
<item>
<widget class="QCheckBox" name="autoCheckDirectories_CB">
<property name="sizePolicy">
<sizepolicy hsizetype="Maximum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Auto-check shared directories every </string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="autoCheckDirectoriesDelay_SB">
<property name="suffix">
<string> minute(s)</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>5000</number>
</property>
<property name="value">
<number>10</number>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="_diskSpaceLimit_Label">
<property name="text">
<string>Safety disk space limit :</string>
</property>
</widget>
<layout class="QHBoxLayout" name="followSymLinksHLayout">
<item>
<widget class="QCheckBox" name="followSymLinks_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Tells Retroshare to follow the links. Loops and duplicate directories are automatically taken care of. If unchecked, Retroshare will just ignore symbolic links to both files and directories.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>follow symbolic links</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="_max_tr_up_per_sec_Label">
<property name="text">
<string>Max. tunnel req. forwarded per second:</string>
</property>
</widget>
<layout class="QHBoxLayout" name="ignoreDuplicatesHLayout">
<item>
<widget class="QCheckBox" name="ignoreDuplicates_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;When following sybolic links, Retroshare can encounter the same directory/file more than once. If checked, this option will make tell Retroshare to silently ignore the file. This option saves Retroshare indexing against directory loops.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Ignore duplicate files/directories</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="ignoreDuplicates_L">
<property name="text">
<string>Maximum depth (0=unlimited):</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="maxDepth_SB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This value allows you to limit the depth of the directory hierarchy you are indexing, starting from the base directory. If you allow Retroshare to follow symbolic links and unchecked &amp;quot;Ignore duplicate files/directories&amp;quot;, this option will avoid that Retroshare loops indefinitly while parsing directories.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="_e2e_encryption_Label">
<property name="text">
<string>End-to-end encryption:</string>
</property>
</widget>
<layout class="QHBoxLayout" name="suffixesIgnoreListHLayout">
<item>
<widget class="QCheckBox" name="suffixesIgnoreList_CB">
<property name="text">
<string>Ignore files ending with:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="suffixesIgnoreList_LE">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Add any combination of suffixes separated by &amp;quot;;&amp;quot; for instance &amp;quot;~;.bak;.old&amp;quot;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QLabel" name="_filePermDirectDL_Label">
<layout class="QHBoxLayout" name="prefixesIgnoreListHLayout">
<item>
<widget class="QCheckBox" name="prefixesIgnoreList_CB">
<property name="text">
<string>ignore files starting with:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="prefixesIgnoreList_LE">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Add any combination of prefixes, separated by &amp;quot;;&amp;quot; for instance &amp;quot;.;~&amp;quot;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="incomingGBox">
<property name="title">
<string>Incoming Directory</string>
</property>
<layout class="QVBoxLayout" name="incomingGBoxVLayout">
<item>
<layout class="QHBoxLayout" name="incomingDirHLayout">
<item>
<widget class="QLineEdit" name="incomingDir">
<property name="readOnly">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="incomingButton">
<property name="minimumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="toolTip">
<string>Browse</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/directoryselect_24x24_shadow.png</normaloff>:/images/directoryselect_24x24_shadow.png</iconset>
</property>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="autoDLColl_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;WARNING&lt;/span&gt;: Some collection may contains a lot of files.&lt;/p&gt;&lt;p&gt;With this option you cannot check the collection contents before download.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="text">
<string>Allow direct download:</string>
<string>Automatically donwload RsCollection file content (Not recommended)</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="transfertValuesVLayout">
<item>
<widget class="QSpinBox" name="_queueSize_SB">
<property name="enabled">
</widget>
</item>
<item row="2" column="0">
<widget class="QGroupBox" name="partialGBox">
<property name="title">
<string>Partials Directory</string>
</property>
<layout class="QGridLayout" name="partialGBoxGLayout">
<item row="0" column="0">
<widget class="QLineEdit" name="partialsDir">
<property name="readOnly">
<bool>true</bool>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>5</number>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="_max_up_SB"/>
</item>
<item>
<widget class="QComboBox" name="_defaultStrategy_CB">
<property name="enabled">
<bool>true</bool>
<item row="0" column="1">
<widget class="QPushButton" name="partialButton">
<property name="minimumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>31</width>
<height>31</height>
</size>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Streaming &lt;/span&gt;causes the transfer to request 1MB file chunks in increasing order, facilitating preview while downloading. &lt;span style=&quot; font-weight:600;&quot;&gt;Random&lt;/span&gt; is purely random and favors swarming behavior. &lt;span style=&quot; font-weight:600;&quot;&gt;Progressive&lt;/span&gt; is a compromise, selecting the next chunk at random within less than 50MB after the end of the partial file. That allows some randomness while preventing large empty file initialization times.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>Browse</string>
</property>
<item>
<property name="text">
<string>Streaming</string>
</property>
</item>
<item>
<property name="text">
<string>Progressive</string>
</property>
</item>
<item>
<property name="text">
<string>Random</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QSpinBox" name="_diskSpaceLimit_SB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Retroshare will suspend all transfers and config file saving if the disk space goes below this limit. That prevents loss of information on some systems. A popup window will warn you when that happens.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<property name="text">
<string/>
</property>
<property name="suffix">
<string> MB</string>
<property name="icon">
<iconset resource="../images.qrc">
<normaloff>:/images/directoryselect_24x24_shadow.png</normaloff>:/images/directoryselect_24x24_shadow.png</iconset>
</property>
<property name="minimum">
<number>50</number>
<property name="iconSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>100</number>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="_max_tr_up_per_sec_SB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This value controls how many tunnel request your peer can forward per second. &lt;/p&gt;&lt;p&gt;If you have a large internet bandwidth, you may raise this up to 30-40, to allow statistically longer tunnels to pass. Be very careful though, since this generates many small packets that can significantly slow down your own file transfer. &lt;/p&gt;&lt;p&gt;The default value is 20. If you're not sure, keep it that way.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>20</number>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="_e2e_encryption_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Anonymous tunnels can be end-o-end encrypted. In order to maintain backward compatibility, this can be made optional (choosing &amp;quot;Accepted&amp;quot;), but in the end, all Retroshare nodes will be switched to &amp;quot;Enforced&amp;quot;, meaning that all anonymous transfers will be end-to-end encrypted. With &amp;quot;Accepted&amp;quot;, it is likely that you will transfer using twice as many tunnels, since there is no way to know that an encrypted and a clear tunnel actually transfer from the same source.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Accepted</string>
</property>
</item>
<item>
<property name="text">
<string>Enforced</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="_filePermDirectDL_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;How RS manage direct download setting.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
<item>
<property name="text">
<string>Per user</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item>
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Trust friend nodes with banned files</string>
</property>
</widget>
</item>
<item>
<widget class="QTextEdit" name="textEdit">
<property name="readOnly">
<bool>true</bool>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
</widget>
</item>
<item row="3" column="0">
<widget class="QTextEdit" name="textEdit">
<property name="readOnly">
<bool>true</bool>
</property>
<property name="html">
<string>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'Sans'; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt; font-weight:600;&quot;&gt;RetroShare&lt;/span&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt; is capable of transferring data and search requests between peers that are not necessarily friends. This traffic however only transits through a connected list of friends and is anonymous.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-size:8pt;&quot;&gt;You can separately setup share flags for each shared directory in the shared files dialog to be:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Browsable by friends&lt;/span&gt;: files are seen by your friends.&lt;/li&gt;
&lt;li style=&quot; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Anonymously shared&lt;/span&gt;: files are anonymously reachable through distant F2F tunnels.&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Sans'; font-size:8pt; font-weight:600;&quot;&gt;RetroShare&lt;/span&gt;&lt;span style=&quot; font-family:'Sans'; font-size:8pt;&quot;&gt; is capable of transferring data and search requests between peers that are not necessarily friends. This traffic however only transits through a connected list of friends and is anonymous.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Sans'; font-size:8pt;&quot;&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:'Sans'; font-size:8pt;&quot;&gt;You can separately setup share flags for each shared directory in the shared files dialog to be:&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; -qt-list-indent: 1;&quot;&gt;&lt;li style=&quot; font-family:'Sans'; font-size:8pt;&quot; style=&quot; margin-top:12px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Browsable by friends&lt;/span&gt;: files are seen by your friends.&lt;/li&gt;
&lt;li style=&quot; font-family:'Sans'; font-size:8pt;&quot; style=&quot; margin-top:0px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Anonymously shared&lt;/span&gt;: files are anonymously reachable through distant F2F tunnels.&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</item>
<item row="4" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Transfer options</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QGroupBox" name="transfertGBox">
<property name="title">
<string>Transfer options</string>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<layout class="QHBoxLayout" name="transfertHLayout">
<item>
<layout class="QVBoxLayout" name="transfertLabelVLayout">
<item>
<widget class="QLabel" name="_queueSize_Label">
<property name="text">
<string>Maximum simultaneous downloads:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_max_up_Label">
<property name="text">
<string>Maximum uploads per friend (0 = no limit)</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_defaultStrategy_Label">
<property name="text">
<string>Default chunk strategy:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_diskSpaceLimit_Label">
<property name="text">
<string>Safety disk space limit :</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_max_tr_up_per_sec_Label">
<property name="text">
<string>Max. tunnel req. forwarded per second:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_e2e_encryption_Label">
<property name="text">
<string>End-to-end encryption:</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="_filePermDirectDL_Label">
<property name="text">
<string>Allow direct download:</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="transfertValuesVLayout">
<item>
<widget class="QSpinBox" name="_queueSize_SB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>5</number>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="_max_up_SB"/>
</item>
<item>
<widget class="QComboBox" name="_defaultStrategy_CB">
<property name="enabled">
<bool>true</bool>
</property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Streaming &lt;/span&gt;causes the transfer to request 1MB file chunks in increasing order, facilitating preview while downloading. &lt;span style=&quot; font-weight:600;&quot;&gt;Random&lt;/span&gt; is purely random and favors swarming behavior. &lt;span style=&quot; font-weight:600;&quot;&gt;Progressive&lt;/span&gt; is a compromise, selecting the next chunk at random within less than 50MB after the end of the partial file. That allows some randomness while preventing large empty file initialization times.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Streaming</string>
</property>
</item>
<item>
<property name="text">
<string>Progressive</string>
</property>
</item>
<item>
<property name="text">
<string>Random</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QSpinBox" name="_diskSpaceLimit_SB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Retroshare will suspend all transfers and config file saving if the disk space goes below this limit. That prevents loss of information on some systems. A popup window will warn you when that happens.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="suffix">
<string> MB</string>
</property>
<property name="minimum">
<number>50</number>
</property>
<property name="maximum">
<number>1000</number>
</property>
<property name="singleStep">
<number>10</number>
</property>
<property name="value">
<number>100</number>
</property>
</widget>
</item>
<item>
<widget class="QSpinBox" name="_max_tr_up_per_sec_SB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This value controls how many tunnel request your peer can forward per second. &lt;/p&gt;&lt;p&gt;If you have a large internet bandwidth, you may raise this up to 30-40, to allow statistically longer tunnels to pass. Be very careful though, since this generates many small packets that can significantly slow down your own file transfer. &lt;/p&gt;&lt;p&gt;The default value is 20. If you're not sure, keep it that way.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="singleStep">
<number>1</number>
</property>
<property name="value">
<number>20</number>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="_e2e_encryption_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Anonymous tunnels can be end-o-end encrypted. In order to maintain backward compatibility, this can be made optional (choosing &amp;quot;Accepted&amp;quot;), but in the end, all Retroshare nodes will be switched to &amp;quot;Enforced&amp;quot;, meaning that all anonymous transfers will be end-to-end encrypted. With &amp;quot;Accepted&amp;quot;, it is likely that you will transfer using twice as many tunnels, since there is no way to know that an encrypted and a clear tunnel actually transfer from the same source.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Accepted</string>
</property>
</item>
<item>
<property name="text">
<string>Enforced</string>
</property>
</item>
</widget>
</item>
<item>
<widget class="QComboBox" name="_filePermDirectDL_CB">
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;How RS manage direct download setting.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<item>
<property name="text">
<string>Yes</string>
</property>
</item>
<item>
<property name="text">
<string>No</string>
</property>
</item>
<item>
<property name="text">
<string>Per user</string>
</property>
</item>
</widget>
</item>
</layout>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="checkBox">
<property name="text">
<string>Trust friend nodes with banned files</string>
</property>
</widget>
</item>
<item row="2" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
</layout>

View File

@ -49,11 +49,7 @@
/* Images for toolbar icons */
#define IMAGE_RETROSHARE ":/images/RetroShare16.png"
#define IMAGE_ABOUT ":/images/informations_24x24.png"
#define IMAGE_GAMES ":/images/kgames.png"
#define IMAGE_PHOTO ":/images/lphoto.png"
#define IMAGE_BWGRAPH ":/images/ksysguard.png"
#define IMAGE_CLOSE ":/images/close_normal.png"
#define IMAGE_CALENDAR ":/images/calendar.png"
#define IMAGE_LIBRARY ":/icons/collections.png"
#define IMAGE_PLUGINS ":/images/extension_32.png"
#define IMAGE_WIKI ":/images/wikibook_32.png"
@ -82,11 +78,11 @@ ApplicationWindow::ApplicationWindow(QWidget* parent, Qt::WindowFlags flags)
//GamesDialog *gamesDialog = NULL;
//ui.stackPages->add(gamesDialog = new GamesDialog(ui.stackPages),
// createPageAction(QIcon(IMAGE_GAMES), tr("Games Launcher"), grp));
// createPageAction(QIcon(), tr("Games Launcher"), grp));
//CalDialog *calDialog = NULL;
//ui.stackPages->add(calDialog = new CalDialog(ui.stackPages),
// createPageAction(QIcon(IMAGE_CALENDAR), tr("Shared Calendars"), grp));
// createPageAction(QIcon(), tr("Shared Calendars"), grp));
#if 0
IdDialog *idDialog = NULL;
ui.stackPages->add(idDialog = new IdDialog(ui.stackPages),
@ -103,7 +99,7 @@ ApplicationWindow::ApplicationWindow(QWidget* parent, Qt::WindowFlags flags)
#ifdef RS_USE_PHOTOSHARE
PhotoShare *photoShare = NULL;
ui.stackPages->add(photoShare = new PhotoShare(ui.stackPages),
action = createPageAction(QIcon(IMAGE_PHOTO), tr("Photos"), grp));
action = createPageAction(QIcon(), tr("Photos"), grp));
mNotify.push_back(QPair<MainPage*, QAction*>(photoShare, action));
#endif
@ -122,7 +118,7 @@ ApplicationWindow::ApplicationWindow(QWidget* parent, Qt::WindowFlags flags)
#if USE_VEG_SERVICE
WireDialog *wireDialog = NULL;
ui.stackPages->add(wireDialog = new WireDialog(ui.stackPages),
action = createPageAction(QIcon(IMAGE_BWGRAPH), tr("The Wire"), grp));
action = createPageAction(QIcon(), tr("The Wire"), grp));
mNotify.push_back(QPair<MainPage*, QAction*>(wireDialog, action));
#endif

View File

@ -1159,7 +1159,6 @@ gxsphotoshare {
gui/PhotoShare/PhotoDrop.h \
gui/PhotoShare/AlbumItem.h \
gui/PhotoShare/AlbumDialog.h \
gui/PhotoShare/AlbumCreateDialog.h \
gui/PhotoShare/PhotoItem.h \
gui/PhotoShare/PhotoShareItemHolder.h \
gui/PhotoShare/PhotoShare.h \
@ -1172,7 +1171,6 @@ gxsphotoshare {
gui/PhotoShare/PhotoDialog.ui \
gui/PhotoShare/AlbumItem.ui \
gui/PhotoShare/AlbumDialog.ui \
gui/PhotoShare/AlbumCreateDialog.ui \
gui/PhotoShare/PhotoShare.ui \
gui/PhotoShare/PhotoSlideShow.ui
@ -1184,7 +1182,6 @@ gxsphotoshare {
gui/PhotoShare/PhotoDrop.cpp \
gui/PhotoShare/AlbumItem.cpp \
gui/PhotoShare/AlbumDialog.cpp \
gui/PhotoShare/AlbumCreateDialog.cpp \
gui/PhotoShare/PhotoShareItemHolder.cpp \
gui/PhotoShare/PhotoShare.cpp \
gui/PhotoShare/PhotoSlideShow.cpp