Groups for friends in PeersDialog.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3523 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2010-09-22 22:37:57 +00:00
parent 8b1ffdb5d9
commit 077b2871f1
23 changed files with 1784 additions and 544 deletions

View file

@ -281,6 +281,7 @@ HEADERS += rshare.h \
gui/common/html.h \
gui/common/StatusDefs.h \
gui/common/TagDefs.h \
gui/common/GroupDefs.h \
gui/common/Emoticons.h \
gui/common/RSTreeWidgetItem.h \
gui/MessagesDialog.h \
@ -478,6 +479,7 @@ SOURCES += main.cpp \
gui/common/html.cpp \
gui/common/StatusDefs.cpp \
gui/common/TagDefs.cpp \
gui/common/GroupDefs.cpp \
gui/common/Emoticons.cpp \
gui/common/RSTreeWidgetItem.cpp \
gui/settings/rsharesettings.cpp \

File diff suppressed because it is too large Load diff

View file

@ -53,46 +53,48 @@ class RSTreeWidgetItemCompareRole;
class PeersDialog : public RsAutoUpdatePage
{
Q_OBJECT
Q_OBJECT
public:
/** Default Constructor */
PeersDialog(QWidget *parent = 0);
/** Default Destructor */
~PeersDialog ();
/** Default Constructor */
PeersDialog(QWidget *parent = 0);
/** Default Destructor */
~PeersDialog ();
// void setChatDialog(ChatDialog *cd);
// void setChatDialog(ChatDialog *cd);
virtual void updateDisplay() ; // overloaded from RsAutoUpdatePage
// replaced by shortcut
// virtual void keyPressEvent(QKeyEvent *) ;
virtual void updateDisplay() ; // overloaded from RsAutoUpdatePage
// replaced by shortcut
// virtual void keyPressEvent(QKeyEvent *) ;
public slots:
void insertPeers();
void publicChatChanged(int type);
void toggleSendItem( QTreeWidgetItem *item, int col );
void insertPeers();
void publicChatChanged(int type);
void toggleSendItem( QTreeWidgetItem *item, int col );
void insertChat();
void setChatInfo(QString info, QColor color=QApplication::palette().color(QPalette::WindowText));
void resetStatusBar() ;
void insertChat();
void setChatInfo(QString info, QColor color=QApplication::palette().color(QPalette::WindowText));
void resetStatusBar() ;
void fileHashingFinished(AttachFileItem* file);
void fileHashingFinished(AttachFileItem* file);
void smileyWidgetgroupchat();
void addSmileys();
void smileyWidgetgroupchat();
void addSmileys();
void on_actionClearChat_triggered();
void on_actionMessageHistory_triggered();
void on_actionClearChat_triggered();
void on_actionMessageHistory_triggered();
void displayInfoChatMenu(const QPoint& pos);
void displayInfoChatMenu(const QPoint& pos);
// called by notifyQt when another peer is typing (in group chant and private chat)
void updatePeerStatusString(const QString& peer_id,const QString& status_string,bool is_private_chat) ;
// called by notifyQt when another peer is typing (in group chant and private chat)
void updatePeerStatusString(const QString& peer_id,const QString& status_string,bool is_private_chat) ;
void updatePeersAvatar(const QString& peer_id);
void updateAvatar(); // called by notifyQt to update the avatar when it gets changed by another component
void groupsChanged(int type);
void updatePeersAvatar(const QString& peer_id);
void updateAvatar(); // called by notifyQt to update the avatar when it gets changed by another component
protected:
virtual void dragEnterEvent(QDragEnterEvent *event);
virtual void dropEvent(QDropEvent *event);
@ -100,108 +102,112 @@ protected:
void showEvent (QShowEvent *event);
private slots:
void pasteLink() ;
void contextMenu(QPoint) ;
void pasteLink() ;
void contextMenu(QPoint) ;
/** Create the context popup menu and it's submenus */
void peertreeWidgetCostumPopupMenu( QPoint point );
/** Create the context popup menu and it's submenus */
void peertreeWidgetCostumPopupMenu( QPoint point );
void updateStatusString(const QString& peer_id, const QString& statusString) ; // called when a peer is typing in group chat
void updateStatusTyping() ; // called each time a key is hit
void updateStatusString(const QString& peer_id, const QString& statusString) ; // called when a peer is typing in group chat
void updateStatusTyping() ; // called each time a key is hit
//void updatePeerStatusString(const QString& peer_id,const QString& chat_status) ;
//void updatePeerStatusString(const QString& peer_id,const QString& chat_status) ;
/** Export friend in Friends Dialog */
void exportfriend();
/** Remove friend */
void removefriend();
/** start a chat with a friend **/
void chatfriend(QTreeWidgetItem* );
void chatfriendproxy();
void msgfriend();
void recommendfriend();
void pastePerson();
/** Export friend in Friends Dialog */
void exportfriend();
/** Remove friend */
void removefriend();
/** start a chat with a friend **/
void chatfriend(QTreeWidgetItem* );
void chatfriendproxy();
void msgfriend();
void recommendfriend();
void pastePerson();
void addToGroup();
void moveToGroup();
void removeFromGroup();
void removeGroup();
void configurefriend();
void viewprofile();
void configurefriend();
void viewprofile();
/** RsServer Friend Calls */
void connectfriend();
/** RsServer Friend Calls */
void connectfriend();
void setColor();
void insertSendList();
void sendMsg();
void setColor();
void insertSendList();
void sendMsg();
void statusmessage();
void statusmessage();
void setFont();
void getFont();
void underline();
void setFont();
void getFont();
void underline();
void changeAvatarClicked();
void getAvatar();
void changeAvatarClicked();
void getAvatar();
void on_actionAdd_Friend_activated();
void on_actionAdd_Group_activated();
void on_actionCreate_New_Forum_activated();
void on_actionCreate_New_Channel_activated();
void on_actionAdd_Friend_activated();
void on_actionAdd_Group_activated();
void on_actionCreate_New_Forum_activated();
void on_actionCreate_New_Channel_activated();
void loadmypersonalstatus();
void addExtraFile();
void anchorClicked (const QUrl &);
void addAttachment(std::string);
bool fileSave();
bool fileSaveAs();
void loadmypersonalstatus();
void setCurrentFileName(const QString &fileName);
void displayMenu();
void statusColumn();
void addExtraFile();
void anchorClicked (const QUrl &);
void addAttachment(std::string);
bool fileSave();
bool fileSaveAs();
void setCurrentFileName(const QString &fileName);
void displayMenu();
void statusColumn();
signals:
void friendsUpdated() ;
void notifyGroupChat(const QString&,const QString&) ;
void friendsUpdated() ;
void notifyGroupChat(const QString&,const QString&) ;
private:
void processSettings(bool bLoad);
void addChatMsg(bool incoming, bool history, QString &name, QDateTime &sendTime, QString &message);
void processSettings(bool bLoad);
void addChatMsg(bool incoming, bool history, QString &name, QDateTime &sendTime, QString &message);
class QLabel *iconLabel, *textLabel;
class QWidget *widget;
class QWidgetAction *widgetAction;
class QSpacerItem *spacerItem;
class QLabel *iconLabel, *textLabel;
class QWidget *widget;
class QWidgetAction *widgetAction;
class QSpacerItem *spacerItem;
RSTreeWidgetItemCompareRole *m_compareRole;
RSTreeWidgetItemCompareRole *m_compareRole;
///play the sound when recv a message
void playsound();
///play the sound when recv a message
void playsound();
QString fileName;
QString fileName;
bool groupsHasChanged;
std::list<std::string> openGroups;
/* Worker Functions */
/* (1) Update Display */
/* Worker Functions */
/* (1) Update Display */
/* (2) Utility Fns */
QTreeWidgetItem *getCurrentPeer();
/* (2) Utility Fns */
QTreeWidgetItem *getCurrentPeer();
/** Defines the actions for the context menu */
QAction* pasteLinkAct;
/** Defines the actions for the context menu */
QAction* pasteLinkAct;
IMHistoryKeeper historyKeeper;
ChatStyle style;
IMHistoryKeeper historyKeeper;
ChatStyle style;
QColor _currentColor;
bool _underline;
time_t last_status_send_time ;
QColor _currentColor;
bool _underline;
time_t last_status_send_time ;
QFont mCurrentFont; /* how the text will come out */
QFont mCurrentFont; /* how the text will come out */
/** Qt Designer generated object */
Ui::PeersDialog ui;
/** Qt Designer generated object */
Ui::PeersDialog ui;
};
#endif // MINIMAL_RSGUI

