From 404dfd0cbc6405f6d2a756e84e3eefcd35854466 Mon Sep 17 00:00:00 2001 From: thunder2 Date: Sat, 25 Dec 2010 12:52:29 +0000 Subject: [PATCH] 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 --- retroshare-gui/src/RetroShare.pro | 2 + retroshare-gui/src/gui/ChannelFeed.cpp | 19 +-- retroshare-gui/src/gui/ForumsDialog.cpp | 127 +++++++---------- retroshare-gui/src/gui/ForumsDialog.ui | 16 ++- .../src/gui/common/PopularityDefs.cpp | 51 +++++++ .../src/gui/common/PopularityDefs.h | 36 +++++ retroshare-gui/src/lang/retroshare_de.qm | Bin 276876 -> 276615 bytes retroshare-gui/src/lang/retroshare_de.ts | 128 ++++++++++-------- 8 files changed, 228 insertions(+), 151 deletions(-) create mode 100644 retroshare-gui/src/gui/common/PopularityDefs.cpp create mode 100644 retroshare-gui/src/gui/common/PopularityDefs.h diff --git a/retroshare-gui/src/RetroShare.pro b/retroshare-gui/src/RetroShare.pro index 24cb27be8..9f4b47cdc 100644 --- a/retroshare-gui/src/RetroShare.pro +++ b/retroshare-gui/src/RetroShare.pro @@ -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 \ diff --git a/retroshare-gui/src/gui/ChannelFeed.cpp b/retroshare-gui/src/gui/ChannelFeed.cpp index d9311ad27..60dab6f22 100644 --- a/retroshare-gui/src/gui/ChannelFeed.cpp +++ b/retroshare-gui/src/gui/ChannelFeed.cpp @@ -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 &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 &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 */ diff --git a/retroshare-gui/src/gui/ForumsDialog.cpp b/retroshare-gui/src/gui/ForumsDialog.cpp index ff1847e68..4d652171e 100644 --- a/retroshare-gui/src/gui/ForumsDialog.cpp +++ b/retroshare-gui/src/gui/ForumsDialog.cpp @@ -34,11 +34,11 @@ #include "settings/rsharesettings.h" #include "common/Emoticons.h" #include "common/RSItemDelegate.h" +#include "common/PopularityDefs.h" #include #include -#include #include @@ -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 AdminList; - QList SubList; - QList PopList; - QList OtherList; + QList AdminList; + QList SubList; + QList PopList; + QList OtherList; std::multimap 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 &ChildList) diff --git a/retroshare-gui/src/gui/ForumsDialog.ui b/retroshare-gui/src/gui/ForumsDialog.ui index cf3ba1d14..6b1b823ef 100644 --- a/retroshare-gui/src/gui/ForumsDialog.ui +++ b/retroshare-gui/src/gui/ForumsDialog.ui @@ -745,9 +745,21 @@ p, li { white-space: pre-wrap; } Qt::CustomContextMenu - - true + + QAbstractItemView::NoEditTriggers + + false + + + false + + + false + + + false + RetroShare Forums diff --git a/retroshare-gui/src/gui/common/PopularityDefs.cpp b/retroshare-gui/src/gui/common/PopularityDefs.cpp new file mode 100644 index 000000000..56805c76f --- /dev/null +++ b/retroshare-gui/src/gui/common/PopularityDefs.cpp @@ -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 + +#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); +} diff --git a/retroshare-gui/src/gui/common/PopularityDefs.h b/retroshare-gui/src/gui/common/PopularityDefs.h new file mode 100644 index 000000000..5d989786d --- /dev/null +++ b/retroshare-gui/src/gui/common/PopularityDefs.h @@ -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 + +class PopularityDefs +{ +public: + static QIcon icon(int popularity); + static QString tooltip(int popularity); +}; + +#endif + diff --git a/retroshare-gui/src/lang/retroshare_de.qm b/retroshare-gui/src/lang/retroshare_de.qm index 4e25cada4b5fc8d5cba0610631acf730d5321050..d6e14f845490e8faafe305c21b6b2518e0277406 100644 GIT binary patch delta 15877 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%0A$+1sAdFp-SuBGGUX`X1V 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 diff --git a/retroshare-gui/src/lang/retroshare_de.ts b/retroshare-gui/src/lang/retroshare_de.ts index 6eb1b1eca..aa305cc47 100644 --- a/retroshare-gui/src/lang/retroshare_de.ts +++ b/retroshare-gui/src/lang/retroshare_de.ts @@ -1073,7 +1073,7 @@ p, li { white-space: pre-wrap; } Kanal abbestellen - + Name Name @@ -1103,13 +1103,12 @@ p, li { white-space: pre-wrap; } Andere Kanäle - Popularity: %1 - Beliebtheit: %1 + Beliebtheit: %1 - + Post to Channel Kanalbeitrag erstellen @@ -1134,17 +1133,16 @@ p, li { white-space: pre-wrap; } Verteile Kanal - + No Channel Selected Keinen Kanal gewählt - Restore Publish Rights for Channel - Stelle Veröffentlichungsrechte für Kanal wieder her + Stelle Veröffentlichungsrechte für Kanal wieder her - + Edit Channel Details Kanal-Details bearbeiten @@ -1558,7 +1556,7 @@ p, li { white-space: pre-wrap; } Übernehmen und Schliessen - + RetroShare @@ -3558,7 +3556,7 @@ p, li { white-space: pre-wrap; } ForumsDialog - + Subscribe to Forum Forum abonnieren @@ -3623,14 +3621,11 @@ p, li { white-space: pre-wrap; } Erweitern - - - Popularity: - Beliebtheit: + Beliebtheit: - + Anonymous Anonym @@ -3664,7 +3659,7 @@ p, li { white-space: pre-wrap; } Du kannst einem anonymen Autor nicht antworten - + Your Forums Deine Foren @@ -3702,17 +3697,17 @@ p, li { white-space: pre-wrap; } Hinzufügen - + RetroShare Forums RetroShare Foren - + Start new Thread for Selected Forum Starte ein neues Thema im ausgewählten Forum - + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> <html><head><meta name="qrichtext" content="1" /><style type="text/css"> p, li { white-space: pre-wrap; } @@ -3725,7 +3720,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Forum:</p></body></html> - + Last Post Letzter Beitrag @@ -3741,24 +3736,24 @@ p, li { white-space: pre-wrap; } - + Date Datum - - + + Title Titel - - + + Author Autor - + Signed Unterzeichnet @@ -3776,7 +3771,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt; font-weight:600;">Thema:</span></p></body></html> - + Previous Thread Vorheriger Beitrag @@ -3807,7 +3802,7 @@ p, li { white-space: pre-wrap; } - + Start New Thread Erstelle neues Thema @@ -3835,7 +3830,7 @@ p, li { white-space: pre-wrap; } Inhalt - + Mark as read Als gelesen markieren @@ -5438,7 +5433,7 @@ Bitte gib etwas Speicher frei und drücke OK. MessageComposer - + Compose Verfassen @@ -5665,7 +5660,7 @@ Bitte gib etwas Speicher frei und drücke OK. Blockquote hinzufügen - + &Left &Links @@ -5686,12 +5681,12 @@ Bitte gib etwas Speicher frei und drücke OK. - + Save Message Nachricht speichern - + Message has not been Sent. Do you want to save message to draft box? Nachricht wurde noch nicht gesendet. @@ -5704,7 +5699,7 @@ Möchtest Du die Nachricht in den Entwürfen speichern? RetroShare Link einfügen - + Re: Re: @@ -5909,17 +5904,17 @@ Willst Du die Nachricht speichern ? Datei nicht gefunden oder Dateiname nicht akzeptiert. - + Friend Recommendation(s) Freundempfehlung(en) - + No Title Kein Titel - + I recommend a good friend of me, you can trust him too when you trust me. <br> Copy friend link and paste to Friends list Ich empfehle Dir einen guten Freund von mir. Du kannst ihm vertrauen, wenn Du mir vertraust. <br> Kopiere den Link und füge ihn in der Freundesliste ein @@ -6011,7 +6006,7 @@ Willst Du die Nachricht speichern ? MessagesDialog - + New Message Neue Nachricht @@ -6034,7 +6029,7 @@ Willst Du die Nachricht speichern ? - + From Von @@ -6207,7 +6202,7 @@ p, li { white-space: pre-wrap; } - + Subject Betreff @@ -6272,7 +6267,7 @@ p, li { white-space: pre-wrap; } Empfohlene Dateien einblenden - + Save as... Speichern unter... @@ -6282,7 +6277,7 @@ p, li { white-space: pre-wrap; } HTML-Dateien (*.htm *.html);;Alle Dateien (*) - + Reply to All Allen antworten @@ -6321,7 +6316,7 @@ p, li { white-space: pre-wrap; } - + Trash @@ -6338,7 +6333,7 @@ p, li { white-space: pre-wrap; } Ordner - + Remove All Tags Alle Schlagwörter entfernen @@ -6368,7 +6363,7 @@ p, li { white-space: pre-wrap; } Papierkorb leeren - + Drafts @@ -6380,12 +6375,12 @@ p, li { white-space: pre-wrap; } An - + Edit... Editieren... - + @@ -7141,7 +7136,7 @@ p, li { white-space: pre-wrap; } NotifyQt - + GPG key passphrase GPG Schlüssel Passwort @@ -7353,7 +7348,7 @@ p, li { white-space: pre-wrap; } Chat - + Save Certificate Zertifikat speichern @@ -7368,7 +7363,7 @@ p, li { white-space: pre-wrap; } Status - + Connect To Friend Verbinde zum Freund @@ -7468,7 +7463,7 @@ p, li { white-space: pre-wrap; } Aus allen Gruppen entfernen - + Available Verfügbar @@ -7626,7 +7621,7 @@ p, li { white-space: pre-wrap; } - + Add Friend Freund hinzufügen @@ -7681,12 +7676,12 @@ p, li { white-space: pre-wrap; } - + RetroShare - + Message Group Gruppe anschreiben @@ -7701,7 +7696,7 @@ p, li { white-space: pre-wrap; } Gruppe entfernen - + Do you want to remove this Friend? Willst du diesen Freund entfernen? @@ -7739,12 +7734,12 @@ p, li { white-space: pre-wrap; } Status Spalte ausblenden - + Friends Storm Aktivitäten - + is typing... tippt... @@ -7764,7 +7759,7 @@ p, li { white-space: pre-wrap; } Freunde - + Paste Friend Link RetroShare Link einfügen @@ -8064,6 +8059,14 @@ p, li { white-space: pre-wrap; } + + PopularityDefs + + + Popularity + Beliebtheit + + PopupChatDialog @@ -8776,12 +8779,19 @@ p, li { white-space: pre-wrap; } Die Datei wurde zur Downloadliste hinzugefügt. - + + File Request canceled Dateianforderung abgebrochen + The following has not been added to your download list, because you already have it: + + + + + The file has not been added to your download list, because you already have it. Die Datei wurde nicht zur Downloadliste hinzugefügt, da Du sie schon hast.