Merge branch 'master' into webui

This commit is contained in:
zeners 2016-01-05 21:31:06 +01:00
commit 2f94f416ba
1732 changed files with 925 additions and 531 deletions

View File

@ -19,7 +19,7 @@ Compilation on Linux
sudo zypper install gcc-c++ libqt4-devel libgnome-keyring-devel \ sudo zypper install gcc-c++ libqt4-devel libgnome-keyring-devel \
glib2-devel speex-devel libssh-devel protobuf-devel libcurl-devel \ glib2-devel speex-devel libssh-devel protobuf-devel libcurl-devel \
libxml2-devel libxslt-devel sqlcipher-devel libmicrohttpd-devel \ libxml2-devel libxslt-devel sqlcipher-devel libmicrohttpd-devel \
opencv-devel speexdsp-devel libupnp-devel opencv-devel speexdsp-devel libupnp-devel libavcodec-devel
``` ```
* Arch Linux * Arch Linux
```bash ```bash

View File

@ -1,5 +1,23 @@
retroshare06 (0.6.0-1.XXXXXX~YYYYYY) YYYYYY; urgency=low retroshare06 (0.6.0-1.XXXXXX~YYYYYY) YYYYYY; urgency=low
4953324 electron128 Sat, 2 Jan 2016 14:53:24 +0100 Merge pull request #235 from PhenomRetroShare/Fix_MakeMACOS_PluginWorking
c5e6f62 Phenom Sat, 2 Jan 2016 14:19:53 +0100 Make Plugin working in Mac OSX.
b6b5f9c csoler Fri, 1 Jan 2016 22:36:07 -0500 fixed some of the issues reported by coverity scan (mainly uninitialised class members)
ab3939c csoler Fri, 1 Jan 2016 11:11:40 -0500 added missing update of mClientMsgUpdateMap, causing both a memory leak and an inconsistency in TS
22c00fc electron128 Fri, 1 Jan 2016 14:07:15 +0100 fixed free() in UdpLayer::recv_loop
58672e8 electron128 Fri, 1 Jan 2016 13:44:38 +0100 fix the logic to prevent using invalid iterators. First make a valid iterator, then dereference
3b2eae4 electron128 Fri, 1 Jan 2016 12:17:08 +0100 fixed memory leak by using stack memory instead of heap memory
9cb81f5 electron128 Fri, 1 Jan 2016 12:01:49 +0100 don't create wiki dataservice if wiki is not enabled for compile
72812be electron128 Fri, 1 Jan 2016 11:54:59 +0100 added missing initialisation of integers in GxsForumThreadWidget
55ea8a5 electron128 Fri, 1 Jan 2016 11:49:03 +0100 init pointer in RsServer
7efb763 electron128 Fri, 1 Jan 2016 11:38:29 +0100 restore stream state of std::cerr after printing hex number
640d71b electron128 Fri, 1 Jan 2016 11:09:49 +0100 removed delete of RsTemporaryMemory
d24ff5a csoler Thu, 31 Dec 2015 19:42:50 -0500 Merge pull request #232 from G10h4ck/master
7895932 Gio Fri, 1 Jan 2016 00:45:01 +0100 print_stacktrace is OS specific
e872727 csoler Thu, 31 Dec 2015 17:37:05 -0500 updated dos->unix convertion script
b6b04dc csoler Thu, 31 Dec 2015 17:28:42 -0500 added script to convert files to unix format
6392d65 csoler Thu, 31 Dec 2015 16:50:52 -0500 fixed [dos] LF in IdDialog.h
a6ee7cc csoler Thu, 31 Dec 2015 14:15:14 -0500 Merge pull request #230 from G10h4ck/ss_port_invalid_family a6ee7cc csoler Thu, 31 Dec 2015 14:15:14 -0500 Merge pull request #230 from G10h4ck/ss_port_invalid_family
fac1524 csoler Thu, 31 Dec 2015 13:58:13 -0500 updated todo list fac1524 csoler Thu, 31 Dec 2015 13:58:13 -0500 updated todo list
c5feafa Gio Thu, 31 Dec 2015 19:56:50 +0100 Add missing stacktrace.h c5feafa Gio Thu, 31 Dec 2015 19:56:50 +0100 Add missing stacktrace.h
@ -2168,7 +2186,7 @@ retroshare (0.5.4-0.6546~precise) precise; urgency=low
retroshare (0.5.4-0.6455~precise) precise; urgency=low retroshare (0.5.4-0.6455~precise) precise; urgency=low
* Improvements * Improvements
- GUI - GUI
* added/enabled GUI for distant chat (Invitation handler in config->chat, handling of Distant chat links) * added/enabled GUI for distant chat (Invitation handler in config->chat, handling of Distant chat links)
* Localized Greek and Dutch (patch from Henry). Updated English. * Localized Greek and Dutch (patch from Henry). Updated English.
* Languages updates from transifex * Languages updates from transifex
@ -2217,7 +2235,7 @@ retroshare (0.5.4-0.6399~precise) precise; urgency=low
- added columns for last used statistics on pgp keys in network dialog. - added columns for last used statistics on pgp keys in network dialog.
* Bugs * Bugs
- fixed display of names in file lists - fixed display of names in file lists
- fixed destination directory when downloading channel items in auto DL mode - fixed destination directory when downloading channel items in auto DL mode
- improved time-stamp management for pgp keys - improved time-stamp management for pgp keys
- fixed translatable string with .arg (Req. From H. Morgan) - fixed translatable string with .arg (Req. From H. Morgan)