View file

@ -0,0 +1,65 @@
/****************************************************************
* 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 <retroshare/rspeers.h>
#include <iostream>
#include <algorithm>
#include "GroupDefs.h"
const QString GroupDefs::name(const RsGroupInfo &groupInfo)
{
if ((groupInfo.flag & RS_GROUP_FLAG_STANDARD) == 0) {
/* no need to be translated */
return QString::fromUtf8(groupInfo.name.c_str());
}
if (groupInfo.id == RS_GROUP_ID_FRIENDS) {
return qApp->translate("GroupDefs", "Friends");
}
if (groupInfo.id == RS_GROUP_ID_FAMILY) {
return qApp->translate("GroupDefs", "Family");
}
if (groupInfo.id == RS_GROUP_ID_COWORKERS) {
return qApp->translate("GroupDefs", "Co-Workers");
}
if (groupInfo.id == RS_GROUP_ID_OTHERS) {
return qApp->translate("GroupDefs", "Other Contacts");
}
if (groupInfo.id == RS_GROUP_ID_FAVORITES) {
return qApp->translate("GroupDefs", "Favorites");
}
std::cerr << "GroupDefs::name: Unknown group id requested " << groupInfo.id;
return "";
}
static bool sortGroupInfo(const RsGroupInfo &groupInfo1, const RsGroupInfo &groupInfo2)
{
return (GroupDefs::name(groupInfo1).compare(GroupDefs::name(groupInfo2), Qt::CaseInsensitive) < 0);
}
void GroupDefs::sortByName(std::list<RsGroupInfo> &groupInfoList)
{
groupInfoList.sort(sortGroupInfo);
}

