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() ; flush() ;
rstime::rs_usleep(1000*500);
return 0 ; return 0 ;
} }

View File

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

View File

@ -34,30 +34,6 @@
class RsPhoto; class RsPhoto;
extern RsPhoto *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 class RsPhotoPhoto
{ {
public: public:
@ -66,43 +42,25 @@ class RsPhotoPhoto
RsPhotoPhoto(); RsPhotoPhoto();
// THESE ARE IN THE META DATA. // V2 PhotoMsg - keep it simple.
//std::string mAlbumId; // mMeta.mTitle used for Photo Caption.
//std::string mId; // mDescription optional field for addtional notes.
//std::string mTitle; // only used by Album. // mLowResImage - < 50k jpg of image.
std::string mCaption; // mPhotoFile - transfer details for original photo.
std::string mDescription; std::string mDescription;
std::string mPhotographer; uint32_t mOrder;
std::string mWhere; RsGxsImage mLowResImage;
std::string mWhen; RsGxsFile mPhotoFile;
std::string mOther;
std::string mCategory;
std::string mHashTags;
uint32_t mSetFlags;
int mOrder;
RsGxsImage mThumbnail;
int mMode;
// These are not saved. // These are not saved.
std::string path; // if in Mode NEW. std::string mPath; // if New photo
uint32_t mModFlags;
}; };
class RsPhotoAlbumShare #define RSPHOTO_SHAREMODE_LOWRESONLY (1)
{ #define RSPHOTO_SHAREMODE_ORIGINAL (2)
public: #define RSPHOTO_SHAREMODE_DUP_ORIGINAL (3)
#define RSPHOTO_SHAREMODE_DUP_200K (4)
uint32_t mShareType; #define RSPHOTO_SHAREMODE_DUP_1M (5)
std::string mShareGroupId;
std::string mPublishKey;
uint32_t mCommentMode;
uint32_t mResizeMode;
};
class RsPhotoAlbum class RsPhotoAlbum
{ {
@ -111,33 +69,22 @@ class RsPhotoAlbum
RsGroupMetaData mMeta; RsGroupMetaData mMeta;
// THESE ARE IN THE META DATA. // V2 Album - keep it simple.
//std::string mAlbumId; // mMeta.mTitle.
//std::string mTitle; // only used by Album. uint32_t mShareMode;
std::string mCaption; std::string mCaption;
std::string mDescription; std::string mDescription;
std::string mPhotographer; std::string mPhotographer;
std::string mWhere; std::string mWhere;
std::string mWhen; std::string mWhen;
std::string mOther;
std::string mCategory;
std::string mHashTags;
RsGxsImage mThumbnail; RsGxsImage mThumbnail;
int mMode; // Below is not saved.
bool mAutoDownload;
std::string mPhotoPath;
RsPhotoAlbumShare mShareOptions;
// These aren't saved.
uint32_t mSetFlags;
uint32_t mModFlags;
}; };
std::ostream &operator<<(std::ostream &out, const RsPhotoPhoto &photo); std::ostream &operator<<(std::ostream &out, const RsPhotoPhoto &photo);
std::ostream &operator<<(std::ostream &out, const RsPhotoAlbum &album); 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 class RsPhoto: public RsGxsIfaceHelper, public RsGxsCommentService
{ {
public: 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; } explicit RsPhoto(RsGxsIface &gxs) : RsGxsIfaceHelper(gxs) { return; }
virtual ~RsPhoto() { return; } virtual ~RsPhoto() { return; }

View File

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

View File

@ -28,7 +28,7 @@
/* platform independent networking... */ /* platform independent networking... */
#include "pqi/pqinetwork.h" #include "pqi/pqinetwork.h"
#include "pqi/pqiassist.h" #include "pqi/pqiassist.h"
#include "util/rsdebug.h"
#include "util/rsthreads.h" #include "util/rsthreads.h"
class upnpentry class upnpentry
@ -123,4 +123,5 @@ bool checkUPnPActive();
/* active port forwarding */ /* active port forwarding */
std::list<upnpforward> activeForwards; 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) 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_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_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_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_LOCATION, album.mWhere, "mWhere");
RsTypeSerializer::serial_process(j,ctx,TLV_TYPE_STR_DATE, album.mWhen, "mWhen");
album.mThumbnail.serial_process(j, ctx); album.mThumbnail.serial_process(j, ctx);
} }
void RsGxsPhotoPhotoItem::serial_process(RsGenericSerializer::SerializeJob j,RsGenericSerializer::SerializeContext& 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_DESCR, photo.mDescription, "mDescription");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_HASH_TAG, photo.mHashTags, "mHashTags"); RsTypeSerializer::serial_process<uint32_t>(j,ctx,TLV_TYPE_UINT32_PARAM,photo.mOrder,"mOrder");
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_MSG, photo.mOther, "mOther"); photo.mLowResImage.serial_process(j, ctx);
RsTypeSerializer::serial_process(j, ctx, TLV_TYPE_STR_PIC_AUTH, photo.mPhotographer, "mPhotographer"); photo.mPhotoFile.serial_process(j, ctx);
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);
} }
void RsGxsPhotoAlbumItem::clear() void RsGxsPhotoAlbumItem::clear()
{ {
album.mShareMode = RSPHOTO_SHAREMODE_LOWRESONLY;
album.mCaption.clear(); album.mCaption.clear();
album.mCategory.clear();
album.mDescription.clear(); album.mDescription.clear();
album.mHashTags.clear();
album.mOther.clear();
album.mPhotoPath.clear();
album.mPhotographer.clear(); album.mPhotographer.clear();
album.mWhen.clear();
album.mWhere.clear(); album.mWhere.clear();
album.mWhen.clear();
album.mThumbnail.clear(); album.mThumbnail.clear();
// not saved
album.mAutoDownload = false;
} }
void RsGxsPhotoPhotoItem::clear() void RsGxsPhotoPhotoItem::clear()
{ {
photo.mCaption.clear();
photo.mCategory.clear();
photo.mDescription.clear(); photo.mDescription.clear();
photo.mHashTags.clear(); photo.mOrder = 0;
photo.mOther.clear(); photo.mLowResImage.clear();
photo.mPhotographer.clear(); photo.mPhotoFile.clear();
photo.mWhen.clear();
photo.mWhere.clear(); // not saved
photo.mThumbnail.clear(); photo.mPath.clear();
} }