File diff suppressed because it is too large Load Diff

View File

@ -38,121 +38,133 @@
class ServiceNotifications class ServiceNotifications
{ {
public: public:
std::set<RsPeerId> mAdded; std::set<RsPeerId> mAdded;
std::set<RsPeerId> mRemoved; std::set<RsPeerId> mRemoved;
}; };
class ServicePeerFilter class ServicePeerFilter
{ {
public: public:
ServicePeerFilter() : mDenyAll(true), mAllowAll(false) {} ServicePeerFilter()
:mDenyAll(true), mAllowAll(false) {}
bool mDenyAll; bool mDenyAll;
bool mAllowAll; bool mAllowAll;
std::set<uint32_t> mAllowedServices; std::set<uint32_t> mAllowedServices;
}; };
std::ostream &operator<<(std::ostream &out, const ServicePeerFilter &filter); std::ostream &operator<<(std::ostream &out, const ServicePeerFilter &filter);
class ServiceControlSerialiser; class ServiceControlSerialiser ;
class p3ServiceControl: public RsServiceControl, public pqiMonitor, public p3Config class p3ServiceControl: public RsServiceControl, public pqiMonitor, public p3Config
{ {
public: public:
p3ServiceControl(p3LinkMgr *linkMgr);
/** /**
* checks and update all added configurations
* @see rsserver
*/ */
void tick(); p3ServiceControl(p3LinkMgr *linkMgr);
/** /**
* provided so that services don't need linkMgr, and can get all info * checks and update all added configurations
* @see rsserver
*/
void tick();
/**
* provided so that services don't need linkMgr, and can get all info
* from ServiceControl. * from ServiceControl.
* @see rsserver * @see rsserver
*/ */
virtual const RsPeerId& getOwnId();
virtual const RsPeerId& getOwnId();
/** /**
* External Interface (RsServiceControl). * External Interface (RsServiceControl).
*/ */
virtual bool getOwnServices(RsPeerServiceInfo &info);
virtual bool getOwnServices(RsPeerServiceInfo &info);
// This is what is passed to peers, can be displayed by GUI too. // This is what is passed to peers, can be displayed by GUI too.
virtual bool getServicesAllowed(const RsPeerId &peerId, RsPeerServiceInfo &info); virtual bool getServicesAllowed(const RsPeerId &peerId, RsPeerServiceInfo &info);
// Information provided by peer. // Information provided by peer.
virtual bool getServicesProvided(const RsPeerId &peerId, RsPeerServiceInfo &info); virtual bool getServicesProvided(const RsPeerId &peerId, RsPeerServiceInfo &info);
// Main Permission Interface. // Main Permission Interface.
virtual bool getServicePermissions(uint32_t serviceId, RsServicePermissions &permissions); virtual bool getServicePermissions(uint32_t serviceId, RsServicePermissions &permissions);
virtual bool updateServicePermissions(uint32_t serviceId, const RsServicePermissions &permissions); virtual bool updateServicePermissions(uint32_t serviceId, const RsServicePermissions &permissions);
// Get List of Peers using this Service. // Get List of Peers using this Service.
virtual void getPeersConnected(const uint32_t serviceId, std::set<RsPeerId> &peerSet); virtual void getPeersConnected(const uint32_t serviceId, std::set<RsPeerId> &peerSet);
virtual bool isPeerConnected(const uint32_t serviceId, const RsPeerId &peerId); virtual bool isPeerConnected(const uint32_t serviceId, const RsPeerId &peerId);
/** /**
* Registration for all Services. * Registration for all Services.
*/ */
virtual bool registerService(const RsServiceInfo &info, bool defaultOn);
virtual bool deregisterService(uint32_t serviceId);
virtual bool registerServiceMonitor(pqiServiceMonitor *monitor, uint32_t serviceId); virtual bool registerService(const RsServiceInfo &info, bool defaultOn);
virtual bool deregisterServiceMonitor(pqiServiceMonitor *monitor); virtual bool deregisterService(uint32_t serviceId);
virtual bool registerServiceMonitor(pqiServiceMonitor *monitor, uint32_t serviceId);
virtual bool deregisterServiceMonitor(pqiServiceMonitor *monitor);
/**
*
*/
// Filter for services. // Filter for services.
virtual bool checkFilter(uint32_t serviceId, const RsPeerId &peerId); virtual bool checkFilter(uint32_t serviceId, const RsPeerId &peerId);
/* /**
* Interface for ServiceInfo service. * Interface for ServiceInfo service.
*/ */
// ServicesAllowed have changed for these peers. // ServicesAllowed have changed for these peers.
virtual void getServiceChanges(std::set<RsPeerId> &updateSet); virtual void getServiceChanges(std::set<RsPeerId> &updateSet);
// Input from peers. // Input from peers.
virtual bool updateServicesProvided(const RsPeerId &peerId, const RsPeerServiceInfo &info); virtual bool updateServicesProvided(const RsPeerId &peerId, const RsPeerServiceInfo &info);
// pqiMonitor. // pqiMonitor.
virtual void statusChange(const std::list<pqipeer> &plist); virtual void statusChange(const std::list<pqipeer> &plist);
protected: protected:
// configuration. // configuration.
virtual bool saveList(bool &cleanup, std::list<RsItem *>&); virtual bool saveList(bool &cleanup, std::list<RsItem *>&);
virtual bool loadList(std::list<RsItem *>& load); virtual bool loadList(std::list<RsItem *>& load);
virtual RsSerialiser *setupSerialiser() ; virtual RsSerialiser *setupSerialiser() ;
private: private:
void notifyServices();
void notifyAboutFriends();
void updatePeerConnect(const RsPeerId &peerId); void notifyServices();
void updatePeerDisconnect(const RsPeerId &peerId); void notifyAboutFriends();
void updatePeerNew(const RsPeerId &peerId);
void updatePeerRemoved(const RsPeerId &peerId);
void removePeer(const RsPeerId &peerId); void updatePeerConnect(const RsPeerId &peerId);
void updatePeerDisconnect(const RsPeerId &peerId);
void updatePeerNew(const RsPeerId &peerId);
void updatePeerRemoved(const RsPeerId &peerId);
void removePeer(const RsPeerId &peerId);
bool updateAllFilters(); bool updateAllFilters();
bool updateAllFilters_locked(); bool updateAllFilters_locked();
bool updateFilterByPeer(const RsPeerId &peerId); bool updateFilterByPeer(const RsPeerId &peerId);
bool updateFilterByPeer_locked(const RsPeerId &peerId); bool updateFilterByPeer_locked(const RsPeerId &peerId);
void recordFilterChanges_locked(const RsPeerId &peerId, void recordFilterChanges_locked(const RsPeerId &peerId,
ServicePeerFilter &originalFilter, ServicePeerFilter &originalFilter, ServicePeerFilter &updatedFilter);
ServicePeerFilter &updatedFilter);
// Called from recordFilterChanges. // Called from recordFilterChanges.
void filterChangeAdded_locked(const RsPeerId &peerId, uint32_t serviceId); void filterChangeAdded_locked(const RsPeerId &peerId, uint32_t serviceId);
void filterChangeRemoved_locked(const RsPeerId &peerId, uint32_t serviceId); void filterChangeRemoved_locked(const RsPeerId &peerId, uint32_t serviceId);
bool createDefaultPermissions_locked(uint32_t serviceId, std::string serviceName, bool defaultOn); bool createDefaultPermissions_locked(uint32_t serviceId, std::string serviceName, bool defaultOn);
bool peerHasPermissionForService_locked(const RsPeerId &peerId, uint32_t serviceId); bool peerHasPermissionForService_locked(const RsPeerId &peerId, uint32_t serviceId);
p3LinkMgr *mLinkMgr; p3LinkMgr *mLinkMgr;
const RsPeerId mOwnPeerId; // const from constructor const RsPeerId mOwnPeerId; // const from constructor
@ -164,22 +176,25 @@ private:
// From registration / deregistration. // From registration / deregistration.
std::map<uint32_t, RsServiceInfo> mOwnServices; std::map<uint32_t, RsServiceInfo> mOwnServices;
// From peers. // From peers.
std::map<RsPeerId, RsPeerServiceInfo> mServicesProvided; std::map<RsPeerId, RsPeerServiceInfo> mServicesProvided;
// derived from all the others. // derived from all the others.
std::map<RsPeerId, ServicePeerFilter> mPeerFilterMap; std::map<RsPeerId, ServicePeerFilter> mPeerFilterMap;
std::map<uint32_t, ServiceNotifications> mNotifications; std::map<uint32_t, ServiceNotifications> mNotifications;
std::list<pqiServicePeer> mFriendNotifications; std::list<pqiServicePeer> mFriendNotifications;
// Map of Connected Peers per Service. // Map of Connected Peers per Service.
std::map<uint32_t, std::set<RsPeerId> > mServicePeerMap; std::map<uint32_t, std::set<RsPeerId> > mServicePeerMap;
// Separate mutex here - must not hold both at the same time! // Separate mutex here - must not hold both at the same time!
RsMutex mMonitorMtx; /* below is protected */ RsMutex mMonitorMtx; /* below is protected */
std::multimap<uint32_t, pqiServiceMonitor *> mMonitors; std::multimap<uint32_t, pqiServiceMonitor *> mMonitors;
ServiceControlSerialiser *mSerialiser ;
// Below here is saved in Configuration.
std::map<uint32_t, RsServicePermissions> mServicePermissionMap;
// Below here is saved in Configuration.
std::map<uint32_t, RsServicePermissions> mServicePermissionMap;
}; };