View file

@ -0,0 +1,37 @@
/****************************************************************
* 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 _GROUPDEFS_H
#define _GROUPDEFS_H
class RsGroupInfo;
class GroupDefs
{
public:
static const QString name(const RsGroupInfo &groupInfo);
static void sortByName(std::list<RsGroupInfo> &groupInfoList);
};
#endif

View file

@ -19,16 +19,42 @@
* Boston, MA 02110-1301, USA.
****************************************************************/
#include <QPushButton>
#include <retroshare/rspeers.h>
#include "CreateGroup.h"
#include "gui/common/GroupDefs.h"
/** Default constructor */
CreateGroup::CreateGroup(QWidget *parent, Qt::WFlags flags)
CreateGroup::CreateGroup(const std::string groupId, QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
/* Invoke Qt Designer generated QObject setup routine */
ui.setupUi(this);
/* Invoke Qt Designer generated QObject setup routine */
ui.setupUi(this);
m_groupId = groupId;
if (m_groupId.empty() == false) {
/* edit exisiting group */
RsGroupInfo groupInfo;
if (rsPeers->getGroupInfo(m_groupId, groupInfo)) {
ui.groupname->setText(QString::fromUtf8(groupInfo.name.c_str()));
} else {
/* Group not found, create new */
m_groupId.clear();
}
}
std::list<RsGroupInfo> groupInfoList;
rsPeers->getGroupInfoList(groupInfoList);
std::list<RsGroupInfo>::iterator groupIt;
for (groupIt = groupInfoList.begin(); groupIt != groupInfoList.end(); groupIt++) {
usedGroupNames.append(GroupDefs::name(*groupIt));
}
on_groupname_textChanged(ui.groupname->text());
}
/** Destructor. */
@ -36,3 +62,31 @@ CreateGroup::~CreateGroup()
{
}
void CreateGroup::on_groupname_textChanged(QString text)
{
if (text.isEmpty() || usedGroupNames.contains(text)) {
ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
} else {
ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
}
}
void CreateGroup::on_buttonBox_accepted()
{
RsGroupInfo groupInfo;
if (m_groupId.empty()) {
// add new group
groupInfo.name = ui.groupname->text().toUtf8().constData();
if (rsPeers->addGroup(groupInfo)) {
close();
}
} else {
if (rsPeers->getGroupInfo(m_groupId, groupInfo) == true) {
groupInfo.name = ui.groupname->text().toUtf8().constData();
if (rsPeers->editGroup(m_groupId, groupInfo)) {
close();
}
}
}
}

