Added popularity column and removed hidden date column in forums tree.

Added new global class for working with popularity PopularityDefs.
Changed the display of the popularity icons.
 0     = icon 0
 1-7   = icon 1
 8-15  = icon 2
 16-24 = icon 3
 25-34 = icon 4
 >34   = icon 5
This can be changed in PopularityDefs::icon.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3933 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2010-12-25 12:52:29 +00:00
parent fd2955b28b
commit 404dfd0cbc
8 changed files with 228 additions and 151 deletions

View File

@ -290,6 +290,7 @@ HEADERS += rshare.h \
gui/common/RSTabWidget.h \
gui/common/RSItemDelegate.h \
gui/common/PeerDefs.h \
gui/common/PopularityDefs.h \
gui/MessagesDialog.h \
gui/help/browser/helpbrowser.h \
gui/help/browser/helptextbrowser.h \
@ -489,6 +490,7 @@ SOURCES += main.cpp \
gui/common/RSTabWidget.cpp \
gui/common/RSItemDelegate.cpp \
gui/common/PeerDefs.cpp \
gui/common/PopularityDefs.cpp \
gui/settings/rsharesettings.cpp \
gui/settings/RsharePeerSettings.cpp \
gui/settings/rsettings.cpp \

View File

@ -32,6 +32,7 @@
#include "ChannelFeed.h"
#include "feeds/ChanMsgItem.h"
#include "common/PopularityDefs.h"
#include "channels/CreateChannel.h"
#include "channels/ChannelDetails.h"
@ -530,7 +531,8 @@ void ChannelFeed::fillChannelList(int channelItem, std::list<ChannelInfo> &chann
groupItem->child(chNameItem->index().row(), COLUMN_DATA)->setData(QDateTime::fromTime_t(ci.lastPost), ROLE_CHANNEL_TS);
chNameItem->setToolTip(tr("Popularity: %1").arg(QString::number(ci.pop)));
chNameItem->setToolTip(PopularityDefs::tooltip(ci.pop));
chPopItem->setToolTip(PopularityDefs::tooltip(ci.pop));
QPixmap chanImage;
if (ci.pngImageLen != 0) {
@ -541,20 +543,7 @@ void ChannelFeed::fillChannelList(int channelItem, std::list<ChannelInfo> &chann
chNameItem->setIcon(QIcon(chanImage));
/* set Popularity icon */
int popcount = ci.pop;
if (popcount == 0) {
chPopItem->setIcon(QIcon(":/images/hot_0.png"));
} else if (popcount < 2) {
chPopItem->setIcon(QIcon(":/images/hot_1.png"));
} else if (popcount < 4) {
chPopItem->setIcon(QIcon(":/images/hot_2.png"));
} else if (popcount < 8) {
chPopItem->setIcon(QIcon(":/images/hot_3.png"));
} else if (popcount < 16) {
chPopItem->setIcon(QIcon(":/images/hot_4.png"));
} else {
chPopItem->setIcon(QIcon(":/images/hot_5.png"));
}
chPopItem->setIcon(PopularityDefs::icon(ci.pop));
}
/* remove all items not in list */

View File

@ -34,11 +34,11 @@
#include "settings/rsharesettings.h"
#include "common/Emoticons.h"
#include "common/RSItemDelegate.h"
#include "common/PopularityDefs.h"
#include <retroshare/rspeers.h>
#include <retroshare/rsforums.h>
#include <sstream>
#include <algorithm>
@ -66,9 +66,9 @@
#define VIEW_FLAT 2
/* Forum constants */
#define COLUMN_FORUM_COUNT 2
#define COLUMN_FORUM_TITLE 0
#define COLUMN_FORUM_DATE 1
#define COLUMN_FORUM_COUNT 2
#define COLUMN_FORUM_TITLE 0
#define COLUMN_FORUM_POPULARITY 1
#define COLUMN_FORUM_DATA 0
@ -169,13 +169,17 @@ ForumsDialog::ForumsDialog(QWidget *parent)
ui.threadTreeWidget->setItemDelegate(itemDelegate);
itemDelegate = new RSItemDelegate(this);
itemDelegate->removeFocusRect(COLUMN_FORUM_POPULARITY);
itemDelegate->setSpacing(QSize(0, 2));
ui.forumTreeWidget->setItemDelegate(itemDelegate);
/* Set header resize modes and initial section sizes */
QHeaderView * ftheader = ui.forumTreeWidget->header () ;
ftheader->setResizeMode (COLUMN_FORUM_TITLE, QHeaderView::Interactive);
ui.forumTreeWidget->setColumnCount(COLUMN_FORUM_COUNT);
QHeaderView * ftheader = ui.forumTreeWidget->header ();
ftheader->setResizeMode (COLUMN_FORUM_TITLE, QHeaderView::Stretch);
ftheader->resizeSection (COLUMN_FORUM_TITLE, 170);
ftheader->setResizeMode (COLUMN_FORUM_POPULARITY, QHeaderView::Fixed);
ftheader->resizeSection (COLUMN_FORUM_POPULARITY, 25);
/* Set header resize modes and initial section sizes */
QHeaderView * ttheader = ui.threadTreeWidget->header () ;
@ -496,10 +500,10 @@ void ForumsDialog::insertForums()
rsForums->getForumList(forumList);
QList<QTreeWidgetItem *> AdminList;
QList<QTreeWidgetItem *> SubList;
QList<QTreeWidgetItem *> PopList;
QList<QTreeWidgetItem *> OtherList;
QList<QTreeWidgetItem *> AdminList;
QList<QTreeWidgetItem *> SubList;
QList<QTreeWidgetItem *> PopList;
QList<QTreeWidgetItem *> OtherList;
std::multimap<uint32_t, std::string> popMap;
for(it = forumList.begin(); it != forumList.end(); it++)
@ -518,38 +522,29 @@ void ForumsDialog::insertForums()
* ForumId,
*/
QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0);
QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0);
QString name = QString::fromStdWString(it->forumName);
if (it->forumFlags & RS_DISTRIB_AUTHEN_REQ)
{
name += " (AUTHD)";
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUMAUTHD)));
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUMAUTHD)));
}
else
{
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUM)));
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUM)));
}
item -> setText(COLUMN_FORUM_TITLE, name);
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_TITLE, name);
item -> setText(COLUMN_FORUM_TITLE, name);
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_TITLE, name);
/* (1) Popularity */
{
std::ostringstream out;
out << it->pop;
item -> setToolTip(COLUMN_FORUM_TITLE, tr("Popularity:") + " " + QString::fromStdString(out.str()));
}
item -> setIcon(COLUMN_FORUM_POPULARITY, PopularityDefs::icon(it->pop));
item -> setToolTip(COLUMN_FORUM_TITLE, PopularityDefs::tooltip(it->pop));
item -> setToolTip(COLUMN_FORUM_POPULARITY, PopularityDefs::tooltip(it->pop));
// Date
{
QDateTime qtime;
qtime.setTime_t(it->lastPost);
QString timestamp = qtime.toString("yyyy-MM-dd hh:mm:ss");
item -> setText(COLUMN_FORUM_DATE, timestamp);
}
// Id.
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_ID, QString::fromStdString(it->forumId));
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_ID, QString::fromStdString(it->forumId));
AdminList.append(item);
}
else if (flags & RS_DISTRIB_SUBSCRIBED)
@ -563,38 +558,29 @@ void ForumsDialog::insertForums()
* ForumId,
*/
QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0);
QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0);
QString name = QString::fromStdWString(it->forumName);
if (it->forumFlags & RS_DISTRIB_AUTHEN_REQ)
{
name += " (AUTHD)";
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUMAUTHD)));
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUMAUTHD)));
}
else
{
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUM)));
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUM)));
}
item -> setText(COLUMN_FORUM_TITLE, name);
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_TITLE, name);
item -> setText(COLUMN_FORUM_TITLE, name);
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_TITLE, name);
/* (1) Popularity */
{
std::ostringstream out;
out << it->pop;
item -> setToolTip(COLUMN_FORUM_TITLE, tr("Popularity:") + " " + QString::fromStdString(out.str()));
}
item -> setIcon(COLUMN_FORUM_POPULARITY, PopularityDefs::icon(it->pop));
item -> setToolTip(COLUMN_FORUM_TITLE, PopularityDefs::tooltip(it->pop));
item -> setToolTip(COLUMN_FORUM_POPULARITY, PopularityDefs::tooltip(it->pop));
// Date
{
QDateTime qtime;
qtime.setTime_t(it->lastPost);
QString timestamp = qtime.toString("yyyy-MM-dd hh:mm:ss");
item -> setText(COLUMN_FORUM_DATE, timestamp);
}
// Id.
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_ID, QString::fromStdString(it->forumId));
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_ID, QString::fromStdString(it->forumId));
SubList.append(item);
}
else
@ -635,7 +621,7 @@ void ForumsDialog::insertForums()
}
else
{
/* popular forum */
/* popular forum */
/* Name,
* Type,
@ -644,39 +630,30 @@ void ForumsDialog::insertForums()
* ForumId,
*/
QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0);
QTreeWidgetItem *item = new QTreeWidgetItem((QTreeWidget*)0);
QString name = QString::fromStdWString(it->forumName);
if (it->forumFlags & RS_DISTRIB_AUTHEN_REQ)
{
name += " (AUTHD)";
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUMAUTHD)));
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUMAUTHD)));
}
else
{
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUM)));
item -> setIcon(COLUMN_FORUM_TITLE,(QIcon(IMAGE_FORUM)));
}
item -> setText(COLUMN_FORUM_TITLE, name);
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_TITLE, name);
item -> setText(COLUMN_FORUM_TITLE, name);
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_TITLE, name);
/* (1) Popularity */
{
std::ostringstream out;
out << it->pop;
item -> setToolTip(COLUMN_FORUM_TITLE, tr("Popularity:") + " " + QString::fromStdString(out.str()));
}
item -> setIcon(COLUMN_FORUM_POPULARITY, PopularityDefs::icon(it->pop));
item -> setToolTip(COLUMN_FORUM_TITLE, PopularityDefs::tooltip(it->pop));
item -> setToolTip(COLUMN_FORUM_POPULARITY, PopularityDefs::tooltip(it->pop));
// Date
{
QDateTime qtime;
qtime.setTime_t(it->lastPost);
QString timestamp = qtime.toString("yyyy-MM-dd hh:mm:ss");
item -> setText(COLUMN_FORUM_DATE, timestamp);
}
// Id.
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_ID, QString::fromStdString(it->forumId));
item -> setData(COLUMN_FORUM_DATA, ROLE_FORUM_ID, QString::fromStdString(it->forumId));
if (it->pop < popLimit)
{
@ -690,18 +667,18 @@ void ForumsDialog::insertForums()
}
/* now we can add them in as a tree! */
FillForums (YourForums, AdminList);
FillForums (SubscribedForums, SubList);
FillForums (PopularForums, PopList);
FillForums (OtherForums, OtherList);
FillForums (YourForums, AdminList);
FillForums (SubscribedForums, SubList);
FillForums (PopularForums, PopList);
FillForums (OtherForums, OtherList);
// cleanup
CleanupItems (AdminList);
CleanupItems (SubList);
CleanupItems (PopList);
CleanupItems (OtherList);
// cleanup
CleanupItems (AdminList);
CleanupItems (SubList);
CleanupItems (PopList);
CleanupItems (OtherList);
updateMessageSummaryList("");
updateMessageSummaryList("");
}
void ForumsDialog::FillForums(QTreeWidgetItem *Forum, QList<QTreeWidgetItem *> &ChildList)