View File

@ -441,7 +441,6 @@ int pqistreamer::handleoutgoing_locked()
mPkt_wpending_size = 0 ; mPkt_wpending_size = 0 ;
} }
outSentBytes_locked(sentbytes);
return 0; return 0;
} }
@ -469,7 +468,6 @@ int pqistreamer::handleoutgoing_locked()
} }
#endif #endif
outSentBytes_locked(sentbytes);
return 0; return 0;
} }
#define GROUP_OUTGOING_PACKETS 1 #define GROUP_OUTGOING_PACKETS 1
@ -524,12 +522,12 @@ int pqistreamer::handleoutgoing_locked()
pqioutput(PQL_DEBUG_BASIC, pqistreamerzone, out); pqioutput(PQL_DEBUG_BASIC, pqistreamerzone, out);
#endif #endif
outSentBytes_locked(sentbytes);
// pkt_wpending will kept til next time. // pkt_wpending will kept til next time.
// ensuring exactly the same data is written (openSSL requirement). // ensuring exactly the same data is written (openSSL requirement).
return -1; return -1;
} }
++nsent; ++nsent;
outSentBytes_locked(mPkt_wpending_size); // this is the only time where we know exactly what was sent.
#ifdef DEBUG_TRANSFERS #ifdef DEBUG_TRANSFERS
std::cerr << "pqistreamer::handleoutgoing_locked() Sent Packet len: " << mPkt_wpending_size << " @ " << RsUtil::AccurateTimeString(); std::cerr << "pqistreamer::handleoutgoing_locked() Sent Packet len: " << mPkt_wpending_size << " @ " << RsUtil::AccurateTimeString();
@ -549,7 +547,6 @@ int pqistreamer::handleoutgoing_locked()
if(nsent > 0) if(nsent > 0)
std::cerr << "nsent = " << nsent << ", total bytes=" << sentbytes << std::endl; std::cerr << "nsent = " << nsent << ", total bytes=" << sentbytes << std::endl;
#endif #endif
outSentBytes_locked(sentbytes);
return 1; return 1;
} }
@ -568,7 +565,6 @@ int pqistreamer::handleincoming_locked()
if(!(mBio->isactive())) if(!(mBio->isactive()))
{ {
mReading_state = reading_state_initial ; mReading_state = reading_state_initial ;
inReadBytes_locked(readbytes);
free_rpend_locked(); free_rpend_locked();
return 0; return 0;
} }
@ -606,8 +602,6 @@ start_packet_read:
{ {
pqioutput(PQL_DEBUG_BASIC, pqistreamerzone, "pqistreamer::handleincoming() Didn't read BasePkt!"); pqioutput(PQL_DEBUG_BASIC, pqistreamerzone, "pqistreamer::handleincoming() Didn't read BasePkt!");
inReadBytes_locked(readbytes);
// error.... (either blocked or failure) // error.... (either blocked or failure)
if (tmplen == 0) if (tmplen == 0)
{ {
@ -652,7 +646,7 @@ start_packet_read:
#endif #endif
readbytes += blen; readbytes += blen;
mReading_state = reading_state_packet_started ; mReading_state = reading_state_packet_started ;
mFailed_read_attempts = 0 ; // reset failed read, as the packet has been totally read. mFailed_read_attempts = 0 ; // reset failed read, as the packet has been totally read.
} }
continue_packet: continue_packet:
@ -805,7 +799,7 @@ continue_packet:
mFailed_read_attempts = 0 ; mFailed_read_attempts = 0 ;
readbytes += extralen; readbytes += extralen;
} }
// create packet, based on header. // create packet, based on header.
#ifdef DEBUG_PQISTREAMER #ifdef DEBUG_PQISTREAMER
@ -824,7 +818,9 @@ continue_packet:
std::cerr << "[" << (void*)pthread_self() << "] " << "deserializing. Size=" << pktlen << std::endl ; std::cerr << "[" << (void*)pthread_self() << "] " << "deserializing. Size=" << pktlen << std::endl ;
#endif #endif
RsItem *pkt = mRsSerialiser->deserialise(block, &pktlen); inReadBytes_locked(pktlen); // only count deserialised packets, because that's what is actually been transfered.
RsItem *pkt = mRsSerialiser->deserialise(block, &pktlen);
if ((pkt != NULL) && (0 < handleincomingitem_locked(pkt,pktlen))) if ((pkt != NULL) && (0 < handleincomingitem_locked(pkt,pktlen)))
{ {
@ -854,7 +850,6 @@ continue_packet:
} }
#endif #endif
inReadBytes_locked(readbytes);
return 0; return 0;
} }

