Added drag and drop support for attaching files in MessageComposer.

Corrected some messageboxes to show the icon of the parent.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3802 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2010-11-16 09:31:30 +00:00
parent 88d4a3b18e
commit 0f1a1987b6
10 changed files with 149 additions and 71 deletions

View File

@ -1014,22 +1014,19 @@ void LinksDialog::anchorClicked (const QUrl& link )
if(rsFiles->FileRequest(fileName, fileHash, fileSize, "", RS_FILE_HINTS_NETWORK_WIDE, srcIds))
{
QMessageBox mb(tr("File Request Confirmation"), tr("The file has been added to your download list."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("File Request Confirmation"), tr("The file has been added to your download list."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
else
{
QMessageBox mb(tr("File Request canceled"), tr("The file has not been added to your download list, because you already have it."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("File Request canceled"), tr("The file has not been added to your download list, because you already have it."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
}
}
else
{
QMessageBox mb(tr("File Request Error"), tr("The file link is malformed."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("File Request Error"), tr("The file link is malformed."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}

View File

@ -1913,15 +1913,13 @@ void PeersDialog::dropEvent(QDropEvent *event)
QDir dir(localpath);
if (dir.exists()) {
std::cerr << "PeersDialog::dropEvent() directory not accepted."<< std::endl;
QMessageBox mb(tr("Drop file error."), tr("Directory can't be dropped, only files are accepted."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("Drop file error."), tr("Directory can't be dropped, only files are accepted."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
} else if (QFile::exists(localpath)) {
PeersDialog::addAttachment(localpath.toUtf8().constData());
} else {
std::cerr << "PeersDialog::dropEvent() file does not exists."<< std::endl;
QMessageBox mb(tr("Drop file error."), tr("File not found or file name not accepted."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("Drop file error."), tr("File not found or file name not accepted."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
}
}

View File

@ -346,8 +346,7 @@ void QuickStartWizard::updateFlags(bool b)
bool QuickStartWizard::messageBoxOk(QString msg)
{
QMessageBox mb("Share Manager InfoBox!",msg,QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb("Share Manager InfoBox!",msg,QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
return true;
}

View File

@ -269,7 +269,6 @@ bool RetroShareLink::process(int flag)
if (rsFiles->FileRequest(name().toUtf8().constData(), hash().toStdString(), size(), "", RS_FILE_HINTS_NETWORK_WIDE, srcIds)) {
if (flag & RSLINK_PROCESS_NOTIFY_SUCCESS) {
QMessageBox mb(QObject::tr("File Request Confirmation"), QObject::tr("The file has been added to your download list."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
@ -278,7 +277,6 @@ bool RetroShareLink::process(int flag)
if (flag & RSLINK_PROCESS_NOTIFY_ERROR) {
QMessageBox mb(QObject::tr("File Request canceled"), QObject::tr("The file has not been added to your download list, because you already have it."),QMessageBox::Critical,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
@ -300,7 +298,6 @@ bool RetroShareLink::process(int flag)
// peer connection is already accepted
if (flag & RSLINK_PROCESS_NOTIFY_SUCCESS) {
QMessageBox mb(QObject::tr("Friend Request Confirmation"), QObject::tr("The friend is already in your list."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
@ -310,7 +307,6 @@ bool RetroShareLink::process(int flag)
if (rsPeers->setAcceptToConnectGPGCertificate(hash().toStdString(), true)) {
if (flag & RSLINK_PROCESS_NOTIFY_SUCCESS) {
QMessageBox mb(QObject::tr("Friend Request Confirmation"), QObject::tr("The friend has been added to your list."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
@ -319,7 +315,6 @@ bool RetroShareLink::process(int flag)
if (flag & RSLINK_PROCESS_NOTIFY_ERROR) {
QMessageBox mb(QObject::tr("Friend Request canceled"), QObject::tr("The friend could not be added to your list."),QMessageBox::Critical,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
@ -328,7 +323,6 @@ bool RetroShareLink::process(int flag)
if (flag & RSLINK_PROCESS_NOTIFY_ERROR) {
QMessageBox mb(QObject::tr("Friend Request canceled"), QObject::tr("The friend could not be found."),QMessageBox::Critical,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
@ -340,7 +334,6 @@ bool RetroShareLink::process(int flag)
if (flag & RSLINK_PROCESS_NOTIFY_ERROR) {
QMessageBox mb(QObject::tr("File Request Error"), QObject::tr("The file link is malformed."),QMessageBox::Critical,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
@ -358,7 +351,6 @@ bool RetroShareLink::process(int flag)
// QUrl can't handle the RetroShare link format properly
if (flag & RSLINK_PROCESS_NOTIFY_ERROR) {
QMessageBox mb(QObject::tr("File Request"), QObject::tr("Process of RetroShare links is not implemented. Please use copy instead."),QMessageBox::Critical,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
mb.exec();
}
@ -372,7 +364,6 @@ bool RetroShareLink::process(int flag)
// if (flag & RSLINK_PROCESS_NOTIFY_ERROR) {
// QMessageBox mb(QObject::tr("File Request Error"), QObject::tr("The file link is malformed."),QMessageBox::Information,QMessageBox::Ok,0,0);
//second version: QMessageBox mb(QObject::tr("Badly formed RS link"), QObject::tr("This RetroShare link is malformed. This is bug. Please contact the developers.\n\nNote: this possibly comes from a bug in Qt4.6. Try to right-click + copy link location, and paste in Transfer Tab."),QMessageBox::Critical,QMessageBox::Ok,0,0);
// mb.setButtonText( QMessageBox::Ok, "OK" );
// mb.setWindowIcon(QIcon(QString::fromUtf8(":/images/rstray3.png")));
// mb.exec();
// }

View File

@ -1059,15 +1059,13 @@ void PopupChatDialog::dropEvent(QDropEvent *event)
QDir dir(localpath);
if (dir.exists()) {
std::cerr << "PopupChatDialog::dropEvent() directory not accepted."<< std::endl;
QMessageBox mb(tr("Drop file error."), tr("Directory can't be dropped, only files are accepted."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("Drop file error."), tr("Directory can't be dropped, only files are accepted."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
} else if (QFile::exists(localpath)) {
PopupChatDialog::addAttachment(localpath.toUtf8().constData(), false);
} else {
std::cerr << "PopupChatDialog::dropEvent() file does not exists."<< std::endl;
QMessageBox mb(tr("Drop file error."), tr("File not found or file name not accepted."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("Drop file error."), tr("File not found or file name not accepted."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
}
}

View File

@ -294,13 +294,11 @@ void CreateForumMsg::dropEvent(QDropEvent *event)
//Check that the file does exist and is not a directory
if ((-1 == stat(localpath.c_str(), &buf))) {
std::cerr << "CreateForumMsg::dropEvent() file does not exists."<< std::endl;
QMessageBox mb(tr("Drop file error."), tr("File not found or file name not accepted."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("Drop file error."), tr("File not found or file name not accepted."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
} else if (S_ISDIR(buf.st_mode)) {
std::cerr << "CreateForumMsg::dropEvent() directory not accepted."<< std::endl;
QMessageBox mb(tr("Drop file error."), tr("Directory can't be dropped, only files are accepted."),QMessageBox::Information,QMessageBox::Ok,0,0);
mb.setButtonText( QMessageBox::Ok, "OK" );
QMessageBox mb(tr("Drop file error."), tr("Directory can't be dropped, only files are accepted."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
} else {
CreateForumMsg::addAttachment(localpath);

View File

@ -284,6 +284,8 @@ MessageComposer::MessageComposer(QWidget *parent, Qt::WFlags flags)
/* set focus to subject */
ui.titleEdit->setFocus();
setAcceptDrops(true);
/* Hide platform specific features */
#ifdef Q_WS_WIN
@ -2289,3 +2291,79 @@ void MessageComposer::recommendButtonClicked()
ui.msgText->textCursor().insertHtml(text);
ui.msgText->setFocus(Qt::OtherFocusReason);
}
void MessageComposer::dragEnterEvent(QDragEnterEvent *event)
{
/* print out mimeType */
std::cerr << "PopupChatDialog::dragEnterEvent() Formats";
std::cerr << std::endl;
QStringList formats = event->mimeData()->formats();
QStringList::iterator it;
for(it = formats.begin(); it != formats.end(); it++) {
std::cerr << "Format: " << (*it).toStdString();
std::cerr << std::endl;
}
if (event->mimeData()->hasUrls()) {
std::cerr << "PopupChatDialog::dragEnterEvent() Accepting Urls";
std::cerr << std::endl;
event->acceptProposedAction();
} else {
std::cerr << "PopupChatDialog::dragEnterEvent() No Urls";
std::cerr << std::endl;
}
}
void MessageComposer::dropEvent(QDropEvent *event)
{
if (!(Qt::CopyAction & event->possibleActions())) {
std::cerr << "PopupChatDialog::dropEvent() Rejecting uncopyable DropAction";
std::cerr << std::endl;
/* can't do it */
return;
}
std::cerr << "PopupChatDialog::dropEvent() Formats";
std::cerr << std::endl;
QStringList formats = event->mimeData()->formats();
QStringList::iterator it;
for(it = formats.begin(); it != formats.end(); it++) {
std::cerr << "Format: " << (*it).toStdString();
std::cerr << std::endl;
}
if (event->mimeData()->hasUrls()) {
std::cerr << "PopupChatDialog::dropEvent() Urls:";
std::cerr << std::endl;
QList<QUrl> urls = event->mimeData()->urls();
QList<QUrl>::iterator uit;
for(uit = urls.begin(); uit != urls.end(); uit++) {
QString localpath = uit->toLocalFile();
std::cerr << "Whole URL: " << uit->toString().toStdString() << std::endl;
std::cerr << "or As Local File: " << localpath.toStdString() << std::endl;
if (localpath.isEmpty() == false) {
//Check that the file does exist and is not a directory
QDir dir(localpath);
if (dir.exists()) {
std::cerr << "PopupChatDialog::dropEvent() directory not accepted."<< std::endl;
QMessageBox mb(tr("Drop file error."), tr("Directory can't be dropped, only files are accepted."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
} else if (QFile::exists(localpath)) {
addAttachment(localpath.toUtf8().constData());
} else {
std::cerr << "PopupChatDialog::dropEvent() file does not exists."<< std::endl;
QMessageBox mb(tr("Drop file error."), tr("File not found or file name not accepted."),QMessageBox::Information,QMessageBox::Ok,0,0,this);
mb.exec();
}
}
}
}
event->setDropAction(Qt::CopyAction);
event->accept();
}

View File

@ -80,6 +80,9 @@ protected:
void closeEvent (QCloseEvent * event);
bool eventFilter(QObject *obj, QEvent *ev);
virtual void dragEnterEvent(QDragEnterEvent *event);
virtual void dropEvent(QDropEvent *event);
private slots:
/* toggle Contacts DockWidget */

View File

@ -2481,17 +2481,17 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../gui/forums/CreateForumMsg.cpp" line="+93"/>
<location line="+5"/>
<location line="+4"/>
<source>Drop file error.</source>
<translation>Dateifehler bei Drag&apos;n&apos;Drop.</translation>
</message>
<message>
<location line="-5"/>
<location line="-4"/>
<source>File not found or file name not accepted.</source>
<translation>Datei nicht gefunden oder Dateiname nicht akzeptiert.</translation>
</message>
<message>
<location line="+5"/>
<location line="+4"/>
<source>Directory can&apos;t be dropped, only files are accepted.</source>
<translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation>
</message>
@ -4857,7 +4857,7 @@ p, li { white-space: pre-wrap; }
<translation>Die Datei wurde zur Downloadliste hinzugefügt.</translation>
</message>
<message>
<location line="+7"/>
<location line="+6"/>
<source>File Request canceled</source>
<translation>Dateianforderung abgebrochen</translation>
</message>
@ -4867,7 +4867,7 @@ p, li { white-space: pre-wrap; }
<translation>Die Datei wurde nicht zur Downloadliste hinzugefügt, da Sie sie schon haben.</translation>
</message>
<message>
<location line="+7"/>
<location line="+6"/>
<source>File Request Error</source>
<translation>Fehler bei der Dateianforderung</translation>
</message>
@ -5326,7 +5326,7 @@ Bitte gib etwas Speicher frei und drücke OK.</translation>
<name>MessageComposer</name>
<message>
<location filename="../gui/msgs/MessageComposer.ui" line="+17"/>
<location filename="../gui/msgs/MessageComposer.cpp" line="+724"/>
<location filename="../gui/msgs/MessageComposer.cpp" line="+726"/>
<source>Compose</source>
<translation>Verfassen</translation>
</message>
@ -5553,7 +5553,7 @@ Bitte gib etwas Speicher frei und drücke OK.</translation>
<translation>Blockquote hinzufügen</translation>
</message>
<message>
<location filename="../gui/msgs/MessageComposer.cpp" line="-1055"/>
<location filename="../gui/msgs/MessageComposer.cpp" line="-1057"/>
<source>&amp;Left</source>
<translation>&amp;Links</translation>
</message>
@ -5573,7 +5573,7 @@ Bitte gib etwas Speicher frei und drücke OK.</translation>
<translation>&amp;Blocksatz</translation>
</message>
<message>
<location line="+206"/>
<location line="+208"/>
<location line="+1521"/>
<source>Save Message</source>
<translation>Nachricht speichern</translation>
@ -5770,7 +5770,23 @@ Willst Du die Nachricht speichern ?</translation>
<translation>Zusätzliche Datei hinzufügen</translation>
</message>
<message>
<location line="-1682"/>
<location line="+275"/>
<location line="+6"/>
<source>Drop file error.</source>
<translation>Dateifehler bei Drag&apos;n&apos;Drop.</translation>
</message>
<message>
<location line="-6"/>
<source>Directory can&apos;t be dropped, only files are accepted.</source>
<translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation>
</message>
<message>
<location line="+6"/>
<source>File not found or file name not accepted.</source>
<translation>Datei nicht gefunden oder Dateiname nicht akzeptiert.</translation>
</message>
<message>
<location line="-1963"/>
<source>Friend Recommendation(s)</source>
<translation>Freundempfehlung(en)</translation>
</message>
@ -5893,7 +5909,7 @@ Willst Du die Nachricht speichern ?</translation>
<message>
<location line="-5"/>
<location filename="../gui/MessagesDialog.cpp" line="-1"/>
<location line="+845"/>
<location line="+828"/>
<source>From</source>
<translation>Von</translation>
</message>
@ -6066,7 +6082,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../gui/MessagesDialog.ui" line="-886"/>
<location filename="../gui/MessagesDialog.cpp" line="-1579"/>
<location filename="../gui/MessagesDialog.cpp" line="-1562"/>
<source>Subject</source>
<translation>Betreff</translation>
</message>
@ -6131,7 +6147,7 @@ p, li { white-space: pre-wrap; }
<translation>Empfohlene Dateien einblenden</translation>
</message>
<message>
<location line="+1052"/>
<location line="+1035"/>
<source>Save as...</source>
<translation>Speichern unter...</translation>
</message>
@ -6141,7 +6157,7 @@ p, li { white-space: pre-wrap; }
<translation>HTML-Dateien (*.htm *.html);;Alle Dateien (*)</translation>
</message>
<message>
<location line="-1563"/>
<location line="-1546"/>
<location line="+274"/>
<source>Reply to All</source>
<translation>Allen antworten</translation>
@ -6180,7 +6196,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+177"/>
<location filename="../gui/MessagesDialog.cpp" line="+639"/>
<location filename="../gui/MessagesDialog.cpp" line="+622"/>
<location line="+1038"/>
<location line="+5"/>
<source>Trash</source>
@ -6197,7 +6213,7 @@ p, li { white-space: pre-wrap; }
<translation>Ordner</translation>
</message>
<message>
<location filename="../gui/MessagesDialog.cpp" line="-1671"/>
<location filename="../gui/MessagesDialog.cpp" line="-1654"/>
<source>Remove All Tags</source>
<translation>Alle Schlagwörter entfernen</translation>
</message>
@ -6227,7 +6243,7 @@ p, li { white-space: pre-wrap; }
<translation>Papierkorb leeren</translation>
</message>
<message>
<location line="+369"/>
<location line="+352"/>
<location line="+1029"/>
<location line="+8"/>
<source>Drafts</source>
@ -6239,12 +6255,12 @@ p, li { white-space: pre-wrap; }
<translation>An</translation>
</message>
<message>
<location line="-506"/>
<location line="-489"/>
<source>Edit...</source>
<translation>Editieren...</translation>
</message>
<message>
<location line="+1427"/>
<location line="+1410"/>
<location line="+4"/>
<location line="+4"/>
<location line="+4"/>
@ -7393,7 +7409,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+103"/>
<location line="+7"/>
<location line="+6"/>
<source>Drop file error.</source>
<translation>Dateifehler bei Drag&apos;n&apos;Drop.</translation>
</message>
@ -7403,7 +7419,7 @@ p, li { white-space: pre-wrap; }
<translation>Datei nicht gefunden oder Dateiname nicht akzeptiert.</translation>
</message>
<message>
<location line="-7"/>
<location line="-6"/>
<source>Directory can&apos;t be dropped, only files are accepted.</source>
<translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation>
</message>
@ -7580,7 +7596,7 @@ p, li { white-space: pre-wrap; }
<translation>Willst du diesen Freund entfernen?</translation>
</message>
<message>
<location line="+744"/>
<location line="+742"/>
<source>Save as...</source>
<translation>Speichern unter...</translation>
</message>
@ -7613,7 +7629,7 @@ p, li { white-space: pre-wrap; }
<translation>Status Spalte ausblenden</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-1828"/>
<location filename="../gui/PeersDialog.cpp" line="-1826"/>
<source>Friends Storm</source>
<translation>Aktivitäten</translation>
</message>
@ -7951,12 +7967,12 @@ p, li { white-space: pre-wrap; }
<translation>Avatar zeigen</translation>
</message>
<message>
<location line="+316"/>
<location line="+315"/>
<source>File not found or file name not accepted.</source>
<translation>Datei nicht gefunden oder Dateiname nicht akzeptiert.</translation>
</message>
<message>
<location line="+91"/>
<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>
@ -8019,7 +8035,7 @@ p, li { white-space: pre-wrap; }
<translation>Deaktiviere Emoticons</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="-989"/>
<location filename="../gui/chat/PopupChatDialog.cpp" line="-987"/>
<source>Paste retroshare Link</source>
<translation>RetroShare Link einfügen</translation>
</message>
@ -8035,12 +8051,12 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+165"/>
<location line="+7"/>
<location line="+6"/>
<source>Drop file error.</source>
<translation>Dateifehler bei Drag&apos;n&apos;Drop.</translation>
</message>
<message>
<location line="-7"/>
<location line="-6"/>
<source>Directory can&apos;t be dropped, only files are accepted.</source>
<translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation>
</message>
@ -8056,7 +8072,7 @@ p, li { white-space: pre-wrap; }
<translation>Chat Verlauf speichern</translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+62"/>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+60"/>
<source>Save as...</source>
<translation>Speichern unter...</translation>
</message>
@ -8066,7 +8082,7 @@ p, li { white-space: pre-wrap; }
<translation>Text Datei (*.txt );;Alle Dateien (*)</translation>
</message>
<message>
<location line="-720"/>
<location line="-718"/>
<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>
@ -8083,7 +8099,7 @@ Do you want to send them a Message instead</source>
<translation></translation>
</message>
<message>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+762"/>
<location filename="../gui/chat/PopupChatDialog.cpp" line="+760"/>
<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>
@ -8103,7 +8119,7 @@ Do you want to send them a Message instead</source>
<translation>ist Offline.</translation>
</message>
<message>
<location line="-697"/>
<location line="-695"/>
<source>is typing...</source>
<translation>tippt...</translation>
</message>
@ -8641,7 +8657,7 @@ p, li { white-space: pre-wrap; }
<translation>Die Datei wurde zur Downloadliste hinzugefügt.</translation>
</message>
<message>
<location line="+9"/>
<location line="+8"/>
<source>File Request canceled</source>
<translation>Dateianforderung abgebrochen</translation>
</message>
@ -8651,39 +8667,39 @@ p, li { white-space: pre-wrap; }
<translation>Die Datei wurde nicht zur Downloadliste hinzugefügt, da Du sie schon hast.</translation>
</message>
<message>
<location line="+22"/>
<location line="+10"/>
<location line="+21"/>
<location line="+9"/>
<source>Friend Request Confirmation</source>
<translation>Freundanfrage bestätigen</translation>
</message>
<message>
<location line="-10"/>
<location line="-9"/>
<source>The friend is already in your list.</source>
<translation>Der Freund ist schon in Deiner Liste.</translation>
</message>
<message>
<location line="+10"/>
<location line="+9"/>
<source>The friend has been added to your list.</source>
<translation>Der Freund wurde zu Deiner Liste hinzugefügt.</translation>
</message>
<message>
<location line="+9"/>
<location line="+9"/>
<location line="+8"/>
<location line="+8"/>
<source>Friend Request canceled</source>
<translation>Freundanfrage abgebrochen</translation>
</message>
<message>
<location line="-9"/>
<location line="-8"/>
<source>The friend could not be added to your list.</source>
<translation>Der Freund konnte nicht zu Deiner Liste hinzugefügt werden.</translation>
</message>
<message>
<location line="+9"/>
<location line="+8"/>
<source>The friend could not be found.</source>
<translation>Der Freund konnte nicht gefunden werden.</translation>
</message>
<message>
<location line="+12"/>
<location line="+11"/>
<source>File Request Error</source>
<translation>Fehler bei der Dateianforderung</translation>
</message>
@ -8693,7 +8709,7 @@ p, li { white-space: pre-wrap; }
<translation>Link ist fehlerhaft.</translation>
</message>
<message>
<location line="+18"/>
<location line="+17"/>
<source>File Request</source>
<translation>Dateianfrage</translation>
</message>