MessagesDialog:

- Renamed "Favorite Tags" to "Quick View".
- Added the quick view "Starred" to the list to show all messages signed with a star.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4231 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2011-06-04 22:54:03 +00:00
parent 7661f4486d
commit 57ec7b34ce
5 changed files with 204 additions and 126 deletions

View File

@ -66,6 +66,16 @@
#define ROLE_UNREAD Qt::UserRole + 3 #define ROLE_UNREAD Qt::UserRole + 3
#define ROLE_MSGFLAGS Qt::UserRole + 4 #define ROLE_MSGFLAGS Qt::UserRole + 4
#define ROLE_QUICKVIEW_TYPE Qt::UserRole
#define ROLE_QUICKVIEW_ID Qt::UserRole + 1
#define ROLE_QUICKVIEW_TEXT Qt::UserRole + 2
#define QUICKVIEW_TYPE_NOTHING 0
#define QUICKVIEW_TYPE_STATIC 1
#define QUICKVIEW_TYPE_TAG 2
#define QUICKVIEW_STATIC_ID_STARRED 1
#define ROW_INBOX 0 #define ROW_INBOX 0
#define ROW_OUTBOX 1 #define ROW_OUTBOX 1
#define ROW_DRAFTBOX 2 #define ROW_DRAFTBOX 2
@ -144,7 +154,7 @@ MessagesDialog::MessagesDialog(QWidget *parent)
ui.setupUi(this); ui.setupUi(this);
m_bProcessSettings = false; m_bProcessSettings = false;
m_bInChange = false; inChange = false;
m_nLockUpdate = 0; m_nLockUpdate = 0;
connect(ui.messagestreeView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(messageslistWidgetCostumPopupMenu(QPoint))); connect(ui.messagestreeView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(messageslistWidgetCostumPopupMenu(QPoint)));
@ -152,7 +162,7 @@ MessagesDialog::MessagesDialog(QWidget *parent)
connect(ui.messagestreeView, SIGNAL(clicked(const QModelIndex&)) , this, SLOT(clicked(const QModelIndex&))); connect(ui.messagestreeView, SIGNAL(clicked(const QModelIndex&)) , this, SLOT(clicked(const QModelIndex&)));
connect(ui.messagestreeView, SIGNAL(doubleClicked(const QModelIndex&)) , this, SLOT(doubleClicked(const QModelIndex&))); connect(ui.messagestreeView, SIGNAL(doubleClicked(const QModelIndex&)) , this, SLOT(doubleClicked(const QModelIndex&)));
connect(ui.listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(changeBox(int))); connect(ui.listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(changeBox(int)));
connect(ui.tagWidget, SIGNAL(currentRowChanged(int)), this, SLOT(changeTag(int))); connect(ui.quickViewWidget, SIGNAL(currentRowChanged(int)), this, SLOT(changeQuickView(int)));
connect(ui.tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int))); connect(ui.tabWidget, SIGNAL(currentChanged(int)), this, SLOT(tabChanged(int)));
connect(ui.tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(tabCloseRequested(int))); connect(ui.tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(tabCloseRequested(int)));
connect(ui.newmessageButton, SIGNAL(clicked()), this, SLOT(newmessage())); connect(ui.newmessageButton, SIGNAL(clicked()), this, SLOT(newmessage()));
@ -283,8 +293,8 @@ MessagesDialog::MessagesDialog(QWidget *parent)
ui.tagButton->setMenu(menu); ui.tagButton->setMenu(menu);
// fill tags // fill quick view
fillTags(); fillQuickView();
// create timer for navigation // create timer for navigation
timer = new QTimer(this); timer = new QTimer(this);
@ -339,9 +349,9 @@ void MessagesDialog::processSettings(bool load)
msgwheader->restoreState(Settings->value("MessageTree").toByteArray()); msgwheader->restoreState(Settings->value("MessageTree").toByteArray());
} }
// state of tag list // state of quick view list
bool value = Settings->value("tagList", true).toBool(); bool value = Settings->value("QuickViewList", true).toBool();
ui.Tags_Button->setChecked(value); ui.quickViewsButton->setChecked(value);
// state of splitter // state of splitter
ui.msgSplitter->restoreState(Settings->value("Splitter").toByteArray()); ui.msgSplitter->restoreState(Settings->value("Splitter").toByteArray());
@ -358,8 +368,8 @@ void MessagesDialog::processSettings(bool load)
Settings->setValue("MessageTree", msgwheader->saveState()); Settings->setValue("MessageTree", msgwheader->saveState());
Settings->setValue("MessageTreeVersion", messageTreeVersion); Settings->setValue("MessageTreeVersion", messageTreeVersion);
// state of tag list // state of quick view list
Settings->setValue("tagList", ui.Tags_Button->isChecked()); Settings->setValue("QuickViewList", ui.quickViewsButton->isChecked());
// state of splitter // state of splitter
Settings->setValue("Splitter", ui.msgSplitter->saveState()); Settings->setValue("Splitter", ui.msgSplitter->saveState());
@ -397,46 +407,60 @@ bool MessagesDialog::eventFilter(QObject *obj, QEvent *event)
return MainPage::eventFilter(obj, event); return MainPage::eventFilter(obj, event);
} }
void MessagesDialog::fillTags() void MessagesDialog::fillQuickView()
{ {
MsgTagType tags; MsgTagType tags;
rsMsgs->getMessageTagTypes(tags); rsMsgs->getMessageTagTypes(tags);
std::map<uint32_t, std::pair<std::string, uint32_t> >::iterator tag; std::map<uint32_t, std::pair<std::string, uint32_t> >::iterator tag;
// fill tags // fill tags
m_bInChange = true; inChange = true;
// save current selection // save current selection
QListWidgetItem *item = ui.tagWidget->currentItem(); QListWidgetItem *item = ui.quickViewWidget->currentItem();
uint32_t nSelectecTagId = 0; int nSelectedType = 0;
uint32_t nSelectedId = 0;
if (item) { if (item) {
nSelectecTagId = item->data(Qt::UserRole).toInt(); nSelectedType = item->data(ROLE_QUICKVIEW_TYPE).toInt();
nSelectedId = item->data(ROLE_QUICKVIEW_ID).toInt();
} }
QListWidgetItem *itemToSelect = NULL; QListWidgetItem *itemToSelect = NULL;
QString text; QString text;
ui.tagWidget->clear(); ui.quickViewWidget->clear();
// add static items
item = new QListWidgetItem(tr("Starred"), ui.quickViewWidget);
item->setIcon(QIcon(IMAGE_STAR_ON));
item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_STATIC);
item->setData(ROLE_QUICKVIEW_ID, QUICKVIEW_STATIC_ID_STARRED);
item->setData(ROLE_QUICKVIEW_TEXT, item->text()); // for updateMessageSummaryList
if (nSelectedType == QUICKVIEW_TYPE_STATIC && nSelectedId == QUICKVIEW_STATIC_ID_STARRED) {
itemToSelect = item;
}
for (tag = tags.types.begin(); tag != tags.types.end(); tag++) { for (tag = tags.types.begin(); tag != tags.types.end(); tag++) {
text = TagDefs::name(tag->first, tag->second.first); text = TagDefs::name(tag->first, tag->second.first);
item = new QListWidgetItem (text, ui.tagWidget); item = new QListWidgetItem (text, ui.quickViewWidget);
item->setForeground(QBrush(QColor(tag->second.second))); item->setForeground(QBrush(QColor(tag->second.second)));
item->setIcon(QIcon(":/images/foldermail.png")); item->setIcon(QIcon(":/images/foldermail.png"));
item->setData(Qt::UserRole, tag->first); item->setData(ROLE_QUICKVIEW_TYPE, QUICKVIEW_TYPE_TAG);
item->setData(Qt::UserRole + 1, text); // for updateMessageSummaryList item->setData(ROLE_QUICKVIEW_ID, tag->first);
item->setData(ROLE_QUICKVIEW_TEXT, text); // for updateMessageSummaryList
if (tag->first == nSelectecTagId) { if (nSelectedType == QUICKVIEW_TYPE_TAG && tag->first == nSelectedId) {
itemToSelect = item; itemToSelect = item;
} }
} }
if (itemToSelect) { if (itemToSelect) {
ui.tagWidget->setCurrentItem(itemToSelect); ui.quickViewWidget->setCurrentItem(itemToSelect);
} }
m_bInChange = false; inChange = false;
updateMessageSummaryList(); updateMessageSummaryList();
} }
@ -691,42 +715,44 @@ void MessagesDialog::editmessage()
void MessagesDialog::changeBox(int) void MessagesDialog::changeBox(int)
{ {
if (m_bInChange) { if (inChange) {
// already in change method // already in change method
return; return;
} }
m_bInChange = true; inChange = true;
MessagesModel->removeRows (0, MessagesModel->rowCount()); MessagesModel->removeRows (0, MessagesModel->rowCount());
ui.tagWidget->setCurrentItem(NULL); ui.quickViewWidget->setCurrentItem(NULL);
m_eListMode = LIST_BOX; m_eListMode = LIST_BOX;
insertMessages(); insertMessages();
insertMsgTxtAndFiles(); insertMsgTxtAndFiles();
m_bInChange = false; inChange = false;
} }
void MessagesDialog::changeTag(int) void MessagesDialog::changeQuickView(int newrow)
{ {
if (m_bInChange) { Q_UNUSED(newrow);
if (inChange) {
// already in change method // already in change method
return; return;
} }
m_bInChange = true; inChange = true;
MessagesModel->removeRows (0, MessagesModel->rowCount()); MessagesModel->removeRows (0, MessagesModel->rowCount());
ui.listWidget->setCurrentItem(NULL); ui.listWidget->setCurrentItem(NULL);
m_eListMode = LIST_TAG; m_eListMode = LIST_QUICKVIEW;
insertMessages(); insertMessages();
insertMsgTxtAndFiles(); insertMsgTxtAndFiles();
m_bInChange = false; inChange = false;
} }
void MessagesDialog::messagesTagsChanged() void MessagesDialog::messagesTagsChanged()
@ -735,7 +761,7 @@ void MessagesDialog::messagesTagsChanged()
return; return;
} }
fillTags(); fillQuickView();
insertMessages(); insertMessages();
} }
@ -823,7 +849,8 @@ void MessagesDialog::insertMessages()
unsigned int msgbox = 0; unsigned int msgbox = 0;
bool isTrash = false; bool isTrash = false;
bool doFill = true; bool doFill = true;
uint32_t tagId = 0; int quickViewType = 0;
uint32_t quickViewId = 0;
QString boxText; QString boxText;
QIcon boxIcon; QIcon boxIcon;
@ -868,14 +895,19 @@ void MessagesDialog::insertMessages()
} }
break; break;
case LIST_TAG: case LIST_QUICKVIEW:
{ {
QListWidgetItem *item = ui.tagWidget->currentItem(); QListWidgetItem *item = ui.quickViewWidget->currentItem();
if (item) { if (item) {
tagId = item->data (Qt::UserRole).toInt(); quickViewType = item->data(ROLE_QUICKVIEW_TYPE).toInt();
quickViewId = item->data(ROLE_QUICKVIEW_ID).toInt();
boxText = item->text(); boxText = item->text();
boxIcon = item->icon(); boxIcon = item->icon();
if (quickViewType == QUICKVIEW_TYPE_NOTHING) {
doFill = false;
}
} else { } else {
doFill = false; doFill = false;
} }
@ -917,10 +949,14 @@ void MessagesDialog::insertMessages()
continue; continue;
} }
} }
} else if (m_eListMode == LIST_TAG) { } else if (m_eListMode == LIST_QUICKVIEW && quickViewType == QUICKVIEW_TYPE_TAG) {
MsgTagInfo tagInfo; MsgTagInfo tagInfo;
rsMsgs->getMessageTag(it->msgId, tagInfo); rsMsgs->getMessageTag(it->msgId, tagInfo);
if (std::find(tagInfo.tagIds.begin(), tagInfo.tagIds.end(), tagId) == tagInfo.tagIds.end()) { if (std::find(tagInfo.tagIds.begin(), tagInfo.tagIds.end(), quickViewId) == tagInfo.tagIds.end()) {
continue;
}
} else if (m_eListMode == LIST_QUICKVIEW && quickViewType == QUICKVIEW_TYPE_STATIC) {
if ((it->msgflags & RS_MSG_STAR) == 0) {
continue; continue;
} }
} else { } else {
@ -1305,7 +1341,7 @@ void MessagesDialog::markWithStar(bool checked)
getSelectedMsgCount (&Rows, NULL, NULL, NULL); getSelectedMsgCount (&Rows, NULL, NULL, NULL);
setMsgStar(Rows, checked); setMsgStar(Rows, checked);
} }
void MessagesDialog::setMsgStar(const QList<int> &Rows, bool star) void MessagesDialog::setMsgStar(const QList<int> &Rows, bool star)
{ {
@ -1333,6 +1369,8 @@ void MessagesDialog::setMsgStar(const QList<int> &Rows, bool star)
item[COLUMN_DATA]->setData(msgFlag, ROLE_MSGFLAGS); item[COLUMN_DATA]->setData(msgFlag, ROLE_MSGFLAGS);
InitIconAndFont(item); InitIconAndFont(item);
Lock.setUpdate(true);
} }
} }
@ -1567,6 +1605,7 @@ void MessagesDialog::updateMessageSummaryList()
unsigned int newSentboxCount = 0; unsigned int newSentboxCount = 0;
unsigned int inboxCount = 0; unsigned int inboxCount = 0;
unsigned int trashboxCount = 0; unsigned int trashboxCount = 0;
unsigned int starredCount = 0;
/* calculating the new messages */ /* calculating the new messages */
// rsMsgs->getMessageCount (&inboxCount, &newInboxCount, &newOutboxCount, &newDraftCount, &newSentboxCount); // rsMsgs->getMessageCount (&inboxCount, &newInboxCount, &newOutboxCount, &newDraftCount, &newSentboxCount);
@ -1589,6 +1628,11 @@ void MessagesDialog::updateMessageSummaryList()
tagCount [*tagId] = nCount; tagCount [*tagId] = nCount;
} }
if (it->msgflags & RS_MSG_STAR) {
starredCount++;
continue;
}
/* calculate box */ /* calculate box */
if (it->msgflags & RS_MSG_TRASH) { if (it->msgflags & RS_MSG_TRASH) {
trashboxCount++; trashboxCount++;
@ -1721,19 +1765,36 @@ void MessagesDialog::updateMessageSummaryList()
item->setText(textItem); item->setText(textItem);
} }
/* set tag counts */ /* set tag counts */
int nRowCount = ui.tagWidget->count(); int rowCount = ui.quickViewWidget->count();
for (int nRow = 0; nRow < nRowCount; nRow++) { for (int row = 0; row < rowCount; row++) {
QListWidgetItem *pItem = ui.tagWidget->item(nRow); QListWidgetItem *item = ui.quickViewWidget->item(row);
int nCount = tagCount[pItem->data(Qt::UserRole).toInt()]; switch (item->data(ROLE_QUICKVIEW_TYPE).toInt()) {
case QUICKVIEW_TYPE_TAG:
{
int count = tagCount[item->data(ROLE_QUICKVIEW_ID).toInt()];
QString sText = pItem->data(Qt::UserRole + 1).toString(); QString text = item->data(ROLE_QUICKVIEW_TEXT).toString();
if (nCount) { if (count) {
sText += " (" + QString::number(nCount) + ")"; text += " (" + QString::number(count) + ")";
}
item->setText(text);
}
break;
case QUICKVIEW_TYPE_STATIC:
{
QString text = item->data(ROLE_QUICKVIEW_TEXT).toString();
switch (item->data(ROLE_QUICKVIEW_ID).toInt()) {
case QUICKVIEW_STATIC_ID_STARRED:
text += " (" + QString::number(starredCount) + ")";
break;
}
item->setText(text);
}
break;
} }
pItem->setText(sText);
} }
} }