View File

@ -1391,7 +1391,13 @@ void ChatWidget::smileyWidget()
void ChatWidget::addSmiley() void ChatWidget::addSmiley()
{ {
ui->chatTextEdit->textCursor().insertText(qobject_cast<QPushButton*>(sender())->toolTip().split("|").first()); QString smiley = qobject_cast<QPushButton*>(sender())->toolTip().split("|").first();
// add trailing space
smiley += QString(" ");
// add preceding space when needed (not at start of text or preceding space already exists)
if(!ui->chatTextEdit->textCursor().atStart() && ui->chatTextEdit->toPlainText()[ui->chatTextEdit->textCursor().position() - 1] != QChar(' '))
smiley = QString(" ") + smiley;
ui->chatTextEdit->textCursor().insertText(smiley);
} }
void ChatWidget::clearChatHistory() void ChatWidget::clearChatHistory()

View File

@ -11,12 +11,21 @@
</rect> </rect>
</property> </property>
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="verticalSpacing"> <property name="verticalSpacing">
<number>2</number> <number>2</number>
</property> </property>
<property name="margin">
<number>0</number>
</property>
<item row="1" column="0"> <item row="1" column="0">
<layout class="QHBoxLayout" name="hl_TextChat"> <layout class="QHBoxLayout" name="hl_TextChat">
<property name="spacing"> <property name="spacing">
@ -37,7 +46,16 @@
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout_2"> <layout class="QVBoxLayout" name="verticalLayout_2">
<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>
@ -113,7 +131,16 @@
<enum>QFrame::Box</enum> <enum>QFrame::Box</enum>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<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>
@ -299,7 +326,16 @@ border-image: url(:/images/closepressed.png)
<enum>QFrame::Sunken</enum> <enum>QFrame::Sunken</enum>
</property> </property>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<property name="margin"> <property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number> <number>2</number>
</property> </property>
<item> <item>
@ -326,8 +362,8 @@ border-image: url(:/images/closepressed.png)
<enum>Qt::NoFocus</enum> <enum>Qt::NoFocus</enum>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="../images.qrc"> <iconset resource="../emojione.qrc">
<normaloff>:/images/emoticons/kopete/kopete020.png</normaloff>:/images/emoticons/kopete/kopete020.png</iconset> <normaloff>:/emojione/1F603.png</normaloff>:/emojione/1F603.png</iconset>
</property> </property>
<property name="iconSize"> <property name="iconSize">
<size> <size>
@ -486,7 +522,16 @@ border-image: url(:/images/closepressed.png)
<enum>QFrame::Plain</enum> <enum>QFrame::Plain</enum>
</property> </property>
<layout class="QHBoxLayout" name="HL_pluginButtonFrame"> <layout class="QHBoxLayout" name="HL_pluginButtonFrame">
<property name="margin"> <property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number> <number>2</number>
</property> </property>
</layout> </layout>
@ -556,7 +601,16 @@ border-image: url(:/images/closepressed.png)
<enum>QFrame::Sunken</enum> <enum>QFrame::Sunken</enum>
</property> </property>
<layout class="QHBoxLayout" name="hlTitleBarFrame"> <layout class="QHBoxLayout" name="hlTitleBarFrame">
<property name="margin"> <property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number> <number>2</number>
</property> </property>
<item> <item>
@ -637,7 +691,16 @@ border-image: url(:/images/closepressed.png)
<enum>QFrame::Plain</enum> <enum>QFrame::Plain</enum>
</property> </property>
<layout class="QHBoxLayout" name="HL_pluginTitleFrame"> <layout class="QHBoxLayout" name="HL_pluginTitleFrame">
<property name="margin"> <property name="leftMargin">
<number>2</number>
</property>
<property name="topMargin">
<number>2</number>
</property>
<property name="rightMargin">
<number>2</number>
</property>
<property name="bottomMargin">
<number>2</number> <number>2</number>
</property> </property>
</layout> </layout>
@ -652,7 +715,16 @@ border-image: url(:/images/closepressed.png)
<enum>QFrame::Raised</enum> <enum>QFrame::Raised</enum>
</property> </property>
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<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 row="0" column="5"> <item row="0" column="5">
@ -980,7 +1052,7 @@ border-image: url(:/images/closepressed.png)
<string>Quotes the selected text</string> <string>Quotes the selected text</string>
</property> </property>
</action> </action>
<action name="actionSave_image"> <action name="actionSave_image">
<property name="icon"> <property name="icon">
<iconset resource="../images.qrc"> <iconset resource="../images.qrc">
<normaloff>:/images/document_save.png</normaloff>:/images/document_save.png</iconset> <normaloff>:/images/document_save.png</normaloff>:/images/document_save.png</iconset>
@ -1020,6 +1092,7 @@ border-image: url(:/images/closepressed.png)
</customwidgets> </customwidgets>
<resources> <resources>
<include location="../images.qrc"/> <include location="../images.qrc"/>
<include location="../emojione.qrc"/>
</resources> </resources>
<connections/> <connections/>
</ui> </ui>

