mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-02-04 09:05:34 -05:00
ChannelFeed:
- Sort the ChanMsgItems of the channel by date ChanMsgItem: - Fixed adding all files (SubFileItem) again by pressing the unsubscribe button (only in Friend Storm) - Enable unsubscribe button only when channel is subscribed (only in Friend Storm) - Fixed adding files with umlauts (utf8) on Windows - Enabled Download and Play button in ChanMsgItem, when they are enabled in the SubFileItems ftServer: - Added the method alreadyHaveFile for use in the GUI - recompile of GUI needed SubFileItem: - Added state strings like LOCAL, REMOTE, ERROR, ... for translating git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3614 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
3c29434007
commit
d31cef0f11
@ -994,10 +994,8 @@ bool ftController::handleAPendingRequest()
|
||||
return true ;
|
||||
}
|
||||
|
||||
bool ftController::alreadyHaveFile(const std::string& hash)
|
||||
bool ftController::alreadyHaveFile(const std::string& hash, FileInfo &info)
|
||||
{
|
||||
FileInfo info ;
|
||||
|
||||
// check for downloads
|
||||
if (FileDetails(hash, info) && (info.downloadStatus == FT_STATE_COMPLETE))
|
||||
return true ;
|
||||
@ -1017,7 +1015,8 @@ bool ftController::FileRequest(const std::string& fname, const std::string& has
|
||||
|
||||
/* check if we have the file */
|
||||
|
||||
if(alreadyHaveFile(hash))
|
||||
FileInfo info;
|
||||
if(alreadyHaveFile(hash, info))
|
||||
return false ;
|
||||
|
||||
if(size == 0) // we treat this special case because
|
||||
@ -1077,7 +1076,6 @@ bool ftController::FileRequest(const std::string& fname, const std::string& has
|
||||
}
|
||||
}
|
||||
|
||||
FileInfo info;
|
||||
std::list<std::string>::const_iterator it;
|
||||
std::list<TransferInfo>::const_iterator pit;
|
||||
|
||||
|
@ -142,7 +142,7 @@ class ftController: public CacheTransfer, public RsThread, public pqiMonitor, pu
|
||||
const std::list<std::string> &sourceIds);
|
||||
|
||||
/// Do we already have this file, either in download or in file lists ?
|
||||
bool alreadyHaveFile(const std::string& hash) ;
|
||||
bool alreadyHaveFile(const std::string& hash, FileInfo &info);
|
||||
|
||||
bool setChunkStrategy(const std::string& hash,FileChunksInfo::ChunkStrategy s);
|
||||
void setDefaultChunkStrategy(FileChunksInfo::ChunkStrategy s);
|
||||
|
@ -281,6 +281,11 @@ bool ftServer::checkHash(const std::string& hash,std::string& error_string)
|
||||
return true ;
|
||||
}
|
||||
|
||||
bool ftServer::alreadyHaveFile(const std::string& hash, FileInfo &info)
|
||||
{
|
||||
return mFtController->alreadyHaveFile(hash, info);
|
||||
}
|
||||
|
||||
bool ftServer::FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds)
|
||||
{
|
||||
std::string error_string ;
|
||||
|
@ -120,6 +120,7 @@ ftController *getController() const { return mFtController ; }
|
||||
/***
|
||||
* Control of Downloads
|
||||
***/
|
||||
virtual bool alreadyHaveFile(const std::string& hash, FileInfo &info);
|
||||
virtual bool FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds);
|
||||
virtual bool FileCancel(const std::string& hash);
|
||||
virtual bool FileControl(const std::string& hash, uint32_t flags);
|
||||
|
@ -111,6 +111,7 @@ class RsFiles
|
||||
* Control of Downloads.
|
||||
***/
|
||||
|
||||
virtual bool alreadyHaveFile(const std::string& hash, FileInfo &info) = 0;
|
||||
/// Returns false is we already have the file. Otherwise, initiates the dl and returns true.
|
||||
virtual bool FileRequest(const std::string& fname, const std::string& hash, uint64_t size, const std::string& dest, uint32_t flags, const std::list<std::string>& srcIds) = 0;
|
||||
virtual bool FileCancel(const std::string& hash) = 0;
|
||||
|
@ -338,7 +338,14 @@ bool p3Channels::channelExtraFileHash(std::string path, std::string chId, FileIn
|
||||
|
||||
bool p3Channels::cpyMsgFileToChFldr(std::string path, std::string fname, std::string chId, bool& fileTooLarge){
|
||||
|
||||
FILE *outFile = NULL, *inFile = fopen(path.c_str(), "rb");
|
||||
FILE *outFile = NULL, *inFile;
|
||||
#ifdef WINDOWS_SYS
|
||||
std::wstring wpath;
|
||||
librs::util::ConvertUtf8ToUtf16(path, wpath);
|
||||
inFile = _wfopen(wpath.c_str(), L"rb");
|
||||
#else
|
||||
inFile = fopen(path.c_str(), "rb");
|
||||
#endif
|
||||
|
||||
long buffSize = 0;
|
||||
char* buffer = NULL;
|
||||
@ -370,7 +377,13 @@ bool p3Channels::cpyMsgFileToChFldr(std::string path, std::string fname, std::st
|
||||
fclose(inFile);
|
||||
|
||||
std::string localpath = mChannelsDir + "/" + chId + "/" + fname;
|
||||
#ifdef WINDOWS_SYS
|
||||
std::wstring wlocalpath;
|
||||
librs::util::ConvertUtf8ToUtf16(localpath, wlocalpath);
|
||||
outFile = _wfopen(wlocalpath.c_str(), L"wb");
|
||||
#else
|
||||
outFile = fopen(localpath.c_str(), "wb");
|
||||
#endif
|
||||
}
|
||||
|
||||
if(outFile){
|
||||
|
@ -672,6 +672,11 @@ void ChannelFeed::updateChannelListOther(std::list<std::string> &ids)
|
||||
}
|
||||
}
|
||||
|
||||
static bool sortChannelMsgSummary(const ChannelMsgSummary &msg1, const ChannelMsgSummary &msg2)
|
||||
{
|
||||
return (msg1.ts < msg2.ts);
|
||||
}
|
||||
|
||||
void ChannelFeed::updateChannelMsgs()
|
||||
{
|
||||
if (!rsChannels)
|
||||
@ -744,6 +749,8 @@ void ChannelFeed::updateChannelMsgs()
|
||||
|
||||
rsChannels->getChannelMsgList(mChannelId, msgs);
|
||||
|
||||
msgs.sort(sortChannelMsgSummary);
|
||||
|
||||
for(it = msgs.begin(); it != msgs.end(); it++)
|
||||
{
|
||||
ChanMsgItem *cmi = new ChanMsgItem(this, 0, mChannelId, it->msgId, true);
|
||||
|
@ -135,15 +135,14 @@ void CreateChannelMsg::dropEvent(QDropEvent *event)
|
||||
QList<QUrl>::iterator uit;
|
||||
for(uit = urls.begin(); uit != urls.end(); uit++)
|
||||
{
|
||||
std::string localpath = uit->toLocalFile().toStdString();
|
||||
std::string localpath = uit->toLocalFile().toUtf8().constData();
|
||||
std::cerr << "Whole URL: " << uit->toString().toStdString();
|
||||
std::cerr << std::endl;
|
||||
std::cerr << "or As Local File: " << localpath;
|
||||
std::cerr << "or As Local File: " << uit->toLocalFile().toStdString();
|
||||
std::cerr << std::endl;
|
||||
|
||||
if (localpath.size() > 0)
|
||||
{
|
||||
|
||||
addAttachment(localpath);
|
||||
}
|
||||
}
|
||||
@ -289,7 +288,7 @@ void CreateChannelMsg::addExtraFile()
|
||||
// select a file
|
||||
QString qfile = QFileDialog::getOpenFileName(this, tr("Add Extra File"), "", "", 0,
|
||||
QFileDialog::DontResolveSymlinks);
|
||||
std::string filePath = qfile.toStdString();
|
||||
std::string filePath = qfile.toUtf8().constData();
|
||||
if (filePath != "")
|
||||
{
|
||||
addAttachment(filePath);
|
||||
@ -347,9 +346,6 @@ void CreateChannelMsg::checkAttachmentReady()
|
||||
buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
|
||||
buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(false);
|
||||
break;
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +52,8 @@ ChanMsgItem::ChanMsgItem(FeedHolder *parent, uint32_t feedId, std::string chanId
|
||||
|
||||
/* specific */
|
||||
connect( unsubscribeButton, SIGNAL( clicked( void ) ), this, SLOT( unsubscribeChannel ( void ) ) );
|
||||
connect( downloadButton, SIGNAL( clicked( void ) ), this, SLOT( download ( void ) ) );
|
||||
connect( playButton, SIGNAL( clicked( void ) ), this, SLOT( play ( void ) ) );
|
||||
|
||||
downloadButton->hide();
|
||||
playButton->hide();
|
||||
@ -89,12 +91,24 @@ void ChanMsgItem::updateItemStatic()
|
||||
title += QString::fromStdWString(ci.channelName);
|
||||
titleLabel->setText(title);
|
||||
subjectLabel->setText(QString::fromStdWString(cmi.subject));
|
||||
|
||||
if ((ci.channelFlags & RS_DISTRIB_SUBSCRIBED) || (ci.channelFlags & RS_DISTRIB_ADMIN)) {
|
||||
unsubscribeButton->setEnabled(true);
|
||||
} else {
|
||||
unsubscribeButton->setEnabled(false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* subject */
|
||||
titleLabel->setText(QString::fromStdWString(cmi.subject));
|
||||
subjectLabel->setText(QString::fromStdWString(cmi.msg));
|
||||
|
||||
/* disable buttons: deletion facility not enabled with cache services yet */
|
||||
clearButton->setEnabled(false);
|
||||
unsubscribeButton->setEnabled(false);
|
||||
clearButton->hide();
|
||||
unsubscribeButton->hide();
|
||||
}
|
||||
|
||||
msgLabel->setText(QString::fromStdWString(cmi.msg));
|
||||
@ -111,6 +125,15 @@ void ChanMsgItem::updateItemStatic()
|
||||
}
|
||||
|
||||
|
||||
if (mFileItems.empty() == false) {
|
||||
std::list<SubFileItem *>::iterator it;
|
||||
for(it = mFileItems.begin(); it != mFileItems.end(); it++)
|
||||
{
|
||||
delete(*it);
|
||||
}
|
||||
mFileItems.clear();
|
||||
}
|
||||
|
||||
std::list<FileInfo>::iterator it;
|
||||
for(it = cmi.files.begin(); it != cmi.files.end(); it++)
|
||||
{
|
||||
@ -132,17 +155,6 @@ void ChanMsgItem::updateItemStatic()
|
||||
label->setPixmap(thumbnail);
|
||||
label->setStyleSheet("QLabel#label{border: 2px solid #D3D3D3;border-radius: 3px;}");
|
||||
}
|
||||
|
||||
if (mIsHome)
|
||||
{
|
||||
/* disable buttons: deletion facility not enabled with cache services yet */
|
||||
clearButton->setEnabled(false);
|
||||
unsubscribeButton->setEnabled(false);
|
||||
clearButton->hide();
|
||||
unsubscribeButton->hide();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -155,22 +167,68 @@ void ChanMsgItem::updateItem()
|
||||
#endif
|
||||
int msec_rate = 10000;
|
||||
|
||||
int downloadCount = 0;
|
||||
int downloadStartable = 0;
|
||||
int playCount = 0;
|
||||
int playStartable = 0;
|
||||
bool startable;
|
||||
bool loopAgain = false;
|
||||
|
||||
/* Very slow Tick to check when all files are downloaded */
|
||||
std::list<SubFileItem *>::iterator it;
|
||||
for(it = mFileItems.begin(); it != mFileItems.end(); it++)
|
||||
{
|
||||
if (!(*it)->done())
|
||||
SubFileItem *item = *it;
|
||||
|
||||
if (item->isDownloadable(startable)) {
|
||||
downloadCount++;
|
||||
if (startable) {
|
||||
downloadStartable++;
|
||||
}
|
||||
}
|
||||
if (item->isPlayable(startable)) {
|
||||
playCount++;
|
||||
if (startable) {
|
||||
playStartable++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!item->done())
|
||||
{
|
||||
/* loop again */
|
||||
loopAgain = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (downloadCount) {
|
||||
downloadButton->show();
|
||||
|
||||
if (downloadStartable) {
|
||||
downloadButton->setEnabled(true);
|
||||
} else {
|
||||
downloadButton->setEnabled(false);
|
||||
}
|
||||
} else {
|
||||
downloadButton->hide();
|
||||
}
|
||||
if (playCount) {
|
||||
/* one file is playable */
|
||||
playButton->show();
|
||||
|
||||
if (playStartable == 1) {
|
||||
playButton->setEnabled(true);
|
||||
} else {
|
||||
playButton->setEnabled(false);
|
||||
}
|
||||
} else {
|
||||
playButton->hide();
|
||||
}
|
||||
|
||||
if (loopAgain) {
|
||||
QTimer::singleShot( msec_rate, this, SLOT(updateItem( void ) ));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
void ChanMsgItem::small()
|
||||
{
|
||||
expandFrame->hide();
|
||||
@ -192,7 +250,6 @@ void ChanMsgItem::toggle()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ChanMsgItem::removeItem()
|
||||
{
|
||||
#ifdef DEBUG_ITEM
|
||||
@ -232,3 +289,25 @@ void ChanMsgItem::unsubscribeChannel()
|
||||
updateItemStatic();
|
||||
}
|
||||
|
||||
void ChanMsgItem::download()
|
||||
{
|
||||
std::list<SubFileItem *>::iterator it;
|
||||
for(it = mFileItems.begin(); it != mFileItems.end(); it++)
|
||||
{
|
||||
(*it)->download();
|
||||
}
|
||||
|
||||
updateItem();
|
||||
}
|
||||
|
||||
void ChanMsgItem::play()
|
||||
{
|
||||
std::list<SubFileItem *>::iterator it;
|
||||
for(it = mFileItems.begin(); it != mFileItems.end(); it++)
|
||||
{
|
||||
bool startable;
|
||||
if ((*it)->isPlayable(startable) && startable) {
|
||||
(*it)->play();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -48,6 +48,8 @@ private slots:
|
||||
void toggle();
|
||||
|
||||
void unsubscribeChannel();
|
||||
void download();
|
||||
void play();
|
||||
|
||||
void updateItem();
|
||||
|
||||
|
@ -111,11 +111,9 @@ void SubFileItem::Setup()
|
||||
if (mMode == SFI_STATE_REMOTE)
|
||||
{
|
||||
FileInfo fi;
|
||||
uint32_t hintflags = RS_FILE_HINTS_EXTRA | RS_FILE_HINTS_LOCAL
|
||||
| RS_FILE_HINTS_SPEC_ONLY;
|
||||
|
||||
/* look up path */
|
||||
if (rsFiles->FileDetails(mFileHash, hintflags, fi))
|
||||
if (rsFiles->alreadyHaveFile(mFileHash, fi))
|
||||
{
|
||||
#ifdef DEBUG_ITEM
|
||||
std::cerr << "SubFileItem::Setup() STATE=>Local Found File";
|
||||
@ -131,8 +129,6 @@ void SubFileItem::Setup()
|
||||
smaller();
|
||||
updateItemStatic();
|
||||
updateItem();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -154,7 +150,7 @@ void SubFileItem::updateItemStatic()
|
||||
std::cerr << std::endl;
|
||||
#endif
|
||||
|
||||
QString filename = QString::fromStdString(mFileName);
|
||||
QString filename = QString::fromUtf8(mFileName.c_str());
|
||||
mDivisor = 1;
|
||||
|
||||
if (mFileSize > 10000000) /* 10 Mb */
|
||||
@ -214,7 +210,7 @@ void SubFileItem::updateItemStatic()
|
||||
{
|
||||
case SFI_STATE_ERROR:
|
||||
progressBar->setRange(0, 100);
|
||||
progressBar->setFormat("ERROR");
|
||||
progressBar->setFormat(tr("ERROR"));
|
||||
|
||||
playButton->setEnabled(false);
|
||||
downloadButton->setEnabled(false);
|
||||
@ -222,12 +218,12 @@ void SubFileItem::updateItemStatic()
|
||||
expandButton->setEnabled(false);
|
||||
|
||||
progressBar->setValue(0);
|
||||
filename = "[ERROR] " + filename;
|
||||
filename = "[" + tr("ERROR") + "] " + filename;
|
||||
|
||||
break;
|
||||
|
||||
case SFI_STATE_EXTRA:
|
||||
filename = QString::fromStdString(mPath);
|
||||
filename = QString::fromUtf8(mPath.c_str());
|
||||
|
||||
progressBar->setRange(0, 100);
|
||||
progressBar->setFormat("HASHING");
|
||||
@ -238,7 +234,7 @@ void SubFileItem::updateItemStatic()
|
||||
expandButton->setEnabled(false);
|
||||
|
||||
progressBar->setValue(0);
|
||||
filename = "[EXTRA] " + filename;
|
||||
filename = "[" + tr("EXTRA") + "] " + filename;
|
||||
|
||||
break;
|
||||
|
||||
@ -249,7 +245,7 @@ void SubFileItem::updateItemStatic()
|
||||
expandButton->setEnabled(false);
|
||||
|
||||
progressBar->setValue(0);
|
||||
filename = "[REMOTE] " + filename;
|
||||
filename = "[" + tr("REMOTE") + "] " + filename;
|
||||
|
||||
break;
|
||||
|
||||
@ -258,7 +254,7 @@ void SubFileItem::updateItemStatic()
|
||||
downloadButton->setEnabled(false);
|
||||
cancelButton->setEnabled(true);
|
||||
expandButton->setEnabled(true);
|
||||
filename = "[DOWNLOAD] " + filename;
|
||||
filename = "[" + tr("DOWNLOAD") + "] " + filename;
|
||||
|
||||
break;
|
||||
|
||||
@ -269,7 +265,7 @@ void SubFileItem::updateItemStatic()
|
||||
expandButton->setEnabled(false);
|
||||
|
||||
progressBar->setValue(mFileSize / mDivisor);
|
||||
filename = "[LOCAL] " + filename;
|
||||
filename = "[" + tr("LOCAL") + "] " + filename;
|
||||
|
||||
break;
|
||||
|
||||
@ -278,7 +274,7 @@ void SubFileItem::updateItemStatic()
|
||||
downloadButton->setEnabled(false);
|
||||
cancelButton->setEnabled(false);
|
||||
expandButton->setEnabled(true);
|
||||
filename = "[UPLOAD] " + filename;
|
||||
filename = "[" + tr("UPLOAD") + "] " + filename;
|
||||
|
||||
break;
|
||||
}
|
||||
@ -341,6 +337,11 @@ void SubFileItem::updateItem()
|
||||
std::cerr << std::endl;
|
||||
#endif
|
||||
/* ignore - dead file, or done */
|
||||
|
||||
if (mMode == SFI_STATE_ERROR) {
|
||||
/* updateStatic once */
|
||||
stateChanged = true;
|
||||
}
|
||||
}
|
||||
else if (mMode == SFI_STATE_EXTRA)
|
||||
{
|
||||
@ -554,6 +555,8 @@ void SubFileItem::cancel()
|
||||
{
|
||||
rsFiles->FileCancel(mFileHash);
|
||||
}
|
||||
|
||||
updateItem();
|
||||
}
|
||||
|
||||
|
||||
@ -617,6 +620,9 @@ void SubFileItem::download()
|
||||
}
|
||||
rsFiles->FileRequest(mFileName, mFileHash, mFileSize, "", RS_FILE_HINTS_NETWORK_WIDE, srcIds);
|
||||
|
||||
downloadButton->setEnabled(false);
|
||||
|
||||
updateItem();
|
||||
}
|
||||
|
||||
|
||||
@ -653,3 +659,21 @@ void SubFileItem::save()
|
||||
uint32_t SubFileItem::getState() {
|
||||
return mMode;
|
||||
}
|
||||
|
||||
bool SubFileItem::isDownloadable(bool &startable)
|
||||
{
|
||||
/* Check buttons. Not good, but it works. */
|
||||
bool visible = downloadButton->isVisibleTo(this);
|
||||
startable = visible && downloadButton->isEnabled();
|
||||
|
||||
return visible;
|
||||
}
|
||||
|
||||
bool SubFileItem::isPlayable(bool &startable)
|
||||
{
|
||||
/* Check buttons. Not good, but it works. */
|
||||
bool visible = playButton->isVisibleTo(this);
|
||||
startable = visible && playButton->isEnabled();
|
||||
|
||||
return visible;
|
||||
}
|
||||
|
@ -70,14 +70,17 @@ public:
|
||||
bool ready();
|
||||
uint32_t getState();
|
||||
|
||||
bool isDownloadable(bool &startable);
|
||||
bool isPlayable(bool &startable);
|
||||
|
||||
public slots:
|
||||
void download();
|
||||
void play();
|
||||
|
||||
private slots:
|
||||
void toggle();
|
||||
|
||||
void cancel();
|
||||
void play();
|
||||
void save();
|
||||
|
||||
void updateItem();
|
||||
|
Binary file not shown.
@ -856,18 +856,28 @@ p, li { white-space: pre-wrap; }
|
||||
<context>
|
||||
<name>ChanMsgItem</name>
|
||||
<message>
|
||||
<location filename="../gui/feeds/ChanMsgItem.ui" line="+221"/>
|
||||
<location filename="../gui/feeds/ChanMsgItem.ui" line="+230"/>
|
||||
<source>Remove Item</source>
|
||||
<translation>Eintrag entfernen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+20"/>
|
||||
<location filename="../gui/feeds/ChanMsgItem.cpp" line="+189"/>
|
||||
<location filename="../gui/feeds/ChanMsgItem.cpp" line="+249"/>
|
||||
<source>Expand</source>
|
||||
<translation>Erweitern</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-40"/>
|
||||
<location line="+24"/>
|
||||
<source>Download</source>
|
||||
<translation type="unfinished">Herunterladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+11"/>
|
||||
<source>Play</source>
|
||||
<translation type="unfinished">Abspielen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-75"/>
|
||||
<source>Unsubscribe From Channel</source>
|
||||
<translation>Kanal abbestellen</translation>
|
||||
</message>
|
||||
@ -972,7 +982,7 @@ p, li { white-space: pre-wrap; }
|
||||
<context>
|
||||
<name>ChannelFeed</name>
|
||||
<message>
|
||||
<location filename="../gui/ChannelFeed.ui" line="+141"/>
|
||||
<location filename="../gui/ChannelFeed.ui" line="+144"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
@ -1287,7 +1297,7 @@ Keine Beschreibung</translation>
|
||||
<context>
|
||||
<name>ChatStyle</name>
|
||||
<message>
|
||||
<location filename="../gui/chat/ChatStyle.cpp" line="+381"/>
|
||||
<location filename="../gui/chat/ChatStyle.cpp" line="+383"/>
|
||||
<source>Standard style for group chat</source>
|
||||
<translation>Standard Stil für den Gruppenchat</translation>
|
||||
</message>
|
||||
@ -2220,7 +2230,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Drag'n'Drop Dateien aus den Suchergebnissen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/channels/CreateChannelMsg.cpp" line="+290"/>
|
||||
<location filename="../gui/channels/CreateChannelMsg.cpp" line="+289"/>
|
||||
<source>Add Extra File</source>
|
||||
<translation>Zusätzlich eine Datei hinzufügen</translation>
|
||||
</message>
|
||||
@ -3499,7 +3509,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Andere Foren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/ForumsDialog.ui" line="+618"/>
|
||||
<location filename="../gui/ForumsDialog.ui" line="+621"/>
|
||||
<source><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
@ -4588,7 +4598,7 @@ p, li { white-space: pre-wrap; }
|
||||
</message>
|
||||
<message>
|
||||
<location line="+32"/>
|
||||
<location filename="../gui/im_history/ImHistoryBrowser.cpp" line="+295"/>
|
||||
<location filename="../gui/im_history/ImHistoryBrowser.cpp" line="+383"/>
|
||||
<source>Copy</source>
|
||||
<translation>Kopieren</translation>
|
||||
</message>
|
||||
@ -5725,7 +5735,7 @@ Willst Du die Nachricht speichern ?</translation>
|
||||
<translation>Von</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+793"/>
|
||||
<location line="+796"/>
|
||||
<source>Size</source>
|
||||
<translation>Grösse</translation>
|
||||
</message>
|
||||
@ -5738,7 +5748,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal; text-decoration:none;"><p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; font-weight:600;">Empfohlene Dateien</span></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-692"/>
|
||||
<location line="-695"/>
|
||||
<source>Reply</source>
|
||||
<translation>Antworten</translation>
|
||||
</message>
|
||||
@ -5803,7 +5813,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Anhänge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+171"/>
|
||||
<location line="+174"/>
|
||||
<location filename="../gui/MessagesDialog.cpp" line="-44"/>
|
||||
<location line="+922"/>
|
||||
<location line="+10"/>
|
||||
@ -5887,13 +5897,13 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Dokument drucken</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/MessagesDialog.ui" line="-859"/>
|
||||
<location filename="../gui/MessagesDialog.ui" line="-862"/>
|
||||
<location filename="../gui/MessagesDialog.cpp" line="-1574"/>
|
||||
<source>Subject</source>
|
||||
<translation>Betreff</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+514"/>
|
||||
<location line="+517"/>
|
||||
<source>Subject:</source>
|
||||
<translation>Betreff:</translation>
|
||||
</message>
|
||||
@ -5923,7 +5933,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Prüfsumme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-942"/>
|
||||
<location line="-945"/>
|
||||
<source>Print</source>
|
||||
<translation>Drucken</translation>
|
||||
</message>
|
||||
@ -5986,7 +5996,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Allen antworten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/MessagesDialog.ui" line="+579"/>
|
||||
<location filename="../gui/MessagesDialog.ui" line="+582"/>
|
||||
<source><html><head><meta name="qrichtext" content="1" /><style type="text/css">
|
||||
p, li { white-space: pre-wrap; }
|
||||
</style></head><body style=" font-family:'Arial'; font-size:8pt; font-weight:400; font-style:normal;">
|
||||
@ -5999,7 +6009,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Posteingang gesamt:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-268"/>
|
||||
<location line="-271"/>
|
||||
<location filename="../gui/MessagesDialog.cpp" line="-324"/>
|
||||
<source>Content</source>
|
||||
<translation>Inhalt</translation>
|
||||
@ -6018,7 +6028,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Schlagwort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+171"/>
|
||||
<location line="+174"/>
|
||||
<location filename="../gui/MessagesDialog.cpp" line="+710"/>
|
||||
<location line="+964"/>
|
||||
<location line="+5"/>
|
||||
@ -7190,7 +7200,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Verfügbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+770"/>
|
||||
<location line="+771"/>
|
||||
<source>Add Extra File</source>
|
||||
<translation>Zusätzliche Datei hinzufügen</translation>
|
||||
</message>
|
||||
@ -7308,7 +7318,7 @@ p, li { white-space: pre-wrap; }
|
||||
</message>
|
||||
<message>
|
||||
<location line="-107"/>
|
||||
<location filename="../gui/PeersDialog.cpp" line="-1478"/>
|
||||
<location filename="../gui/PeersDialog.cpp" line="-1479"/>
|
||||
<source>Add Friend</source>
|
||||
<translation>Freund hinzufügen</translation>
|
||||
</message>
|
||||
@ -7383,7 +7393,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Willst du diesen Freund entfernen?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+730"/>
|
||||
<location line="+731"/>
|
||||
<source>Save as...</source>
|
||||
<translation>Speichern unter...</translation>
|
||||
</message>
|
||||
@ -7416,7 +7426,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Status Spalte ausblenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/PeersDialog.cpp" line="-1809"/>
|
||||
<location filename="../gui/PeersDialog.cpp" line="-1810"/>
|
||||
<source>Friends Storm</source>
|
||||
<translation>Aktivitäten</translation>
|
||||
</message>
|
||||
@ -7744,7 +7754,7 @@ p, li { white-space: pre-wrap; }
|
||||
<context>
|
||||
<name>PopupChatDialog</name>
|
||||
<message>
|
||||
<location filename="../gui/chat/PopupChatDialog.cpp" line="+778"/>
|
||||
<location filename="../gui/chat/PopupChatDialog.cpp" line="+777"/>
|
||||
<source>Hide Avatar</source>
|
||||
<translation>Avatar verstecken</translation>
|
||||
</message>
|
||||
@ -7754,12 +7764,12 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Avatar zeigen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+341"/>
|
||||
<location line="+342"/>
|
||||
<source>File not found or file name not accepted.</source>
|
||||
<translation>Datei nicht gefunden oder Dateiname nicht akzeptiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+88"/>
|
||||
<location line="+90"/>
|
||||
<source>Messages you send will be delivered after Friend is again Online</source>
|
||||
<translation>Nachrichten, die Du versendest gehen bei diesem Freund erst wieder ein wenn er Online ist</translation>
|
||||
</message>
|
||||
@ -7822,7 +7832,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Deaktiviere Emoticons</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/chat/PopupChatDialog.cpp" line="-1033"/>
|
||||
<location filename="../gui/chat/PopupChatDialog.cpp" line="-1034"/>
|
||||
<source>Paste retroshare Link</source>
|
||||
<translation>RetroShare Link einfügen</translation>
|
||||
</message>
|
||||
@ -7842,12 +7852,12 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Wähle dein Avatar Bild aus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/chat/PopupChatDialog.cpp" line="+772"/>
|
||||
<location filename="../gui/chat/PopupChatDialog.cpp" line="+770"/>
|
||||
<source>Add Extra File</source>
|
||||
<translation>Zusätzlich eine Datei hinzufügen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+166"/>
|
||||
<location line="+167"/>
|
||||
<location line="+7"/>
|
||||
<source>Drop file error.</source>
|
||||
<translation>Dateifehler bei Drag'n'Drop.</translation>
|
||||
@ -7879,7 +7889,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Text Datei (*.txt );;Alle Dateien (*)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-750"/>
|
||||
<location line="-749"/>
|
||||
<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>
|
||||
@ -7896,7 +7906,7 @@ Do you want to send them a Message instead</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/chat/PopupChatDialog.cpp" line="+789"/>
|
||||
<location filename="../gui/chat/PopupChatDialog.cpp" line="+790"/>
|
||||
<source>is Idle and may not reply</source>
|
||||
<translation>antwortet möglicherweise nicht, da der Status auf "Untätig" gesetzt wurde</translation>
|
||||
</message>
|
||||
@ -7916,7 +7926,7 @@ Do you want to send them a Message instead</source>
|
||||
<translation>ist Offline.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-734"/>
|
||||
<location line="-735"/>
|
||||
<source>is typing...</source>
|
||||
<translation>tippt...</translation>
|
||||
</message>
|
||||
@ -8784,7 +8794,7 @@ p, li { white-space: pre-wrap; }
|
||||
<context>
|
||||
<name>RemoteDirModel</name>
|
||||
<message>
|
||||
<location filename="../gui/RemoteDirModel.cpp" line="+611"/>
|
||||
<location filename="../gui/RemoteDirModel.cpp" line="+606"/>
|
||||
<source>Friends Directories</source>
|
||||
<translation>Dateien von Freunden</translation>
|
||||
</message>
|
||||
@ -8814,7 +8824,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Alter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-461"/>
|
||||
<location line="-456"/>
|
||||
<source>Anonymous</source>
|
||||
<translation>Anonym</translation>
|
||||
</message>
|
||||
@ -8830,12 +8840,12 @@ p, li { white-space: pre-wrap; }
|
||||
</message>
|
||||
<message>
|
||||
<location line="+295"/>
|
||||
<location line="+81"/>
|
||||
<location line="+78"/>
|
||||
<source>FILE</source>
|
||||
<translation>DATEI</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-64"/>
|
||||
<location line="-61"/>
|
||||
<source>Files</source>
|
||||
<translation>Dateien</translation>
|
||||
</message>
|
||||
@ -8846,7 +8856,7 @@ p, li { white-space: pre-wrap; }
|
||||
</message>
|
||||
<message>
|
||||
<location line="+10"/>
|
||||
<location line="+69"/>
|
||||
<location line="+64"/>
|
||||
<source>DIR</source>
|
||||
<translation>ORDNER</translation>
|
||||
</message>
|
||||
@ -10369,13 +10379,13 @@ p, li { white-space: pre-wrap; }
|
||||
</message>
|
||||
<message>
|
||||
<location line="+26"/>
|
||||
<location filename="../gui/feeds/SubFileItem.cpp" line="+579"/>
|
||||
<location filename="../gui/feeds/SubFileItem.cpp" line="+582"/>
|
||||
<location line="+6"/>
|
||||
<source>Play File</source>
|
||||
<translation>Datei abspielen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/feeds/SubFileItem.cpp" line="+51"/>
|
||||
<location filename="../gui/feeds/SubFileItem.cpp" line="+54"/>
|
||||
<source>Save Channel File</source>
|
||||
<translation>Channel Datei speichern</translation>
|
||||
</message>
|
||||
@ -10390,7 +10400,38 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Abspielen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/feeds/SubFileItem.cpp" line="-56"/>
|
||||
<location filename="../gui/feeds/SubFileItem.cpp" line="-429"/>
|
||||
<location line="+8"/>
|
||||
<source>ERROR</source>
|
||||
<translation>FEHLER</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+16"/>
|
||||
<source>EXTRA</source>
|
||||
<translation>EXTRA</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+11"/>
|
||||
<source>REMOTE</source>
|
||||
<translation>ENTFERNT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+9"/>
|
||||
<source>DOWNLOAD</source>
|
||||
<translation>DOWNLOAD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+11"/>
|
||||
<source>LOCAL</source>
|
||||
<translation>LOKAL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+9"/>
|
||||
<source>UPLOAD</source>
|
||||
<translation>UPLOAD</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+306"/>
|
||||
<source>File %1 does not exist at location.</source>
|
||||
<translation>Datei %1 existiert nicht.</translation>
|
||||
</message>
|
||||
@ -10568,7 +10609,7 @@ p, li { white-space: pre-wrap; }
|
||||
<context>
|
||||
<name>TransfersDialog</name>
|
||||
<message>
|
||||
<location filename="../gui/TransfersDialog.cpp" line="+236"/>
|
||||
<location filename="../gui/TransfersDialog.cpp" line="+246"/>
|
||||
<source>Cancel</source>
|
||||
<translation>Abbrechen</translation>
|
||||
</message>
|
||||
@ -10578,13 +10619,13 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Fertige ausblenden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-158"/>
|
||||
<location line="+62"/>
|
||||
<location line="-152"/>
|
||||
<location line="+59"/>
|
||||
<source>Status</source>
|
||||
<translation>Status</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-66"/>
|
||||
<location line="-63"/>
|
||||
<source>Completed</source>
|
||||
<translation>Fertiggestellt</translation>
|
||||
</message>
|
||||
@ -10638,20 +10679,20 @@ p, li { white-space: pre-wrap; }
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../gui/TransfersDialog.cpp" line="-2"/>
|
||||
<location line="+63"/>
|
||||
<location line="+60"/>
|
||||
<source>Name</source>
|
||||
<comment>i.e: file name</comment>
|
||||
<translation>Name</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-62"/>
|
||||
<location line="+63"/>
|
||||
<location line="-59"/>
|
||||
<location line="+60"/>
|
||||
<source>Size</source>
|
||||
<comment>i.e: file size</comment>
|
||||
<translation>Grösse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-61"/>
|
||||
<location line="-58"/>
|
||||
<source>Speed</source>
|
||||
<comment>i.e: Download speed</comment>
|
||||
<translation>Geschwindigkeit</translation>
|
||||
@ -10674,7 +10715,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Kern-ID</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+56"/>
|
||||
<location line="+53"/>
|
||||
<source>Progress</source>
|
||||
<comment>i.e: % uploaded</comment>
|
||||
<translation>Fortschritt</translation>
|
||||
@ -10691,7 +10732,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Übertragen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+121"/>
|
||||
<location line="+118"/>
|
||||
<source>Play</source>
|
||||
<translation>Abspielen</translation>
|
||||
</message>
|
||||
@ -10776,7 +10817,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Blockstrategie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+391"/>
|
||||
<location line="+396"/>
|
||||
<source>Queued</source>
|
||||
<translation>In Warteschleife</translation>
|
||||
</message>
|
||||
@ -10786,12 +10827,12 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Pausiert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-137"/>
|
||||
<location line="-139"/>
|
||||
<source>Transferring</source>
|
||||
<translation>Übertrage</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+352"/>
|
||||
<location line="+354"/>
|
||||
<source>RetroShare</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
@ -10816,7 +10857,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Soll dieser Download wirklich abgebrochen und gelöscht werden?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-901"/>
|
||||
<location line="-900"/>
|
||||
<source>Speed / Queue position</source>
|
||||
<translation>Geschwindigkeits- / Warteschlangenposition</translation>
|
||||
</message>
|
||||
@ -10832,7 +10873,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Download Zeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+56"/>
|
||||
<location line="+53"/>
|
||||
<source>Peer</source>
|
||||
<comment>i.e: user name</comment>
|
||||
<translation>Nachbar</translation>
|
||||
@ -10843,39 +10884,39 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Prüfsumme</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+112"/>
|
||||
<location line="+525"/>
|
||||
<location line="+109"/>
|
||||
<location line="+530"/>
|
||||
<source>Slower</source>
|
||||
<translation>Langsamer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-523"/>
|
||||
<location line="+524"/>
|
||||
<location line="-528"/>
|
||||
<location line="+529"/>
|
||||
<location line="+2"/>
|
||||
<source>Average</source>
|
||||
<translation>Durchschnitt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-524"/>
|
||||
<location line="+523"/>
|
||||
<location line="-529"/>
|
||||
<location line="+528"/>
|
||||
<source>Faster</source>
|
||||
<translation>Schneller</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-419"/>
|
||||
<location line="-424"/>
|
||||
<source>Move in Queue...</source>
|
||||
<translation>Verschiebe in Warteschlange...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="+256"/>
|
||||
<location line="+143"/>
|
||||
<location line="+259"/>
|
||||
<location line="+145"/>
|
||||
<location line="+129"/>
|
||||
<source>Failed</source>
|
||||
<translation>Gescheitert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-268"/>
|
||||
<location line="+140"/>
|
||||
<location line="-270"/>
|
||||
<location line="+142"/>
|
||||
<location line="+129"/>
|
||||
<source>Okay</source>
|
||||
<translation>OK</translation>
|
||||
@ -10892,8 +10933,8 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Ladend</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-130"/>
|
||||
<location line="+131"/>
|
||||
<location line="-132"/>
|
||||
<location line="+133"/>
|
||||
<location line="+129"/>
|
||||
<location line="+1"/>
|
||||
<source>Complete</source>
|
||||
@ -10920,7 +10961,7 @@ p, li { white-space: pre-wrap; }
|
||||
<translation>Überprüfe...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location line="-550"/>
|
||||
<location line="-555"/>
|
||||
<source>Force Check</source>
|
||||
<translation>Erzwinge Überprüfung</translation>
|
||||
</message>
|
||||
|
Loading…
x
Reference in New Issue
Block a user