View File

@ -25,19 +25,14 @@
RsPhoto *rsPhoto = NULL; 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() RsPhotoPhoto::RsPhotoPhoto()
:mSetFlags(0), mOrder(0), mMode(0), mModFlags(0) :mOrder(0)
{ {
return; return;
} }
RsPhotoAlbum::RsPhotoAlbum() RsPhotoAlbum::RsPhotoAlbum()
:mMode(0), mSetFlags(0), mModFlags(0) :mShareMode(RSPHOTO_SHAREMODE_LOWRESONLY), mAutoDownload(false)
{ {
return; return;
} }

View File

@ -74,7 +74,6 @@
#define IMAGE_COLLOPEN ":/icons/collections.png" #define IMAGE_COLLOPEN ":/icons/collections.png"
#define IMAGE_EDITSHARE ":/images/edit_16.png" #define IMAGE_EDITSHARE ":/images/edit_16.png"
#define IMAGE_MYFILES ":/icons/svg/folders1.svg" #define IMAGE_MYFILES ":/icons/svg/folders1.svg"
#define IMAGE_REMOVE ":/images/deletemail24.png"
/*define viewType_CB value */ /*define viewType_CB value */
#define VIEW_TYPE_TREE 0 #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 ); sendlinkAct = new QAction(QIcon(IMAGE_COPYLINK), tr( "Send retroshare Links" ), this );
connect( sendlinkAct , SIGNAL( triggered() ), this, SLOT( sendLinkTo( ) ) ); 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() ) ); connect( removeExtraFileAct , SIGNAL( triggered() ), this, SLOT( removeExtraFile() ) );
collCreateAct= new QAction(QIcon(IMAGE_COLLCREATE), tr("Create Collection..."), this) ; 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) 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()) if(own_identities.empty())
action->setEnabled(false) ; action->setEnabled(false) ;
@ -2128,7 +2128,7 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
} }
else 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) 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 // 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(); contextMenu->addSeparator();
if(n_is_a_contact == 0) if(n_is_a_contact == 0)
contextMenu->addAction(QIcon(), tr("Add to Contacts"), this, SLOT(addtoContacts())); 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) if(n_is_not_a_contact == 0)
contextMenu->addAction(QIcon(":/images/cancel.png"), tr("Remove from Contacts"), this, SLOT(removefromContacts())); contextMenu->addAction(QIcon(":/images/cancel.png"), tr("Remove from Contacts"), this, SLOT(removefromContacts()));
@ -2176,7 +2175,7 @@ void IdDialog::IdListCustomPopupMenu( QPoint )
{ {
contextMenu->addSeparator(); 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->editIdentity);
contextMenu->addAction(ui->removeIdentity); contextMenu->addAction(ui->removeIdentity);
} }

View File

@ -142,8 +142,6 @@
#define IMAGE_BWGRAPH ":/icons/png/bandwidth.png" #define IMAGE_BWGRAPH ":/icons/png/bandwidth.png"
#define IMAGE_MESSENGER ":/images/rsmessenger48.png" #define IMAGE_MESSENGER ":/images/rsmessenger48.png"
#define IMAGE_COLOR ":/images/highlight.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_NEWRSCOLLECTION ":/images/library.png"
#define IMAGE_ADDSHARE ":/images/directoryadd_24x24_shadow.png" #define IMAGE_ADDSHARE ":/images/directoryadd_24x24_shadow.png"
#define IMAGE_OPTIONS ":/images/settings.png" #define IMAGE_OPTIONS ":/images/settings.png"

View File

@ -48,11 +48,9 @@
/* Images for context menu icons */ /* Images for context menu icons */
#define IMAGE_PEERDETAILS ":/images/info16.png" #define IMAGE_PEERDETAILS ":/images/info16.png"
#define IMAGE_CLEAN_UNUSED ":/images/deletemail24.png"
#define IMAGE_MAKEFRIEND ":/images/user/add_user16.png" #define IMAGE_MAKEFRIEND ":/images/user/add_user16.png"
#define IMAGE_EXPORT ""
#define IMAGE_COPYLINK ":/images/copyrslink.png" #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 * #define NET_DEBUG 1
@ -130,11 +128,11 @@ void NetworkDialog::connectTreeWidgetCostumPopupMenu( QPoint /*point*/ )
return ; return ;
if(peer_id == rsPeers->getGPGOwnId()) 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->addAction(QIcon(IMAGE_PEERDETAILS), tr("Profile details..."), this, SLOT(peerdetails()));
contextMnu->addSeparator() ; 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()); contextMnu->exec(QCursor::pos());
} }

View File

@ -14,7 +14,7 @@
#include "IdentityItem.h" #include "IdentityItem.h"
#define IMAGE_MAKEFRIEND ":/images/user/add_user16.png" #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 ; IdentityItem *IdentityItem::_selected_node = NULL ;

View File