View File

@ -94,7 +94,7 @@
<item> <item>
<widget class="QLabel" name="userCertLabel"> <widget class="QLabel" name="userCertLabel">
<property name="text"> <property name="text">
<string>The text below is your PGP certificate. You have to provide it to your friend</string> <string>The text below is your Retroshare certificate. You have to provide it to your friend</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -278,7 +278,7 @@
<item> <item>
<widget class="QLabel" name="friendCertLabel"> <widget class="QLabel" name="friendCertLabel">
<property name="text"> <property name="text">
<string>Please, paste your friend's PGP certificate into the box below</string> <string>Please, paste your friend's Retroshare certificate into the box below</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -291,6 +291,9 @@
<family>Courier New</family> <family>Courier New</family>
</font> </font>
</property> </property>
<property name="toolTip">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;This box expects your friend's Retroshare certificate. WARNING: this is different from your PGP key. Do not paste your PGP key here (or even a part of it). It's not going to work.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="lineWrapMode"> <property name="lineWrapMode">
<enum>QPlainTextEdit::NoWrap</enum> <enum>QPlainTextEdit::NoWrap</enum>
</property> </property>
@ -524,16 +527,7 @@
<layout class="QGridLayout" name="gridLayout"> <layout class="QGridLayout" name="gridLayout">
<item row="0" column="0"> <item row="0" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_10"> <layout class="QHBoxLayout" name="horizontalLayout_10">
<property name="leftMargin"> <property name="margin">
<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>

