Removed the status column in PeersDialog and added the status to the name column.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3916 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2010-12-15 21:32:44 +00:00
parent 98f471c56b
commit 254e3de187
9 changed files with 174 additions and 104 deletions

View File

@ -127,7 +127,7 @@ MessengerWindow::MessengerWindow(QWidget* parent, Qt::WFlags flags)
#endif // MINIMAL_RSGUI #endif // MINIMAL_RSGUI
m_compareRole = new RSTreeWidgetItemCompareRole; m_compareRole = new RSTreeWidgetItemCompareRole;
m_compareRole->addRole(COLUMN_NAME, ROLE_SORT); m_compareRole->setRole(COLUMN_NAME, ROLE_SORT);
connect( ui.messengertreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( messengertreeWidgetCostumPopupMenu( QPoint ) ) ); connect( ui.messengertreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( messengertreeWidgetCostumPopupMenu( QPoint ) ) );
#ifndef MINIMAL_RSGUI #ifndef MINIMAL_RSGUI

View File

@ -94,16 +94,15 @@
#define IMAGE_NEWSFEED "" #define IMAGE_NEWSFEED ""
#define IMAGE_NEWSFEED_NEW ":/images/message-state-new.png" #define IMAGE_NEWSFEED_NEW ":/images/message-state-new.png"
#define COLUMN_COUNT 3 #define COLUMN_COUNT 1
#define COLUMN_NAME 0 #define COLUMN_NAME 0
#define COLUMN_STATE 1
#define COLUMN_INFO 2
#define COLUMN_DATA 0 // column for storing the userdata id #define COLUMN_DATA 0 // column for storing the userdata id
#define ROLE_SORT Qt::UserRole #define ROLE_SORT_NAME Qt::UserRole
#define ROLE_ID Qt::UserRole + 1 #define ROLE_SORT_STATUS Qt::UserRole + 1
#define ROLE_STANDARD Qt::UserRole + 2 #define ROLE_ID Qt::UserRole + 2
#define ROLE_STANDARD Qt::UserRole + 3
#define TYPE_GPG 0 #define TYPE_GPG 0
#define TYPE_SSL 1 #define TYPE_SSL 1
@ -125,8 +124,7 @@ PeersDialog::PeersDialog(QWidget *parent)
groupsHasChanged = false; groupsHasChanged = false;
m_compareRole = new RSTreeWidgetItemCompareRole; m_compareRole = new RSTreeWidgetItemCompareRole;
m_compareRole->addRole(COLUMN_NAME, ROLE_SORT); m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_NAME);
m_compareRole->addRole(COLUMN_STATE, ROLE_SORT);
connect( ui.peertreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( peertreeWidgetCostumPopupMenu( QPoint ) ) ); connect( ui.peertreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( peertreeWidgetCostumPopupMenu( QPoint ) ) );
connect( ui.peertreeWidget, SIGNAL( itemDoubleClicked ( QTreeWidgetItem *, int)), this, SLOT(chatfriend(QTreeWidgetItem *))); connect( ui.peertreeWidget, SIGNAL( itemDoubleClicked ( QTreeWidgetItem *, int)), this, SLOT(chatfriend(QTreeWidgetItem *)));
@ -141,7 +139,9 @@ PeersDialog::PeersDialog(QWidget *parent)
connect(ui.actionAdd_Friend, SIGNAL(triggered()), this, SLOT(addFriend())); connect(ui.actionAdd_Friend, SIGNAL(triggered()), this, SLOT(addFriend()));
connect(ui.action_Hide_Offline_Friends, SIGNAL(triggered()), this, SLOT(insertPeers())); connect(ui.action_Hide_Offline_Friends, SIGNAL(triggered()), this, SLOT(insertPeers()));
connect(ui.action_Hide_Status_Column, SIGNAL(triggered()), this, SLOT(statusColumn())); connect(ui.action_Sort_by_State, SIGNAL(triggered()), this, SLOT(sortByState()));
connect(ui.actionSort_Peers_Ascending_Order, SIGNAL(triggered()), this, SLOT(sortPeersAscendingOrder()));
connect(ui.actionSort_Peers_Descending_Order, SIGNAL(triggered()), this, SLOT(sortPeersDescendingOrder()));
ui.peertabWidget->setTabPosition(QTabWidget::North); ui.peertabWidget->setTabPosition(QTabWidget::North);
ui.peertabWidget->addTab(new ProfileWidget(), tr("Profile")); ui.peertabWidget->addTab(new ProfileWidget(), tr("Profile"));
@ -155,16 +155,12 @@ PeersDialog::PeersDialog(QWidget *parent)
connect(newsFeed, SIGNAL(newsFeedChanged(int)), this, SLOT(newsFeedChanged(int))); connect(newsFeed, SIGNAL(newsFeedChanged(int)), this, SLOT(newsFeedChanged(int)));
ui.peertreeWidget->setColumnCount(4); ui.peertreeWidget->setColumnCount(COLUMN_COUNT);
ui.peertreeWidget->setColumnHidden ( 3, true); ui.peertreeWidget->sortItems(COLUMN_NAME, Qt::AscendingOrder);
ui.peertreeWidget->setColumnHidden ( 2, true);
ui.peertreeWidget->sortItems( 0, Qt::AscendingOrder );
// set header text aligment // set header text aligment
QTreeWidgetItem * headerItem = ui.peertreeWidget->headerItem(); QTreeWidgetItem * headerItem = ui.peertreeWidget->headerItem();
headerItem->setTextAlignment(COLUMN_NAME, Qt::AlignHCenter | Qt::AlignVCenter); headerItem->setTextAlignment(COLUMN_NAME, Qt::AlignHCenter | Qt::AlignVCenter);
headerItem->setTextAlignment(COLUMN_STATE, Qt::AlignLeft | Qt::AlignVCenter);
headerItem->setTextAlignment(COLUMN_INFO, Qt::AlignHCenter | Qt::AlignVCenter);
connect(ui.Sendbtn, SIGNAL(clicked()), this, SLOT(sendMsg())); connect(ui.Sendbtn, SIGNAL(clicked()), this, SLOT(sendMsg()));
connect(ui.emoticonBtn, SIGNAL(clicked()), this, SLOT(smileyWidgetgroupchat())); connect(ui.emoticonBtn, SIGNAL(clicked()), this, SLOT(smileyWidgetgroupchat()));
@ -277,8 +273,9 @@ void PeersDialog::processSettings(bool bLoad)
// state of hideUnconnected // state of hideUnconnected
ui.action_Hide_Offline_Friends->setChecked(Settings->value("hideUnconnected", false).toBool()); ui.action_Hide_Offline_Friends->setChecked(Settings->value("hideUnconnected", false).toBool());
// state of hideStatusColumn // state of the status
ui.action_Hide_Status_Column->setChecked(Settings->value("hideStatusColumn", false).toBool()); ui.action_Sort_by_State->setChecked(Settings->value("sortByState", false).toBool());
ui.action_Hide_State->setChecked(Settings->value("hideState", false).toBool());
// state of splitter // state of splitter
ui.splitter->restoreState(Settings->value("Splitter").toByteArray()); ui.splitter->restoreState(Settings->value("Splitter").toByteArray());
@ -292,6 +289,8 @@ void PeersDialog::processSettings(bool bLoad)
openGroups.push_back(Settings->value("open").toString().toStdString()); openGroups.push_back(Settings->value("open").toString().toStdString());
} }
Settings->endArray(); Settings->endArray();
sortByState();
} else { } else {
// save settings // save settings
@ -301,8 +300,9 @@ void PeersDialog::processSettings(bool bLoad)
// state of hideUnconnected // state of hideUnconnected
Settings->setValue("hideUnconnected", ui.action_Hide_Offline_Friends->isChecked()); Settings->setValue("hideUnconnected", ui.action_Hide_Offline_Friends->isChecked());
// state of hideStatusColumn // state of the status
Settings->setValue("hideStatusColumn", ui.action_Hide_Status_Column->isChecked()); Settings->setValue("sortByState", ui.action_Sort_by_State->isChecked());
Settings->setValue("hideState", ui.action_Hide_State->isChecked());
// state of splitter // state of splitter
Settings->setValue("Splitter", ui.splitter->saveState()); Settings->setValue("Splitter", ui.splitter->saveState());
@ -574,7 +574,8 @@ void PeersDialog::insertPeers()
return; return;
} }
bool bHideUnconnected = ui.action_Hide_Offline_Friends->isChecked(); bool hideUnconnected = ui.action_Hide_Offline_Friends->isChecked();
bool hideState = ui.action_Hide_State->isChecked();
// get ids of existing private chat messages // get ids of existing private chat messages
std::list<std::string> privateChatIds; std::list<std::string> privateChatIds;
@ -811,8 +812,7 @@ void PeersDialog::insertPeers()
availableCount++; availableCount++;
gpgItem->setText(COLUMN_NAME, QString::fromStdString(detail.name)); QString gpgItemText = QString::fromStdString(detail.name);
gpgItem->setData(COLUMN_NAME, ROLE_SORT, "2 " + QString::fromStdString(detail.name));
// remove items that are not friends anymore // remove items that are not friends anymore
int childCount = gpgItem->childCount(); int childCount = gpgItem->childCount();
@ -886,13 +886,14 @@ void PeersDialog::insertPeers()
if (customStateString.isEmpty() == false) { if (customStateString.isEmpty() == false) {
sText += " - " + customStateString; sText += " - " + customStateString;
} }
if (hideState == false && sslDetail.autoconnect.empty() == false) {
sText += " [" + QString::fromStdString(sslDetail.autoconnect) + "]";
}
sslItem->setText( COLUMN_NAME, sText); sslItem->setText( COLUMN_NAME, sText);
sslItem->setToolTip( COLUMN_NAME, sText); sslItem->setToolTip( COLUMN_NAME, sText);
/* not displayed, used to find back the item */
sslItem->setText(COLUMN_STATE, QString::fromStdString(sslDetail.autoconnect));
// sort location // sort location
sslItem->setData(COLUMN_STATE, ROLE_SORT, sText); sslItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, sText);
/* change color and icon */ /* change color and icon */
QIcon sslIcon; QIcon sslIcon;
@ -907,13 +908,13 @@ void PeersDialog::insertPeers()
sslFont.setBold(true); sslFont.setBold(true);
sslColor = Qt::darkBlue; sslColor = Qt::darkBlue;
} else if (sslDetail.state & RS_PEER_STATE_ONLINE) { } else if (sslDetail.state & RS_PEER_STATE_ONLINE) {
sslItem->setHidden(bHideUnconnected); sslItem->setHidden(hideUnconnected);
gpg_online = true; gpg_online = true;
sslFont.setBold(true); sslFont.setBold(true);
sslColor = Qt::black; sslColor = Qt::black;
} else { } else {
sslItem->setHidden(bHideUnconnected); sslItem->setHidden(hideUnconnected);
if (sslDetail.autoconnect != "Offline") { if (sslDetail.autoconnect != "Offline") {
sslIcon = QIcon(":/images/connect_creating.png"); sslIcon = QIcon(":/images/connect_creating.png");
} else { } else {
@ -959,8 +960,6 @@ void PeersDialog::insertPeers()
int peerState = 0; int peerState = 0;
gpgItem->setText(COLUMN_INFO, StatusDefs::name(it->status));
switch (it->status) { switch (it->status) {
case RS_STATUS_INACTIVE: case RS_STATUS_INACTIVE:
peerState = PEER_STATE_INACTIVE; peerState = PEER_STATE_INACTIVE;
@ -1012,15 +1011,19 @@ void PeersDialog::insertPeers()
gpgIcon = QIcon(StatusDefs::imageUser(bestRSState)); gpgIcon = QIcon(StatusDefs::imageUser(bestRSState));
gpgItem->setText(COLUMN_STATE, StatusDefs::name(bestRSState));
gpgItem->setToolTip(COLUMN_NAME, StatusDefs::tooltip(bestRSState)); gpgItem->setToolTip(COLUMN_NAME, StatusDefs::tooltip(bestRSState));
gpgItem->setData(COLUMN_STATE, ROLE_SORT, BuildStateSortString(true, gpgItem->text(COLUMN_NAME), bestPeerState)); gpgItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, BuildStateSortString(true, gpgItemText, bestPeerState));
if (hideState == false) {
gpgItemText += " [" + StatusDefs::name(bestRSState) + "]";
}
} else if (gpg_online) { } else if (gpg_online) {
onlineCount++; onlineCount++;
gpgItem->setHidden(bHideUnconnected); gpgItem->setHidden(hideUnconnected);
gpgIcon = QIcon(IMAGE_AVAILABLE); gpgIcon = QIcon(IMAGE_AVAILABLE);
gpgItem->setText(COLUMN_STATE, tr("Available")); gpgItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, BuildStateSortString(true, gpgItemText, PEER_STATE_AVAILABLE));
gpgItem->setData(COLUMN_STATE, ROLE_SORT, BuildStateSortString(true, gpgItem->text(COLUMN_NAME), PEER_STATE_AVAILABLE)); if (hideState == false) {
gpgItemText += " [" + tr("Available") + "]";
}
QFont font; QFont font;
font.setBold(true); font.setBold(true);
@ -1029,10 +1032,12 @@ void PeersDialog::insertPeers()
gpgItem->setFont(i,font); gpgItem->setFont(i,font);
} }
} else { } else {
gpgItem->setHidden(bHideUnconnected); gpgItem->setHidden(hideUnconnected);
gpgIcon = QIcon(StatusDefs::imageUser(RS_STATUS_OFFLINE)); gpgIcon = QIcon(StatusDefs::imageUser(RS_STATUS_OFFLINE));
gpgItem->setText(COLUMN_STATE, StatusDefs::name(RS_STATUS_OFFLINE)); gpgItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, BuildStateSortString(true, gpgItemText, PEER_STATE_OFFLINE));
gpgItem->setData(COLUMN_STATE, ROLE_SORT, BuildStateSortString(true, gpgItem->text(COLUMN_NAME), PEER_STATE_OFFLINE)); if (hideState == false) {
gpgItemText += " [" + StatusDefs::name(RS_STATUS_OFFLINE) + "]";
}
QColor textColor = StatusDefs::textColor(RS_STATUS_OFFLINE); QColor textColor = StatusDefs::textColor(RS_STATUS_OFFLINE);
QFont font = StatusDefs::font(RS_STATUS_OFFLINE); QFont font = StatusDefs::font(RS_STATUS_OFFLINE);
@ -1046,6 +1051,8 @@ void PeersDialog::insertPeers()
gpgIcon = QIcon(":/images/chat.png"); gpgIcon = QIcon(":/images/chat.png");
} }
gpgItem->setText(COLUMN_NAME, gpgItemText);
gpgItem->setData(COLUMN_NAME, ROLE_SORT_NAME, "2 " + gpgItemText);
gpgItem->setIcon(COLUMN_NAME, gpgIcon); gpgItem->setIcon(COLUMN_NAME, gpgIcon);
} }
@ -1057,7 +1064,7 @@ void PeersDialog::insertPeers()
QString groupName = GroupDefs::name(*groupInfo); QString groupName = GroupDefs::name(*groupInfo);
groupItem->setText(COLUMN_NAME, QString("%1 (%2/%3)").arg(groupName).arg(onlineCount).arg(availableCount)); groupItem->setText(COLUMN_NAME, QString("%1 (%2/%3)").arg(groupName).arg(onlineCount).arg(availableCount));
// show first the standard groups, than the user groups // show first the standard groups, than the user groups
groupItem->setData(COLUMN_NAME, ROLE_SORT, ((groupInfo->flag & RS_GROUP_FLAG_STANDARD) ? "0 " : "1 ") + groupName); groupItem->setData(COLUMN_NAME, ROLE_SORT_NAME, ((groupInfo->flag & RS_GROUP_FLAG_STANDARD) ? "0 " : "1 ") + groupName);
} }
} }
@ -1979,28 +1986,32 @@ void PeersDialog::displayMenu()
{ {
QMenu *displaymenu = new QMenu(); QMenu *displaymenu = new QMenu();
displaymenu->addAction(ui.actionSort_Peers_Descending_Order);
displaymenu->addAction(ui.actionSort_Peers_Ascending_Order);
displaymenu->addAction(ui.action_Hide_Offline_Friends); displaymenu->addAction(ui.action_Hide_Offline_Friends);
displaymenu->addAction(ui.action_Hide_Status_Column); displaymenu->addAction(ui.action_Sort_by_State);
displaymenu->addAction(ui.action_Hide_State);
ui.displayButton->setMenu(displaymenu); ui.displayButton->setMenu(displaymenu);
} }
void PeersDialog::statusColumn() void PeersDialog::sortByState()
{ {
/* Set header resize modes and initial section sizes */ if(ui.action_Sort_by_State->isChecked()) {
QHeaderView * peerheader = ui.peertreeWidget->header(); m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_STATUS);
} else {
if(ui.action_Hide_Status_Column->isChecked()) m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_NAME);
{
ui.peertreeWidget->setColumnHidden ( 1, true);
peerheader->resizeSection ( 0, 200 );
}
else
{
ui.peertreeWidget->setColumnHidden ( 1, false);
peerheader->resizeSection ( 0, 200 );
} }
}
void PeersDialog::sortPeersAscendingOrder()
{
ui.peertreeWidget->sortByColumn(COLUMN_NAME, Qt::AscendingOrder);
}
void PeersDialog::sortPeersDescendingOrder()
{
ui.peertreeWidget->sortByColumn(COLUMN_NAME, Qt::DescendingOrder);
} }
void PeersDialog::on_actionMessageHistory_triggered() void PeersDialog::on_actionMessageHistory_triggered()