View file

@ -28,25 +28,29 @@
class CreateGroup : public QDialog
{
Q_OBJECT
Q_OBJECT
public:
/** Default constructor */
CreateGroup(QWidget *parent = 0, Qt::WFlags flags = 0);
/** Default destructor */
~CreateGroup();
/** Default constructor */
CreateGroup(const std::string groupId, QWidget *parent = 0, Qt::WFlags flags = 0);
/** Default destructor */
~CreateGroup();
public slots:
private slots:
private:
std::string m_groupId;
/** Qt Designer generated object */
Ui::CreateGroup ui;
QStringList usedGroupNames;
/** Qt Designer generated object */
Ui::CreateGroup ui;
private slots:
void on_buttonBox_accepted();
void on_groupname_textChanged(QString );
};
#endif

View file

@ -114,11 +114,7 @@ p, li { white-space: pre-wrap; }
<item row="0" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>&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; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&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-family:'Arial'; font-size:9pt;&quot;&gt;Group Name&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
<string>Group Name</string>
</property>
</widget>
</item>
@ -177,9 +173,6 @@ p, li { white-space: pre-wrap; }
</widget>
<resources>
<include location="../images.qrc"/>
<include location="../images.qrc"/>
<include location="../images.qrc"/>
<include location="../images.qrc"/>
</resources>
<connections>
<connection>

View file

@ -226,6 +226,7 @@
<file>images/informations_24x24.png</file>
<file>images/invite-friend24.png</file>
<file>images/connect_friend.png</file>
<file>images/group24.png</file>
<file>images/kalarm.png</file>
<file>images/kbackgammon.png</file>
<file>images/kblogger.png</file>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -239,6 +239,12 @@ void NotifyQt::notifyListChange(int list, int type)
#endif
emit privateChatChanged(list, type);
break;
case NOTIFY_LIST_GROUPLIST:
#ifdef NOTIFY_DEBUG
std::cerr << "received groups changed" << std::endl ;
#endif
emit groupsChanged(type);
break;
default:
break;
}

View file

@ -77,6 +77,7 @@ class NotifyQt: public QObject, public NotifyBase
void peerStatusChangedSummary() const;
void publicChatChanged(int type) const ;
void privateChatChanged(int list, int type) const ;
void groupsChanged(int type) const ;
/* Notify from GUI */
void chatStyleChanged(int /*ChatStyle::enumStyleType*/ styleType);

View file