@ -458,7 +458,7 @@ void PeopleDialog::iw_AddButtonClickedExt()
} }
else 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) 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())); 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())); actionsendinvite->setData( QString::fromStdString(dest->groupInfo().mMeta.mGroupId.toStdString()));
contextMnu.addSeparator(); 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())); actionaddcontact->setData( QString::fromStdString(dest->groupInfo().mMeta.mGroupId.toStdString()));
contextMnu.addSeparator(); 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_Title->setText(QString::fromStdString(mAlbum.mMeta.mGroupName));
ui->lineEdit_Caption->setText(QString::fromStdString(mAlbum.mCaption)); ui->lineEdit_Caption->setText(QString::fromStdString(mAlbum.mCaption));
ui->lineEdit_Category->setText(QString::fromStdString(mAlbum.mCategory));
if (mAlbum.mThumbnail.mSize != 0) if (mAlbum.mThumbnail.mSize != 0)
{ {
@ -121,7 +120,7 @@ void AlbumDialog::updateAlbumPhotos()
// flag image as Deleted. // flag image as Deleted.
// clear image. // clear image.
// clear file URL (todo) // clear file URL (todo)
photo.mThumbnail.clear(); photo.mLowResImage.clear();
} }
break; break;
} }
@ -221,7 +220,6 @@ void AlbumDialog::loadPhotoData(const uint32_t &token)
rsPhoto->getPhoto(token, res); rsPhoto->getPhoto(token, res);
PhotoResult::iterator mit = res.begin(); PhotoResult::iterator mit = res.begin();
for (; mit != res.end(); ++mit) for (; mit != res.end(); ++mit)
{ {
std::vector<RsPhotoPhoto>& photoV = mit->second; std::vector<RsPhotoPhoto>& photoV = mit->second;
@ -230,8 +228,7 @@ void AlbumDialog::loadPhotoData(const uint32_t &token)
for (; vit != photoV.end(); ++vit) for (; vit != photoV.end(); ++vit)
{ {
RsPhotoPhoto& photo = *vit; RsPhotoPhoto& photo = *vit;
if (!photo.mLowResImage.empty()) {
if (!photo.mThumbnail.empty()) {
addPhoto(photo); addPhoto(photo);
} }
} }
@ -287,5 +284,3 @@ void AlbumDialog::loadRequest(const TokenQueue *queue, const TokenRequest &req)
} }
/**************************** Request / Response Filling of Data ************************/ /**************************** Request / Response Filling of Data ************************/

View File

@ -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

@ -35,6 +35,18 @@ public:
explicit AlbumExtra(QWidget *parent = 0); explicit AlbumExtra(QWidget *parent = 0);
virtual ~AlbumExtra(); 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: private:
void setUp(); void setUp();
private: private:

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>513</width> <width>516</width>
<height>198</height> <height>199</height>
</rect> </rect>
</property> </property>
<property name="sizePolicy"> <property name="sizePolicy">
@ -21,119 +21,73 @@
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <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"> <widget class="QLabel" name="label_2">
<property name="text"> <property name="text">
<string>Quality:</string> <string>Quality:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="1" column="1"> <item row="0" column="1">
<widget class="QComboBox" name="comboBox_5"> <widget class="QComboBox" name="comboBox_shareMode">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed"> <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
</property> </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> <item>
<property name="text"> <property name="text">
<string>Resize Images (&lt; 1Mb)</string> <string>Resize Images (&lt; 1Mb)</string>
</property> </property>
</item> </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> </widget>
</item> </item>
<item row="2" column="0" colspan="2"> <item row="1" column="0" colspan="2">
<widget class="Line" name="line"> <widget class="Line" name="line">
<property name="orientation"> <property name="orientation">
<enum>Qt::Horizontal</enum> <enum>Qt::Horizontal</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="2" column="0">
<widget class="QLabel" name="captionLabel"> <widget class="QLabel" name="captionLabel">
<property name="text"> <property name="text">
<string>Caption:</string> <string>Caption:</string>
</property> </property>
</widget> </widget>
</item> </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"> <item row="3" column="1">
<widget class="QLineEdit" name="lineEdit_Caption_2"/> <widget class="QLineEdit" name="lineEdit_Photographer"/>
</item> </item>
<item row="4" column="0"> <item row="4" column="0">
<widget class="QLabel" name="label_14"> <widget class="QLabel" name="label_14">
@ -146,14 +100,14 @@
<widget class="QLineEdit" name="lineEdit_Where"/> <widget class="QLineEdit" name="lineEdit_Where"/>
</item> </item>
<item row="5" column="0"> <item row="5" column="0">
<widget class="QLabel" name="label_12"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>Photographer:</string> <string>When:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="1"> <item row="5" column="1">
<widget class="QLineEdit" name="lineEdit_Photographer"/> <widget class="QLineEdit" name="lineEdit_When"/>
</item> </item>
</layout> </layout>
</widget> </widget>

View File

@ -37,21 +37,26 @@ const uint32_t AlbumCreateEnabledFlags = (
GXS_GROUP_FLAGS_EXTRA | GXS_GROUP_FLAGS_EXTRA |
0); 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 | uint32_t AlbumCreateDefaultsFlags = ( GXS_GROUP_DEFAULTS_DISTRIB_PUBLIC |
//GXS_GROUP_DEFAULTS_DISTRIB_GROUP | //GXS_GROUP_DEFAULTS_DISTRIB_GROUP |
//GXS_GROUP_DEFAULTS_DISTRIB_LOCAL | //GXS_GROUP_DEFAULTS_DISTRIB_LOCAL |
GXS_GROUP_DEFAULTS_PUBLISH_OPEN | //GXS_GROUP_DEFAULTS_PUBLISH_OPEN |
//GXS_GROUP_DEFAULTS_PUBLISH_THREADS | GXS_GROUP_DEFAULTS_PUBLISH_THREADS |
//GXS_GROUP_DEFAULTS_PUBLISH_REQUIRED | //GXS_GROUP_DEFAULTS_PUBLISH_REQUIRED |
//GXS_GROUP_DEFAULTS_PUBLISH_ENCRYPTED | //GXS_GROUP_DEFAULTS_PUBLISH_ENCRYPTED |
//GXS_GROUP_DEFAULTS_PERSONAL_GPG | //GXS_GROUP_DEFAULTS_PERSONAL_GPG |
GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED | //GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED |
//GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB | GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB |
GXS_GROUP_DEFAULTS_PERSONAL_GROUP |
//GXS_GROUP_DEFAULTS_COMMENTS_YES | GXS_GROUP_DEFAULTS_COMMENTS_YES |
GXS_GROUP_DEFAULTS_COMMENTS_NO | //GXS_GROUP_DEFAULTS_COMMENTS_NO |
0); 0);
uint32_t AlbumEditEnabledFlags = AlbumCreateEnabledFlags; uint32_t AlbumEditEnabledFlags = AlbumCreateEnabledFlags;
@ -88,7 +93,8 @@ void AlbumGroupDialog::initUi()
setUiText(UITYPE_CONTACTS_DOCK, tr("Select Album Admins")); setUiText(UITYPE_CONTACTS_DOCK, tr("Select Album Admins"));
// Inject Extra Widgets. // Inject Extra Widgets.
injectExtraWidget(new AlbumExtra(this)); mAlbumExtra = new AlbumExtra(this);
injectExtraWidget(mAlbumExtra);
} }
QPixmap AlbumGroupDialog::serviceImage() QPixmap AlbumGroupDialog::serviceImage()
@ -115,11 +121,12 @@ void AlbumGroupDialog::prepareAlbumGroup(RsPhotoAlbum &group, const RsGroupMetaD
group.mThumbnail.clear(); group.mThumbnail.clear();
} }
// Additional Fields that we need to fill in. // Additional Fields.
group.mCaption = "Caption goes here"; group.mShareMode = mAlbumExtra->getShareMode();
group.mPhotographer = "photographer"; group.mCaption = mAlbumExtra->getCaption();
group.mWhere = "Where?"; group.mPhotographer = mAlbumExtra->getPhotographer();
group.mWhere = mAlbumExtra->getWhere();
group.mWhen = mAlbumExtra->getWhen();
} }
bool AlbumGroupDialog::service_CreateGroup(uint32_t &token, const RsGroupMetaData &meta) 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")); 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; return true;
} }