View File

@ -18,7 +18,7 @@
<file>emojione/1F4A6.png</file> <file>emojione/1F4A6.png</file>
<file>emojione/1F4A7.png</file> <file>emojione/1F4A7.png</file>
<file>emojione/1F4A8.png</file> <file>emojione/1F4A8.png</file>
<file>emojione/1F4A9.png</file> <file>emojione/1F4A9.png</file>
<file>emojione/1F4C0.png</file> <file>emojione/1F4C0.png</file>
<file>emojione/1F4C1.png</file> <file>emojione/1F4C1.png</file>
<file>emojione/1F4C2.png</file> <file>emojione/1F4C2.png</file>
@ -188,16 +188,6 @@
<file>emojione/1F199.png</file> <file>emojione/1F199.png</file>
<file>emojione/1F201.png</file> <file>emojione/1F201.png</file>
<file>emojione/1F202.png</file> <file>emojione/1F202.png</file>
<file>emojione/1F232.png</file>
<file>emojione/1F233.png</file>
<file>emojione/1F234.png</file>
<file>emojione/1F235.png</file>
<file>emojione/1F236.png</file>
<file>emojione/1F237.png</file>
<file>emojione/1F238.png</file>
<file>emojione/1F239.png</file>
<file>emojione/1F250.png</file>
<file>emojione/1F251.png</file>
<file>emojione/1F300.png</file> <file>emojione/1F300.png</file>
<file>emojione/1F301.png</file> <file>emojione/1F301.png</file>
<file>emojione/1F302.png</file> <file>emojione/1F302.png</file>
@ -544,8 +534,6 @@
<file>emojione/2934.png</file> <file>emojione/2934.png</file>
<file>emojione/2935.png</file> <file>emojione/2935.png</file>
<file>emojione/3030.png</file> <file>emojione/3030.png</file>
<file>emojione/3297.png</file>
<file>emojione/3299.png</file>
<file>emojione/1f910.png</file> <file>emojione/1f910.png</file>
<file>emojione/1f911.png</file> <file>emojione/1f911.png</file>
<file>emojione/1f912.png</file> <file>emojione/1f912.png</file>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 987 B

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 866 B

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 656 B

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 967 B

