merged trunk commits 4060-4075 and 4077 into 0.5.1 branch

git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/0.5.1@4078 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
csoler 2011-03-05 15:09:17 +00:00
parent 489c627c7e
commit 90ccf47d16
37 changed files with 1220 additions and 269 deletions

View file

@ -0,0 +1,66 @@
Mac OSX Build Instructions.
-------------------------------------------
There are several complications with building Retroshare under OSX.
1) Support Libraries must be built and installed seperately.
2) Universal and OSX 10.5 support is a little tricky, mainly due to the support libraries.
Additional Libraries
---------------------
* GnuPG Package, that comes with Retroshare OSX install image. (GnuPG-1.4.9.dmg)
GPG Development libraries
* libassuan (I'm using 2.0.1)
* libgpg-error (I'm using 1.9)
* libgpgme (I'm using 1.3.0)
These libraries use standard UNIX installation systems: AUTOCONF/AUTOMAKE (configure, make, etc)
Unfortunately, this makes it difficult and a little manual to compile Universal and 10.5 libraries.
UPNPC (for OSX and windows)
* miniupnpc (I'm using 1.0)
You will also need to install
* XCode (available on the Apple Install CDs)
* Qt4 (from trolltech.com)
First Compilation...
--------------------
The First challenge is to build Retroshare on your Mac. For this first compilation,
we only build for your specific machine, and not attempt a Generic / 10.5 / Univeral build.
1) Install / Compile all the packages listed above.
be sure to use a configure command like this where applicable to only create a static library.
./configure --enable-static=yes --enable-shared=no CFLAGS="-arch i386" CPPFLAGS="-arch i386"
2) Check out the Retroshare SVN.
3) compile libbitdht:
cd libbitdht/src
qmake
This recreates a xcodeproj file for compilation using XCode.
Open with Xcode, and build.
4) compile libretroshare: same way.
5) compile retroshare-gui: same way.
Creating Retroshare OSX Distribution Packages.
-----------------------------------------------
TODO, once I've got feedback on First Compilation!

View file