View File

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

View File

@ -55,7 +55,7 @@ PhotoDialog::~PhotoDialog()
void PhotoDialog::setUp() void PhotoDialog::setUp()
{ {
QPixmap qtn; 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->setPixmap(qtn);
ui->label_Photo->setVisible(true); ui->label_Photo->setVisible(true);

View File

@ -48,11 +48,10 @@ class gridIndex
}; };
#define DEFAULT_ORDER_INCREMENT (100)
PhotoDrop::PhotoDrop(QWidget *parent) PhotoDrop::PhotoDrop(QWidget *parent)
: QWidget(parent) :QWidget(parent), mLastOrder(0)
{ {
setAcceptDrops(true); setAcceptDrops(true);
@ -547,17 +546,6 @@ void PhotoDrop::dragEnterEvent(QDragEnterEvent *event)
std::cerr << "PhotoDrop::dragEnterEvent()"; std::cerr << "PhotoDrop::dragEnterEvent()";
std::cerr << std::endl; 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()) if (event->mimeData()->hasUrls())
{ {
std::cerr << "PhotoDrop::dragEnterEvent() Accepting"; std::cerr << "PhotoDrop::dragEnterEvent() Accepting";
@ -611,7 +599,7 @@ void PhotoDrop::dropEvent(QDropEvent *event)
std::cerr << "Whole URL: " << uit->toString().toStdString() << std::endl; std::cerr << "Whole URL: " << uit->toString().toStdString() << std::endl;
std::cerr << "or As Local File: " << localpath.toStdString() << std::endl; std::cerr << "or As Local File: " << localpath.toStdString() << std::endl;
PhotoItem* item = new PhotoItem(mHolder, localpath); PhotoItem* item = new PhotoItem(mHolder, localpath, mLastOrder+DEFAULT_ORDER_INCREMENT);
addPhotoItem(item); addPhotoItem(item);
} }
event->setDropAction(Qt::CopyAction); event->setDropAction(Qt::CopyAction);
@ -652,11 +640,16 @@ void PhotoDrop::addPhotoItem(PhotoItem *item)
std::cerr << "PhotoDrop::addPhotoItem()"; std::cerr << "PhotoDrop::addPhotoItem()";
std::cerr << std::endl; std::cerr << std::endl;
// record lastOrder number
// so any new photos can be added after this.
if (item->getPhotoDetails().mOrder > mLastOrder) {
mLastOrder = item->getPhotoDetails().mOrder;
}
mPhotos.insert(item); mPhotos.insert(item);
layout()->addWidget(item); layout()->addWidget(item);
//checkMoveButtons(); //checkMoveButtons();
} }
bool PhotoDrop::deletePhoto(PhotoItem *item) bool PhotoDrop::deletePhoto(PhotoItem *item)

View File

@ -93,6 +93,7 @@ private:
int mColumns; int mColumns;
PhotoShareItemHolder* mHolder; PhotoShareItemHolder* mHolder;
QSet<PhotoItem*> mPhotos; QSet<PhotoItem*> mPhotos;
uint32_t mLastOrder;
}; };
#endif #endif

View File