View File

@ -54,8 +54,8 @@ private slots:
void messageslistWidgetCostumPopupMenu( QPoint point ); void messageslistWidgetCostumPopupMenu( QPoint point );
void folderlistWidgetCostumPopupMenu(QPoint); void folderlistWidgetCostumPopupMenu(QPoint);
void changeBox( int newrow ); void changeBox(int newrow);
void changeTag( int newrow ); void changeQuickView(int newrow);
void updateCurrentMessage(); void updateCurrentMessage();
void currentChanged(const QModelIndex&); void currentChanged(const QModelIndex&);
void clicked(const QModelIndex&); void clicked(const QModelIndex&);
@ -123,15 +123,15 @@ private:
void processSettings(bool load); void processSettings(bool load);
void setToolbarButtonStyle(Qt::ToolButtonStyle style); void setToolbarButtonStyle(Qt::ToolButtonStyle style);
void fillTags(); void fillQuickView();
void closeTab(const std::string &msgId); void closeTab(const std::string &msgId);
bool m_bProcessSettings; bool m_bProcessSettings;
bool m_bInChange; bool inChange;
int m_nLockUpdate; // use with LockUpdate int m_nLockUpdate; // use with LockUpdate
enum { LIST_NOTHING, LIST_BOX, LIST_TAG } m_eListMode; enum { LIST_NOTHING, LIST_BOX, LIST_QUICKVIEW } m_eListMode;
std::string mCurrMsgId; std::string mCurrMsgId;