After

Width:  |  Height:  |  Size: 948 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 786 B

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 923 B

After

Width:  |  Height:  |  Size: 904 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 961 B

After

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 782 B

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1002 B

After

Width:  |  Height:  |  Size: 930 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 976 B

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 689 B

After

Width:  |  Height:  |  Size: 840 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 710 B

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 881 B

After

Width:  |  Height:  |  Size: 919 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 672 B

After

Width:  |  Height:  |  Size: 725 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 951 B

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 748 B

After

Width:  |  Height:  |  Size: 771 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 B

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 646 B

After

Width:  |  Height:  |  Size: 706 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 836 B

After

Width:  |  Height:  |  Size: 829 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 793 B

After

Width:  |  Height:  |  Size: 895 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 B

After

Width:  |  Height:  |  Size: 914 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 935 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 697 B

After

Width:  |  Height:  |  Size: 793 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 945 B

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 804 B

After

Width:  |  Height:  |  Size: 887 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 755 B

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 742 B

After

Width:  |  Height:  |  Size: 808 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 758 B

After

Width:  |  Height:  |  Size: 842 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 962 B

After

Width:  |  Height:  |  Size: 983 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 748 B

After

Width:  |  Height:  |  Size: 795 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 969 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 775 B

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 934 B

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 781 B

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1009 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 853 B

After

Width:  |  Height:  |  Size: 998 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 835 B

After

Width:  |  Height:  |  Size: 980 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 B

After

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 746 B

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 970 B

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 907 B

After

Width:  |  Height:  |  Size: 984 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 762 B

After

Width:  |  Height:  |  Size: 851 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 716 B

After

Width:  |  Height:  |  Size: 856 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1016 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 994 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 877 B

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 873 B

After

Width:  |  Height:  |  Size: 878 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 810 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 962 B

After

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More