@ -49,7 +49,7 @@ PhotoItem::PhotoItem(PhotoShareItemHolder *holder, const RsPhotoPhoto &photo, QW
ui->idChooser->setVisible(false); 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), QWidget(parent),
ui(new Ui::PhotoItem), mHolder(holder) ui(new Ui::PhotoItem), mHolder(holder)
{ {
@ -57,25 +57,20 @@ PhotoItem::PhotoItem(PhotoShareItemHolder *holder, const QString& path, QWidget
ui->setupUi(this); ui->setupUi(this);
mPhotoDetails.mOrder = order;
QPixmap qtn = QPixmap(path); QPixmap qtn = QPixmap(path);
// TODO need to scale qtn to something reasonable. mLowResImage = qtn.scaled(512,512, Qt::KeepAspectRatio, Qt::SmoothTransformation);
// 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);
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); setSelected(false);
getThumbnail(mPhotoDetails.mThumbnail); getLowResImage(mPhotoDetails.mLowResImage);
connect(ui->lineEdit_Title, SIGNAL(editingFinished()), this, SLOT(setTitle())); connect(ui->lineEdit_Title, SIGNAL(editingFinished()), this, SLOT(setTitle()));
connect(ui->lineEdit_PhotoGrapher, SIGNAL(editingFinished()), this, SLOT(setPhotoGrapher())); connect(ui->lineEdit_PhotoGrapher, SIGNAL(editingFinished()), this, SLOT(setPhotoGrapher()));
ui->idChooser->loadIds(0, RsGxsId()); ui->idChooser->loadIds(0, RsGxsId());
} }
void PhotoItem::markForDeletion() void PhotoItem::markForDeletion()
@ -114,29 +109,6 @@ void PhotoItem::setSelected(bool selected)
update(); 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(){ void PhotoItem::setTitle(){
mPhotoDetails.mMeta.mMsgName = ui->lineEdit_Title->text().toStdString(); mPhotoDetails.mMeta.mMsgName = ui->lineEdit_Title->text().toStdString();
@ -144,13 +116,11 @@ void PhotoItem::setTitle(){
void PhotoItem::setPhotoGrapher() void PhotoItem::setPhotoGrapher()
{ {
mPhotoDetails.mPhotographer = ui->lineEdit_PhotoGrapher->text().toStdString(); // mPhotoDetails.mPhotographer = ui->lineEdit_PhotoGrapher->text().toStdString();
} }
const RsPhotoPhoto& PhotoItem::getPhotoDetails() const RsPhotoPhoto& PhotoItem::getPhotoDetails()
{ {
if (ui->idChooser->isVisible()) { if (ui->idChooser->isVisible()) {
RsGxsId id; RsGxsId id;
switch (ui->idChooser->getChosenId(id)) { switch (ui->idChooser->getChosenId(id)) {
@ -176,18 +146,34 @@ PhotoItem::~PhotoItem()
void PhotoItem::setUp() void PhotoItem::setUp()
{ {
mTitleLabel = new QLabel(); mTitleLabel = new QLabel();
mPhotoGrapherLabel = new QLabel(); mPhotoGrapherLabel = new QLabel();
mTitleLabel->setText(QString::fromStdString(mPhotoDetails.mMeta.mMsgName)); mTitleLabel->setText(QString::fromStdString(mPhotoDetails.mMeta.mMsgName));
mPhotoGrapherLabel->setText(QString::fromStdString(mPhotoDetails.mPhotographer));
ui->editLayOut->addWidget(mPhotoGrapherLabel); ui->editLayOut->addWidget(mPhotoGrapherLabel);
ui->editLayOut->addWidget(mTitleLabel); 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) void PhotoItem::updateImage(const RsGxsImage &image)
@ -195,9 +181,9 @@ void PhotoItem::updateImage(const RsGxsImage &image)
if (image.mData != NULL) if (image.mData != NULL)
{ {
QPixmap qtn; QPixmap qtn;
qtn.loadFromData(image.mData, image.mSize, "PNG"); qtn.loadFromData(image.mData, image.mSize);
ui->label_Thumbnail->setPixmap(qtn.scaled(120, 120, Qt::KeepAspectRatio, Qt::SmoothTransformation)); ui->label_Thumbnail->setPixmap(qtn.scaled(128, 128, Qt::KeepAspectRatio, Qt::SmoothTransformation));
mThumbNail = qtn; mLowResImage = qtn;
} }
} }

View File

@ -39,12 +39,12 @@ public:
enum State { New, Existing, Modified, Deleted }; enum State { New, Existing, Modified, Deleted };
PhotoItem(PhotoShareItemHolder *holder, const RsPhotoPhoto& photo, QWidget* parent = 0); 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(); ~PhotoItem();
void setSelected(bool selected); void setSelected(bool selected);
bool isSelected(){ return mSelected; } bool isSelected(){ return mSelected; }
const RsPhotoPhoto& getPhotoDetails(); const RsPhotoPhoto& getPhotoDetails();
bool getThumbnail(RsGxsImage &image); bool getLowResImage(RsGxsImage &image);
void markForDeletion(); void markForDeletion();
State getState() { return mState; } State getState() { return mState; }
@ -62,9 +62,9 @@ private:
private: private:
Ui::PhotoItem *ui; Ui::PhotoItem *ui;
QPixmap mThumbNail; QPixmap mLowResImage;
QPixmap getPixmap() { return mThumbNail; } QPixmap getPixmap() { return mLowResImage; }
bool mSelected; bool mSelected;
State mState; State mState;

View File

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

View File

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

View File

@ -223,8 +223,8 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../images.qrc"> <iconset resource="../icons.qrc">
<normaloff>:/images/arrow-left.png</normaloff>:/images/arrow-left.png</iconset> <normaloff>:/icons/png/arrow-left.png</normaloff>:/icons/png/arrow-left.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
@ -244,8 +244,8 @@
<string/> <string/>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../images.qrc"> <iconset resource="../icons.qrc">
<normaloff>:/images/arrow-right.png</normaloff>:/images/arrow-right.png</iconset> <normaloff>:/icons/png/arrow-right.png</normaloff>:/icons/png/arrow-right.png</iconset>
</property> </property>
</widget> </widget>
</item> </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; <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; &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; } 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> &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>
<property name="textInteractionFlags"> <property name="textInteractionFlags">

View File

@ -29,6 +29,7 @@
#include <QLineEdit> #include <QLineEdit>
#include <QMessageBox> #include <QMessageBox>
#include <QDesktopWidget>
#include <iostream> #include <iostream>
@ -47,6 +48,10 @@ StartDialog::StartDialog(QWidget *parent)
Settings->loadWidgetInformation(this); 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.... /* get all available pgp private certificates....
* mark last one as default. * mark last one as default.
*/ */

View File

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

View File

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

View File

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

View File

@ -1,7 +1,5 @@
<RCC> <RCC>
<qresource prefix="/"> <qresource prefix="/">
<file>images/arrow-left.png</file>
<file>images/arrow-right.png</file>
<file>images/addpage.png</file> <file>images/addpage.png</file>
<file>images/editpage.png</file> <file>images/editpage.png</file>
<file>images/reload.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); 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); 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); 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); distantChatAct = new QAction(QIcon(":/icons/png/chats.png"), tr("Start private chat"), this);
sendMessageAct = new QAction(QIcon(":/images/mail_new.png"), tr("Send Message"), 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); showInPeopleAct = new QAction(QIcon(), tr("Show author in people tab"), this);
QActionGroup *sortgrp = new QActionGroup(this); QActionGroup *sortgrp = new QActionGroup(this);

View File

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

View File

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

View File

@ -182,6 +182,19 @@ p, li { white-space: pre-wrap; }
</property> </property>
</widget> </widget>
</item> </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> </layout>
</item> </item>
</layout> </layout>

View File

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

View File

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

View File

@ -585,11 +585,11 @@ void GxsGroupDialog::editGroup()
RsGroupMetaData newMeta; RsGroupMetaData newMeta;
newMeta.mGroupId = mGrpMeta.mGroupId; newMeta.mGroupId = mGrpMeta.mGroupId;
QString reason;
if(!prepareGroupMetaData(newMeta)) if(!prepareGroupMetaData(newMeta, reason))
{ {
/* error message */ /* 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!! return; //Don't add a empty name!!
} }
@ -612,14 +612,22 @@ void GxsGroupDialog::editGroup()
close(); close();
} }
bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta) bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta, QString &reason)
{ {
std::cerr << "GxsGroupDialog::prepareGroupMetaData()"; std::cerr << "GxsGroupDialog::prepareGroupMetaData()";
std::cerr << std::endl; std::cerr << std::endl;
// here would be the place to check for empty author id // 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 // but GXS_SERV::GRP_OPTION_AUTHEN_AUTHOR_SIGN is currently not used by any service
ui.idChooser->getChosenId(meta.mAuthorId); 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(); QString name = getName();
uint32_t flags = GXS_SERV::FLAG_PRIVACY_PUBLIC; uint32_t flags = GXS_SERV::FLAG_PRIVACY_PUBLIC;
@ -628,6 +636,7 @@ bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta)
std::cerr << "GxsGroupDialog::prepareGroupMetaData()"; std::cerr << "GxsGroupDialog::prepareGroupMetaData()";
std::cerr << " Invalid GroupName"; std::cerr << " Invalid GroupName";
std::cerr << std::endl; std::cerr << std::endl;
reason = "Missing GroupName";
return false; return false;
} }
@ -641,6 +650,7 @@ bool GxsGroupDialog::prepareGroupMetaData(RsGroupMetaData &meta)
std::cerr << "GxsGroupDialog::prepareGroupMetaData()"; std::cerr << "GxsGroupDialog::prepareGroupMetaData()";
std::cerr << " Invalid Circles"; std::cerr << " Invalid Circles";
std::cerr << std::endl; std::cerr << std::endl;
reason = "Invalid Circle Parameters";
return false; return false;
} }
@ -668,10 +678,11 @@ void GxsGroupDialog::createGroup()
uint32_t token; uint32_t token;
RsGroupMetaData meta; RsGroupMetaData meta;
if (!prepareGroupMetaData(meta)) QString reason;
if (!prepareGroupMetaData(meta, reason))
{ {
/* error message */ /* 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. 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_PGP 0x00000100
#define GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED 0x00000200 #define GXS_GROUP_DEFAULTS_PERSONAL_REQUIRED 0x00000200
#define GXS_GROUP_DEFAULTS_PERSONAL_IFNOPUB 0x00000400 #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_YES 0x00001000
#define GXS_GROUP_DEFAULTS_COMMENTS_NO 0x00002000 #define GXS_GROUP_DEFAULTS_COMMENTS_NO 0x00002000
#define GXS_GROUP_DEFAULTS_ANTISPAM_FAVOR_PGP 0x00100000 #define GXS_GROUP_DEFAULTS_ANTISPAM_FAVOR_PGP 0x00100000
#define GXS_GROUP_DEFAULTS_ANTISPAM_TRACK 0x00200000 #define GXS_GROUP_DEFAULTS_ANTISPAM_TRACK 0x00200000
#define GXS_GROUP_DEFAULTS_ANTISPAM_FAVOR_PGP_KNOWN 0x00400000 #define GXS_GROUP_DEFAULTS_ANTISPAM_FAVOR_PGP_KNOWN 0x00400000
@ -271,7 +274,7 @@ private:
void loadGroup(uint32_t token); void loadGroup(uint32_t token);
void updateFromExistingMeta(const QString &description); void updateFromExistingMeta(const QString &description);
bool prepareGroupMetaData(RsGroupMetaData &meta); bool prepareGroupMetaData(RsGroupMetaData &meta, QString &reason);
std::list<std::string> mShareList; std::list<std::string> mShareList;
QPixmap mPicture; 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! */ /* now we can add them in as a tree! */
ui->groupTreeWidget->fillGroupItems(mYourGroups, adminList); ui->groupTreeWidget->fillGroupItems(mYourGroups, adminList);
mYourGroups->setText(2, QString::number(mYourGroups->childCount()));
ui->groupTreeWidget->fillGroupItems(mSubscribedGroups, subList); ui->groupTreeWidget->fillGroupItems(mSubscribedGroups, subList);
mSubscribedGroups->setText(2, QString::number(mSubscribedGroups->childCount())); // 1 COLUMN_UNREAD 2 COLUMN_POPULARITY mSubscribedGroups->setText(2, QString::number(mSubscribedGroups->childCount())); // 1 COLUMN_UNREAD 2 COLUMN_POPULARITY
ui->groupTreeWidget->fillGroupItems(mPopularGroups, popList); ui->groupTreeWidget->fillGroupItems(mPopularGroups, popList);

View File

@ -285,7 +285,7 @@ void GxsIdChooser::loadPrivateIds()
QString str = tr("Create new Identity"); QString str = tr("Create new Identity");
QString id = ""; 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, QString("%1_%2").arg(TYPE_CREATE_ID).arg(str), ROLE_SORT);
setItemData(count() - 1, TYPE_CREATE_ID, ROLE_TYPE); setItemData(count() - 1, TYPE_CREATE_ID, ROLE_TYPE);

View File

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

View File

@ -165,13 +165,13 @@ QString GxsChannelDialog::icon(IconType type)
case ICON_NEW: case ICON_NEW:
return ":/icons/png/add.png"; return ":/icons/png/add.png";
case ICON_YOUR_GROUP: case ICON_YOUR_GROUP:
return ":/icons/png/channel.png"; return "";
case ICON_SUBSCRIBED_GROUP: case ICON_SUBSCRIBED_GROUP:
return ":/icons/png/channel-subscribed.png"; return "";
case ICON_POPULAR_GROUP: case ICON_POPULAR_GROUP:
return ":/icons/png/channel-popular.png"; return "";
case ICON_OTHER_GROUP: case ICON_OTHER_GROUP:
return ":/icons/png/channel-other.png"; return "";
case ICON_SEARCH: case ICON_SEARCH:
return ":/images/find.png"; return ":/images/find.png";
case ICON_DEFAULT: 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_TITLE: return tr("Title");
case COLUMN_THREAD_DATE: return tr("Date"); case COLUMN_THREAD_DATE: return tr("Date");
case COLUMN_THREAD_AUTHOR: return tr("Author"); case COLUMN_THREAD_AUTHOR: return tr("Author");
case COLUMN_THREAD_DISTRIBUTION: return tr("Distribution");
default: default:
return QVariant(); return QVariant();
} }
@ -356,7 +355,7 @@ QVariant RsGxsForumModel::headerData(int section, Qt::Orientation /*orientation*
if(role == Qt::DecorationRole) if(role == Qt::DecorationRole)
switch(section) 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"); case COLUMN_THREAD_READ: return QIcon(":/images/message-state-read.png");
default: default:
return QVariant(); return QVariant();

View File

@ -59,8 +59,9 @@
//#define DEBUG_FORUMS //#define DEBUG_FORUMS
/* Images for context menu icons */ /* Images for context menu icons */
#define IMAGE_MESSAGE ":/images/mail_new.png" #define IMAGE_MESSAGE ":/icons/mail/compose.png"
#define IMAGE_MESSAGEREPLY ":/images/mail_reply.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_MESSAGEEDIT ":/images/edit_16.png"
#define IMAGE_MESSAGEREMOVE ":/images/mail_delete.png" #define IMAGE_MESSAGEREMOVE ":/images/mail_delete.png"
#define IMAGE_DOWNLOAD ":/images/start.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); 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())); 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())); connect(replyAct, SIGNAL(triggered()), this, SLOT(replytoforummessage()));
QAction *replyauthorAct = new QAction(QIcon(IMAGE_MESSAGEREPLY), tr("Reply to author with private message"), &contextMnu); QAction *replyauthorAct = new QAction(QIcon(IMAGE_MESSAGEREPLY), tr("Reply to author with private message"), &contextMnu);

View File

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

View File

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

View File

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

View File

@ -56,6 +56,7 @@
<file>icons/question.png</file> <file>icons/question.png</file>
<file>icons/plugins_128.png</file> <file>icons/plugins_128.png</file>
<file>icons/png/add.png</file> <file>icons/png/add.png</file>
<file>icons/png/add-identity.png</file>
<file>icons/png/anonymous.png</file> <file>icons/png/anonymous.png</file>
<file>icons/png/attach-image.png</file> <file>icons/png/attach-image.png</file>
<file>icons/png/attach.png</file> <file>icons/png/attach.png</file>
@ -73,9 +74,6 @@
<file>icons/png/exit.png</file> <file>icons/png/exit.png</file>
<file>icons/png/feedreader-notify.png</file> <file>icons/png/feedreader-notify.png</file>
<file>icons/png/feedreader.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-notify.png</file>
<file>icons/png/filesharing.png</file> <file>icons/png/filesharing.png</file>
<file>icons/png/font.png</file> <file>icons/png/font.png</file>
@ -243,9 +241,6 @@
<file>icons/yandex.png</file> <file>icons/yandex.png</file>
<file>icons/png/markdown-mark.png</file> <file>icons/png/markdown-mark.png</file>
<file>icons/png/channel.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-black.png</file>
<file>icons/png/circles-gray.png</file> <file>icons/png/circles-gray.png</file>
<file>icons/png/circles-notify.png</file> <file>icons/png/circles-notify.png</file>
@ -299,6 +294,9 @@
<file>icons/png/add-file.png</file> <file>icons/png/add-file.png</file>
<file>icons/png/add-image.png</file> <file>icons/png/add-image.png</file>
<file>icons/png/attachements.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/compose.png</file>
<file>icons/mail/delete.png</file> <file>icons/mail/delete.png</file>
<file>icons/mail/tags.png</file> <file>icons/mail/tags.png</file>
@ -311,6 +309,7 @@
<file>icons/mail/reply.png</file> <file>icons/mail/reply.png</file>
<file>icons/mail/reply-all.png</file> <file>icons/mail/reply-all.png</file>
<file>icons/mail/attach24.png</file> <file>icons/mail/attach24.png</file>
<file>icons/mail/write-mail.png</file>
<file>icons/textedit/align.png</file> <file>icons/textedit/align.png</file>
<file>icons/textedit/font-decrease.png</file> <file>icons/textedit/font-decrease.png</file>
<file>icons/textedit/smile.png</file> <file>icons/textedit/smile.png</file>
@ -318,5 +317,8 @@
<file>icons/textedit/code.png</file> <file>icons/textedit/code.png</file>
<file>icons/fullscreen.png</file> <file>icons/fullscreen.png</file>
<file>icons/fullscreen-exit.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> </qresource>
</RCC> </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/list_bullet_arrow.png</file>
<file>images/rc_combined.png</file> <file>images/rc_combined.png</file>
<file>images/combobox_arrow.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/authors.html</file>
<file>help/licence.html</file> <file>help/licence.html</file>
<file>help/thanks.html</file> <file>help/thanks.html</file>
@ -81,7 +79,6 @@
<file>images/avatarstatus-bg-away-70.png</file> <file>images/avatarstatus-bg-away-70.png</file>
<file>images/avatarstatus-bg-busy-70.png</file> <file>images/avatarstatus-bg-busy-70.png</file>
<file>images/avatarstatus-bg-offline-70.png</file> <file>images/avatarstatus-bg-offline-70.png</file>
<file>images/back.png</file>
<file>images/configure.png</file> <file>images/configure.png</file>
<file>images/copyrslink.png</file> <file>images/copyrslink.png</file>
<file>images/contacts24.png</file> <file>images/contacts24.png</file>
@ -117,18 +114,14 @@
<file>images/add-share24.png</file> <file>images/add-share24.png</file>
<file>images/avatar_background.png</file> <file>images/avatar_background.png</file>
<file>images/button_cancel.png</file> <file>images/button_cancel.png</file>
<file>images/calendar.png</file>
<file>images/chat.png</file> <file>images/chat.png</file>
<file>images/chat_24.png</file> <file>images/chat_24.png</file>
<file>images/cancel.png</file> <file>images/cancel.png</file>
<file>images/close-down.png</file> <file>images/close-down.png</file>
<file>images/close_normal.png</file> <file>images/close_normal.png</file>
<file>images/contact_new128.png</file>
<file>images/copy.png</file> <file>images/copy.png</file>
<file>images/delete.png</file> <file>images/delete.png</file>
<file>images/deleteall.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/directoryadd_24x24_shadow.png</file>
<file>images/directoryremove_24x24_shadow.png</file> <file>images/directoryremove_24x24_shadow.png</file>
<file>images/directoryselect_24x24_shadow.png</file> <file>images/directoryselect_24x24_shadow.png</file>
@ -197,15 +190,12 @@
<file>images/folder-outbox.png</file> <file>images/folder-outbox.png</file>
<file>images/folder-sent.png</file> <file>images/folder-sent.png</file>
<file>images/folder-trash.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-down.png</file>
<file>images/go-top.png</file> <file>images/go-top.png</file>
<file>images/go-up.png</file> <file>images/go-up.png</file>
<file>images/go-bottom.png</file> <file>images/go-bottom.png</file>
<file>images/graph-area.png</file> <file>images/graph-area.png</file>
<file>images/graph-line.png</file> <file>images/graph-line.png</file>
<file>images/gohome.png</file>
<file>images/gpgp_key_generate.png</file> <file>images/gpgp_key_generate.png</file>
<file>images/hide_toolbox_frame.png</file> <file>images/hide_toolbox_frame.png</file>
<file>images/hide_frame.png</file> <file>images/hide_frame.png</file>
@ -246,17 +236,8 @@
<file>images/logo/logo_info.png</file> <file>images/logo/logo_info.png</file>
<file>images/logo/logo_splash.png</file> <file>images/logo/logo_splash.png</file>
<file>images/logo/logo_web_nobackground.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-signed.png</file>
<file>images/mail-signature-unknown.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/mailforward24-hover.png</file>
<file>images/message-mail.png</file> <file>images/message-mail.png</file>
<file>images/message-mail-read.png</file> <file>images/message-mail-read.png</file>
@ -276,7 +257,6 @@
<file>images/mute-off-16.png</file> <file>images/mute-off-16.png</file>
<file>images/mute-on-16.png</file> <file>images/mute-on-16.png</file>
<file>images/new-mail-alert.png</file> <file>images/new-mail-alert.png</file>
<file>images/new_forum16.png</file>
<file>images/newmsg.png</file> <file>images/newmsg.png</file>
<file>images/no_avatar_70.png</file> <file>images/no_avatar_70.png</file>
<file>images/no_avatar_background.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_SYSTEM ":/images/user/user_request16.png"
#define IMAGE_DECRYPTMESSAGE ":/images/decrypt-mail.png" #define IMAGE_DECRYPTMESSAGE ":/images/decrypt-mail.png"
#define IMAGE_AUTHOR_INFO ":/images/info16.png" #define IMAGE_AUTHOR_INFO ":/images/info16.png"
#define IMAGE_NOTFICATION ":/icons/notification.png"
#define IMAGE_INBOX ":/images/folder-inbox.png" #define IMAGE_INBOX ":/images/folder-inbox.png"
#define IMAGE_OUTBOX ":/images/folder-outbox.png" #define IMAGE_OUTBOX ":/images/folder-outbox.png"
@ -420,7 +421,7 @@ void MessagesDialog::fillQuickView()
} }
item = new QListWidgetItem(tr("System"), ui.quickViewWidget); 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_TYPE, QUICKVIEW_TYPE_STATIC);
item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_SYSTEM); item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_SYSTEM);
item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList

View File

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

View File

@ -50,7 +50,7 @@ ProfileManager::ProfileManager(QWidget *parent)
/* Invoke Qt Designer generated QObject setup routine */ /* Invoke Qt Designer generated QObject setup routine */
ui.setupUi(this); 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")); ui.headerFrame->setHeaderText(tr("Profile Manager"));
connect(ui.identityTreeWidget, SIGNAL( customContextMenuRequested(QPoint)), this, SLOT( identityTreeWidgetCostumPopupMenu(QPoint))); connect(ui.identityTreeWidget, SIGNAL( customContextMenuRequested(QPoint)), this, SLOT( identityTreeWidgetCostumPopupMenu(QPoint)));

View File

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

View File

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

View File

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

View File

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

View File

@ -6,12 +6,22 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>1339</width> <width>701</width>
<height>1519</height> <height>527</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="TransferPageVLayout"> <layout class="QGridLayout" name="gridLayout_3">
<item> <item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<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"> <widget class="QGroupBox" name="sharedGBox">
<property name="title"> <property name="title">
<string>Shared Directories</string> <string>Shared Directories</string>
@ -160,7 +170,7 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item> <item row="1" column="0">
<widget class="QGroupBox" name="incomingGBox"> <widget class="QGroupBox" name="incomingGBox">
<property name="title"> <property name="title">
<string>Incoming Directory</string> <string>Incoming Directory</string>
@ -222,7 +232,7 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<item> <item row="2" column="0">
<widget class="QGroupBox" name="partialGBox"> <widget class="QGroupBox" name="partialGBox">
<property name="title"> <property name="title">
<string>Partials Directory</string> <string>Partials Directory</string>
@ -270,13 +280,51 @@
</layout> </layout>
</widget> </widget>
</item> </item>
<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:'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"> <widget class="QGroupBox" name="transfertGBox">
<property name="title"> <property name="title">
<string>Transfer options</string> <string>Transfer options</string>
</property> </property>
<layout class="QVBoxLayout" name="transfertGBoxVLayout"> <layout class="QGridLayout" name="gridLayout_2">
<item> <item row="0" column="0">
<layout class="QHBoxLayout" name="transfertHLayout"> <layout class="QHBoxLayout" name="transfertHLayout">
<item> <item>
<layout class="QVBoxLayout" name="transfertLabelVLayout"> <layout class="QVBoxLayout" name="transfertLabelVLayout">
@ -461,32 +509,14 @@
</item> </item>
</layout> </layout>
</item> </item>
<item> <item row="1" column="0">
<widget class="QCheckBox" name="checkBox"> <widget class="QCheckBox" name="checkBox">
<property name="text"> <property name="text">
<string>Trust friend nodes with banned files</string> <string>Trust friend nodes with banned files</string>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item row="2" 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"> <spacer name="verticalSpacer">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@ -504,6 +534,10 @@ p, li { white-space: pre-wrap; }
</item> </item>
</layout> </layout>
</widget> </widget>
</widget>
</item>
</layout>
</widget>
<resources> <resources>
<include location="../images.qrc"/> <include location="../images.qrc"/>
</resources> </resources>

View File

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

View File

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