View File

@ -32,8 +32,8 @@
// states for sorting (equal values are possible) // states for sorting (equal values are possible)
// used in BuildSortString - state + name // used in BuildSortString - state + name
#define PEER_STATE_ONLINE 1 #define PEER_STATE_ONLINE 1
#define PEER_STATE_AWAY 2 #define PEER_STATE_BUSY 2
#define PEER_STATE_BUSY 3 #define PEER_STATE_AWAY 3
#define PEER_STATE_AVAILABLE 4 #define PEER_STATE_AVAILABLE 4
#define PEER_STATE_INACTIVE 5 #define PEER_STATE_INACTIVE 5
#define PEER_STATE_OFFLINE 6 #define PEER_STATE_OFFLINE 6
@ -161,8 +161,9 @@ private slots:
void setCurrentFileName(const QString &fileName); void setCurrentFileName(const QString &fileName);
void displayMenu(); void sortByState();
void statusColumn(); void sortPeersAscendingOrder();
void sortPeersDescendingOrder();
void newsFeedChanged(int count); void newsFeedChanged(int count);
@ -184,6 +185,7 @@ private:
RSTreeWidgetItemCompareRole *m_compareRole; RSTreeWidgetItemCompareRole *m_compareRole;
void displayMenu();
///play the sound when recv a message ///play the sound when recv a message
void playsound(); void playsound();

