Added the state column in PeersDialog again. Now you can choose to show the state in an own column or behind the name.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3919 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2010-12-18 01:45:32 +00:00
parent dac49e9bfc
commit d3a6f7316c
5 changed files with 131 additions and 70 deletions

View File

@ -94,15 +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 1 #define COLUMN_COUNT 2
#define COLUMN_NAME 0 #define COLUMN_NAME 0
#define COLUMN_STATE 1
#define COLUMN_DATA 0 // column for storing the userdata id #define COLUMN_DATA 0 // column for storing the userdata id
#define ROLE_SORT_NAME Qt::UserRole #define ROLE_SORT Qt::UserRole
#define ROLE_SORT_STATUS Qt::UserRole + 1 #define ROLE_ID Qt::UserRole + 1
#define ROLE_ID Qt::UserRole + 2 #define ROLE_STANDARD 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
@ -124,10 +124,12 @@ PeersDialog::PeersDialog(QWidget *parent)
groupsHasChanged = false; groupsHasChanged = false;
m_compareRole = new RSTreeWidgetItemCompareRole; m_compareRole = new RSTreeWidgetItemCompareRole;
m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_NAME); m_compareRole->setRole(COLUMN_NAME, ROLE_SORT);
m_compareRole->setRole(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 *)));
connect( ui.peertreeWidget->header(), SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), this, SLOT(peerSortIndicatorChanged(int,Qt::SortOrder)));
connect(NotifyQt::getInstance(), SIGNAL(peerStatusChanged(QString,int)), this, SLOT(updateOwnStatus(QString,int))); connect(NotifyQt::getInstance(), SIGNAL(peerStatusChanged(QString,int)), this, SLOT(updateOwnStatus(QString,int)));
@ -139,7 +141,8 @@ 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_Sort_by_State, SIGNAL(triggered()), this, SLOT(sortByState())); connect(ui.action_Hide_Status_Column, SIGNAL(triggered()), this, SLOT(setStateColumn()));
connect(ui.action_Sort_by_State, SIGNAL(triggered()), this, SLOT(setStateColumn()));
connect(ui.actionSort_Peers_Ascending_Order, SIGNAL(triggered()), this, SLOT(sortPeersAscendingOrder())); connect(ui.actionSort_Peers_Ascending_Order, SIGNAL(triggered()), this, SLOT(sortPeersAscendingOrder()));
connect(ui.actionSort_Peers_Descending_Order, SIGNAL(triggered()), this, SLOT(sortPeersDescendingOrder())); connect(ui.actionSort_Peers_Descending_Order, SIGNAL(triggered()), this, SLOT(sortPeersDescendingOrder()));
@ -161,6 +164,9 @@ PeersDialog::PeersDialog(QWidget *parent)
// 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);
wasStatusColumnHidden = ui.peertreeWidget->isColumnHidden(COLUMN_STATE);
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()));
@ -229,6 +235,8 @@ PeersDialog::PeersDialog(QWidget *parent)
// load settings // load settings
processSettings(true); processSettings(true);
ui.peertreeWidget->header()->setStretchLastSection(true);
// workaround for Qt bug, should be solved in next Qt release 4.7.0 // workaround for Qt bug, should be solved in next Qt release 4.7.0
// http://bugreports.qt.nokia.com/browse/QTBUG-8270 // http://bugreports.qt.nokia.com/browse/QTBUG-8270
QShortcut *Shortcut = new QShortcut(QKeySequence (Qt::Key_Delete), ui.peertreeWidget, 0, 0, Qt::WidgetShortcut); QShortcut *Shortcut = new QShortcut(QKeySequence (Qt::Key_Delete), ui.peertreeWidget, 0, 0, Qt::WidgetShortcut);
@ -269,14 +277,17 @@ void PeersDialog::processSettings(bool bLoad)
// state of peer tree // state of peer tree
header->restoreState(Settings->value("PeerTree").toByteArray()); header->restoreState(Settings->value("PeerTree").toByteArray());
wasStatusColumnHidden = ui.peertreeWidget->isColumnHidden(COLUMN_STATE);
// 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 the status // state of the status
ui.action_Sort_by_State->setChecked(Settings->value("sortByState", false).toBool());
ui.action_Hide_State->setChecked(Settings->value("hideState", false).toBool()); ui.action_Hide_State->setChecked(Settings->value("hideState", false).toBool());
// state of hideStatusColumn
ui.action_Hide_Status_Column->setChecked(Settings->value("hideStatusColumn", false).toBool());
// state of splitter // state of splitter
ui.splitter->restoreState(Settings->value("Splitter").toByteArray()); ui.splitter->restoreState(Settings->value("Splitter").toByteArray());
ui.splitter_2->restoreState(Settings->value("GroupChatSplitter").toByteArray()); ui.splitter_2->restoreState(Settings->value("GroupChatSplitter").toByteArray());
@ -290,7 +301,7 @@ void PeersDialog::processSettings(bool bLoad)
} }
Settings->endArray(); Settings->endArray();
sortByState(); setStateColumn();
} else { } else {
// save settings // save settings
@ -301,9 +312,11 @@ void PeersDialog::processSettings(bool bLoad)
Settings->setValue("hideUnconnected", ui.action_Hide_Offline_Friends->isChecked()); Settings->setValue("hideUnconnected", ui.action_Hide_Offline_Friends->isChecked());
// state of the status // state of the status
Settings->setValue("sortByState", ui.action_Sort_by_State->isChecked());
Settings->setValue("hideState", ui.action_Hide_State->isChecked()); Settings->setValue("hideState", ui.action_Hide_State->isChecked());
// state of hideStatusColumn
Settings->setValue("hideStatusColumn", ui.action_Hide_Status_Column->isChecked());
// state of splitter // state of splitter
Settings->setValue("Splitter", ui.splitter->saveState()); Settings->setValue("Splitter", ui.splitter->saveState());
Settings->setValue("GroupChatSplitter", ui.splitter_2->saveState()); Settings->setValue("GroupChatSplitter", ui.splitter_2->saveState());
@ -575,7 +588,8 @@ void PeersDialog::insertPeers()
} }
bool hideUnconnected = ui.action_Hide_Offline_Friends->isChecked(); bool hideUnconnected = ui.action_Hide_Offline_Friends->isChecked();
bool hideState = ui.action_Hide_State->isChecked(); bool useStatusColumn = !ui.action_Hide_Status_Column->isChecked();
bool showState = !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;
@ -886,14 +900,18 @@ void PeersDialog::insertPeers()
if (customStateString.isEmpty() == false) { if (customStateString.isEmpty() == false) {
sText += " - " + customStateString; sText += " - " + customStateString;
} }
if (hideState == false && sslDetail.autoconnect.empty() == false) { if (sslDetail.autoconnect.empty() == false) {
if (useStatusColumn) {
sslItem->setText(COLUMN_STATE, QString::fromStdString(sslDetail.autoconnect));
} else if (showState) {
sText += " [" + QString::fromStdString(sslDetail.autoconnect) + "]"; 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);
// sort location // sort location
sslItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, sText); sslItem->setData(COLUMN_STATE, ROLE_SORT, sText);
/* change color and icon */ /* change color and icon */
QIcon sslIcon; QIcon sslIcon;
@ -1011,19 +1029,26 @@ void PeersDialog::insertPeers()
gpgIcon = QIcon(StatusDefs::imageUser(bestRSState)); gpgIcon = QIcon(StatusDefs::imageUser(bestRSState));
gpgItem->setToolTip(COLUMN_NAME, StatusDefs::tooltip(bestRSState)); if (useStatusColumn) {
gpgItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, BuildStateSortString(true, gpgItemText, bestPeerState)); gpgItem->setText(COLUMN_STATE, StatusDefs::name(bestRSState));
if (hideState == false) { } else if (showState) {
gpgItemText += " [" + StatusDefs::name(bestRSState) + "]"; gpgItemText += " [" + StatusDefs::name(bestRSState) + "]";
} }
gpgItem->setToolTip(COLUMN_NAME, StatusDefs::tooltip(bestRSState));
gpgItem->setData(COLUMN_NAME, ROLE_SORT, BuildStateSortString(true, gpgItemText, bestPeerState));
gpgItem->setData(COLUMN_STATE, ROLE_SORT, BuildStateSortString(true, gpgItem->text(COLUMN_NAME), bestPeerState));
} else if (gpg_online) { } else if (gpg_online) {
if (useStatusColumn) {
gpgItem->setText(COLUMN_STATE, tr("Available"));
} else if (showState) {
gpgItemText += " [" + tr("Available") + "]";
}
onlineCount++; onlineCount++;
gpgItem->setHidden(hideUnconnected); gpgItem->setHidden(hideUnconnected);
gpgIcon = QIcon(IMAGE_AVAILABLE); gpgIcon = QIcon(IMAGE_AVAILABLE);
gpgItem->setData(COLUMN_NAME, ROLE_SORT_STATUS, BuildStateSortString(true, gpgItemText, PEER_STATE_AVAILABLE)); gpgItem->setData(COLUMN_NAME, ROLE_SORT, BuildStateSortString(true, gpgItemText, PEER_STATE_AVAILABLE));
if (hideState == false) {
gpgItemText += " [" + tr("Available") + "]";
}
QFont font; QFont font;
font.setBold(true); font.setBold(true);
@ -1032,13 +1057,16 @@ void PeersDialog::insertPeers()
gpgItem->setFont(i,font); gpgItem->setFont(i,font);
} }
} else { } else {
gpgItem->setHidden(hideUnconnected); if (useStatusColumn) {
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)); } else if (showState) {
if (hideState == false) {
gpgItemText += " [" + StatusDefs::name(RS_STATUS_OFFLINE) + "]"; gpgItemText += " [" + StatusDefs::name(RS_STATUS_OFFLINE) + "]";
} }
gpgItem->setHidden(hideUnconnected);
gpgIcon = QIcon(StatusDefs::imageUser(RS_STATUS_OFFLINE));
gpgItem->setData(COLUMN_NAME, ROLE_SORT, BuildStateSortString(true, gpgItemText, PEER_STATE_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);
for(i = 0; i < COLUMN_COUNT; i++) { for(i = 0; i < COLUMN_COUNT; i++) {
@ -1052,7 +1080,7 @@ void PeersDialog::insertPeers()
} }
gpgItem->setText(COLUMN_NAME, gpgItemText); gpgItem->setText(COLUMN_NAME, gpgItemText);
gpgItem->setData(COLUMN_NAME, ROLE_SORT_NAME, "2 " + gpgItemText); gpgItem->setData(COLUMN_NAME, ROLE_SORT, "2 " + gpgItemText);
gpgItem->setIcon(COLUMN_NAME, gpgIcon); gpgItem->setIcon(COLUMN_NAME, gpgIcon);
} }
@ -1064,7 +1092,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_NAME, ((groupInfo->flag & RS_GROUP_FLAG_STANDARD) ? "0 " : "1 ") + groupName); groupItem->setData(COLUMN_NAME, ROLE_SORT, ((groupInfo->flag & RS_GROUP_FLAG_STANDARD) ? "0 " : "1 ") + groupName);
} }
} }
@ -1990,28 +2018,49 @@ void PeersDialog::displayMenu()
displaymenu->addAction(ui.actionSort_Peers_Ascending_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_Sort_by_State); displaymenu->addAction(ui.action_Sort_by_State);
displaymenu->addAction(ui.action_Hide_Status_Column);
displaymenu->addAction(ui.action_Hide_State); displaymenu->addAction(ui.action_Hide_State);
ui.displayButton->setMenu(displaymenu); ui.displayButton->setMenu(displaymenu);
} }
void PeersDialog::sortByState() void PeersDialog::setStateColumn()
{ {
if(ui.action_Sort_by_State->isChecked()) { if (ui.action_Hide_Status_Column->isChecked()) {
m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_STATUS); ui.peertreeWidget->setColumnHidden(COLUMN_STATE, true);
ui.peertreeWidget->setHeaderHidden(true);
ui.action_Hide_State->setEnabled(true);
wasStatusColumnHidden = true;
} else { } else {
m_compareRole->setRole(COLUMN_NAME, ROLE_SORT_NAME); ui.peertreeWidget->setColumnHidden(COLUMN_STATE, false);
ui.peertreeWidget->setHeaderHidden(false);
ui.action_Hide_State->setEnabled(false);
if (wasStatusColumnHidden) {
ui.peertreeWidget->header()->resizeSection(COLUMN_NAME, ui.peertreeWidget->header()->sectionSize(COLUMN_NAME) - ui.peertreeWidget->header()->sectionSize(COLUMN_STATE));
}
wasStatusColumnHidden = false;
}
if(ui.action_Sort_by_State->isChecked()) {
ui.peertreeWidget->sortByColumn(COLUMN_STATE);
} else {
ui.peertreeWidget->sortByColumn(COLUMN_NAME);
} }
} }
void PeersDialog::sortPeersAscendingOrder() void PeersDialog::sortPeersAscendingOrder()
{ {
ui.peertreeWidget->sortByColumn(COLUMN_NAME, Qt::AscendingOrder); ui.peertreeWidget->sortByColumn(ui.peertreeWidget->sortColumn(), Qt::AscendingOrder);
} }
void PeersDialog::sortPeersDescendingOrder() void PeersDialog::sortPeersDescendingOrder()
{ {
ui.peertreeWidget->sortByColumn(COLUMN_NAME, Qt::DescendingOrder); ui.peertreeWidget->sortByColumn(ui.peertreeWidget->sortColumn(), Qt::DescendingOrder);
}
void PeersDialog::peerSortIndicatorChanged(int column, Qt::SortOrder)
{
ui.action_Sort_by_State->setChecked(column == COLUMN_STATE);
} }
void PeersDialog::on_actionMessageHistory_triggered() void PeersDialog::on_actionMessageHistory_triggered()