View File

@ -745,9 +745,21 @@ p, li { white-space: pre-wrap; }
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="headerHidden">
<bool>true</bool>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<attribute name="headerStretchLastSection">
<bool>false</bool>
</attribute>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<attribute name="headerStretchLastSection">
<bool>false</bool>
</attribute>
<column>
<property name="text">
<string>RetroShare Forums</string>

View File

@ -0,0 +1,51 @@
/****************************************************************
* This file is distributed under the following license:
*
* Copyright (c) 2010, RetroShare Team
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#include <QCoreApplication>
#include "PopularityDefs.h"
QIcon PopularityDefs::icon(int popularity)
{
if (popularity == 0) {
return QIcon(":/images/hot_0.png");
} else if (popularity <= 7) {
/* 1-7 */
return QIcon(":/images/hot_1.png");
} else if (popularity <= 15) {
/* 8-15 */
return QIcon(":/images/hot_2.png");
} else if (popularity <= 24) {
/* 16-24 */
return QIcon(":/images/hot_3.png");
} else if (popularity <= 34) {
/* 25-34 */
return QIcon(":/images/hot_4.png");
}
/* >34 */
return QIcon(":/images/hot_5.png");
}
QString PopularityDefs::tooltip(int popularity)
{
return QString("%1: %2").arg(qApp->translate("PopularityDefs", "Popularity")).arg(popularity);
}