@ -2405,7 +2405,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../gui/groups/CreateGroup.ui" line="+14"/>
<source>Create a Group</source>
<translation type="unfinished"></translation>
<translation>Gruppe erstellen</translation>
</message>
<message>
<location line="+72"/>
@ -2414,21 +2414,22 @@ p, li { white-space: pre-wrap; }
p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:18pt; font-weight:600; font-style:normal;&quot;&gt;
&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-weight:400; color:#ffffff;&quot;&gt;Create a Group&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
<translatorcomment>ruppe erstellen</translatorcomment>
<translation>&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; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:18pt; font-weight:600; font-style:normal;&quot;&gt;
&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-weight:400; color:#ffffff;&quot;&gt;Gruppe erstellen&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location line="+31"/>
<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; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&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-family:&apos;Arial&apos;; font-size:9pt;&quot;&gt;Group Name&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished"></translation>
<source>Group Name</source>
<translation>Name</translation>
</message>
<message>
<location line="+11"/>
<location line="+7"/>
<source>Enter a name for your group</source>
<translation type="unfinished"></translation>
<translation>Gib einen Namen für Deine Gruppe ein</translation>
</message>
</context>
<context>
@ -4098,6 +4099,34 @@ Fill in your GPG password when asked, to sign your new key.</source>
<translation></translation>
</message>
</context>
<context>
<name>GroupDefs</name>
<message>
<location filename="../gui/common/GroupDefs.cpp" line="+38"/>
<source>Friends</source>
<translation>Freunde</translation>
</message>
<message>
<location line="+3"/>
<source>Family</source>
<translation>Familie</translation>
</message>
<message>
<location line="+3"/>
<source>Co-Workers</source>
<translation>Mitarbeiter</translation>
</message>
<message>
<location line="+3"/>
<source>Other Contacts</source>
<translation>Andere Kontakte</translation>
</message>
<message>
<location line="+3"/>
<source>Favorites</source>
<translation>Favoriten</translation>
</message>
</context>
<context>
<name>HelpBrowser</name>
<message>
@ -4781,16 +4810,17 @@ p, li { white-space: pre-wrap; }
<translation>Kanäle</translation>
</message>
<message>
<location line="+4"/>
<source>Blogs</source>
<translation type="obsolete">Blogs</translation>
<translation type="unfinished">Blogs</translation>
</message>
<message>
<location line="+540"/>
<location line="+539"/>
<source>Internal Error</source>
<translation>Interener Fehler</translation>
</message>
<message>
<location filename="../gui/MainWindow.ui" line="+83"/>
<location filename="../gui/MainWindow.ui" line="+82"/>
<location filename="../gui/MainWindow.cpp" line="-43"/>
<source>Options</source>
<translation>Optionen</translation>
@ -4815,12 +4845,12 @@ p, li { white-space: pre-wrap; }
<translation></translation>
</message>
<message>
<location filename="../gui/MainWindow.ui" line="-69"/>
<location filename="../gui/MainWindow.ui" line="-68"/>
<source>MainWindow</source>
<translation>Hauptfenster</translation>
</message>
<message>
<location line="+48"/>
<location line="+47"/>
<source>Add Friend</source>
<translation>Freund hinzufügen</translation>
</message>
@ -4841,12 +4871,7 @@ p, li { white-space: pre-wrap; }
<translation>Schnellstart Assistent</translation>
</message>
<message>
<location line="+9"/>
<source>Add Group</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/MainWindow.cpp" line="-261"/>
<location filename="../gui/MainWindow.cpp" line="-264"/>
<source>Search</source>
<translation>Suchen</translation>
</message>
@ -4856,12 +4881,12 @@ p, li { white-space: pre-wrap; }
<translation>Dateien</translation>
</message>
<message>
<location filename="../gui/MainWindow.ui" line="-47"/>
<location filename="../gui/MainWindow.ui" line="-38"/>
<source>Messenger</source>
<translation>Messenger</translation>
</message>
<message>
<location filename="../gui/MainWindow.cpp" line="+148"/>
<location filename="../gui/MainWindow.cpp" line="+151"/>
<source>Show/Hide</source>
<translation>Anzeigen/Verbergen</translation>
</message>
@ -4938,12 +4963,12 @@ p, li { white-space: pre-wrap; }
<translation>Foren</translation>
</message>
<message>
<location line="-66"/>
<location line="-69"/>
<source>RetroShare %1 a secure decentralised communication platform</source>
<translation>RetroShare %1 eine sichere und dezentralisierte Kommunikationsplattform</translation>
</message>
<message>
<location line="+567"/>
<location line="+570"/>
<source>Open Messages</source>
<translation>Öffne Nachrichten</translation>
</message>
@ -6852,17 +6877,12 @@ p, li { white-space: pre-wrap; }
<context>
<name>PeersDialog</name>
<message>
<location filename="../gui/PeersDialog.cpp" line="+329"/>
<location filename="../gui/PeersDialog.cpp" line="+360"/>
<source>Chat</source>
<translation>Chat</translation>
</message>
<message>
<location line="+49"/>
<source>Export Friend</source>
<translation>Zertifikat des Freundes exportieren</translation>
</message>
<message>
<location line="+439"/>
<location line="+737"/>
<source>Save Certificate</source>
<translation>Zertifikat speichern</translation>
</message>
@ -6877,12 +6897,12 @@ p, li { white-space: pre-wrap; }
<translation>Status</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-475"/>
<location filename="../gui/PeersDialog.cpp" line="-736"/>
<source>Connect To Friend</source>
<translation>Verbinde zum Freund</translation>
</message>
<message>
<location line="-217"/>
<location line="-227"/>
<source>Profile</source>
<translation>Profil</translation>
</message>
@ -6902,7 +6922,7 @@ p, li { white-space: pre-wrap; }
<translation>ich</translation>
</message>
<message>
<location line="+93"/>
<location line="+115"/>
<source>Expand all</source>
<translation>Alle erweitern</translation>
</message>
@ -6912,27 +6932,57 @@ p, li { white-space: pre-wrap; }
<translation>Alle reduzieren</translation>
</message>
<message>
<location line="+10"/>
<location line="+4"/>
<source>Message Friend</source>
<translation>Freund anschreiben</translation>
</message>
<message>
<location line="+14"/>
<location line="+2"/>
<source>Peer Details</source>
<translation>Peer-Details</translation>
</message>
<message>
<location line="+35"/>
<location line="+2"/>
<source>Deny Friend</source>
<translation>Blockiere Freund</translation>
</message>
<message>
<location line="+4"/>
<location line="+11"/>
<source>Remove Friend Location</source>
<translation>Freund entfernen</translation>
</message>
<message>
<location line="+22"/>
<location line="+53"/>
<source>Add to group</source>
<translation>Hinzufügen zur Gruppe</translation>
</message>
<message>
<location line="+8"/>
<source>Move to group</source>
<translation>Verschiebe in Gruppe</translation>
</message>
<message>
<location line="+12"/>
<source>Groups</source>
<translation>Gruppen</translation>
</message>
<message>
<location line="+14"/>
<source>Remove from group</source>
<translation>Aus Gruppe entfernen</translation>
</message>
<message>
<location line="+5"/>
<source>Remove from all groups</source>
<translation>Aus allen Gruppen entfernen</translation>
</message>
<message>
<location line="+7"/>
<source>Remove group</source>
<translation>Gruppe entfernen</translation>
</message>
<message>
<location line="+24"/>
<source>&lt;strong&gt;GPG Key&lt;/strong&gt;</source>
<translation></translation>
</message>
@ -6942,12 +6992,12 @@ p, li { white-space: pre-wrap; }
<translation></translation>
</message>
<message>
<location line="+349"/>
<location line="+519"/>
<source>Available</source>
<translation>Verfügbar</translation>
</message>
<message>
<location line="+736"/>
<location line="+758"/>
<source>Add Extra File</source>
<translation>Zusätzliche Datei hinzufügen</translation>
</message>
@ -7061,7 +7111,7 @@ p, li { white-space: pre-wrap; }
<location line="+41"/>
<location line="+3"/>
<source>Add a new Group</source>
<translation type="unfinished"></translation>
<translation>Neue Gruppe hinzufügen</translation>
</message>
<message>
<location line="-107"/>
@ -7107,18 +7157,13 @@ p, li { white-space: pre-wrap; }
<translation>Verlauf löschen</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-1225"/>
<source>Profile View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../gui/PeersDialog.ui" line="+85"/>
<location line="+85"/>
<location line="+3"/>
<source>Save Chat History</source>
<translation>Chat Verlauf speichern</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="+564"/>
<location filename="../gui/PeersDialog.cpp" line="-661"/>
<source>RetroShare</source>
<translation></translation>
</message>
@ -7161,17 +7206,17 @@ p, li { white-space: pre-wrap; }
<translation>Status Spalte ausblenden</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-1528"/>
<location filename="../gui/PeersDialog.cpp" line="-1799"/>
<source>Friends Storm</source>
<translation>Aktivitäten</translation>
</message>
<message>
<location line="+230"/>
<location line="+252"/>
<source>Recomend this Friend to...</source>
<translation>Freund weiterempfehlen...</translation>
</message>
<message>
<location line="+645"/>
<location line="+894"/>
<source>is typing...</source>
<translation>tippt...</translation>
</message>
@ -7191,12 +7236,12 @@ p, li { white-space: pre-wrap; }
<translation>Freunde</translation>
</message>
<message>
<location filename="../gui/PeersDialog.cpp" line="-638"/>
<location filename="../gui/PeersDialog.cpp" line="-887"/>
<source>Paste Friend Link</source>
<translation>RetroShare Link einfügen</translation>
</message>
<message>
<location line="+258"/>
<location line="+482"/>
<source>location</source>
<translation>Standort</translation>
</message>
@ -7654,11 +7699,6 @@ Do you want to send them a Message instead</source>
<source>apears to be Offline.</source>
<translation>ist Offline.</translation>
</message>
<message>
<source>Messages you send will be lost and not delivered, rs-Mail this contact instead.</source>
<translation type="obsolete">Nachrichten, die Du versendest gehen bei diesem Kontakt nicht ein.
Diesem Kontakt stattdessen eine RS-Mail senden.</translation>
</message>
<message>
<location line="-693"/>
<source>is typing...</source>
@ -7820,7 +7860,7 @@ Diesem Kontakt stattdessen eine RS-Mail senden.</translation>
<context>
<name>ProfileView</name>
<message>
<location filename="../gui/profile/ProfileView.cpp" line="+77"/>
<location filename="../gui/profile/ProfileView.cpp" line="+76"/>
<source>Clear Photo</source>
<translation>Photo entfernen</translation>
</message>

View file

@ -189,6 +189,7 @@ int main(int argc, char *argv[])
QObject::connect(notify,SIGNAL(transfersChanged()) ,w->transfersDialog ,SLOT(insertTransfers() )) ;
QObject::connect(notify,SIGNAL(friendsChanged()) ,w->peersDialog ,SLOT(insertPeers() )) ;
QObject::connect(notify,SIGNAL(publicChatChanged(int)) ,w->peersDialog ,SLOT(publicChatChanged(int) ));
QObject::connect(notify,SIGNAL(groupsChanged(int)) ,w->peersDialog ,SLOT(groupsChanged(int) ));
QObject::connect(notify,SIGNAL(privateChatChanged(int, int)) ,w ,SLOT(privateChatChanged(int, int) ));
QObject::connect(notify,SIGNAL(neighborsChanged()) ,w->networkDialog ,SLOT(insertConnect() )) ;
QObject::connect(notify,SIGNAL(messagesChanged()) ,w->messagesDialog ,SLOT(insertMessages() )) ;