@ -495,6 +495,10 @@ int beMsgMatchString(be_node *n, const char *str, int len)
uint32_t beMsgGetY(be_node *n)
{
be_node *val = beMsgGetDictNode(n, "y");
if(val == NULL)
return BE_Y_UNKNOWN ;
if (val->type != BE_STR)
{
return BE_Y_UNKNOWN;
@ -539,7 +543,10 @@ uint32_t beMsgType(be_node *n)
#ifdef DEBUG_MSG_TYPE
std::cerr << "bsMsgType() QUERY MSG TYPE" << std::endl;
#endif
be_node *query = beMsgGetDictNode(n, "q");
be_node *query = beMsgGetDictNode(n, "q");
if(query == NULL)
return BITDHT_MSG_TYPE_UNKNOWN;
if (beMsgMatchString(query, "ping", 4))
{
@ -800,11 +807,11 @@ int beMsgGetListStrings(be_node *n, std::list<std::string> &values)
for(int i = 0; n->val.l[i] != NULL; i++)
{
be_node *val = n->val.l[i];
if (val->type != BE_STR)
{
if (val == NULL || val->type != BE_STR)
return 0;
}
int len = be_str_len(val);
int len = be_str_len(val);
std::string str;
str.append(val->val.s, len);
values.push_back(str);

View file

@ -453,13 +453,13 @@ void FileIndexMonitor::run()
{
updateCycle();
while(m_bRun)
while(isRunning())
{
for(int i = 0; i < updatePeriod; i++)
{
if (m_bRun == false) {
if (isRunning() == false) {
return;
}
@ -515,7 +515,7 @@ void FileIndexMonitor::updateCycle()
cache_is_new = useHashCache && hashCache.empty() ;
}
while(moretodo)
while(isRunning() && moretodo)
{
/* sleep a bit for each loop */
/********************************** WINDOWS/UNIX SPECIFIC PART ******************/
@ -571,8 +571,8 @@ void FileIndexMonitor::updateCycle()
#endif
/* check for the dir existance */
librs::util::FolderIterator dirIt(realpath);
if (!dirIt.isValid())
librs::util::FolderIterator dirIt(realpath);
if (!dirIt.isValid())
{
#ifdef FIM_DEBUG
std::cerr << "FileIndexMonitor::updateCycle()";
@ -617,20 +617,20 @@ void FileIndexMonitor::updateCycle()
to_hash.back().realpath = realpath ;
to_hash.back().dirpath = dirpath ;
while(dirIt.readdir())
while(isRunning() && dirIt.readdir())
{
/* check entry type */
std::string fname;
dirIt.d_name(fname);
std::string fname;
dirIt.d_name(fname);
std::string fullname = realpath + "/" + fname;
#ifdef FIM_DEBUG
std::cerr << "calling stats on " << fullname <<std::endl;
#endif
#ifdef WINDOWS_SYS
std::wstring wfullname;
librs::util::ConvertUtf8ToUtf16(fullname, wfullname);
if (-1 != _wstati64(wfullname.c_str(), &buf))
std::wstring wfullname;
librs::util::ConvertUtf8ToUtf16(fullname, wfullname);
if (-1 != _wstati64(wfullname.c_str(), &buf))
#else
if (-1 != stat64(fullname.c_str(), &buf))
#endif
@ -738,7 +738,7 @@ void FileIndexMonitor::updateCycle()
// Now, hash all files at once.
//
if(!to_hash.empty())
if(isRunning() && !to_hash.empty())
hashFiles(to_hash) ;
cb->notifyHashingInfo(NOTIFY_HASHTYPE_FINISH, "") ;
@ -827,9 +827,12 @@ void FileIndexMonitor::hashFiles(const std::vector<DirContentToHash>& to_hash)
uint64_t hashed_size=0 ;
uint64_t last_save_size=0 ;
// check if thread is running
bool running = isRunning();
/* update files */
for(uint32_t i=0;i<to_hash.size();++i)
for(uint32_t j=0;j<to_hash[i].fentries.size();++j,++cnt)
for(uint32_t i=0;running && i<to_hash.size();++i)
for(uint32_t j=0;running && j<to_hash[i].fentries.size();++j,++cnt)
{
// This is a very basic progress notification. To be more complete and user friendly, one would
// rather send a completion ratio based on the size of files vs/ total size.
@ -846,7 +849,7 @@ void FileIndexMonitor::hashFiles(const std::vector<DirContentToHash>& to_hash)
//
if(useHashCache && hashCache.find(real_path,fe.size,fe.modtime,fe.hash))
fi.updateFileEntry(to_hash[i].dirpath,fe,stamp);
else if(RsDirUtil::getFileHash(real_path, fe.hash,fe.size)) // not found, then hash it.
else if(RsDirUtil::getFileHash(real_path, fe.hash,fe.size, this)) // not found, then hash it.
{
RsStackMutex stack(fiMutex); /**** LOCKED DIRS ****/
@ -893,6 +896,9 @@ void FileIndexMonitor::hashFiles(const std::vector<DirContentToHash>& to_hash)
if(useHashCache)
hashCache.save() ;
}
// check if thread is running
running = isRunning();
}
cb->notifyListChange(NOTIFY_LIST_DIRLIST_LOCAL, 0);

View file

@ -209,7 +209,7 @@ void ftController::run()
/* check the queues */
uint32_t cnt = 0 ;
while(m_bRun)
while(isRunning())
{
#ifdef WIN32
Sleep(1000);

View file

@ -49,7 +49,7 @@ void ftExtraList::run()
time_t cleanup = 0;
time_t now = 0;
while (m_bRun)
while (isRunning())
{
#ifdef DEBUG_ELIST
//std::cerr << "ftExtraList::run() Iteration";

View file

@ -225,7 +225,7 @@ CacheTransfer *ftServer::getCacheTransfer()
void ftServer::run()
{
while(m_bRun)
while(isRunning())
{
mFtDataplex->deleteUnusedServers() ;
#ifdef WIN32

View file

@ -358,7 +358,7 @@ void AuthGPGimpl::run()
{
int count = 0;
while (m_bRun)
while (isRunning())
{
#ifdef WIN32
Sleep(100);

View file

@ -110,7 +110,7 @@ void RsServer::run()
int min = 0;
int loop = 0;
while(m_bRun)
while(isRunning())
{
#ifndef WINDOWS_SYS
usleep((int) (timeDelta * 1000000));

View file

@ -690,7 +690,7 @@ bool p3GroupDistrib::loadGroupKey(RsDistribGrpKey *newKey, bool historical)
std::cerr << std::endl;
#endif
if(!updateOk)
// if(!updateOk)
delete newKey;
newKey = NULL;

View file

@ -32,6 +32,7 @@
#include "util/rsdir.h"
#include "pqi/pqinotify.h"
#include "retroshare/rstypes.h"
#include "rsthreads.h"
#include <string>
#include <iostream>
#include <algorithm>
@ -451,6 +452,8 @@ bool RsDirUtil::checkCreateDirectory(const std::string& dir)
std::cerr << "check_create_directory()";
std::cerr <<std::endl<< "\tcreated:" <<dir<<std::endl;
#endif
return 1;
}
#ifdef RSDIR_DEBUG
@ -526,7 +529,7 @@ bool RsDirUtil::hashFile(const std::string& filepath,
#include <iomanip>
/* Function to hash, and get details of a file */
bool RsDirUtil::getFileHash(const std::string& filepath, std::string &hash, uint64_t &size)
bool RsDirUtil::getFileHash(const std::string& filepath, std::string &hash, uint64_t &size, RsThread *thread /*= NULL*/)
{
FILE *fd;
int len;
@ -549,14 +552,32 @@ bool RsDirUtil::getFileHash(const std::string& filepath, std::string &hash, uint
size = ftello64(fd);
fseeko64(fd, 0, SEEK_SET);
/* check if thread is running */
bool isRunning = thread ? thread->isRunning() : true;
int runningCheckCount = 0;
SHA1_Init(sha_ctx);
while((len = fread(gblBuf,1, 512, fd)) > 0)
while(isRunning && (len = fread(gblBuf,1, 512, fd)) > 0)
{
SHA1_Update(sha_ctx, gblBuf, len);
if (thread && ++runningCheckCount > (10 * 1024)) {
/* check all 50MB if thread is running */
isRunning = thread->isRunning();
runningCheckCount = 0;
}
}
/* Thread has ended */
if (isRunning == false)
{
delete sha_ctx;
fclose(fd);
return false;
}
/* reading failed for some reason */
if (ferror(fd))
if (ferror(fd))
{
delete sha_ctx;
fclose(fd);
@ -565,7 +586,7 @@ bool RsDirUtil::getFileHash(const std::string& filepath, std::string &hash, uint
SHA1_Final(&sha_buf[0], sha_ctx);
std::ostringstream tmpout;
std::ostringstream tmpout;
for(int i = 0; i < SHA_DIGEST_LENGTH; i++)
{
tmpout << std::setw(2) << std::setfill('0') << std::hex << (unsigned int) (sha_buf[i]);

View file

@ -33,6 +33,7 @@
#include <stdint.h>
class CRC32Map ;
class RsThread;
namespace RsDirUtil {
@ -64,7 +65,7 @@ bool checkCreateDirectory(const std::string& dir);
bool cleanupDirectory(const std::string& dir, const std::list<std::string> &keepFiles);
bool hashFile(const std::string& filepath, std::string &name, std::string &hash, uint64_t &size);
bool getFileHash(const std::string& filepath,std::string &hash, uint64_t &size);
bool getFileHash(const std::string& filepath,std::string &hash, uint64_t &size, RsThread *thread = NULL);
std::wstring getWideTopDir(std::wstring);

View file

@ -82,7 +82,7 @@ pthread_t createThread(RsThread &thread)
RsThread::RsThread ()
{
m_bRun = true;
mIsRunning = true;
#ifdef WINDOWS_SYS
memset (&mTid, 0, sizeof(mTid));
@ -93,7 +93,8 @@ RsThread::RsThread ()
void RsThread::join() /* waits for the the mTid thread to stop */
{
m_bRun = false;
// do we need a mutex for this ?
mIsRunning = false;
void *ptr;
pthread_join(mTid, &ptr);
@ -104,6 +105,12 @@ void RsThread::stop()
pthread_exit(NULL);
}
bool RsThread::isRunning()
{
// do we need a mutex for this ?
return mIsRunning;
}
RsQueueThread::RsQueueThread(uint32_t min, uint32_t max, double relaxFactor )
:mMinSleep(min), mMaxSleep(max), mRelaxFactor(relaxFactor)
{
@ -113,7 +120,7 @@ RsQueueThread::RsQueueThread(uint32_t min, uint32_t max, double relaxFactor )
void RsQueueThread::run()
{
while(m_bRun)
while(isRunning())
{
bool doneWork = false;
while(workQueued() && doWork())

View file

@ -118,10 +118,13 @@ virtual void run() = 0; /* called once the thread is started */
virtual void join(); /* waits for the the mTid thread to stop */
virtual void stop(); /* calls pthread_exit() */
bool isRunning();
pthread_t mTid;
RsMutex mMutex;
protected:
bool m_bRun;
RsMutex mMutex;
private:
bool mIsRunning;
};

View file

@ -170,14 +170,21 @@ void FixedAllocator::printStatistics() const
SmallObjectAllocator::SmallObjectAllocator(size_t maxObjectSize)
: _maxObjectSize(maxObjectSize)
{
RsStackMutex m(SmallObject::_mtx) ;
_lastAlloc = NULL ;
_lastDealloc = NULL ;
_active = true ;
}
SmallObjectAllocator::~SmallObjectAllocator()
{
RsStackMutex m(SmallObject::_mtx) ;
for(std::map<int,FixedAllocator*>::const_iterator it(_pool.begin());it!=_pool.end();++it)
delete it->second ;
_active = false ;
}
void *SmallObjectAllocator::allocate(size_t bytes)
@ -255,6 +262,10 @@ void *SmallObject::operator new(size_t size)
#endif
RsStackMutex m(_mtx) ;
if(!_allocator._active)
return (void*)NULL;
void *p = _allocator.allocate(size) ;
#ifdef DEBUG_MEMORY
std::cerr << "new RsItem: " << p << ", size=" << size << std::endl;
@ -265,6 +276,10 @@ void *SmallObject::operator new(size_t size)
void SmallObject::operator delete(void *p,size_t size)
{
RsStackMutex m(_mtx) ;
if(!_allocator._active)
return ;
_allocator.deallocate(p,size) ;
#ifdef DEBUG_MEMORY
std::cerr << "del RsItem: " << p << ", size=" << size << std::endl;
@ -274,6 +289,10 @@ void SmallObject::operator delete(void *p,size_t size)
void SmallObject::printStatistics()
{
RsStackMutex m(_mtx) ;
if(!_allocator._active)
return ;
_allocator.printStatistics() ;
}

View file

@ -85,6 +85,8 @@ namespace RsMemoryManagement
void deallocate(void *p,size_t size) ;
void printStatistics() const ;
bool _active ;
private:
std::map<int,FixedAllocator*> _pool ;
FixedAllocator *_lastAlloc ;
@ -105,6 +107,8 @@ namespace RsMemoryManagement
private:
static SmallObjectAllocator _allocator ;
static RsMutex _mtx;
friend class SmallObjectAllocator ;
};
extern void printStatistics() ;

View file

@ -1,31 +1,136 @@
Changes for v0.5.1*
Changes for v0.5.1a
* custom status now sent without needing to have a private chat
- getcustom status now generate a requests to that peer.
- setowncustom status now generates an 'status available' item sent to all peers
* added new const ids for custom status 'request' and 'available'
* Udp connection uses now dyndns when available
* Remove some error detection in deserial for dynDNS backward compatibility
* Add the setDynDNS to the confcertdialog
* fixed MessengerWindow TreeWidget stylesheet
* fixed to get work rsStatus under Windows
* display Avatar icons on second item in MessengerWindow, when no Avatar pictures is available show a default one.
* restored open messenger to main window left hand panel
* replaced messenger peer icons with avatars
* removed offline status msg
* sendstatus is now on qtimer - think of replacing with rs notify call back
- hack to load file status from previous rs session
- also removed 'offline' status
* Added to count new messages on Tray icon Tooltip.
* implemented simple rsStatus for messenger window
* fixed minor bug with messenger window (starts new pop-up chat dialog when peer responds, if private chat started from messenger window)
* removed double definition
* Added ShareDialog for ShareManager
* sorting on date in messages and showing time only for same day messages
* Fixed some labels font display problem
* Improved Display Messages Labels: From, Date, Subject, To, redesign the To Label to display it more user friendly
* Added to display text for Dir counts
* Added to display filesize in Bytes for Details
New features (DHT, Channels, Network View)
Improved stability w.r.t. previous version 0.5.0g"
Added lots of improvements, check for details svn log entrys
Changes for v0.5.0g
* corrected a bug that caused file copy error: a closeFile() was missing when the file is complete.
Changes for v0.5.0f
* restored the retroshare-nogui executable
* bug corrections in cachestrapper
* bug corrections in RsTunnelItem and p3tunnel
* better error handling in rstunnelitem on windows
* removed deadlock in data multiplex
* improved p3disc info update
Changes for v0.5.0e
* Made a pass on the code in p3disc.
* Corrected some bugs:
- suppressed an unwanted return in packet treatment
- prevented sending info to a peer about itself
- changed askInfoToAllPeers() such as not to discard info from peers with
NODISC flag (because we especially need info for these)
- enabled receiving p3disc info even if p3discovery is disabled. Indeed,
disabeling p3disc is a measure of protection, so it should limit the
export of p3disc info, not the import.
- removed test discarding info about dummy friends, because it is useless
- don't discard info about peers that have the NODISC flag (meaning that we
especially need info for them)
- added safety check about received GPG keys. Before we relied on this test
being performed by p3ConnMgr::addFriend()
- added some debug info
* put correct (i.e. non conservative) size for RsDiscReply packets
* corrected bug in rsdiscitem that prevented RsDiscReply packets to transfer cp serialiser/rsdiscitems.cc
* switched ip addr finder to on by default (users seem to request it, and its not harmful)
* automatic removal of file lists from deleted peers, at restart (After double check that this does not alter exchange of file lists in any way)
* set heartbeat values to intermediate value
* added verification for file size computation (bug correction)
* augmented the heartbeat parameters, to reduce the stress on connections. Seems to help a lot when the traffic is high.
Changes for v0.5.0d
Package improvements:
* suppressed package dependency on gpg-agent
Improvements:
* implemented a free disk space checking method, with a warning when running low
* fixed proper sorting/updating of IP lists.
* only keep the most recent port for identical ips.
* don't start when the local address+port are already in use to avoid corrupting file lists, config files etc
* added failure tests for fwrite
* added tests against wrong ip 1.0.0.0 on MacOS
Major bug corrections:
* added missing locks in search requests into fimonitor.cc
* Suppressed the possibility for browsable only files to be searched by hash from turtle router.
* cleaned up some deadly code in rsdiscitems.cc, causing crashes
* improved the security of size determination for file lists, that caused a chain reaction ending in crash at clients.
* added missign lock in ftcontroller
Minor bug corrections:
* added a check to avoid (possibly rare) data races in data multiplex
* suppressed double click action for download in Shared File lists
Changes for v0.5.0c
* Fixes two problems in the current group chat:
- the parser fails to embed two links in the same sentence
- the parser can potentially put smileys in the middle of <a> tags
Solution:
Since the message is in HTML, it is parsed into a DOM tree, then that DOM tree
is traversed and only the text nodes are parsed (see HandleRichText.cpp for details).
Bonus fixes:
- missing std:: for endl (which was falling back to its Qt counterpart)
- commenting useless code in PeersDialog::smileyWidgetgroupchat()
- replacing int by size_t
- RetroShare.pro now queries gpgme-config for its include path
* fixed Memory leaks:
- getLocalInterfaces -> iptable = (MIB_IPADDRTABLE *) malloc(dwSize);
- main -> RshareSettings *_settings = new RshareSettings();
- ExtAddrFinder::~ExtAddrFinder - use free for pointer allocated with malloc
* fixed RetroShare stopped responding during signing a key and asking for password.
- The QSingleShotTimer of ConfCertDialog wants to update the gui and stopped in PeerItem::updateItem.
* fixed chat bug that was truncating some messages, due to using a uint16_t to store a local size. Totally backward compatible.
* fixed crash with second open of HelpDialog solved
* implemented a short circuit to local cache transfers.
- This saves a large number of file descriptors, and improves reactivity of the software
Changes for v0.5.0b
* suppressed unused files
* added a checkpoint to file hashing, to save intermediate results every 10 GB
* corrected memory leak in p3disc heart-beat system.
* correct bug with selection with human readable delegate.
* fixed the sorting of SearchDialog by age and by size, by using proper delegates for displaying the numbers.
* Removed the SR_REALSIZE_COL column, that is no longer necessary.
* improved readability of cert generation dialog. Added tooltips, information, and wait cursor
* corrected bug in search: files with size > 2Gb would not be added to transfers
* corrected bug about persistence of default chunk strategy
* fix a gui bug
* The settings in the settings window are only loaded once.
* Saving the settings without changing the network settings doesn't shutdown the connections
* Forwarding a message keep the attached recommended files
- starting with ssl_id which has saved pword, and switching ids at start dialog
- secondary id may or may not have saved pword.
* added check for the result of fscanf
* fixed compatibility issue with dyndns patch
* Ported trunk commit 2780: Set the trust lvl to 3 when accepting a friend and the trust lvl is unknown.
* Removed some potentially harmful (deadlock) code.
* Put some printf into debugging #ifdef
* Bug fix: Checkbox for automatic share of the incoming directory doesn't correctly set with setDown, use setChecked
* ShareManager and RSettingsWin doesn't need to be created all the time
* RSettingsWin: Save the last active page for the current runtime
* ShareManager and DirectoryPage: Show changed shared directories direct after the change
Changes for v0.5.0a

View file

@ -144,6 +144,9 @@ p, li { white-space: pre-wrap; }
<property name="enabled">
<bool>true</bool>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Add</string>
</property>
@ -197,6 +200,9 @@ p, li { white-space: pre-wrap; }
<height>26</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Post to Channel</string>
</property>
@ -217,6 +223,9 @@ p, li { white-space: pre-wrap; }
</item>
<item row="0" column="3">
<widget class="QPushButton" name="displayButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Display</string>
</property>

View file

@ -619,6 +619,9 @@ p, li { white-space: pre-wrap; }
</item>
<item row="0" column="5">
<widget class="QPushButton" name="forumpushButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Add</string>
</property>
@ -660,6 +663,9 @@ p, li { white-space: pre-wrap; }
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Start new Thread for Selected Forum</string>
</property>
@ -677,6 +683,9 @@ p, li { white-space: pre-wrap; }
</item>
<item row="0" column="4">
<widget class="QPushButton" name="displayButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Display</string>
</property>
@ -938,6 +947,9 @@ background: white;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Previous Thread</string>
</property>
@ -973,6 +985,9 @@ background: white;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Next Thread</string>
</property>
@ -993,6 +1008,9 @@ background: white;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string/>
</property>
@ -1080,6 +1098,9 @@ p, li { white-space: pre-wrap; }
<family>MS Shell Dlg 2</family>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Reset</string>
</property>
@ -1151,6 +1172,9 @@ border-image: url(:/images/closepressed.png)
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Reply Message</string>
</property>

View file

@ -93,15 +93,15 @@
/* Images for toolbar icons */
#define IMAGE_NETWORK2 ":/images/rs1.png"
#define IMAGE_PEERS ":/images/groupchat.png"
#define IMAGE_SEARCH ":/images/filefind.png"
#define IMAGE_TRANSFERS ":/images/ktorrent32.png"
#define IMAGE_PEERS ":/images/groupchat.png"
#define IMAGE_SEARCH ":/images/filefind.png"
#define IMAGE_TRANSFERS ":/images/ktorrent32.png"
#define IMAGE_LINKS ":/images/irkick.png"
#define IMAGE_FILES ":/images/fileshare24.png"
#define IMAGE_CHANNELS ":/images/channels.png"
#define IMAGE_FILES ":/images/fileshare32.png"
#define IMAGE_CHANNELS ":/images/channels.png"
#define IMAGE_FORUMS ":/images/konversation.png"
#define IMAGE_PREFERENCES ":/images/kcmsystem24.png"
#define IMAGE_CHAT ":/images/groupchat.png"
#define IMAGE_CHAT ":/images/groupchat.png"
#define IMAGE_RETROSHARE ":/images/rstray3.png"
#define IMAGE_ABOUT ":/images/informations_24x24.png"
#define IMAGE_STATISTIC ":/images/utilities-system-monitor.png"
@ -110,8 +110,8 @@
#define IMAGE_RSM32 ":/images/kdmconfig.png"
#define IMAGE_RSM16 ":/images/rsmessenger16.png"
#define IMAGE_CLOSE ":/images/close_normal.png"
#define IMAGE_BLOCK ":/images/blockdevice.png"
#define IMAGE_COLOR ":/images/highlight.png"
#define IMAGE_BLOCK ":/images/blockdevice.png"
#define IMAGE_COLOR ":/images/highlight.png"
#define IMAGE_GAMES ":/images/kgames.png"
#define IMAGE_PHOTO ":/images/lphoto.png"
#define IMAGE_ADDFRIEND ":/images/add-friend24.png"

View file

@ -569,6 +569,9 @@ border: 1px solid #CCCCCC;}</string>
<height>167777</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>New Message</string>
</property>
@ -579,7 +582,7 @@ border: 1px solid #CCCCCC;}</string>
<string>Compose</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/folder-draft24.png</normaloff>:/images/folder-draft24.png</iconset>
</property>
<property name="iconSize">
@ -623,6 +626,9 @@ border: 1px solid #CCCCCC;}</string>
<height>16777</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Reply to selected message</string>
</property>
@ -633,7 +639,7 @@ border: 1px solid #CCCCCC;}</string>
<string>Reply</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/replymail-pressed.png</normaloff>:/images/replymail-pressed.png</iconset>
</property>
<property name="iconSize">
@ -664,6 +670,9 @@ border: 1px solid #CCCCCC;}</string>
<height>16777</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Reply all to selected message</string>
</property>
@ -671,7 +680,7 @@ border: 1px solid #CCCCCC;}</string>
<string>Reply all</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/replymailall24-hover.png</normaloff>:/images/replymailall24-hover.png</iconset>
</property>
<property name="iconSize">
@ -702,6 +711,9 @@ border: 1px solid #CCCCCC;}</string>
<height>16777</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Forward selected message</string>
</property>
@ -709,7 +721,7 @@ border: 1px solid #CCCCCC;}</string>
<string>Foward</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/mailforward24-hover.png</normaloff>:/images/mailforward24-hover.png</iconset>
</property>
<property name="iconSize">
@ -747,6 +759,9 @@ border: 1px solid #CCCCCC;}</string>
<height>16777</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Remove selected message</string>
</property>
@ -757,7 +772,7 @@ border: 1px solid #CCCCCC;}</string>
<string>Delete</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/deletemail24.png</normaloff>:/images/deletemail24.png</iconset>
</property>
<property name="iconSize">
@ -794,6 +809,9 @@ border: 1px solid #CCCCCC;}</string>
<height>16777</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Print selected message</string>
</property>
@ -801,7 +819,7 @@ border: 1px solid #CCCCCC;}</string>
<string>Print</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/print24.png</normaloff>:/images/print24.png</iconset>
</property>
<property name="iconSize">
@ -829,11 +847,14 @@ border: 1px solid #CCCCCC;}</string>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>Display</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/looknfeel.png</normaloff>:/images/looknfeel.png</iconset>
</property>
<property name="iconSize">
@ -874,7 +895,7 @@ border: 1px solid #CCCCCC;}</string>
<string/>
</property>
<property name="pixmap">
<pixmap>:/images/find-16.png</pixmap>
<pixmap resource="images.qrc">:/images/find-16.png</pixmap>
</property>
</widget>
</item>
@ -895,6 +916,9 @@ border: 1px solid #CCCCCC;}</string>
<height>16</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Reset</string>
</property>
@ -959,6 +983,9 @@ border-image: url(:/images/closepressed.png)
</item>
<item row="0" column="6">
<widget class="QToolButton" name="tagButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Tags</string>
</property>
@ -966,7 +993,7 @@ border-image: url(:/images/closepressed.png)
<string>Tag</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/tag24.png</normaloff>:/images/tag24.png</iconset>
</property>
<property name="iconSize">
@ -1107,7 +1134,7 @@ border-image: url(:/images/closepressed.png)
<string>Inbox</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/folder-inbox.png</normaloff>:/images/folder-inbox.png</iconset>
</property>
</item>
@ -1116,7 +1143,7 @@ border-image: url(:/images/closepressed.png)
<string>Outbox</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/folder-outbox.png</normaloff>:/images/folder-outbox.png</iconset>
</property>
</item>
@ -1125,7 +1152,7 @@ border-image: url(:/images/closepressed.png)
<string>Draft</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/folder-draft.png</normaloff>:/images/folder-draft.png</iconset>
</property>
</item>
@ -1134,7 +1161,7 @@ border-image: url(:/images/closepressed.png)
<string>Sent</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/folder-sent.png</normaloff>:/images/folder-sent.png</iconset>
</property>
</item>
@ -1143,7 +1170,7 @@ border-image: url(:/images/closepressed.png)
<string>Trash</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/folder-trash.png</normaloff>:/images/folder-trash.png</iconset>
</property>
</item>
@ -1190,7 +1217,7 @@ border: 1px solid #CCCCCC;}</string>
<string>Favorite Tags</string>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/tag24.png</normaloff>:/images/tag24.png</iconset>
</property>
<property name="checkable">
@ -1324,7 +1351,7 @@ padding: 4px;
<string/>
</property>
<property name="pixmap">
<pixmap>:/images/attachment.png</pixmap>
<pixmap resource="images.qrc">:/images/attachment.png</pixmap>
</property>
</widget>
</item>
@ -1353,11 +1380,14 @@ p, li { white-space: pre-wrap; }
</item>
<item row="0" column="0">
<widget class="QPushButton" name="expandFilesButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/edit_remove24.png</normaloff>:/images/edit_remove24.png</iconset>
</property>
<property name="checkable">
@ -1385,6 +1415,9 @@ p, li { white-space: pre-wrap; }
</item>
<item>
<widget class="QPushButton" name="downloadButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>&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; }
@ -1395,7 +1428,7 @@ p, li { white-space: pre-wrap; }
<string/>
</property>
<property name="icon">
<iconset>
<iconset resource="images.qrc">
<normaloff>:/images/down.png</normaloff>:/images/down.png</iconset>
</property>
</widget>
@ -1832,7 +1865,9 @@ p, li { white-space: pre-wrap; }
<tabstop>msgText</tabstop>
<tabstop>msgList</tabstop>
</tabstops>
<resources/>
<resources>
<include location="images.qrc"/>
</resources>
<connections>
<connection>
<sender>expandFilesButton</sender>

View file

@ -233,6 +233,9 @@ p, li { white-space: pre-wrap; }
<family>MS Shell Dlg 2</family>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Clear Filter</string>
</property>
@ -295,6 +298,9 @@ border-image: url(:/images/closepressed.png)
</item>
<item>
<widget class="QPushButton" name="viewButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<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;

View file

@ -399,7 +399,7 @@ void PeersDialog::peertreeWidgetCostumPopupMenu( QPoint point )
iconLabel->setMaximumSize( iconLabel->frameSize().height() + 24, 24 );
hbox->addWidget(iconLabel);
textLabel = new QLabel("<strong>" + tr("RetroShare") + "</strong>", widget );
textLabel = new QLabel("<strong>RetroShare</strong>", widget );
hbox->addWidget(textLabel);
@ -1275,7 +1275,7 @@ void PeersDialog::removefriend()
if (rsPeers)
{
if ((QMessageBox::question(this, tr("RetroShare"),tr("Do you want to remove this Friend?"),QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes))== QMessageBox::Yes)
if ((QMessageBox::question(this, "RetroShare",tr("Do you want to remove this Friend?"),QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes))== QMessageBox::Yes)
{
rsPeers->removeFriend(getPeerRsCertId(c));
emit friendsUpdated() ;
@ -1726,8 +1726,10 @@ void PeersDialog::on_actionClear_Chat_History_triggered()
void PeersDialog::on_actionDelete_Chat_History_triggered()
{
on_actionClear_Chat_History_triggered();
historyKeeper.clear();
if ((QMessageBox::question(this, "RetroShare", tr("Do you really want to physically delete the history?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)) == QMessageBox::Yes) {
on_actionClear_Chat_History_triggered();
historyKeeper.clear();
}
}
void PeersDialog::smileyWidgetgroupchat()

View file

@ -553,6 +553,9 @@ p, li { white-space: pre-wrap; }
</item>
<item row="0" column="4">
<widget class="QPushButton" name="menupushButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Add</string>
</property>
@ -607,6 +610,9 @@ p, li { white-space: pre-wrap; }
</item>
<item row="0" column="3">
<widget class="QPushButton" name="displayButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Display</string>
</property>
@ -965,9 +971,6 @@ background: white;}</string>
</item>
<item>
<widget class="QTextEdit" name="lineEdit">
<property name="toolTip">
<string>Messages entered here are sent to all collected friends</string>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>30</horstretch>
@ -1001,6 +1004,9 @@ background: white;}</string>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="toolTip">
<string>Messages entered here are sent to all collected friends</string>
</property>
<property name="styleSheet">
<string notr="true">QTextEdit#lineEdit{border: 1px solid #CCCCCC;
}</string>
@ -1050,6 +1056,9 @@ border: 1px solid #CCCCCC;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string/>
</property>
@ -1088,6 +1097,9 @@ border: 1px solid #CCCCCC;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Bold</string>
</property>
@ -1126,6 +1138,9 @@ border: 1px solid #CCCCCC;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Underline</string>
</property>
@ -1164,6 +1179,9 @@ border: 1px solid #CCCCCC;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Italic</string>
</property>
@ -1202,6 +1220,9 @@ border: 1px solid #CCCCCC;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Font</string>
</property>
@ -1237,12 +1258,11 @@ border: 1px solid #CCCCCC;}</string>
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<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;&quot;&gt;set Text Color&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>Text Color</string>
</property>
<property name="text">
<string/>
@ -1272,6 +1292,9 @@ p, li { white-space: pre-wrap; }
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="styleSheet">
<string notr="true">QPushButton::menu-indicator {
subcontrol-origin: padding;
@ -1325,6 +1348,9 @@ p, li { white-space: pre-wrap; }
<height>26</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Attach File</string>
</property>

View file

@ -17,6 +17,14 @@ RsAutoUpdatePage::RsAutoUpdatePage(int ms_update_period,QWidget *parent)
_timer->start() ;
}
RsAutoUpdatePage::~RsAutoUpdatePage()
{
if(_timer != NULL)
delete _timer ;
_timer = NULL ;
}
void RsAutoUpdatePage::showEvent(QShowEvent *event)
{
//std::cout << "RsAutoUpdatePage::showEvent() In show event !!" << std::endl ;

View file

@ -19,6 +19,7 @@ class RsAutoUpdatePage: public MainPage
public:
RsAutoUpdatePage(int ms_update_period = 1000,QWidget *parent=NULL) ;
virtual ~RsAutoUpdatePage() ;
virtual void updateDisplay() {}

View file

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>574</width>
<height>344</height>
<height>329</height>
</rect>
</property>
<property name="sizePolicy">
@ -769,6 +769,9 @@ border: none;}
<height>16</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Reset</string>
</property>
@ -800,6 +803,12 @@ border-image: url(:/images/closepressed.png)
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16</width>
@ -830,6 +839,9 @@ border: none;}</string>
</item>
<item>
<widget class="QPushButton" name="pushButtonsearch">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Start Search</string>
</property>
@ -1042,6 +1054,9 @@ border-image: url(:/images/btn_26_pressed.png) 4;
<family>MS Shell Dlg 2</family>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Clear Filter</string>
</property>

View file

@ -592,6 +592,9 @@ p, li { white-space: pre-wrap; }
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Splitted View</string>
</property>
@ -621,6 +624,9 @@ p, li { white-space: pre-wrap; }
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Friends Folders</string>
</property>
@ -650,6 +656,9 @@ p, li { white-space: pre-wrap; }
<height>24</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>My Folders</string>
</property>
@ -752,6 +761,9 @@ p, li { white-space: pre-wrap; }
<family>MS Shell Dlg 2</family>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Start Search</string>
</property>
@ -783,6 +795,9 @@ p, li { white-space: pre-wrap; }
<family>MS Shell Dlg 2</family>
</font>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Reset</string>
</property>

View file

@ -3,6 +3,8 @@
#include <retroshare/rsturtle.h>
#include "TurtleRouterDialog.h"
static const int MAX_TUNNEL_REQUESTS_DISPLAY = 10 ;
TurtleRouterDialog::TurtleRouterDialog(QWidget *parent)
: RsAutoUpdatePage(2000,parent)
{
@ -41,7 +43,11 @@ void TurtleRouterDialog::updateDisplay()
// remove all children of top level objects
for(int i=0;i<_f2f_TW->topLevelItemCount();++i)
while(_f2f_TW->topLevelItem(i)->takeChild(0) != NULL) ;
{
QTreeWidgetItem *taken ;
while( (taken = _f2f_TW->topLevelItem(i)->takeChild(0)) != NULL)
delete taken ;
}
for(uint i=0;i<hashes_info.size();++i)
findParentHashItem(hashes_info[i][0]) ;
@ -55,14 +61,14 @@ void TurtleRouterDialog::updateDisplay()
QTreeWidgetItem *parent = findParentHashItem(hash) ;
if(parent->text(0) == QString("Unknown hashes"))
if(parent->text(0).left(14) == QString("Unknown hashes"))
unknown_hash_found = true ;
QString str = QString::fromStdString( "Tunnel id: " + tunnels_info[i][0] + "\t [" + tunnels_info[i][2] + "] --> [" + tunnels_info[i][1] + "]\t\t last transfer: " + tunnels_info[i][4] + "\t Speed: " + tunnels_info[i][5] ) ;
stl.clear() ;
stl.push_back(str) ;
new QTreeWidgetItem(parent,stl) ;
parent->addChild(new QTreeWidgetItem(stl)) ;
}
for(uint i=0;i<search_reqs_info.size();++i)
@ -72,27 +78,41 @@ void TurtleRouterDialog::updateDisplay()
stl.clear() ;
stl.push_back(str) ;
new QTreeWidgetItem(top_level_s_requests,stl) ;
top_level_s_requests->addChild(new QTreeWidgetItem(stl)) ;
}
top_level_s_requests->setText(0, tr("Search requests") + "(" + QString::number(search_reqs_info.size()) + ")" ) ;
for(uint i=0;i<tunnel_reqs_info.size();++i)
{
QString str = QString::fromStdString( "Request id: " + tunnel_reqs_info[i][0] + "\t from [" + tunnel_reqs_info[i][1] + "]\t " + tunnel_reqs_info[i][2]) ;
int reqs_size = tunnel_reqs_info.size() ;
stl.clear() ;
stl.push_back(str) ;
for(uint i=0;i<reqs_size;++i)
if(i+MAX_TUNNEL_REQUESTS_DISPLAY >= reqs_size || i < MAX_TUNNEL_REQUESTS_DISPLAY)
{
QString str = QString::fromStdString( "Request id: " + tunnel_reqs_info[i][0] + "\t from [" + tunnel_reqs_info[i][1] + "]\t " + tunnel_reqs_info[i][2]) ;
stl.clear() ;
stl.push_back(str) ;
top_level_t_requests->addChild(new QTreeWidgetItem(stl)) ;
}
else if(i == MAX_TUNNEL_REQUESTS_DISPLAY)
{
stl.clear() ;
stl.push_back(QString("...")) ;
top_level_t_requests->addChild(new QTreeWidgetItem(stl)) ;
}
new QTreeWidgetItem(top_level_t_requests,stl) ;
}
top_level_t_requests->setText(0, tr("Tunnel requests") + "("+QString::number(tunnel_reqs_info.size()) + ")") ;
QTreeWidgetItem *unknown_hashs_item = findParentHashItem("") ;
unknown_hashs_item->setText(0,QString("Unknown hashes (") + QString::number(unknown_hashs_item->childCount())+QString(")")) ;
// Ok, this is a N2 search, but there are very few elements in the list.
for(int i=2;i<_f2f_TW->topLevelItemCount();)
{
bool found = false ;
if(_f2f_TW->topLevelItem(i)->text(0) == "Unknown hashes" && unknown_hash_found)
if(_f2f_TW->topLevelItem(i)->text(0).left(14) == "Unknown hashes" && unknown_hash_found)
found = true ;
if(_f2f_TW->topLevelItem(i)->childCount() > 0) // this saves uploading hashes
@ -103,7 +123,7 @@ void TurtleRouterDialog::updateDisplay()
found=true ;
if(!found)
_f2f_TW->takeTopLevelItem(i) ;
delete _f2f_TW->takeTopLevelItem(i) ;
else
++i ;
}
@ -113,7 +133,7 @@ QTreeWidgetItem *TurtleRouterDialog::findParentHashItem(const std::string& hash)
{
// look for the hash, and insert a new element if necessary.
//
QList<QTreeWidgetItem*> items = _f2f_TW->findItems((hash=="")?QString("Unknown hashes"):QString::fromStdString(hash),Qt::MatchExactly) ;
QList<QTreeWidgetItem*> items = _f2f_TW->findItems((hash=="")?QString("Unknown hashes"):QString::fromStdString(hash),Qt::MatchStartsWith) ;
if(items.empty())
{

View file

@ -833,8 +833,10 @@ void PopupChatDialog::on_actionClear_Chat_History_triggered()
void PopupChatDialog::on_actionDelete_Chat_History_triggered()
{
on_actionClear_Chat_History_triggered();
historyKeeper.clear();
if ((QMessageBox::question(this, "RetroShare", tr("Do you really want to physically delete the history?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes)) == QMessageBox::Yes) {
on_actionClear_Chat_History_triggered();
historyKeeper.clear();
}
}
void PopupChatDialog::updatePeerAvatar(const std::string& peer_id)

View file

@ -325,6 +325,9 @@ stop:0 #FFFFD7, stop:1 #FFFFB2);}</string>
<height>16</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Close</string>
</property>
@ -398,6 +401,9 @@ border-image: url(:/images/closepressed.png)
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="styleSheet">
<string notr="true">QPushButton::menu-indicator {
subcontrol-origin: padding;
@ -445,6 +451,9 @@ border: 1px solid #CCCCCC;
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Attach a Picture</string>
</property>
@ -474,6 +483,9 @@ border: 1px solid #CCCCCC;
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Add a File for your Friend</string>
</property>
@ -535,6 +547,9 @@ border: 1px solid #CCCCCC;
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string/>
</property>
@ -563,6 +578,9 @@ border: 1px solid #CCCCCC;
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Bold</string>
</property>
@ -595,6 +613,9 @@ border: 1px solid #CCCCCC;
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Underline</string>
</property>
@ -627,6 +648,9 @@ border: 1px solid #CCCCCC;
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Italic</string>
</property>
@ -659,8 +683,11 @@ border: 1px solid #CCCCCC;
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Set Font</string>
<string>Font</string>
</property>
<property name="text">
<string/>
@ -691,6 +718,9 @@ border: 1px solid #CCCCCC;
<height>28</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Text Color</string>
</property>

View file

@ -125,6 +125,12 @@ border: none;}
</item>
<item row="0" column="3">
<widget class="QComboBox" name="filterCombo">
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
<item>
<property name="text">
<string>Title</string>
@ -151,6 +157,9 @@ border: none;}
<height>16</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Reset</string>
</property>

View file

@ -110,6 +110,9 @@ border: 1px solid #CCCCCC;}</string>
</property>
<item>
<widget class="QToolButton" name="attachFileButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Attach File</string>
</property>
@ -133,6 +136,9 @@ border: 1px solid #CCCCCC;}</string>
</item>
<item>
<widget class="QToolButton" name="emoticonButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string/>
</property>
@ -153,6 +159,9 @@ border: 1px solid #CCCCCC;}</string>
</item>
<item>
<widget class="QCheckBox" name="signBox">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string>Sign Message</string>
</property>
@ -186,6 +195,9 @@ border: 1px solid #CCCCCC;}</string>
</item>
<item>
<widget class="QToolButton" name="pastersButton">
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="toolTip">
<string>Paste RetroShare Link</string>
</property>

View file

@ -431,13 +431,14 @@
<file>images/user/friends24.png</file>
<file>images/user/identity16.png</file>
<file>images/user/identity24.png</file>
<file>images/user/identity32.png</file>
<file>images/user/identity48.png</file>
<file>images/user/identityoffline24.png</file>
<file>images/user/identity24away.png</file>
<file>images/user/identity24busy.png</file>
<file>images/user/identity24idle.png</file>
<file>images/user/identityavaiblecyan24.png</file>
<file>images/user/agt_forum24.png</file>
<file>images/user/identity32.png</file>
<file>images/user/identitygray16.png</file>
<file>images/user/add_user16.png</file>
<file>images/user/personal64.png</file>

View file

@ -126,16 +126,24 @@ void NotifyQt::notifyOwnAvatarChanged()
std::string NotifyQt::askForPassword(const std::string& key_details,bool prev_is_bad)
{
RsAutoUpdatePage::lockAllEvents() ;
std::string res = QInputDialog::getText(NULL, tr("GPG key passphrase"),
(prev_is_bad?tr("Wrong password !") + "\n\n" : QString()) +
tr("Please enter the password to unlock the following GPG key:") + "\n" + QString::fromStdString(key_details), QLineEdit::Password, NULL, NULL).toStdString();
QInputDialog dialog;
dialog.setWindowTitle(tr("GPG key passphrase"));
dialog.setLabelText((prev_is_bad?tr("Wrong password !") + "\n\n" : QString()) +
tr("Please enter the password to unlock the following GPG key:") + "\n" + QString::fromStdString(key_details));
dialog.setTextEchoMode(QLineEdit::Password);
dialog.setWindowIcon(QIcon(":/images/rstray3.png"));
int ret = dialog.exec();
RsAutoUpdatePage::unlockAllEvents() ;
return res ;
if (ret) {
return dialog.textValue().toStdString();
}
return "";
}
void NotifyQt::notifyDiscInfoChanged()

View file

@ -1011,12 +1011,12 @@ p, li { white-space: pre-wrap; }
&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:&apos;Arial&apos;; font-size:10pt; font-weight:600;&quot;&gt;Kanäle&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+29"/>
<location line="+32"/>
<source>Add</source>
<translation>Hinzufügen</translation>
</message>
<message>
<location line="+73"/>
<location line="+79"/>
<source>Display</source>
<translation>Anzeige</translation>
</message>
@ -1071,7 +1071,7 @@ p, li { white-space: pre-wrap; }
<translation>Andere Kanäle</translation>
</message>
<message>
<location filename="../gui/ChannelFeed.ui" line="-168"/>
<location filename="../gui/ChannelFeed.ui" line="-171"/>
<location filename="../gui/ChannelFeed.cpp" line="+56"/>
<source>Post to Channel</source>
<translation>Kanalbeitrag erstellen</translation>
@ -1521,7 +1521,7 @@ p, li { white-space: pre-wrap; }
<translation>Übernehmen und Schliessen</translation>
</message>
<message>
<location filename="../gui/connect/ConfCertDialog.cpp" line="+128"/>
<location filename="../gui/connect/ConfCertDialog.cpp" line="+133"/>
<location line="+201"/>
<source>RetroShare</source>
<translation></translation>
@ -2377,42 +2377,42 @@ p, li { white-space: pre-wrap; }
<context>
<name>CreateForumMsg</name>
<message>
<location filename="../gui/forums/CreateForumMsg.ui" line="+321"/>
<location filename="../gui/forums/CreateForumMsg.ui" line="+333"/>
<source>Post Forum Msg</source>
<translation>Forumbeitrag schreiben</translation>
</message>
<message>
<location line="-262"/>
<location line="-274"/>
<source>Forum</source>
<translation>Forum</translation>
</message>
<message>
<location line="+166"/>
<location line="+178"/>
<source>Forum Post</source>
<translation>Beitrag</translation>
</message>
<message>
<location line="-68"/>
<location line="-71"/>
<source>Sign Message</source>
<translation>Beitrag unterschreiben</translation>
</message>
<message>
<location line="-80"/>
<location line="-89"/>
<source>Subject</source>
<translation>Betreff</translation>
</message>
<message>
<location line="+253"/>
<location line="+265"/>
<source>Close</source>
<translation>Schliessen</translation>
</message>
<message>
<location line="-313"/>
<location line="-325"/>
<source>Post Forum Message</source>
<translation>Erstelle Forumbeitrag</translation>
</message>
<message>
<location line="+173"/>
<location line="+185"/>
<location filename="../gui/forums/CreateForumMsg.cpp" line="+73"/>
<source>Paste RetroShare Link</source>
<translation>RetroShare Link einfügen</translation>
@ -2443,12 +2443,12 @@ p, li { white-space: pre-wrap; }
<translation>Zusätzliche Datei hinzufügen</translation>
</message>
<message>
<location filename="../gui/forums/CreateForumMsg.ui" line="-76"/>
<location filename="../gui/forums/CreateForumMsg.ui" line="-85"/>
<source>Attach File</source>
<translation>Datei anhängen</translation>
</message>
<message>
<location line="+134"/>
<location line="+143"/>
<source>Attach files via drag and drop</source>
<translation>Hänge Dateien mit Drag&apos;n&apos;Drop an</translation>
</message>
@ -3698,17 +3698,17 @@ p, li { white-space: pre-wrap; }
&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:&apos;Arial&apos;; font-weight:600;&quot;&gt;Foren&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+26"/>
<location line="+29"/>
<source>Add</source>
<translation>Hinzufügen</translation>
</message>
<message>
<location line="+41"/>
<location line="+44"/>
<source>Start new Thread for Selected Forum</source>
<translation>Starte ein neues Thema im ausgewählten Forum</translation>
</message>
<message>
<location line="+17"/>
<location line="+20"/>
<source>Display</source>
<translation>Anzeige</translation>
</message>
@ -3742,24 +3742,24 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+36"/>
<location line="+264"/>
<location line="+276"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
<location line="-278"/>
<location line="+283"/>
<location line="-290"/>
<location line="+295"/>
<source>Title</source>
<translation>Titel</translation>
</message>
<message>
<location line="-264"/>
<location line="+269"/>
<location line="-276"/>
<location line="+281"/>
<source>Author</source>
<translation>Autor</translation>
</message>
<message>
<location line="-264"/>
<location line="-276"/>
<source>Signed</source>
<translation>Unterzeichnet</translation>
</message>
@ -3777,17 +3777,17 @@ p, li { white-space: pre-wrap; }
&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:10pt; font-weight:600;&quot;&gt;Thema:&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+54"/>
<location line="+57"/>
<source>Previous Thread</source>
<translation>Vorheriger Beitrag</translation>
</message>
<message>
<location line="+35"/>
<location line="+38"/>
<source>Next Thread</source>
<translation>Nächster Beitrag</translation>
</message>
<message>
<location line="+178"/>
<location line="+187"/>
<source>Reply Message</source>
<translation>Auf Beitrag antworten</translation>
</message>
@ -3813,7 +3813,7 @@ p, li { white-space: pre-wrap; }
<translation>Erstelle neues Thema</translation>
</message>
<message>
<location filename="../gui/ForumsDialog.ui" line="-164"/>
<location filename="../gui/ForumsDialog.ui" line="-170"/>
<source>&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; }
@ -3826,7 +3826,7 @@ p, li { white-space: pre-wrap; }
&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;Suche Foren&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+28"/>
<location line="+31"/>
<source>Reset</source>
<translation>Zurücksetzen</translation>
</message>
@ -4376,7 +4376,7 @@ Fill in your GPG password when asked, to sign your new key.</source>
<translation>Beschreibung</translation>
</message>
<message>
<location line="+20"/>
<location line="+23"/>
<source>Reset</source>
<translation>Zurücksetzen</translation>
</message>
@ -6047,7 +6047,7 @@ Willst Du die Nachricht speichern ?</translation>
<context>
<name>MessagesDialog</name>
<message>
<location filename="../gui/MessagesDialog.ui" line="+573"/>
<location filename="../gui/MessagesDialog.ui" line="+576"/>
<location filename="../gui/MessagesDialog.cpp" line="+668"/>
<source>New Message</source>
<translation>Neue Nachricht</translation>
@ -6063,7 +6063,7 @@ Willst Du die Nachricht speichern ?</translation>
<translation>Nachricht entfernen</translation>
</message>
<message>
<location filename="../gui/MessagesDialog.ui" line="+372"/>
<location filename="../gui/MessagesDialog.ui" line="+393"/>
<location filename="../gui/MessagesDialog.cpp" line="-376"/>
<source>Date</source>
<translation>Datum</translation>
@ -6076,12 +6076,12 @@ Willst Du die Nachricht speichern ?</translation>
<translation>Von</translation>
</message>
<message>
<location line="+828"/>
<location line="+837"/>
<source>Size</source>
<translation>Grösse</translation>
</message>
<message>
<location line="-434"/>
<location line="-440"/>
<source>&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:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal; text-decoration:none;&quot;&gt;
@ -6089,62 +6089,62 @@ p, li { white-space: pre-wrap; }
<translation>&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:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal; text-decoration:none;&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:10pt; font-weight:600;&quot;&gt;Empfohlene Dateien&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="-701"/>
<location line="-722"/>
<source>Reply</source>
<translation>Antworten</translation>
</message>
<message>
<location line="+38"/>
<location line="+41"/>
<source>Reply all</source>
<translation>Allen antworten</translation>
</message>
<message>
<location line="+38"/>
<location line="+41"/>
<source>Foward</source>
<translation>Weiterleiten</translation>
</message>
<message>
<location line="+48"/>
<location line="+51"/>
<source>Delete</source>
<translation>Löschen</translation>
</message>
<message>
<location line="-178"/>
<location line="-190"/>
<source>Compose</source>
<translation>Verfassen</translation>
</message>
<message>
<location line="+48"/>
<location line="+51"/>
<source>Reply to selected message</source>
<translation>Auf gewählte Nachricht antworten</translation>
</message>
<message>
<location line="+41"/>
<location line="+44"/>
<source>Reply all to selected message</source>
<translation>Auf gewählte Nachricht an alle Empfänger antworten</translation>
</message>
<message>
<location line="+38"/>
<location line="+41"/>
<source>Forward selected message</source>
<translation>Gewählte Nachricht weiterleiten</translation>
</message>
<message>
<location line="+45"/>
<location line="+48"/>
<source>Remove selected message</source>
<translation>Gewählte Nachricht entfernen</translation>
</message>
<message>
<location line="+47"/>
<location line="+50"/>
<source>Print selected message</source>
<translation>Gewählte Nachricht drucken</translation>
</message>
<message>
<location line="+35"/>
<location line="+38"/>
<source>Display</source>
<translation>Anzeige</translation>
</message>
<message>
<location line="+66"/>
<location line="+69"/>
<source>Reset</source>
<translation>Zurücksetzen</translation>
</message>
@ -6154,7 +6154,7 @@ p, li { white-space: pre-wrap; }
<translation>Anhänge</translation>
</message>
<message>
<location line="+177"/>
<location line="+180"/>
<location filename="../gui/MessagesDialog.cpp" line="-44"/>
<location line="+984"/>
<location line="+10"/>
@ -6181,7 +6181,7 @@ p, li { white-space: pre-wrap; }
<translation>Gesendet</translation>
</message>
<message>
<location line="+520"/>
<location line="+526"/>
<source>Cc:</source>
<translation>Cc:</translation>
</message>
@ -6243,13 +6243,13 @@ p, li { white-space: pre-wrap; }
<translation>Dokument drucken</translation>
</message>
<message>
<location filename="../gui/MessagesDialog.ui" line="-889"/>
<location filename="../gui/MessagesDialog.ui" line="-898"/>
<location filename="../gui/MessagesDialog.cpp" line="-1563"/>
<source>Subject</source>
<translation>Betreff</translation>
</message>
<message>
<location line="+523"/>
<location line="+532"/>
<source>Subject:</source>
<translation>Betreff:</translation>
</message>
@ -6274,7 +6274,7 @@ p, li { white-space: pre-wrap; }
<translation>Prüfsumme</translation>
</message>
<message>
<location line="-972"/>
<location line="-987"/>
<source>Print</source>
<translation>Drucken</translation>
</message>
@ -6335,7 +6335,7 @@ p, li { white-space: pre-wrap; }
<translation>Allen antworten</translation>
</message>
<message>
<location filename="../gui/MessagesDialog.ui" line="+588"/>
<location filename="../gui/MessagesDialog.ui" line="+603"/>
<source>&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:&apos;Arial&apos;; font-size:8pt; font-weight:400; font-style:normal;&quot;&gt;
@ -6343,19 +6343,19 @@ p, li { white-space: pre-wrap; }
<translation>&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:&apos;Arial&apos;; font-size:8pt; 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;Alle Dateien runterladen&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="-165"/>
<location line="-171"/>
<source>Total Inbox:</source>
<translation>Posteingang gesamt:</translation>
</message>
<message>
<location line="-274"/>
<location line="-277"/>
<location filename="../gui/MessagesDialog.cpp" line="-326"/>
<source>Content</source>
<translation>Inhalt</translation>
</message>
<message>
<location line="+5"/>
<location line="+8"/>
<location line="+11"/>
<location filename="../gui/MessagesDialog.cpp" line="-1"/>
<location line="+180"/>
<source>Tags</source>
@ -7183,7 +7183,7 @@ p, li { white-space: pre-wrap; }
<translation>Bitte geben Sie das Passwort ein um folgenden GPG Schlüssel freizuschalten:</translation>
</message>
<message>
<location line="+122"/>
<location line="+130"/>
<source>Examining shared files...</source>
<translation>Prüfe freigegebene Dateien...</translation>
</message>
@ -7382,7 +7382,7 @@ p, li { white-space: pre-wrap; }
<translation>Zertifikate (*.pqi)</translation>
</message>
<message>
<location filename="../gui/PeersDialog.ui" line="+727"/>
<location filename="../gui/PeersDialog.ui" line="+733"/>
<source>Status</source>
<translation>Status</translation>
</message>
@ -7504,7 +7504,12 @@ p, li { white-space: pre-wrap; }
<translation>Neuer Gruppenchat</translation>
</message>
<message>
<location line="+291"/>
<location line="+229"/>
<source>Do you really want to physically delete the history?</source>
<translation>Willst Du wirklich den Nachrichtenverlauf physisch löschen?</translation>
</message>
<message>
<location line="+64"/>
<source>Load File</source>
<translation>Lade Datei</translation>
</message>
@ -7535,17 +7540,17 @@ p, li { white-space: pre-wrap; }
<translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation>
</message>
<message>
<location filename="../gui/PeersDialog.ui" line="+441"/>
<location filename="../gui/PeersDialog.ui" line="+453"/>
<source>Italic</source>
<translation>Kursiv</translation>
</message>
<message>
<location line="-38"/>
<location line="-41"/>
<source>Underline</source>
<translation>Unterstrichen</translation>
</message>
<message>
<location line="-586"/>
<location line="-601"/>
<source>&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; }
@ -7558,12 +7563,12 @@ p, li { white-space: pre-wrap; }
&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-weight:600;&quot;&gt;Freunde&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+13"/>
<location line="+16"/>
<source>Add</source>
<translation>Hinzufügen</translation>
</message>
<message>
<location line="+54"/>
<location line="+57"/>
<source>Display</source>
<translation>Anzeige</translation>
</message>
@ -7578,12 +7583,12 @@ p, li { white-space: pre-wrap; }
<translation>Statusnachricht ändern</translation>
</message>
<message>
<location line="+112"/>
<location line="+145"/>
<source>Messages entered here are sent to all collected friends</source>
<translation type="unfinished"></translation>
<translation>Nachrichten, die Du hier eingibst, werden an alle verbundenen Freunde versendet</translation>
</message>
<message>
<location line="+123"/>
<location line="+96"/>
<source>Bold</source>
<translation>Fett</translation>
</message>
@ -7592,7 +7597,12 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Nachrichtenverlauf leeren</translation>
</message>
<message>
<location line="+332"/>
<location line="+161"/>
<source>Text Color</source>
<translation>Textfarbe</translation>
</message>
<message>
<location line="+185"/>
<location line="+3"/>
<source>Create new Forum</source>
<translation>Erstelle neues Forum</translation>
@ -7674,40 +7684,43 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="-162"/>
<location filename="../gui/PeersDialog.cpp" line="-1511"/>
<location filename="../gui/PeersDialog.cpp" line="-1513"/>
<source>Add Friend</source>
<translation>Freund hinzufügen</translation>
</message>
<message>
<source>Set Text Color</source>
<translation type="obsolete">Text Farbe</translation>
</message>
<message>
<location line="+9"/>
<source>Create new Profile</source>
<translation>Erstelle neues Profil</translation>
</message>
<message>
<location line="-209"/>
<location line="-214"/>
<source>Font</source>
<translation>Schriftart</translation>
</message>
<message>
<location line="-311"/>
<location line="-326"/>
<source>Group Chat</source>
<translation>Gruppenchat</translation>
</message>
<message>
<location line="+346"/>
<source>&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:&apos;MS Shell Dlg 2&apos;; 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;&quot;&gt;set Text Color&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
<translation type="obsolete">&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:&apos;MS Shell Dlg 2&apos;; 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;&quot;&gt; Text Farbe&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+88"/>
<location line="+454"/>
<source>Attach File</source>
<translation>Datei anhängen</translation>
</message>
@ -7728,13 +7741,7 @@ p, li { white-space: pre-wrap; }
<translation>Nachrichtenverlauf speichern</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-40"/>
<location line="+876"/>
<source>RetroShare</source>
<translation></translation>
</message>
<message>
<location line="-837"/>
<location filename="../gui/PeersDialog.cpp" line="-1"/>
<source>Message Group</source>
<translation>Gruppe anschreiben</translation>
</message>
@ -7754,7 +7761,7 @@ p, li { white-space: pre-wrap; }
<translation>Willst du diesen Freund entfernen?</translation>
</message>
<message>
<location line="+732"/>
<location line="+734"/>
<source>Save as...</source>
<translation>Speichern unter...</translation>
</message>
@ -7790,7 +7797,7 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Aktivitäten</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-647"/>
<location filename="../gui/PeersDialog.cpp" line="-649"/>
<source>is typing...</source>
<translation>tippt...</translation>
</message>
@ -7805,7 +7812,7 @@ p, li { white-space: pre-wrap; }
<translation>Nachrichtenverlauf</translation>
</message>
<message>
<location line="-755"/>
<location line="-775"/>
<source>Friends</source>
<translation>Freunde</translation>
</message>
@ -8131,7 +8138,12 @@ p, li { white-space: pre-wrap; }
<translation>Avatar zeigen</translation>
</message>
<message>
<location line="+159"/>
<location line="+86"/>
<source>Do you really want to physically delete the history?</source>
<translation>Willst Du wirklich den Nachrichtenverlauf physisch löschen?</translation>
</message>
<message>
<location line="+75"/>
<source>Load Picture File</source>
<translation>Lade Bilddatei</translation>
</message>
@ -8146,30 +8158,29 @@ p, li { white-space: pre-wrap; }
<translation>Nachrichten, die Du versendest gehen bei diesem Freund erst wieder ein wenn er Online ist</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.ui" line="+567"/>
<location line="+266"/>
<location filename="../gui/chat/PopupChatDialog.ui" line="+585"/>
<location line="+278"/>
<source>Bold</source>
<translation>Fett</translation>
</message>
<message>
<location line="-234"/>
<location line="+244"/>
<location line="-243"/>
<location line="+253"/>
<source>Underline</source>
<translation>Unterstrichen</translation>
</message>
<message>
<location line="-212"/>
<location line="+207"/>
<location line="-218"/>
<location line="+213"/>
<source>Italic</source>
<translation>Kursiv</translation>
</message>
<message>
<location line="-175"/>
<source>Set Font</source>
<translation>Schriftart setzen</translation>
<translation type="obsolete">Schriftart setzen</translation>
</message>
<message>
<location line="+32"/>
<location line="-143"/>
<source>Text Color</source>
<translation>Textfarbe</translation>
</message>
@ -8194,7 +8205,12 @@ p, li { white-space: pre-wrap; }
<translation>Nachrichtenverlauf leeren</translation>
</message>
<message>
<location line="+38"/>
<location line="-197"/>
<source>Font</source>
<translation>Schriftart</translation>
</message>
<message>
<location line="+235"/>
<source>Delete Chat History</source>
<translation>Nachrichtenverlauf löschen</translation>
</message>
@ -8204,7 +8220,7 @@ p, li { white-space: pre-wrap; }
<translation>Löscht den gespeicherten und angezeigten Chat Verlauf</translation>
</message>
<message>
<location line="-384"/>
<location line="-402"/>
<source>Send</source>
<translation>Senden</translation>
</message>
@ -8213,7 +8229,7 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Chat Verlauf löschen</translation>
</message>
<message>
<location line="+351"/>
<location line="+369"/>
<source>Disable Emoticons</source>
<translation>Deaktiviere Emoticons</translation>
</message>
@ -8239,12 +8255,12 @@ p, li { white-space: pre-wrap; }
<translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.ui" line="-370"/>
<location filename="../gui/chat/PopupChatDialog.ui" line="-388"/>
<source>Add a File for your Friend</source>
<translation>Füge eine Datei für deinen Freund hinzu</translation>
</message>
<message>
<location line="+392"/>
<location line="+410"/>
<location line="+3"/>
<source>Save Chat History</source>
<translation>Nachrichtenverlauf speichern</translation>
@ -8260,18 +8276,18 @@ p, li { white-space: pre-wrap; }
<translation>Text Datei (*.txt );;Alle Dateien (*)</translation>
</message>
<message>
<location line="-718"/>
<location line="-720"/>
<source>Your Friend is offline
Do you want to send them a Message instead</source>
<translation>Dein Freund ist Offline willst du ihm stattdessen eine Nachricht senden</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.ui" line="-424"/>
<location filename="../gui/chat/PopupChatDialog.ui" line="-445"/>
<source>Attach a Picture</source>
<translation>Bild anhängen</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+761"/>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+763"/>
<source>is Idle and may not reply</source>
<translation>antwortet möglicherweise nicht, da der Status auf &quot;Untätig&quot; gesetzt wurde</translation>
</message>
@ -8291,7 +8307,7 @@ Do you want to send them a Message instead</source>
<translation>ist Offline.</translation>
</message>
<message>
<location line="-719"/>
<location line="-721"/>
<source>Paste RetroShare Link</source>
<translation>RetroShare Link einfügen</translation>
</message>
@ -8301,7 +8317,7 @@ Do you want to send them a Message instead</source>
<translation>tippt...</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.ui" line="-120"/>
<location filename="../gui/chat/PopupChatDialog.ui" line="-126"/>
<source>Close</source>
<translation>Schliessen</translation>
</message>
@ -9438,28 +9454,28 @@ p, li { white-space: pre-wrap; }
<context>
<name>SearchDialog</name>
<message>
<location filename="../gui/SearchDialog.ui" line="+1146"/>
<location filename="../gui/SearchDialog.ui" line="+1155"/>
<source>Sources</source>
<translation>Quellen</translation>
</message>
<message>
<location line="-167"/>
<location line="-170"/>
<source>Results</source>
<translation>Ergebnisse</translation>
</message>
<message>
<location line="+316"/>
<location filename="../gui/SearchDialog.cpp" line="+238"/>
<location line="+319"/>
<location filename="../gui/SearchDialog.cpp" line="+280"/>
<source>Download</source>
<translation>Herunterladen</translation>
</message>
<message>
<location filename="../gui/SearchDialog.cpp" line="-138"/>
<location filename="../gui/SearchDialog.cpp" line="-178"/>
<source>Enter a keyword here (at least 3 char long)</source>
<translation>Gib einen Suchbegriff ein (min. 3 Zeichen)</translation>
</message>
<message>
<location line="+141"/>
<location line="+181"/>
<source>Copy retroshare Link</source>
<translation>Kopiere RetroShare Link</translation>
</message>
@ -9479,7 +9495,7 @@ p, li { white-space: pre-wrap; }
<translation>Freunden empfehlen</translation>
</message>
<message>
<location line="+139"/>
<location line="+142"/>
<source>Remove</source>
<translation>Entfernen</translation>
</message>
@ -9500,7 +9516,7 @@ p, li { white-space: pre-wrap; }
<translation>Neu(e) RetroShare Link(s)</translation>
</message>
<message>
<location filename="../gui/SearchDialog.ui" line="-703"/>
<location filename="../gui/SearchDialog.ui" line="-712"/>
<source>Any</source>
<translation>Alle</translation>
</message>
@ -9520,12 +9536,12 @@ p, li { white-space: pre-wrap; }
<translation>Gib einen Suchbegriff ein</translation>
</message>
<message>
<location line="+273"/>
<location line="+279"/>
<source>Filter Search Result</source>
<translation>Filter Suchergebnis</translation>
</message>
<message>
<location line="+114"/>
<location line="+117"/>
<source>Filename</source>
<translation>Dateiname</translation>
</message>
@ -9540,7 +9556,7 @@ p, li { white-space: pre-wrap; }
<translation>Prüfsumme</translation>
</message>
<message>
<location line="-187"/>
<location line="-190"/>
<source>KeyWords</source>
<translation>Schlüsselwörter</translation>
</message>
@ -9550,7 +9566,7 @@ p, li { white-space: pre-wrap; }
<translation>Such ID</translation>
</message>
<message>
<location filename="../gui/SearchDialog.cpp" line="-953"/>
<location filename="../gui/SearchDialog.cpp" line="-955"/>
<source>Download Notice</source>
<translation>Download</translation>
</message>
@ -9560,7 +9576,7 @@ p, li { white-space: pre-wrap; }
<translation>Überspringe lokale Dateien</translation>
</message>
<message>
<location line="+56"/>
<location line="+58"/>
<location line="+6"/>
<source>Sorry</source>
<translation>Entschuldigung</translation>
@ -9572,7 +9588,7 @@ p, li { white-space: pre-wrap; }
<translation>Diese Funktion ist noch nicht eingebaut.</translation>
</message>
<message>
<location filename="../gui/SearchDialog.ui" line="+157"/>
<location filename="../gui/SearchDialog.ui" line="+160"/>
<source>Size</source>
<translation>Grösse</translation>
</message>
@ -9582,7 +9598,7 @@ p, li { white-space: pre-wrap; }
<translation>Typ</translation>
</message>
<message>
<location line="-550"/>
<location line="-559"/>
<source>Archive</source>
<translation>Archiv</translation>
</message>
@ -9612,7 +9628,7 @@ p, li { white-space: pre-wrap; }
<translation>Ordner</translation>
</message>
<message>
<location line="+170"/>
<location line="+176"/>
<source>Start Search</source>
<translation>Starte Suche</translation>
</message>
@ -9622,7 +9638,7 @@ p, li { white-space: pre-wrap; }
<translation>Suchen</translation>
</message>
<message>
<location line="+189"/>
<location line="+192"/>
<source>Clear Filter</source>
<translation>Filter leeren</translation>
</message>
@ -9684,12 +9700,12 @@ p, li { white-space: pre-wrap; }
<translation>Begrenze Anzahl der Resultate auf :</translation>
</message>
<message>
<location line="-601"/>
<location line="-607"/>
<source>Reset</source>
<translation>Zurücksetzen</translation>
</message>
<message>
<location line="+109"/>
<location line="+112"/>
<source>Advanced Search</source>
<translation>Erweiterte Suche</translation>
</message>
@ -9699,7 +9715,7 @@ p, li { white-space: pre-wrap; }
<translation>Erweitert</translation>
</message>
<message>
<location line="+291"/>
<location line="+294"/>
<source>Close All Search Results</source>
<translation>Schließe alle Suchergebnisse</translation>
</message>
@ -10193,28 +10209,28 @@ p, li { white-space: pre-wrap; }
<context>
<name>SharedFilesDialog</name>
<message>
<location filename="../gui/SharedFilesDialog.ui" line="+943"/>
<location filename="../gui/SharedFilesDialog.ui" line="+958"/>
<location filename="../gui/SharedFilesDialog.cpp" line="+305"/>
<source>Download</source>
<translation>Herunterladen</translation>
</message>
<message>
<location line="-347"/>
<location line="-359"/>
<source>Splitted View</source>
<translation>Geteiltes Fenster</translation>
</message>
<message>
<location line="+29"/>
<location line="+32"/>
<source>Friends Folders</source>
<translation>Ordner der Freunde</translation>
</message>
<message>
<location line="+29"/>
<location line="+32"/>
<source>My Folders</source>
<translation>Meine Ordner</translation>
</message>
<message>
<location line="-91"/>
<location line="-100"/>
<source>&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; }
@ -10227,7 +10243,7 @@ p, li { white-space: pre-wrap; }
&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:&apos;MS Shell Dlg 2&apos;; font-weight:600;&quot;&gt;Dateien&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+115"/>
<location line="+124"/>
<source>All</source>
<translation>Alle</translation>
</message>
@ -10252,12 +10268,12 @@ p, li { white-space: pre-wrap; }
<translation>Suche Dateien</translation>
</message>
<message>
<location line="+24"/>
<location line="+27"/>
<source>Start Search</source>
<translation>Starte Suche</translation>
</message>
<message>
<location line="+31"/>
<location line="+34"/>
<source>Reset</source>
<translation>Zurücksetzen</translation>
</message>
@ -11446,7 +11462,7 @@ p, li { white-space: pre-wrap; }
<translation>Übertrage</translation>
</message>
<message>
<location line="+361"/>
<location line="+365"/>
<source>RetroShare</source>
<translation></translation>
</message>
@ -11471,7 +11487,7 @@ p, li { white-space: pre-wrap; }
<translation>Soll dieser Download wirklich abgebrochen und gelöscht werden?</translation>
</message>
<message>
<location line="-910"/>
<location line="-914"/>
<source>Speed / Queue position</source>
<translation>Geschwindigkeits- / Warteschlangenposition</translation>
</message>
@ -11534,38 +11550,38 @@ p, li { white-space: pre-wrap; }
<message>
<location line="+262"/>
<location line="+144"/>
<location line="+133"/>
<location line="+135"/>
<source>Failed</source>
<translation>Gescheitert</translation>
</message>
<message>
<location line="-273"/>
<location line="-275"/>
<location line="+141"/>
<location line="+133"/>
<location line="+135"/>
<source>Okay</source>
<translation>OK</translation>
</message>
<message>
<location line="-132"/>
<location line="+133"/>
<location line="-134"/>
<location line="+135"/>
<source>Waiting</source>
<translation>Warte</translation>
</message>
<message>
<location line="-132"/>
<location line="-134"/>
<source>Downloading</source>
<translation>Ladend</translation>
</message>
<message>
<location line="-131"/>
<location line="+132"/>
<location line="+133"/>
<location line="+135"/>
<location line="+1"/>
<source>Complete</source>
<translation>Vollständig</translation>
</message>
<message>
<location line="-130"/>
<location line="-132"/>
<source>Unknown</source>
<translation>Unbekannt</translation>
</message>
@ -11575,12 +11591,12 @@ p, li { white-space: pre-wrap; }
<translation>Version: </translation>
</message>
<message>
<location line="+80"/>
<location line="+82"/>
<source>Uploading</source>
<translation>Hochladend</translation>
</message>
<message>
<location line="-129"/>
<location line="-131"/>
<source>Checking...</source>
<translation>Überprüfe...</translation>
</message>

View file

@ -0,0 +1,473 @@
; Script generated with the Venis Install Wizard & modified by defnax
; Define your application name
!define APPNAME "RetroShare"
!define VERSION "0.5.1 4069"
!define APPNAMEANDVERSION "${APPNAME} Portable ${VERSION}"
!define QTBASE "D:\qt\2010.01"
; Main Install settings
Name "${APPNAMEANDVERSION}"
InstallDir "$PROGRAMFILES\RetroShare"
InstallDirRegKey HKLM "Software\${APPNAME}" ""
OutFile "RetroSharePortable_${VERSION}_setup.exe"
BrandingText "${APPNAMEANDVERSION}"
; Use compression
SetCompressor /SOLID LZMA
; Modern interface settings
!include Sections.nsh
!include "UMUI.nsh"
;Interface Settings
!define MUI_ABORTWARNING
;!define MUI_HEADERIMAGE
;!define MUI_HEADERIMAGE_BITMAP "retroshare.bmp" ; optional
# MUI defines
!define MUI_ICON "${NSISDIR}\Contrib\Graphics\UltraModernUI\Icon.ico"
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_LICENSEPAGE_RADIOBUTTONS
!define MUI_COMPONENTSPAGE_SMALLDESC
!define MUI_FINISHPAGE_LINK "Visit the RetroShare forum for the latest news and support"
!define MUI_FINISHPAGE_LINK_LOCATION "http://retroshare.sourceforge.net/forum/"
!define MUI_FINISHPAGE_RUN "$INSTDIR\RetroShare.exe"
!define MUI_FINISHPAGE_SHOWREADME $INSTDIR\changelog.txt
!define MUI_FINISHPAGE_SHOWREADME_TEXT changelog.txt
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\UltraModernUI\UnIcon.ico"
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
!define MUI_LANGDLL_REGISTRY_ROOT HKLM
!define MUI_LANGDLL_REGISTRY_KEY ${REGKEY}
!define UMUI_LANGDLL_REGISTRY_VALUENAME InstallerLanguage
;!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of RetroShare. \r\n\r\nIt is recommended that you close all other applications before starting Setup. This will make it possible to update relevant system files without havinf to reboot your computer. \r\n\r\nIMPORTANT: Ensure that RetroShare is NOT RUNNING before continuing (you can exit from the taskbar menu), otherwise the installer cannot update the executables, and the installation will fail. \r\n\r\nClick Next to continue. "
;!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of RetroShare. \r\n\r\nIMPORTANT: Ensure that RetroShare is NOT RUNNING before continuing (you can exit from the taskbar menu), otherwise the installer cannot update the executables, and the installation will fail. \r\n\r\nClick Next to continue. "
; Defines the un-/installer logo of RetroShare
!insertmacro MUI_DEFAULT MUI_WELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange.bmp"
!insertmacro MUI_DEFAULT MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSISDIR}\Contrib\Graphics\Wizard\orange-uninstall.bmp"
; Set languages (first is default language)
!insertmacro MUI_RESERVEFILE_LANGDLL
ReserveFile "${NSISDIR}\Plugins\AdvSplash.dll"
;--------------------------------
;Configuration
;!insertmacro MUI_RESERVEFILE_SPECIALBITMAP
LicenseLangString myLicenseData 1030 "license\license.txt"
LicenseLangString myLicenseData 1033 "license\license.txt"
LicenseLangString myLicenseData 1031 "license\license-GER.txt"
LicenseLangString myLicenseData 1036 "license\license-FR.txt"
LicenseLangString myLicenseData 1055 "license\license-TR.txt"
LicenseLangString myLicenseData 2052 "license\license.txt"
LicenseLangString myLicenseData 1045 "license\license.txt"
LicenseLangString myLicenseData 1041 "license\license.txt"
LicenseLangString myLicenseData 1042 "license\license.txt"
LicenseLangString myLicenseData 1049 "license\license.txt"
LicenseLangString myLicenseData 1053 "license\license.txt"
LicenseData $(myLicenseData)
# Installer pages
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "$(myLicenseData)"
!insertmacro MUI_PAGE_COMPONENTS
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# Installer languages
!define MUI_LANGDLL_ALLLANGUAGES
!insertmacro MUI_LANGUAGE Danish
!insertmacro MUI_LANGUAGE English
!insertmacro MUI_LANGUAGE French
!insertmacro MUI_LANGUAGE German
!insertmacro MUI_LANGUAGE Japanese
!insertmacro MUI_LANGUAGE Korean
!insertmacro MUI_LANGUAGE Polish
!insertmacro MUI_LANGUAGE Russian
!insertmacro MUI_LANGUAGE Swedish
!insertmacro MUI_LANGUAGE SimpChinese
!insertmacro MUI_LANGUAGE Turkish
;Component-selection page
;Titles
LangString sec_main ${LANG_ENGLISH} "Program Files"
LangString sec_data ${LANG_ENGLISH} "Program Skins"
LangString sec_shortcuts ${LANG_ENGLISH} "Shortcuts"
LangString sec_link ${LANG_ENGLISH} "File Association"
LangString sec_autostart ${LANG_ENGLISH} "Auto Startup"
LangString DESC_sec_main ${LANG_ENGLISH} "Installs the RetroShare program files."
LangString DESC_sec_data ${LANG_ENGLISH} "Installs RetroShare Skins"
LangString DESC_sec_shortcuts ${LANG_ENGLISH} "Create RetroShare shortcut icons."
LangString DESC_sec_link ${LANG_ENGLISH} "Associate RetroShare with .rsc file extension"
LangString LANGUAGEID ${LANG_ENGLISH} "1033"
LangString sec_main ${LANG_FRENCH} "RetroShare"
LangString sec_data ${LANG_FRENCH} "Programme de Skins"
LangString sec_shortcuts ${LANG_FRENCH} "Raccourcis"
LangString sec_link ${LANG_FRENCH} "RetroShare fichiers Association"
LangString sec_startmenu ${LANG_FRENCH} "Raccourcis du menu Démarrer"
LangString sec_autostart ${LANG_FRENCH} "Démarrage automatique"
LangString DESC_sec_main ${LANG_FRENCH} "Installe les fichiers du programme."
LangString DESC_sec_data ${LANG_FRENCH} "Installe RetroShare Skins"
LangString DESC_sec_startmenu ${LANG_FRENCH} "Crée les raccourcis du menu Démarrer"
LangString DESC_sec_shortcuts ${LANG_FRENCH} "Crée une icône sur le bureau."
LangString DESC_sec_link ${LANG_FRENCH} "Associate RetroShare with .rsc file extension"
LangString LANGUAGEID ${LANG_FRENCH} "1036"
LangString sec_main ${LANG_GERMAN} "Programmdateien"
LangString sec_data ${LANG_GERMAN} "Skins fuer das Programm"
LangString sec_shortcuts ${LANG_GERMAN} "Shortcuts"
LangString sec_link ${LANG_GERMAN} "Dateiverknuepfungen"
LangString sec_autostart ${LANG_GERMAN} "Auto Startup"
LangString DESC_sec_main ${LANG_GERMAN} "Installiert die erforderlichen Programmdateien."
LangString DESC_sec_data ${LANG_GERMAN} "Installiert RetroShare Skins"
LangString DESC_sec_shortcuts ${LANG_GERMAN} "Erstellt eine RetroShare Verkn<6B>pfung im Startmen<65>, Desktop oder im Schnellstarter."
LangString DESC_sec_link ${LANG_GERMAN} "RetroShare mit .rsc Dateien verkn<6B>pfen"
LangString LANGUAGEID ${LANG_GERMAN} "1031"
LangString sec_main ${LANG_TURKISH} "Program Dosyalar<61>"
LangString sec_data ${LANG_TURKISH} "Program Skinleri"
LangString sec_shortcuts ${LANG_TURKISH} "Shortcut'lar"
LangString sec_link ${LANG_TURKISH} ".rsc Dosya Kaydet"
LangString sec_autostart ${LANG_TURKISH} "Otomatik calistir ve baglan"
LangString DESC_sec_main ${LANG_TURKISH} "Program dosyalar<61>n<EFBFBD> kurar."
LangString DESC_sec_data ${LANG_TURKISH} "RetroShare Skin'leri kurar"
LangString DESC_sec_shortcuts ${TURKISH} "Shortcut yap Start menu , Desktop veya Quicklaunchbar icin."
LangString DESC_sec_link ${LANG_TURKISH} "RetroShare .rsc almas<61> i<>in kaydettirir"
LangString LANGUAGEID ${LANG_TURKISH} "1055"
LangString sec_main ${LANG_SIMPCHINESE} "程序文件"
LangString sec_data ${LANG_SIMPCHINESE} "程序皮肤"
LangString sec_shortcuts ${LANG_SIMPCHINESE} "快捷方式"
LangString sec_link ${LANG_SIMPCHINESE} "RetroShare文件关联"
LangString sec_autostart ${LANG_SIMPCHINESE} "自动启动"
LangString DESC_sec_main ${LANG_SIMPCHINESE} "安装RetroShare程序"
LangString DESC_sec_data ${LANG_SIMPCHINESE} "安装RetroShare皮肤"
LangString DESC_sec_shortcuts ${LANG_SIMPCHINESE} "建RetroShare快捷方式"
LangString DESC_sec_link ${LANG_SIMPCHINESE} "关联.rsc扩"
LangString LANGUAGEID ${LANG_SIMPCHINESE} "2052"
LangString sec_main ${LANG_POLISH} "Pliki programu"
LangString sec_data ${LANG_POLISH} "Skórki"
LangString sec_shortcuts ${LANG_POLISH} "Skróty"
LangString sec_link ${LANG_POLISH} "Skojarz pliki"
LangString sec_autostart ${LANG_POLISH} "Automatyczne uruchamianie"
LangString DESC_sec_main ${LANG_POLISH} "Instaluje pliki programu RetroShare"
LangString DESC_sec_data ${LANG_POLISH} "Instaluje skórki programu RetroShare"
LangString DESC_sec_shortcuts ${LANG_POLISH} "Utwórz ikony skrótów na pulpicie, w menu start oraz na pasku szybkiego uruchamiania."
LangString DESC_sec_link ${LANG_POLISH} "Skojarz pliki o rozszerzeniu .rsc z RetroShare"
LangString LANGUAGEID ${LANG_POLISH} "1045"
LangString sec_main ${LANG_DANISH} "Program Files"
LangString sec_data ${LANG_DANISH} "Program Skins"
LangString sec_shortcuts ${LANG_DANISH} "Shortcuts"
LangString sec_link ${LANG_DANISH} "File Association"
LangString sec_autostart ${LANG_DANISH} "Auto Startup"
LangString DESC_sec_main ${LANG_DANISH} "Installs the RetroShare program files."
LangString DESC_sec_data ${LANG_DANISH} "Installs RetroShare Skins"
LangString DESC_sec_shortcuts ${LANG_DANISH} "Create RetroShare shortcut icons."
LangString DESC_sec_link ${LANG_DANISH} "Associate RetroShare with .rsc file extension"
LangString LANGUAGEID ${LANG_DANISH} "1030"
LangString sec_main ${LANG_RUSSIAN} "Program Files"
LangString sec_data ${LANG_RUSSIAN} "Program Skins"
LangString sec_shortcuts ${LANG_RUSSIAN} "Shortcuts"
LangString sec_link ${LANG_RUSSIAN} "File Association"
LangString sec_autostart ${LANG_RUSSIAN} "Auto Startup"
LangString DESC_sec_main ${LANG_RUSSIAN} "Installs the RetroShare program files."
LangString DESC_sec_data ${LANG_RUSSIAN} "Installs RetroShare Skins"
LangString DESC_sec_shortcuts ${LANG_RUSSIAN} "Create RetroShare shortcut icons."
LangString DESC_sec_link ${LANG_RUSSIAN} "Associate RetroShare with .rsc file extension"
LangString LANGUAGEID ${LANG_RUSSIAN} "1049"
LangString sec_main ${LANG_SWEDISH} "Program Files"
LangString sec_data ${LANG_SWEDISH} "Program Skins"
LangString sec_shortcuts ${LANG_SWEDISH} "Shortcuts"
LangString sec_link ${LANG_SWEDISH} "File Association"
LangString sec_autostart ${LANG_SWEDISH} "Auto Startup"
LangString DESC_sec_main ${LANG_SWEDISH} "Installs the RetroShare program files."
LangString DESC_sec_data ${LANG_SWEDISH} "Installs RetroShare Skins"
LangString DESC_sec_shortcuts ${LANG_SWEDISH} "Create RetroShare shortcut icons."
LangString DESC_sec_link ${LANG_SWEDISH} "Associate RetroShare with .rsc file extension"
LangString LANGUAGEID ${LANG_SWEDISH} "1053"
LangString sec_main ${LANG_JAPANESE} "Program Files"
LangString sec_data ${LANG_JAPANESE} "Program Skins"
LangString sec_shortcuts ${LANG_JAPANESE} "Shortcuts"
LangString sec_link ${LANG_JAPANESE} "File Association"
LangString sec_autostart ${LANG_JAPANESE} "Auto Startup"
LangString DESC_sec_main ${LANG_JAPANESE} "Installs the RetroShare program files."
LangString DESC_sec_data ${LANG_JAPANESE} "Installs RetroShare Skins"
LangString DESC_sec_shortcuts ${LANG_JAPANESE} "Create RetroShare shortcut icons."
LangString DESC_sec_link ${LANG_JAPANESE} "Associate RetroShare with .rsc file extension"
LangString LANGUAGEID ${LANG_JAPANESE} "1041"
LangString sec_main ${LANG_KOREAN} "Program Files"
LangString sec_data ${LANG_KOREAN} "Program Skins"
LangString sec_shortcuts ${LANG_KOREAN} "Shortcuts"
LangString sec_link ${LANG_KOREAN} "File Association"
LangString sec_autostart ${LANG_KOREAN} "Auto Startup"
LangString DESC_sec_main ${LANG_KOREAN} "Installs the RetroShare program files."
LangString DESC_sec_data ${LANG_KOREAN} "Installs RetroShare Skins"
LangString DESC_sec_shortcuts ${LANG_KOREAN} "Create RetroShare shortcut icons."
LangString DESC_sec_link ${LANG_KOREAN} "Associate RetroShare with .rsc file extension"
LangString LANGUAGEID ${LANG_KOREAN} "1042"
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
Section $(sec_main) sec_main
;Set Section required
SectionIn RO
; Set Section properties
SetOverwrite on
; Clears previous error logs
Delete "$INSTDIR\*.log"
; Set Section Files and Shortcuts
SetOutPath "$INSTDIR\"
File /r "release\RetroShare.exe"
File /r "..\..\retroshare-nogui\src\release\retroshare-nogui.exe"
File /r "D:\Qt\2010.01\mingw\bin\mingwm10.dll"
File /r "D:\Qt\2010.01\qt\bin\QtCore4.dll"
File /r "D:\Qt\2010.01\qt\bin\QtGui4.dll"
File /r "D:\Qt\2010.01\qt\bin\QtNetwork4.dll"
File /r "D:\Qt\2010.01\qt\bin\QtXml4.dll"
File /r "D:\Qt\2010.01\qt\bin\QtScript4.dll"
File /r "D:\Qt\2010.01\qt\bin\libgcc_s_dw2-1.dll"
File /r "D:\Qt\2010.01\qt\plugins\imageformats"
File /r "D:\Development\miniupnpc-1.3\miniupnpc.dll"
File /r ${QTBASE}\qt\qt_*.qm
File /r "release\pthreadGC2d.dll"
File /r "release\libgpg-error-0.dll"
File /r "release\libgpgme-11.dll"
File /r "release\gpg.exe"
File /r "release\gpgme-w32spawn.exe"
File /r "changelog.txt"
File /r /x Data "release\bdboot.txt"
SectionEnd
Section $(sec_data) sec_data
; Set Section properties
SetOverwrite on
; Set Section Files and Shortcuts
;SetOutPath "$APPDATA\RetroShare\"
;File /r "data\*"
; Set Section Plugins
;SetOutPath "$APPDATA\RetroShare\plugins\"
;File /r "plugins\"
; Set Section qss and exclude svn
SetOutPath "$INSTDIR\qss\"
File /r /x .svn qss\*.*
; Set Section sounds and exclude svn
SetOutPath "$INSTDIR\sounds\"
File /r /x .svn sounds\*.*
; Set Section skin
; SetOutPath "$INSTDIR\skin\"
; File /r release\skin\*.*
; Add emoticons
;SetOutPath "$INSTDIR\emoticons\"
;File /r emoticons\*.*
; Add Chat Style
;SetOutPath "$INSTDIR\style\"
;File /r style\*.*
SectionEnd
Section $(sec_link) sec_link
; Delete any existing keys
; Write the file association
WriteRegStr HKCR .rsc "" retroshare
WriteRegStr HKCR retroshare "" "RSC File"
WriteRegBin HKCR retroshare EditFlags 00000100
WriteRegStr HKCR "retroshare\shell" "" open
WriteRegStr HKCR "retroshare\shell\open\command" "" `"$INSTDIR\RetroShare.exe" "%1"`
SectionEnd
SectionGroup $(sec_shortcuts) sec_shortcuts
Section StartMenu SEC0001
SetOutPath "$INSTDIR"
CreateDirectory "$SMPROGRAMS\${APPNAME}"
CreateShortCut "$SMPROGRAMS\${APPNAME}\${APPNAME}.lnk" "$INSTDIR\RetroShare.exe" "" "$INSTDIR\RetroShare.exe" 0
CreateShortCut "$SMPROGRAMS\${APPNAME}\$(^UninstallLink).lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0
SectionEnd
Section Desktop SEC0002
CreateShortCut "$DESKTOP\${APPNAME}.lnk" "$INSTDIR\RetroShare.exe" "" "$INSTDIR\RetroShare.exe" 0
SectionEnd
Section Quicklaunchbar SEC0003
CreateShortCut "$QUICKLAUNCH\${APPNAME}.lnk" "$INSTDIR\RetroShare.exe" "" "$INSTDIR\RetroShare.exe" 0
SectionEnd
SectionGroupEnd
;Section $(sec_autostart) sec_autostart
; WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroRun" "$INSTDIR\${APPNAME}.exe -a"
;SectionEnd
;Section $(sec_autostart) sec_autostart
; CreateShortCut "$SMSTARTUP\${APPNAME}.lnk" "$INSTDIR\RetroShare.exe" "" "$INSTDIR\RetroShare.exe" 0
;SectionEnd
Section -FinishSection
WriteRegStr HKLM "Software\${APPNAME}" "" "$INSTDIR"
WriteRegStr HKLM "Software\${APPNAME}" "Version" "${VERSION}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "DisplayName" "${APPNAME}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}" "UninstallString" "$INSTDIR\uninstall.exe"
WriteUninstaller "$INSTDIR\uninstall.exe"
SectionEnd
;--------------------------------
;Descriptions
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${sec_main} $(DESC_sec_main)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_data} $(DESC_sec_data)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_shortcuts} $(DESC_sec_shortcuts)
!insertmacro MUI_DESCRIPTION_TEXT ${sec_link} $(DESC_sec_link)
;!insertmacro MUI_DESCRIPTION_TEXT ${sec_autostart} $(DESC_sec_autostart)
!insertmacro MUI_FUNCTION_DESCRIPTION_END
;Uninstall section
Section "Uninstall"
; Remove file association registry keys
DeleteRegKey HKCR .rsc
DeleteRegKey HKCR retroshare
; Remove program/uninstall regsitry keys
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPNAME}"
DeleteRegKey HKLM SOFTWARE\${APPNAME}
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Run" "RetroRun"
; Remove files and uninstaller
Delete $INSTDIR\RetroShare.exe
Delete $INSTDIR\retroshare-nogui.exe
Delete $INSTDIR\gpg.exe
Delete $INSTDIR\gpgme-w32spawn.exe
Delete $INSTDIR\*.dll
Delete $INSTDIR\*.dat
Delete $INSTDIR\*.txt
Delete $INSTDIR\*.ini
Delete $INSTDIR\*.log
Delete $INSTDIR\uninstall.exe
; Don't remove the directory, otherwise
; we lose the XPGP keys.
; Should make this an option though...
; Remove shortcuts, if any
Delete "$SMPROGRAMS\${APPNAME}\*.*"
; Remove desktop shortcut
Delete "$DESKTOP\${APPNAME}.lnk"
; Remove Quicklaunch shortcut
Delete "$QUICKLAUNCH\${APPNAME}.lnk"
; Remove Autostart
;Delete "$SMSTARTUP\${APPNAME}.lnk"
; Remove directories used
RMDir "$SMPROGRAMS\${APPNAME}"
RMDir /r "$INSTDIR\qss"
RMDir /r "$INSTDIR\translations"
RMDir /r "$INSTDIR\imageformats"
RMDir /r "$INSTDIR\sounds"
SectionEnd
Function .onInit
InitPluginsDir
Push $R1
File /oname=$PLUGINSDIR\spltmp.bmp "gui\images\splash.bmp"
advsplash::show 1200 1000 1000 -1 $PLUGINSDIR\spltmp
Pop $R1
Pop $R1
!insertmacro MUI_LANGDLL_DISPLAY
FunctionEnd
# Installer Language Strings
# TODO Update the Language Strings with the appropriate translations.
LangString FINISHPAGELINK ${LANG_ENGLISH} "Visit the RetroShare forums for the latest news and support"
LangString FINISHPAGELINK ${LANG_GERMAN} "Besuche RetroShare Support Forum "
LangString FINISHPAGELINK ${LANG_TURKISH} "Destek için Retroshare foruma ziyaret"
LangString FINISHPAGELINK ${LANG_FRENCH} "Consultez le forum RetroShare pour vous tenir au courant des dernieres modifications, et obtenir de l'aide."
LangString FINISHPAGELINK ${LANG_SIMPCHINESE} "帮助论坛"
LangString FINISHPAGELINK ${LANG_POLISH} "Odwiedź forum RetroShare do najświeższych informacji i wsparcia"
LangString FINISHPAGELINK ${LANG_DANISH} "Besøg RetroShare fora for de seneste nyheder og støtte"
LangString FINISHPAGELINK ${LANG_JAPANESE} "Visit the RetroShare forums for the latest news and support"
LangString FINISHPAGELINK ${LANG_KOREAN} "Visit the RetroShare forums for the latest news and support"
LangString FINISHPAGELINK ${LANG_RUSSIAN} "Visit the RetroShare forums for the latest news and support"
LangString FINISHPAGELINK ${LANG_SWEDISH} "Besök RetroShare forum för de senaste nyheterna och stöd"
LangString ^UninstallLink ${LANG_ENGLISH} "Uninstall"
LangString ^UninstallLink ${LANG_GERMAN} "Deinstallieren"
LangString ^UninstallLink ${LANG_TURKISH} "Kald<EFBFBD>r"
LangString ^UninstallLink ${LANG_FRENCH} "Désinstaller"
LangString ^UninstallLink ${LANG_SIMPCHINESE} "卸载"
LangString ^UninstallLink ${LANG_POLISH} "Odinstaluj"
LangString ^UninstallLink ${LANG_DANISH} "Afinstaller"
LangString ^UninstallLink ${LANG_JAPANESE} "Uninstall"
LangString ^UninstallLink ${LANG_KOREAN} "Uninstall"
LangString ^UninstallLink ${LANG_RUSSIAN} "Uninstall"
LangString ^UninstallLink ${LANG_SWEDISH} "Avinstallera"
; eof