View File

@ -0,0 +1,36 @@
/****************************************************************
* This file is distributed under the following license:
*
* Copyright (c) 2010, RetroShare Team
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
****************************************************************/
#ifndef _POPULARITYDEFS_H
#define _POPULARITYDEFS_H
#include <QIcon>
class PopularityDefs
{
public:
static QIcon icon(int popularity);
static QString tooltip(int popularity);
};
#endif

View File

@ -1073,7 +1073,7 @@ p, li { white-space: pre-wrap; }
<translation>Kanal abbestellen</translation>
</message>
<message>
<location filename="../gui/ChannelFeed.cpp" line="+91"/>
<location filename="../gui/ChannelFeed.cpp" line="+92"/>
<source>Name</source>
<translation>Name</translation>
</message>
@ -1103,13 +1103,12 @@ p, li { white-space: pre-wrap; }
<translation>Andere Kanäle</translation>
</message>
<message>
<location line="+408"/>
<source>Popularity: %1</source>
<translation>Beliebtheit: %1</translation>
<translation type="obsolete">Beliebtheit: %1</translation>
</message>
<message>
<location filename="../gui/ChannelFeed.ui" line="-164"/>
<location filename="../gui/ChannelFeed.cpp" line="-370"/>
<location filename="../gui/ChannelFeed.cpp" line="+38"/>
<source>Post to Channel</source>
<translation>Kanalbeitrag erstellen</translation>
</message>
@ -1134,17 +1133,16 @@ p, li { white-space: pre-wrap; }
<translation>Verteile Kanal</translation>
</message>
<message>
<location line="+482"/>
<location line="+469"/>
<source>No Channel Selected</source>
<translation>Keinen Kanal gewählt</translation>
</message>
<message>
<location line="-488"/>
<source>Restore Publish Rights for Channel</source>
<translation>Stelle Veröffentlichungsrechte für Kanal wieder her</translation>
<translation type="obsolete">Stelle Veröffentlichungsrechte für Kanal wieder her</translation>
</message>
<message>
<location line="+3"/>
<location line="-472"/>
<source>Edit Channel Details</source>
<translation>Kanal-Details bearbeiten</translation>
</message>
@ -1558,7 +1556,7 @@ p, li { white-space: pre-wrap; }
<translation>Übernehmen und Schliessen</translation>
</message>
<message>
<location filename="../gui/connect/ConfCertDialog.cpp" line="+125"/>
<location filename="../gui/connect/ConfCertDialog.cpp" line="+127"/>
<location line="+201"/>
<source>RetroShare</source>
<translation></translation>
@ -3558,7 +3556,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>ForumsDialog</name>
<message>
<location filename="../gui/ForumsDialog.cpp" line="+318"/>
<location filename="../gui/ForumsDialog.cpp" line="+322"/>
<source>Subscribe to Forum</source>
<translation>Forum abonnieren</translation>
</message>
@ -3623,14 +3621,11 @@ p, li { white-space: pre-wrap; }
<translation>Erweitern</translation>
</message>
<message>
<location line="+88"/>
<location line="+45"/>
<location line="+82"/>
<source>Popularity:</source>
<translation>Beliebtheit:</translation>
<translation type="obsolete">Beliebtheit:</translation>
</message>
<message>
<location line="+339"/>
<location line="+524"/>
<location line="+107"/>
<source>Anonymous</source>
<translation>Anonym</translation>
@ -3664,7 +3659,7 @@ p, li { white-space: pre-wrap; }
<translation>Du kannst einem anonymen Autor nicht antworten</translation>
</message>
<message>
<location line="-1507"/>
<location line="-1477"/>
<source>Your Forums</source>
<translation>Deine Foren</translation>
</message>
@ -3702,17 +3697,17 @@ p, li { white-space: pre-wrap; }
<translation>Hinzufügen</translation>
</message>
<message>
<location line="+106"/>
<location line="+118"/>
<source>RetroShare Forums</source>
<translation>RetroShare Foren</translation>
</message>
<message>
<location line="-59"/>
<location line="-71"/>
<source>Start new Thread for Selected Forum</source>
<translation>Starte ein neues Thema im ausgewählten Forum</translation>
</message>
<message>
<location line="+109"/>
<location line="+121"/>
<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; }
@ -3725,7 +3720,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;Forum:&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+44"/>
<location line="+47"/>
<source>Last Post</source>
<translation>Letzter Beitrag</translation>
</message>
@ -3741,24 +3736,24 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+36"/>
<location line="+261"/>
<location line="+264"/>
<source>Date</source>
<translation>Datum</translation>
</message>
<message>
<location line="-275"/>
<location line="+280"/>
<location line="-278"/>
<location line="+283"/>
<source>Title</source>
<translation>Titel</translation>
</message>
<message>
<location line="-261"/>
<location line="+266"/>
<location line="-264"/>
<location line="+269"/>
<source>Author</source>
<translation>Autor</translation>
</message>
<message>
<location line="-261"/>
<location line="-264"/>
<source>Signed</source>
<translation>Unterzeichnet</translation>
</message>
@ -3776,7 +3771,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:10pt; font-weight:600;&quot;&gt;Thema:&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+51"/>
<location line="+54"/>
<source>Previous Thread</source>
<translation>Vorheriger Beitrag</translation>
</message>
@ -3807,7 +3802,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../gui/ForumsDialog.cpp" line="+120"/>
<location line="+1280"/>
<location line="+1250"/>
<source>Start New Thread</source>
<translation>Erstelle neues Thema</translation>
</message>
@ -3835,7 +3830,7 @@ p, li { white-space: pre-wrap; }
<translation>Inhalt</translation>
</message>
<message>
<location filename="../gui/ForumsDialog.cpp" line="-1267"/>
<location filename="../gui/ForumsDialog.cpp" line="-1237"/>
<location line="+3"/>
<source>Mark as read</source>
<translation>Als gelesen markieren</translation>
@ -5438,7 +5433,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="+787"/>
<location filename="../gui/msgs/MessageComposer.cpp" line="+798"/>
<source>Compose</source>
<translation>Verfassen</translation>
</message>
@ -5665,7 +5660,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="-1113"/>
<location filename="../gui/msgs/MessageComposer.cpp" line="-1124"/>
<source>&amp;Left</source>
<translation>&amp;Links</translation>
</message>
@ -5686,12 +5681,12 @@ Bitte gib etwas Speicher frei und drücke OK.</translation>
</message>
<message>
<location line="+213"/>
<location line="+1574"/>
<location line="+1585"/>
<source>Save Message</source>
<translation>Nachricht speichern</translation>
</message>
<message>
<location line="-1573"/>
<location line="-1584"/>
<source>Message has not been Sent.
Do you want to save message to draft box?</source>
<translation>Nachricht wurde noch nicht gesendet.
@ -5704,7 +5699,7 @@ Möchtest Du die Nachricht in den Entwürfen speichern?</translation>
<translation>RetroShare Link einfügen</translation>
</message>
<message>
<location line="+562"/>
<location line="+573"/>
<source>Re:</source>
<translation>Re:</translation>
</message>
@ -5909,17 +5904,17 @@ Willst Du die Nachricht speichern ?</translation>
<translation>Datei nicht gefunden oder Dateiname nicht akzeptiert.</translation>
</message>
<message>
<location line="-2012"/>
<location line="-2023"/>
<source>Friend Recommendation(s)</source>
<translation>Freundempfehlung(en)</translation>
</message>
<message>
<location line="+537"/>
<location line="+548"/>
<source>No Title</source>
<translation>Kein Titel</translation>
</message>
<message>
<location line="-535"/>
<location line="-546"/>
<source>I recommend a good friend of me, you can trust him too when you trust me. &lt;br&gt; Copy friend link and paste to Friends list</source>
<translation>Ich empfehle Dir einen guten Freund von mir. Du kannst ihm vertrauen, wenn Du mir vertraust. &lt;br&gt; Kopiere den Link und füge ihn in der Freundesliste ein</translation>
</message>
@ -6011,7 +6006,7 @@ Willst Du die Nachricht speichern ?</translation>
<name>MessagesDialog</name>
<message>
<location filename="../gui/MessagesDialog.ui" line="+573"/>
<location filename="../gui/MessagesDialog.cpp" line="+667"/>
<location filename="../gui/MessagesDialog.cpp" line="+668"/>
<source>New Message</source>
<translation>Neue Nachricht</translation>
</message>
@ -6034,7 +6029,7 @@ Willst Du die Nachricht speichern ?</translation>
<message>
<location line="-5"/>
<location filename="../gui/MessagesDialog.cpp" line="-1"/>
<location line="+828"/>
<location line="+834"/>
<source>From</source>
<translation>Von</translation>
</message>
@ -6207,7 +6202,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../gui/MessagesDialog.ui" line="-889"/>
<location filename="../gui/MessagesDialog.cpp" line="-1562"/>
<location filename="../gui/MessagesDialog.cpp" line="-1568"/>
<source>Subject</source>
<translation>Betreff</translation>
</message>
@ -6272,7 +6267,7 @@ p, li { white-space: pre-wrap; }
<translation>Empfohlene Dateien einblenden</translation>
</message>
<message>
<location line="+1028"/>
<location line="+1034"/>
<source>Save as...</source>
<translation>Speichern unter...</translation>
</message>
@ -6282,7 +6277,7 @@ p, li { white-space: pre-wrap; }
<translation>HTML-Dateien (*.htm *.html);;Alle Dateien (*)</translation>
</message>
<message>
<location line="-1539"/>
<location line="-1545"/>
<location line="+274"/>
<source>Reply to All</source>
<translation>Allen antworten</translation>
@ -6321,7 +6316,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="+177"/>
<location filename="../gui/MessagesDialog.cpp" line="+622"/>
<location filename="../gui/MessagesDialog.cpp" line="+628"/>
<location line="+1031"/>
<location line="+5"/>
<source>Trash</source>
@ -6338,7 +6333,7 @@ p, li { white-space: pre-wrap; }
<translation>Ordner</translation>
</message>
<message>
<location filename="../gui/MessagesDialog.cpp" line="-1647"/>
<location filename="../gui/MessagesDialog.cpp" line="-1653"/>
<source>Remove All Tags</source>
<translation>Alle Schlagwörter entfernen</translation>
</message>
@ -6368,7 +6363,7 @@ p, li { white-space: pre-wrap; }
<translation>Papierkorb leeren</translation>
</message>
<message>
<location line="+352"/>
<location line="+358"/>
<location line="+1022"/>
<location line="+8"/>
<source>Drafts</source>
@ -6380,12 +6375,12 @@ p, li { white-space: pre-wrap; }
<translation>An</translation>
</message>
<message>
<location line="-489"/>
<location line="-495"/>
<source>Edit...</source>
<translation>Editieren...</translation>
</message>
<message>
<location line="+1403"/>
<location line="+1409"/>
<location line="+4"/>
<location line="+4"/>
<location line="+4"/>
@ -7141,7 +7136,7 @@ p, li { white-space: pre-wrap; }
<context>
<name>NotifyQt</name>
<message>
<location filename="../gui/notifyqt.cpp" line="+131"/>
<location filename="../gui/notifyqt.cpp" line="+132"/>
<source>GPG key passphrase</source>
<translation>GPG Schlüssel Passwort</translation>
</message>
@ -7353,7 +7348,7 @@ p, li { white-space: pre-wrap; }
<translation>Chat</translation>
</message>
<message>
<location line="+697"/>
<location line="+703"/>
<source>Save Certificate</source>
<translation>Zertifikat speichern</translation>
</message>
@ -7368,7 +7363,7 @@ p, li { white-space: pre-wrap; }
<translation>Status</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-684"/>
<location filename="../gui/PeersDialog.cpp" line="-690"/>
<source>Connect To Friend</source>
<translation>Verbinde zum Freund</translation>
</message>
@ -7468,7 +7463,7 @@ p, li { white-space: pre-wrap; }
<translation>Aus allen Gruppen entfernen</translation>
</message>
<message>
<location line="+512"/>
<location line="+518"/>
<location line="+2"/>
<source>Available</source>
<translation>Verfügbar</translation>
@ -7626,7 +7621,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="-150"/>
<location filename="../gui/PeersDialog.cpp" line="-1494"/>
<location filename="../gui/PeersDialog.cpp" line="-1500"/>
<source>Add Friend</source>
<translation>Freund hinzufügen</translation>
</message>
@ -7681,12 +7676,12 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-40"/>
<location line="+865"/>
<location line="+871"/>
<source>RetroShare</source>
<translation></translation>
</message>
<message>
<location line="-826"/>
<location line="-832"/>
<source>Message Group</source>
<translation>Gruppe anschreiben</translation>
</message>
@ -7701,7 +7696,7 @@ p, li { white-space: pre-wrap; }
<translation>Gruppe entfernen</translation>
</message>
<message>
<location line="+818"/>
<location line="+824"/>
<source>Do you want to remove this Friend?</source>
<translation>Willst du diesen Freund entfernen?</translation>
</message>
@ -7739,12 +7734,12 @@ p, li { white-space: pre-wrap; }
<translation>Status Spalte ausblenden</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-1839"/>
<location filename="../gui/PeersDialog.cpp" line="-1845"/>
<source>Friends Storm</source>
<translation>Aktivitäten</translation>
</message>
<message>
<location line="+1198"/>
<location line="+1204"/>
<source>is typing...</source>
<translation>tippt...</translation>
</message>
@ -7764,7 +7759,7 @@ p, li { white-space: pre-wrap; }
<translation>Freunde</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-881"/>
<location filename="../gui/PeersDialog.cpp" line="-887"/>
<location line="+80"/>
<source>Paste Friend Link</source>
<translation>RetroShare Link einfügen</translation>
@ -8064,6 +8059,14 @@ p, li { white-space: pre-wrap; }
<translation></translation>
</message>
</context>
<context>
<name>PopularityDefs</name>
<message>
<location filename="../gui/common/PopularityDefs.cpp" line="+49"/>
<source>Popularity</source>
<translation>Beliebtheit</translation>
</message>
</context>
<context>
<name>PopupChatDialog</name>
<message>
@ -8776,12 +8779,19 @@ p, li { white-space: pre-wrap; }
<translation>Die Datei wurde zur Downloadliste hinzugefügt.</translation>
</message>
<message>
<location line="+8"/>
<location filename="../gui/MessagesDialog.cpp" line="-1149"/>
<location filename="../gui/RetroShareLink.cpp" line="+8"/>
<source>File Request canceled</source>
<translation>Dateianforderung abgebrochen</translation>
</message>
<message>
<location line="+0"/>
<source>The following has not been added to your download list, because you already have it:
</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/RetroShareLink.cpp" line="+0"/>
<source>The file has not been added to your download list, because you already have it.</source>
<translation>Die Datei wurde nicht zur Downloadliste hinzugefügt, da Du sie schon hast.</translation>
</message>