View File

@ -1018,11 +1018,6 @@ border-image: url(:/images/closepressed.png)
<property name="layoutDirection"> <property name="layoutDirection">
<enum>Qt::LeftToRight</enum> <enum>Qt::LeftToRight</enum>
</property> </property>
<property name="styleSheet">
<string notr="true">QTabBar::tab {
}
</string>
</property>
<property name="tabsClosable"> <property name="tabsClosable">
<bool>true</bool> <bool>true</bool>
</property> </property>
@ -1177,7 +1172,7 @@ border-image: url(:/images/closepressed.png)
</widget> </widget>
</item> </item>
<item row="3" column="0"> <item row="3" column="0">
<widget class="QListWidget" name="tagWidget"> <widget class="QListWidget" name="quickViewWidget">
<property name="maximumSize"> <property name="maximumSize">
<size> <size>
<width>160</width> <width>160</width>
@ -1193,7 +1188,7 @@ border-image: url(:/images/closepressed.png)
</widget> </widget>
</item> </item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QToolButton" name="Tags_Button"> <widget class="QToolButton" name="quickViewsButton">
<property name="minimumSize"> <property name="minimumSize">
<size> <size>
<width>0</width> <width>0</width>
@ -1207,14 +1202,14 @@ border-image: url(:/images/closepressed.png)
</size> </size>
</property> </property>
<property name="styleSheet"> <property name="styleSheet">
<string notr="true">QToolButton#Tags_Button{ <string notr="true">QToolButton#quickViewsButton{
background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1,
stop:0 #FEFEFE, stop:1 #E8E8E8); stop:0 #FEFEFE, stop:1 #E8E8E8);
border: 1px solid #CCCCCC;}</string> border: 1px solid #CCCCCC;}</string>
</property> </property>
<property name="text"> <property name="text">
<string>Favorite Tags</string> <string>Quick View</string>
</property> </property>
<property name="icon"> <property name="icon">
<iconset resource="images.qrc"> <iconset resource="images.qrc">
@ -1390,9 +1385,9 @@ padding: 4px;
</resources> </resources>
<connections> <connections>
<connection> <connection>
<sender>Tags_Button</sender> <sender>quickViewsButton</sender>
<signal>toggled(bool)</signal> <signal>toggled(bool)</signal>
<receiver>tagWidget</receiver> <receiver>quickViewWidget</receiver>
<slot>setVisible(bool)</slot> <slot>setVisible(bool)</slot>
<hints> <hints>
<hint type="sourcelabel"> <hint type="sourcelabel">