View File

@ -161,9 +161,10 @@ private slots:
void setCurrentFileName(const QString &fileName); void setCurrentFileName(const QString &fileName);
void sortByState(); void setStateColumn();
void sortPeersAscendingOrder(); void sortPeersAscendingOrder();
void sortPeersDescendingOrder(); void sortPeersDescendingOrder();
void peerSortIndicatorChanged(int,Qt::SortOrder);
void newsFeedChanged(int count); void newsFeedChanged(int count);
@ -210,6 +211,7 @@ private:
int newsFeedTabIndex; int newsFeedTabIndex;
QColor newsFeedTabColor; QColor newsFeedTabColor;
QString newsFeedText; QString newsFeedText;
bool wasStatusColumnHidden;
/** Qt Designer generated object */ /** Qt Designer generated object */
Ui::PeersDialog ui; Ui::PeersDialog ui;

View File

@ -718,23 +718,22 @@ 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>
@ -1498,6 +1497,14 @@ 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">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text">
<string>Hide Status Column</string>
</property>
</action>
<action name="action_Sort_by_State"> <action name="action_Sort_by_State">
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>

View File

@ -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="+431"/> <location filename="../gui/PeersDialog.cpp" line="+443"/>
<source>Chat</source> <source>Chat</source>
<translation>Chat</translation> <translation>Chat</translation>
</message> </message>
<message> <message>
<location line="+682"/> <location line="+697"/>
<source>Save Certificate</source> <source>Save Certificate</source>
<translation>Zertifikat speichern</translation> <translation>Zertifikat speichern</translation>
</message> </message>
@ -7363,31 +7363,32 @@ 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 type="obsolete">Status</translation> <translation>Status</translation>
</message> </message>
<message> <message>
<location line="-669"/> <location filename="../gui/PeersDialog.cpp" line="-684"/>
<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="-296"/> <location line="-307"/>
<source>Profile</source> <source>Profile</source>
<translation>Profil</translation> <translation>Profil</translation>
</message> </message>
<message> <message>
<location line="+40"/> <location line="+41"/>
<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>
<message> <message>
<location line="+57"/> <location line="+59"/>
<source>me</source> <source>me</source>
<translation>ich</translation> <translation>ich</translation>
</message> </message>
<message> <message>
<location line="+154"/> <location line="+162"/>
<source>Group</source> <source>Group</source>
<translation>Gruppe</translation> <translation>Gruppe</translation>
</message> </message>
@ -7467,12 +7468,13 @@ p, li { white-space: pre-wrap; }
<translation>Aus allen Gruppen entfernen</translation> <translation>Aus allen Gruppen entfernen</translation>
</message> </message>
<message> <message>
<location line="+507"/> <location line="+512"/>
<location line="+2"/>
<source>Available</source> <source>Available</source>
<translation>Verfügbar</translation> <translation>Verfügbar</translation>
</message> </message>
<message> <message>
<location line="+423"/> <location line="+431"/>
<location line="+2"/> <location line="+2"/>
<source>New group chat</source> <source>New group chat</source>
<translation>Neuer Gruppenchat</translation> <translation>Neuer Gruppenchat</translation>
@ -7509,7 +7511,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="+1173"/> <location filename="../gui/PeersDialog.ui" line="+438"/>
<source>Italic</source> <source>Italic</source>
<translation>Kursiv</translation> <translation>Kursiv</translation>
</message> </message>
@ -7519,7 +7521,7 @@ p, li { white-space: pre-wrap; }
<translation>Unterstrichen</translation> <translation>Unterstrichen</translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-590"/>
<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; }
@ -7537,7 +7539,7 @@ p, li { white-space: pre-wrap; }
<translation>Hinzufügen</translation> <translation>Hinzufügen</translation>
</message> </message>
<message> <message>
<location line="+241"/> <location line="+240"/>
<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>
@ -7594,7 +7596,7 @@ p, li { white-space: pre-wrap; }
<translation>Statusnachricht ändern</translation> <translation>Statusnachricht ändern</translation>
</message> </message>
<message> <message>
<location line="+32"/> <location line="+40"/>
<location line="+3"/> <location line="+3"/>
<source>Sort by State</source> <source>Sort by State</source>
<translation>Sortiere nach Status</translation> <translation>Sortiere nach Status</translation>
@ -7602,7 +7604,7 @@ p, li { white-space: pre-wrap; }
<message> <message>
<location line="+8"/> <location line="+8"/>
<source>Hide State</source> <source>Hide State</source>
<translation type="unfinished">Status ausblenden</translation> <translation>Status ausblenden</translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+9"/>
@ -7623,8 +7625,8 @@ p, li { white-space: pre-wrap; }
<translation>Aufsteigend sortieren</translation> <translation>Aufsteigend sortieren</translation>
</message> </message>
<message> <message>
<location line="-142"/> <location line="-150"/>
<location filename="../gui/PeersDialog.cpp" line="-1479"/> <location filename="../gui/PeersDialog.cpp" line="-1494"/>
<source>Add Friend</source> <source>Add Friend</source>
<translation>Freund hinzufügen</translation> <translation>Freund hinzufügen</translation>
</message> </message>
@ -7679,12 +7681,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="+850"/> <location line="+865"/>
<source>RetroShare</source> <source>RetroShare</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-811"/> <location line="-826"/>
<source>Message Group</source> <source>Message Group</source>
<translation>Gruppe anschreiben</translation> <translation>Gruppe anschreiben</translation>
</message> </message>
@ -7699,7 +7701,7 @@ p, li { white-space: pre-wrap; }
<translation>Gruppe entfernen</translation> <translation>Gruppe entfernen</translation>
</message> </message>
<message> <message>
<location line="+803"/> <location line="+818"/>
<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>
@ -7714,7 +7716,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="-879"/> <location filename="../gui/PeersDialog.ui" line="-878"/>
<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; }
@ -7727,26 +7729,27 @@ 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="+887"/> <location line="+886"/>
<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 type="obsolete">Status Spalte ausblenden</translation> <translation>Status Spalte ausblenden</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.cpp" line="-1803"/> <location filename="../gui/PeersDialog.cpp" line="-1829"/>
<source>Friends Storm</source> <source>Friends Storm</source>
<translation>Aktivitäten</translation> <translation>Aktivitäten</translation>
</message> </message>
<message> <message>
<location line="+1162"/> <location line="+1188"/>
<source>is typing...</source> <source>is typing...</source>
<translation>tippt...</translation> <translation>tippt...</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.ui" line="-19"/> <location filename="../gui/PeersDialog.ui" line="-27"/>
<source>Browse Message History</source> <source>Browse Message History</source>
<translation>Nachrichtenverlauf anzeigen</translation> <translation>Nachrichtenverlauf anzeigen</translation>
</message> </message>
@ -7756,18 +7759,18 @@ p, li { white-space: pre-wrap; }
<translation>Nachrichtenverlauf</translation> <translation>Nachrichtenverlauf</translation>
</message> </message>
<message> <message>
<location line="-747"/> <location line="-752"/>
<source>Friends</source> <source>Friends</source>
<translation>Freunde</translation> <translation>Freunde</translation>
</message> </message>
<message> <message>
<location filename="../gui/PeersDialog.cpp" line="-866"/> <location filename="../gui/PeersDialog.cpp" line="-881"/>
<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>
</message> </message>
<message> <message>
<location line="+358"/> <location line="+359"/>
<source>location</source> <source>location</source>
<translation>Standort</translation> <translation>Standort</translation>
</message> </message>