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/RSTabWidget.h \
gui/common/RSItemDelegate.h \ gui/common/RSItemDelegate.h \
gui/common/PeerDefs.h \ gui/common/PeerDefs.h \
gui/common/PopularityDefs.h \
gui/MessagesDialog.h \ gui/MessagesDialog.h \
gui/help/browser/helpbrowser.h \ gui/help/browser/helpbrowser.h \
gui/help/browser/helptextbrowser.h \ gui/help/browser/helptextbrowser.h \
@ -489,6 +490,7 @@ SOURCES += main.cpp \
gui/common/RSTabWidget.cpp \ gui/common/RSTabWidget.cpp \
gui/common/RSItemDelegate.cpp \ gui/common/RSItemDelegate.cpp \
gui/common/PeerDefs.cpp \ gui/common/PeerDefs.cpp \
gui/common/PopularityDefs.cpp \
gui/settings/rsharesettings.cpp \ gui/settings/rsharesettings.cpp \
gui/settings/RsharePeerSettings.cpp \ gui/settings/RsharePeerSettings.cpp \
gui/settings/rsettings.cpp \ gui/settings/rsettings.cpp \

View File

@ -32,6 +32,7 @@
#include "ChannelFeed.h" #include "ChannelFeed.h"
#include "feeds/ChanMsgItem.h" #include "feeds/ChanMsgItem.h"
#include "common/PopularityDefs.h"
#include "channels/CreateChannel.h" #include "channels/CreateChannel.h"
#include "channels/ChannelDetails.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); 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; QPixmap chanImage;
if (ci.pngImageLen != 0) { if (ci.pngImageLen != 0) {
@ -541,20 +543,7 @@ void ChannelFeed::fillChannelList(int channelItem, std::list<ChannelInfo> &chann
chNameItem->setIcon(QIcon(chanImage)); chNameItem->setIcon(QIcon(chanImage));
/* set Popularity icon */ /* set Popularity icon */
int popcount = ci.pop; chPopItem->setIcon(PopularityDefs::icon(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"));
}
} }
/* remove all items not in list */ /* remove all items not in list */

View File

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

View File

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