View File

@ -6956,12 +6956,12 @@ p, li { white-space: pre-wrap; }
<name>MessagesDialog</name> <name>MessagesDialog</name>
<message> <message>
<location filename="../gui/MessagesDialog.ui" line="+576"/> <location filename="../gui/MessagesDialog.ui" line="+576"/>
<location filename="../gui/MessagesDialog.cpp" line="+603"/> <location filename="../gui/MessagesDialog.cpp" line="+627"/>
<source>New Message</source> <source>New Message</source>
<translation>Neue Nachricht</translation> <translation>Neue Nachricht</translation>
</message> </message>
<message> <message>
<location filename="../gui/MessagesDialog.cpp" line="-65"/> <location filename="../gui/MessagesDialog.cpp" line="-66"/>
<source>Reply to Message</source> <source>Reply to Message</source>
<translation>Antworten nur an Absender</translation> <translation>Antworten nur an Absender</translation>
</message> </message>
@ -6976,20 +6976,20 @@ p, li { white-space: pre-wrap; }
<translation>In neuem Tab öffnen</translation> <translation>In neuem Tab öffnen</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>Remove Message</source> <source>Remove Message</source>
<translation>Nachricht entfernen</translation> <translation>Nachricht entfernen</translation>
</message> </message>
<message> <message>
<location filename="../gui/MessagesDialog.ui" line="+393"/> <location filename="../gui/MessagesDialog.ui" line="+393"/>
<location filename="../gui/MessagesDialog.cpp" line="-397"/> <location filename="../gui/MessagesDialog.cpp" line="-412"/>
<source>Date</source> <source>Date</source>
<translation>Datum</translation> <translation>Datum</translation>
</message> </message>
<message> <message>
<location line="-5"/> <location line="-5"/>
<location filename="../gui/MessagesDialog.cpp" line="-1"/> <location filename="../gui/MessagesDialog.cpp" line="-1"/>
<location line="+705"/> <location line="+728"/>
<source>From</source> <source>From</source>
<translation>Von</translation> <translation>Von</translation>
</message> </message>
@ -7070,17 +7070,17 @@ p, li { white-space: pre-wrap; }
<translation>Anhänge</translation> <translation>Anhänge</translation>
</message> </message>
<message> <message>
<location line="+180"/> <location line="+175"/>
<location filename="../gui/MessagesDialog.cpp" line="-46"/> <location filename="../gui/MessagesDialog.cpp" line="-51"/>
<location line="+806"/> <location line="+823"/>
<location line="+10"/> <location line="+10"/>
<source>Inbox</source> <source>Inbox</source>
<translation>Posteingang</translation> <translation>Posteingang</translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+9"/>
<location filename="../gui/MessagesDialog.cpp" line="-812"/> <location filename="../gui/MessagesDialog.cpp" line="-829"/>
<location line="+825"/> <location line="+842"/>
<location line="+8"/> <location line="+8"/>
<source>Outbox</source> <source>Outbox</source>
<translation>Postausgang</translation> <translation>Postausgang</translation>
@ -7092,10 +7092,15 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location line="+9"/> <location line="+9"/>
<location filename="../gui/MessagesDialog.cpp" line="-825"/> <location filename="../gui/MessagesDialog.cpp" line="-842"/>
<source>Sent</source> <source>Sent</source>
<translation>Gesendet</translation> <translation>Gesendet</translation>
</message> </message>
<message>
<location line="+56"/>
<source>Quick View</source>
<translation>Schnellansicht</translation>
</message>
<message> <message>
<source>Download all Recommended Files</source> <source>Download all Recommended Files</source>
<translation type="obsolete">Alle Dateien runterladen</translation> <translation type="obsolete">Alle Dateien runterladen</translation>
@ -7113,7 +7118,7 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Schlagwörter:</translation> <translation type="obsolete">Schlagwörter:</translation>
</message> </message>
<message> <message>
<location line="+173"/> <location line="+117"/>
<location line="+3"/> <location line="+3"/>
<source>Print...</source> <source>Print...</source>
<translation>Drucken...</translation> <translation>Drucken...</translation>
@ -7159,8 +7164,8 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Dokument drucken</translation> <translation type="obsolete">Dokument drucken</translation>
</message> </message>
<message> <message>
<location line="-412"/> <location line="-407"/>
<location filename="../gui/MessagesDialog.cpp" line="-673"/> <location filename="../gui/MessagesDialog.cpp" line="-691"/>
<source>Subject</source> <source>Subject</source>
<translation>Betreff</translation> <translation>Betreff</translation>
</message> </message>
@ -7195,7 +7200,12 @@ p, li { white-space: pre-wrap; }
<translation>Gewählte Nachricht weiterleiten</translation> <translation>Gewählte Nachricht weiterleiten</translation>
</message> </message>
<message> <message>
<location line="+311"/> <location line="+182"/>
<source>Starred</source>
<translation>Gekennzeichnet</translation>
</message>
<message>
<location line="+167"/>
<source>Edit</source> <source>Edit</source>
<translation>Bearbeiten</translation> <translation>Bearbeiten</translation>
</message> </message>
@ -7205,17 +7215,17 @@ p, li { white-space: pre-wrap; }
<translation>Als neu bearbeiten</translation> <translation>Als neu bearbeiten</translation>
</message> </message>
<message> <message>
<location line="+30"/> <location line="+7"/>
<source>Remove Messages</source> <source>Remove Messages</source>
<translation>Nachrichten entfernen</translation> <translation>Nachrichten entfernen</translation>
</message> </message>
<message> <message>
<location line="-39"/> <location line="-40"/>
<source>Forward Message</source> <source>Forward Message</source>
<translation>Weiterleiten</translation> <translation>Weiterleiten</translation>
</message> </message>
<message> <message>
<location line="-353"/> <location line="-367"/>
<source>Click to sort by attachments</source> <source>Click to sort by attachments</source>
<translation>Klicken, um nach Anhang zu sortieren</translation> <translation>Klicken, um nach Anhang zu sortieren</translation>
</message> </message>
@ -7231,12 +7241,12 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<location line="+1"/> <location line="+1"/>
<location line="+697"/> <location line="+720"/>
<source>Click to sort by from</source> <source>Click to sort by from</source>
<translation>Klicken, um nach Von zu sortieren</translation> <translation>Klicken, um nach Von zu sortieren</translation>
</message> </message>
<message> <message>
<location line="-696"/> <location line="-719"/>
<source>Click to sort by date</source> <source>Click to sort by date</source>
<translation>Klicken, um nach Datum zu sortieren</translation> <translation>Klicken, um nach Datum zu sortieren</translation>
</message> </message>
@ -7262,7 +7272,7 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Empfohlene Dateien einblenden</translation> <translation type="obsolete">Empfohlene Dateien einblenden</translation>
</message> </message>
<message> <message>
<location line="+698"/> <location line="+721"/>
<source>Click to sort by to</source> <source>Click to sort by to</source>
<translation>Klicken, um nach Empfänger zu sortieren</translation> <translation>Klicken, um nach Empfänger zu sortieren</translation>
</message> </message>
@ -7283,8 +7293,8 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">HTML-Dateien (*.htm *.html);;Alle Dateien (*)</translation> <translation type="obsolete">HTML-Dateien (*.htm *.html);;Alle Dateien (*)</translation>
</message> </message>
<message> <message>
<location line="-653"/> <location line="-676"/>
<location line="+299"/> <location line="+313"/>
<source>Reply to All</source> <source>Reply to All</source>
<translation>Allen antworten</translation> <translation>Allen antworten</translation>
</message> </message>
@ -7296,13 +7306,13 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">&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;Arial&apos;; font-size:8pt; 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;Alle Dateien runterladen&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation> <translation type="obsolete">&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;Arial&apos;; font-size:8pt; 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;Alle Dateien runterladen&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<location filename="../gui/MessagesDialog.ui" line="+432"/> <location filename="../gui/MessagesDialog.ui" line="+427"/>
<source>Total Inbox:</source> <source>Total Inbox:</source>
<translation>Posteingang gesamt:</translation> <translation>Posteingang gesamt:</translation>
</message> </message>
<message> <message>
<location line="-277"/> <location line="-272"/>
<location filename="../gui/MessagesDialog.cpp" line="-352"/> <location filename="../gui/MessagesDialog.cpp" line="-366"/>
<source>Content</source> <source>Content</source>
<translation>Inhalt</translation> <translation>Inhalt</translation>
</message> </message>
@ -7320,20 +7330,19 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Schlagwort</translation> <translation type="obsolete">Schlagwort</translation>
</message> </message>
<message> <message>
<location line="+177"/> <location line="+172"/>
<location filename="../gui/MessagesDialog.cpp" line="+583"/> <location filename="../gui/MessagesDialog.cpp" line="+601"/>
<location line="+852"/> <location line="+869"/>
<location line="+5"/> <location line="+5"/>
<source>Trash</source> <source>Trash</source>
<translation>Papierkorb</translation> <translation>Papierkorb</translation>
</message> </message>
<message> <message>
<location line="+47"/>
<source>Favorite Tags</source> <source>Favorite Tags</source>
<translation>Schlagwörter</translation> <translation type="obsolete">Schlagwörter</translation>
</message> </message>
<message> <message>
<location line="+67"/> <location line="+114"/>
<source>Folders</source> <source>Folders</source>
<translation>Ordner</translation> <translation>Ordner</translation>
</message> </message>
@ -7346,7 +7355,7 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Neues Schlagwort...</translation> <translation type="obsolete">Neues Schlagwort...</translation>
</message> </message>
<message> <message>
<location filename="../gui/MessagesDialog.cpp" line="-1155"/> <location filename="../gui/MessagesDialog.cpp" line="-1187"/>
<source>Mark as read</source> <source>Mark as read</source>
<translation>Als gelesen markieren</translation> <translation>Als gelesen markieren</translation>
</message> </message>
@ -7361,7 +7370,7 @@ p, li { white-space: pre-wrap; }
<translation>Kennzeichnung</translation> <translation>Kennzeichnung</translation>
</message> </message>
<message> <message>
<location line="+18"/> <location line="+30"/>
<source>Undelete</source> <source>Undelete</source>
<translation>Wiederherstellen</translation> <translation>Wiederherstellen</translation>
</message> </message>
@ -7371,14 +7380,14 @@ p, li { white-space: pre-wrap; }
<translation>Papierkorb leeren</translation> <translation>Papierkorb leeren</translation>
</message> </message>
<message> <message>
<location line="+237"/> <location line="+240"/>
<location line="+841"/> <location line="+858"/>
<location line="+8"/> <location line="+8"/>
<source>Drafts</source> <source>Drafts</source>
<translation>Entwürfe</translation> <translation>Entwürfe</translation>
</message> </message>
<message> <message>
<location line="-808"/> <location line="-820"/>
<source>To</source> <source>To</source>
<translation>An</translation> <translation>An</translation>
</message> </message>
@ -7387,12 +7396,12 @@ p, li { white-space: pre-wrap; }
<translation type="obsolete">Editieren...</translation> <translation type="obsolete">Editieren...</translation>
</message> </message>
<message> <message>
<location line="-696"/> <location line="-719"/>
<source>Click to sort by star</source> <source>Click to sort by star</source>
<translation>Klicken, um nach Kennzeichnung zu sortieren</translation> <translation>Klicken, um nach Kennzeichnung zu sortieren</translation>
</message> </message>
<message> <message>
<location line="+1424"/> <location line="+1459"/>
<location line="+4"/> <location line="+4"/>
<location line="+4"/> <location line="+4"/>
<location line="+4"/> <location line="+4"/>
@ -9845,7 +9854,7 @@ Lockdatei:
<translation>Der Start mit einem RetroShare Link wird nur unter Windows unterstützt.</translation> <translation>Der Start mit einem RetroShare Link wird nur unter Windows unterstützt.</translation>
</message> </message>
<message> <message>
<location filename="../gui/TurtleRouterDialog.cpp" line="+108"/> <location filename="../gui/TurtleRouterStatistics.cpp" line="+136"/>
<source>(Age in seconds)</source> <source>(Age in seconds)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -9855,13 +9864,13 @@ Lockdatei:
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+215"/> <location line="+135"/>
<source>Evolution of search requests:</source> <source>Search requests repartition:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+1"/> <location line="+6"/>
<source>Evolution of tunnel requests:</source> <source>Tunnel requests repartition:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -12322,7 +12331,7 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>TransfersDialog</name> <name>TransfersDialog</name>
<message> <message>
<location filename="../gui/TransfersDialog.cpp" line="+291"/> <location filename="../gui/TransfersDialog.cpp" line="+297"/>
<source>Cancel</source> <source>Cancel</source>
<translation>Abbrechen</translation> <translation>Abbrechen</translation>
</message> </message>
@ -12332,7 +12341,7 @@ p, li { white-space: pre-wrap; }
<translation>Fertige ausblenden</translation> <translation>Fertige ausblenden</translation>
</message> </message>
<message> <message>
<location line="-152"/> <location line="-157"/>
<location line="+59"/> <location line="+59"/>
<source>Status</source> <source>Status</source>
<translation>Status</translation> <translation>Status</translation>
@ -12361,7 +12370,7 @@ p, li { white-space: pre-wrap; }
<translation>Zeige Cache Übertragungen</translation> <translation>Zeige Cache Übertragungen</translation>
</message> </message>
<message> <message>
<location line="+83"/> <location line="+80"/>
<source>Uploads</source> <source>Uploads</source>
<translation></translation> <translation></translation>
</message> </message>
@ -12385,11 +12394,6 @@ p, li { white-space: pre-wrap; }
<source>Outstanding</source> <source>Outstanding</source>
<translation>Ausstehend</translation> <translation>Ausstehend</translation>
</message> </message>
<message>
<location line="+25"/>
<source>Tunneling</source>
<translation></translation>
</message>
<message> <message>
<location filename="../gui/TransfersDialog.cpp" line="-2"/> <location filename="../gui/TransfersDialog.cpp" line="-2"/>
<location line="+60"/> <location line="+60"/>
@ -12445,7 +12449,7 @@ p, li { white-space: pre-wrap; }
<translation>Übertragen</translation> <translation>Übertragen</translation>
</message> </message>
<message> <message>
<location line="+118"/> <location line="+123"/>
<source>Play</source> <source>Play</source>
<translation>Abspielen</translation> <translation>Abspielen</translation>
</message> </message>
@ -12570,7 +12574,7 @@ p, li { white-space: pre-wrap; }
<translation>Soll dieser Download wirklich abgebrochen und gelöscht werden?</translation> <translation>Soll dieser Download wirklich abgebrochen und gelöscht werden?</translation>
</message> </message>
<message> <message>
<location line="-914"/> <location line="-919"/>
<source>Speed / Queue position</source> <source>Speed / Queue position</source>
<translation>Geschwindigkeits- / Warteschlangenposition</translation> <translation>Geschwindigkeits- / Warteschlangenposition</translation>
</message> </message>
@ -12597,7 +12601,17 @@ p, li { white-space: pre-wrap; }
<translation>Prüfsumme</translation> <translation>Prüfsumme</translation>
</message> </message>
<message> <message>
<location line="+95"/> <location line="+50"/>
<source>Router Statistics</source>
<translation type="unfinished">Router Statistiken</translation>
</message>
<message>
<location line="+2"/>
<source>Router Requests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>Copy RetroShare Link</source> <source>Copy RetroShare Link</source>
<translation>Kopiere RetroShare Link</translation> <translation>Kopiere RetroShare Link</translation>
</message> </message>
@ -12832,14 +12846,14 @@ p, li { white-space: pre-wrap; }
<context> <context>
<name>TurtleRouterDialog</name> <name>TurtleRouterDialog</name>
<message> <message>
<location filename="../gui/TurtleRouterDialog.cpp" line="-183"/> <location filename="../gui/TurtleRouterDialog.cpp" line="+28"/>
<location line="+94"/> <location line="+127"/>
<source>Search requests</source> <source>Search requests</source>
<translation>Suchanfragen</translation> <translation>Suchanfragen</translation>
</message> </message>
<message> <message>
<location line="-89"/> <location line="-122"/>
<location line="+109"/> <location line="+142"/>
<source>Tunnel requests</source> <source>Tunnel requests</source>
<translation>Tunnelanfragen</translation> <translation>Tunnelanfragen</translation>
</message> </message>
@ -12852,15 +12866,23 @@ p, li { white-space: pre-wrap; }
<translation>Router Statistiken</translation> <translation>Router Statistiken</translation>
</message> </message>
<message> <message>
<location line="+18"/> <location line="+14"/>
<source>F2F router information</source> <source>F2F router information</source>
<translation>F2F Routerinformationen</translation> <translation>F2F Routerinformationen</translation>
</message> </message>
</context> </context>
<context>
<name>TurtleRouterStatistics</name>
<message>
<location filename="../gui/TurtleRouterStatistics.ui" line="+14"/>
<source>Router Statistics</source>
<translation type="unfinished">Router Statistiken</translation>
</message>
</context>
<context> <context>
<name>TurtleRouterStatisticsWidget</name> <name>TurtleRouterStatisticsWidget</name>
<message> <message>
<location filename="../gui/TurtleRouterDialog.cpp" line="+79"/> <location filename="../gui/TurtleRouterStatistics.cpp" line="+11"/>
<source>Turtle router traffic:</source> <source>Turtle router traffic:</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>