View File

@ -718,22 +718,23 @@ background: white;}</string>
<property name="expandsOnDoubleClick"> <property name="expandsOnDoubleClick">
<bool>false</bool> <bool>false</bool>
</property> </property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<attribute name="headerDefaultSectionSize"> <attribute name="headerDefaultSectionSize">
<number>200</number> <number>200</number>
</attribute> </attribute>
<attribute name="headerDefaultSectionSize"> <attribute name="headerDefaultSectionSize">
<number>200</number> <number>200</number>
</attribute> </attribute>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
<column> <column>
<property name="text"> <property name="text">
<string>Friends</string> <string>Friends</string>
</property> </property>
</column> </column>
<column>
<property name="text">
<string>Status</string>
</property>
</column>
</widget> </widget>
</item> </item>
</layout> </layout>
@ -1497,12 +1498,23 @@ p, li { white-space: pre-wrap; }
<string>Hide Offline Friends</string> <string>Hide Offline Friends</string>
</property> </property>
</action> </action>
<action name="action_Hide_Status_Column"> <action name="action_Sort_by_State">
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="text"> <property name="text">
<string>Hide Status Column</string> <string>Sort by State</string>
</property>
<property name="toolTip">
<string>Sort by State</string>
</property>
</action>
<action name="action_Hide_State">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Hide State</string>
</property> </property>
</action> </action>
<action name="actionAdd_Group"> <action name="actionAdd_Group">
@ -1517,6 +1529,30 @@ p, li { white-space: pre-wrap; }
<string>Add a new Group</string> <string>Add a new Group</string>
</property> </property>
</action> </action>
<action name="actionSort_Peers_Descending_Order">
<property name="icon">
<iconset resource="images.qrc">
<normaloff>:/images/sort_decrease.png</normaloff>:/images/sort_decrease.png</iconset>
</property>
<property name="text">
<string>Sort Descending Order</string>
</property>
<property name="toolTip">
<string>Sort Descending Order</string>
</property>
</action>
<action name="actionSort_Peers_Ascending_Order">
<property name="icon">
<iconset resource="images.qrc">
<normaloff>:/images/sort_incr.png</normaloff>:/images/sort_incr.png</iconset>
</property>
<property name="text">
<string>Sort Ascending Order</string>
</property>
<property name="toolTip">
<string>Sort Ascending Order</string>
</property>
</action>
</widget> </widget>
<customwidgets> <customwidgets>
<customwidget> <customwidget>

View File

@ -25,7 +25,7 @@ RSTreeWidgetItemCompareRole::RSTreeWidgetItemCompareRole()
{ {
} }
void RSTreeWidgetItemCompareRole::addRole(int column, int role) void RSTreeWidgetItemCompareRole::setRole(int column, int role)
{ {
insert(column, role); insert(column, role);
} }

View File

@ -31,7 +31,7 @@ class RSTreeWidgetItemCompareRole : QMap<int, int>
public: public:
RSTreeWidgetItemCompareRole(); RSTreeWidgetItemCompareRole();
void addRole(int column, int role); void setRole(int column, int role);
int findRole(const int column) const; int findRole(const int column) const;
}; };

View File

@ -117,7 +117,7 @@ MessageComposer::MessageComposer(QWidget *parent, Qt::WFlags flags)
setupInsertActions(); setupInsertActions();
m_compareRole = new RSTreeWidgetItemCompareRole; m_compareRole = new RSTreeWidgetItemCompareRole;
m_compareRole->addRole(COLUMN_CONTACT_NAME, ROLE_CONTACT_SORT); m_compareRole->setRole(COLUMN_CONTACT_NAME, ROLE_CONTACT_SORT);
m_completer = NULL; m_completer = NULL;

View File

@ -4231,7 +4231,7 @@ Fill in your GPG password when asked, to sign your new key.</source>
<context> <context>
<name>GeneralPage</name> <name>GeneralPage</name>
<message> <message>
<location filename="../gui/settings/GeneralPage.ui" line="+588"/> <location filename="../gui/settings/GeneralPage.ui" line="+582"/>
<source>Auto Login</source> <source>Auto Login</source>
<translation>Automatische Anmeldung</translation> <translation>Automatische Anmeldung</translation>
</message> </message>
@ -6467,7 +6467,7 @@ p, li { white-space: pre-wrap; }
<translation>Zertifikate (*.pqi)</translation> <translation>Zertifikate (*.pqi)</translation>
</message> </message>
<message> <message>
<location filename="../gui/MessengerWindow.ui" line="+67"/> <location filename="../gui/MessengerWindow.ui" line="+64"/>
<source>Click to Change your Avatar</source> <source>Click to Change your Avatar</source>
<translation>Klick zum Ändern deines Avatars</translation> <translation>Klick zum Ändern deines Avatars</translation>
</message> </message>
@ -6482,12 +6482,12 @@ p, li { white-space: pre-wrap; }
<translation>Ordner für deine Freunde freigeben</translation> <translation>Ordner für deine Freunde freigeben</translation>
</message> </message>
<message> <message>
<location line="+111"/> <location line="+69"/>
<source>Search Friends</source> <source>Search Friends</source>
<translation>Suche Freunde</translation> <translation>Suche Freunde</translation>
</message> </message>
<message> <message>
<location line="+102"/> <location line="+131"/>
<location line="+3"/> <location line="+3"/>
<source>Sort Descending Order</source> <source>Sort Descending Order</source>
<translation>Absteigend sortieren</translation> <translation>Absteigend sortieren</translation>
@ -6514,12 +6514,12 @@ p, li { white-space: pre-wrap; }
<translation>Verstecke offline Freunde</translation> <translation>Verstecke offline Freunde</translation>
</message> </message>
<message> <message>
<location line="-112"/> <location line="-141"/>
<source>Reset</source> <source>Reset</source>
<translation>Zurücksetzen</translation> <translation>Zurücksetzen</translation>
</message> </message>
<message> <message>
<location line="+120"/> <location line="+149"/>
<source>Sort by State</source> <source>Sort by State</source>
<translation>Sortiere nach Status</translation> <translation>Sortiere nach Status</translation>
</message> </message>
@ -6529,7 +6529,7 @@ p, li { white-space: pre-wrap; }
<translation>Freund weiterempfehlen...</translation> <translation>Freund weiterempfehlen...</translation>
</message> </message>
<message> <message>
<location filename="../gui/MessengerWindow.ui" line="-474"/> <location filename="../gui/MessengerWindow.ui" line="-458"/>
<source>RetroShare Messenger</source> <source>RetroShare Messenger</source>
<translation></translation> <translation></translation>
</message> </message>
@ -7348,12 +7348,12 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>PeersDialog</name> <name>PeersDialog</name>
<message> <message>
<location filename="../gui/PeersDialog.cpp" line="+432"/> <location filename="../gui/PeersDialog.cpp" line="+431"/>
<source>Chat</source> <source>Chat</source>
<translation>Chat</translation> <translation>Chat</translation>
</message> </message>
<message> <message>
<location line="+675"/> <location line="+682"/>
<source>Save Certificate</source> <source>Save Certificate</source>
<translation>Zertifikat speichern</translation> <translation>Zertifikat speichern</translation>
</message> </message>
@ -7363,22 +7363,21 @@ p, li { white-space: pre-wrap; }
<translation>Zertifikate (*.pqi)</translation> <translation>Zertifikate (*.pqi)</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.ui" line="+734"/>
<source>Status</source> <source>Status</source>
<translation>Status</translation> <translation type="obsolete">Status</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.cpp" line="-662"/> <location line="-669"/>
<source>Connect To Friend</source> <source>Connect To Friend</source>
<translation>Verbinde zum Freund</translation> <translation>Verbinde zum Freund</translation>
</message> </message>
<message> <message>
<location line="-298"/> <location line="-296"/>
<source>Profile</source> <source>Profile</source>
<translation>Profil</translation> <translation>Profil</translation>
</message> </message>
<message> <message>
<location line="+44"/> <location line="+40"/>
<source>Welcome to RetroShare&apos;s group chat.</source> <source>Welcome to RetroShare&apos;s group chat.</source>
<translation>Willkommen bei RetroShare&apos;s Gruppenchat.</translation> <translation>Willkommen bei RetroShare&apos;s Gruppenchat.</translation>
</message> </message>
@ -7388,7 +7387,7 @@ p, li { white-space: pre-wrap; }
<translation>ich</translation> <translation>ich</translation>
</message> </message>
<message> <message>
<location line="+152"/> <location line="+154"/>
<source>Group</source> <source>Group</source>
<translation>Gruppe</translation> <translation>Gruppe</translation>
</message> </message>
@ -7468,12 +7467,12 @@ p, li { white-space: pre-wrap; }
<translation>Aus allen Gruppen entfernen</translation> <translation>Aus allen Gruppen entfernen</translation>
</message> </message>
<message> <message>
<location line="+504"/> <location line="+507"/>
<source>Available</source> <source>Available</source>
<translation>Verfügbar</translation> <translation>Verfügbar</translation>
</message> </message>
<message> <message>
<location line="+419"/> <location line="+423"/>
<location line="+2"/> <location line="+2"/>
<source>New group chat</source> <source>New group chat</source>
<translation>Neuer Gruppenchat</translation> <translation>Neuer Gruppenchat</translation>
@ -7510,7 +7509,7 @@ p, li { white-space: pre-wrap; }
<translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation> <translation>Ordner können nicht für Drag&apos;n&apos;Drop genutzt werden. Nur Dateien werden akzeptiert.</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.ui" line="+438"/> <location filename="../gui/PeersDialog.ui" line="+1173"/>
<source>Italic</source> <source>Italic</source>
<translation>Kursiv</translation> <translation>Kursiv</translation>
</message> </message>
@ -7520,7 +7519,7 @@ p, li { white-space: pre-wrap; }
<translation>Unterstrichen</translation> <translation>Unterstrichen</translation>
</message> </message>
<message> <message>
<location line="-590"/> <location line="-591"/>
<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; }
@ -7538,7 +7537,7 @@ p, li { white-space: pre-wrap; }
<translation>Hinzufügen</translation> <translation>Hinzufügen</translation>
</message> </message>
<message> <message>
<location line="+240"/> <location line="+241"/>
<source>Add or Change your Avatar</source> <source>Add or Change your Avatar</source>
<translation>Wähle oder ändere dein Avatar Bild</translation> <translation>Wähle oder ändere dein Avatar Bild</translation>
</message> </message>
@ -7595,14 +7594,37 @@ p, li { white-space: pre-wrap; }
<translation>Statusnachricht ändern</translation> <translation>Statusnachricht ändern</translation>
</message> </message>
<message> <message>
<location line="+41"/> <location line="+32"/>
<location line="+3"/>
<source>Sort by State</source>
<translation>Sortiere nach Status</translation>
</message>
<message>
<location line="+8"/>
<source>Hide State</source>
<translation type="unfinished">Status ausblenden</translation>
</message>
<message>
<location line="+9"/>
<location line="+3"/> <location line="+3"/>
<source>Add a new Group</source> <source>Add a new Group</source>
<translation>Neue Gruppe hinzufügen</translation> <translation>Neue Gruppe hinzufügen</translation>
</message> </message>
<message> <message>
<location line="-107"/> <location line="+9"/>
<location filename="../gui/PeersDialog.cpp" line="-1472"/> <location line="+3"/>
<source>Sort Descending Order</source>
<translation>Absteigend sortieren</translation>
</message>
<message>
<location line="+9"/>
<location line="+3"/>
<source>Sort Ascending Order</source>
<translation>Aufsteigend sortieren</translation>
</message>
<message>
<location line="-142"/>
<location filename="../gui/PeersDialog.cpp" line="-1479"/>
<source>Add Friend</source> <source>Add Friend</source>
<translation>Freund hinzufügen</translation> <translation>Freund hinzufügen</translation>
</message> </message>
@ -7657,12 +7679,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="+843"/> <location line="+850"/>
<source>RetroShare</source> <source>RetroShare</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-804"/> <location line="-811"/>
<source>Message Group</source> <source>Message Group</source>
<translation>Gruppe anschreiben</translation> <translation>Gruppe anschreiben</translation>
</message> </message>
@ -7677,7 +7699,7 @@ p, li { white-space: pre-wrap; }
<translation>Gruppe entfernen</translation> <translation>Gruppe entfernen</translation>
</message> </message>
<message> <message>
<location line="+796"/> <location line="+803"/>
<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>
@ -7692,7 +7714,7 @@ p, li { white-space: pre-wrap; }
<translation>Text Datei (*.txt );;Alle Dateien (*)</translation> <translation>Text Datei (*.txt );;Alle Dateien (*)</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.ui" line="-878"/> <location filename="../gui/PeersDialog.ui" line="-879"/>
<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; }
@ -7705,27 +7727,26 @@ 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:8pt;&quot;&gt;Anzeige&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:8pt;&quot;&gt;Anzeige&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location line="+886"/> <location line="+887"/>
<source>Hide Offline Friends</source> <source>Hide Offline Friends</source>
<translation>Verstecke offline Freunde</translation> <translation>Verstecke offline Freunde</translation>
</message> </message>
<message> <message>
<location line="+8"/>
<source>Hide Status Column</source> <source>Hide Status Column</source>
<translation>Status Spalte ausblenden</translation> <translation type="obsolete">Status Spalte ausblenden</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.cpp" line="-1798"/> <location filename="../gui/PeersDialog.cpp" line="-1803"/>
<source>Friends Storm</source> <source>Friends Storm</source>
<translation>Aktivitäten</translation> <translation>Aktivitäten</translation>
</message> </message>
<message> <message>
<location line="+1157"/> <location line="+1162"/>
<source>is typing...</source> <source>is typing...</source>
<translation>tippt...</translation> <translation>tippt...</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.ui" line="-27"/> <location filename="../gui/PeersDialog.ui" line="-19"/>
<source>Browse Message History</source> <source>Browse Message History</source>
<translation>Nachrichtenverlauf anzeigen</translation> <translation>Nachrichtenverlauf anzeigen</translation>
</message> </message>
@ -7735,12 +7756,12 @@ p, li { white-space: pre-wrap; }
<translation>Nachrichtenverlauf</translation> <translation>Nachrichtenverlauf</translation>
</message> </message>
<message> <message>
<location line="-752"/> <location line="-747"/>
<source>Friends</source> <source>Friends</source>
<translation>Freunde</translation> <translation>Freunde</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.cpp" line="-859"/> <location filename="../gui/PeersDialog.cpp" line="-866"/>
<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>
@ -8989,7 +9010,7 @@ p, li { white-space: pre-wrap; }
<translation>Fertigstellen</translation> <translation>Fertigstellen</translation>
</message> </message>
<message> <message>
<location filename="../gui/QuickStartWizard.cpp" line="+202"/> <location filename="../gui/QuickStartWizard.cpp" line="+205"/>
<source>Select A Folder To Share</source> <source>Select A Folder To Share</source>
<translation>Wählen Sie ein Ordner zum Freigeben</translation> <translation>Wählen Sie ein Ordner zum Freigeben</translation>
</message> </message>