Moved strings of RsPeerDetails::autoconnect for translation to the GUI side and added integer constants for it.

Fixed sorting of available friends in MessengerWindow.
Recompile of the GUI needed.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3952 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2011-01-06 18:26:39 +00:00
parent 13ab90e14b
commit dd55b2bf74
10 changed files with 313 additions and 196 deletions

View file

@ -572,10 +572,10 @@ void MessengerWindow::insertPeers()
}
#endif // MINIMAL_RSGUI
if (sCustomString.isEmpty()) {
sslItem -> setText( COLUMN_NAME, tr("location") + " : " + QString::fromStdString(sslDetail.location) + " " + QString::fromStdString(sslDetail.autoconnect));
sslItem -> setText( COLUMN_NAME, tr("location") + " : " + QString::fromStdString(sslDetail.location) + " " + StatusDefs::connectStateString(sslDetail));
sslItem -> setToolTip( COLUMN_NAME, tr("location") + " : " + QString::fromStdString(sslDetail.location));
} else {
sslItem -> setText( COLUMN_NAME, tr("location") + " : " + QString::fromStdString(sslDetail.location) + " " + QString::fromStdString(sslDetail.autoconnect) );
sslItem -> setText( COLUMN_NAME, tr("location") + " : " + QString::fromStdString(sslDetail.location) + " " + StatusDefs::connectStateString(sslDetail));
sslItem -> setToolTip( COLUMN_NAME, tr("location") + " : " + QString::fromStdString(sslDetail.location) + " - " + sCustomString);
/* store custom state string */
@ -613,11 +613,17 @@ void MessengerWindow::insertPeers()
sslItem->setHidden(hideOfflineFriends);
gpg_online = true;
if (sslDetail.connectState) {
sslIcon = QIcon(":/images/connect_creating.png");
} else {
sslIcon = QIcon(":/images/connect_no.png");
}
sslFont.setBold(true);
sslColor = Qt::black;
} else {
sslItem->setHidden(hideOfflineFriends);
if (sslDetail.autoconnect !="Offline") {
if (sslDetail.connectState) {
sslIcon = QIcon(":/images/connect_creating.png");
} else {
sslIcon = QIcon(":/images/connect_no.png");
@ -794,7 +800,7 @@ void MessengerWindow::insertPeers()
gpg_item->setHidden(hideOfflineFriends);
gpg_item->setText(COLUMN_NAME, QString::fromStdString(detail.name));
gpgIcon = QIcon(IMAGE_AVAIBLE);
gpg_item->setData(COLUMN_NAME, ROLE_SORT, BuildStateSortString(sortState, gpg_item->text(COLUMN_NAME), PEER_STATE_ONLINE));
gpg_item->setData(COLUMN_NAME, ROLE_SORT, BuildStateSortString(sortState, gpg_item->text(COLUMN_NAME), PEER_STATE_AVAILABLE));
QFont font;
font.setBold(true);
for(i = 0; i < COLUMN_COUNT; i++) {

View file

@ -910,18 +910,18 @@ void PeersDialog::insertPeers()
if (customStateString.isEmpty() == false) {
sText += " - " + customStateString;
}
if (sslDetail.autoconnect.empty() == false) {
if (useStatusColumn) {
sslItem->setText(COLUMN_STATE, QString::fromStdString(sslDetail.autoconnect));
} else if (showState) {
sText += " [" + QString::fromStdString(sslDetail.autoconnect) + "]";
}
QString connectStateString = StatusDefs::connectStateString(sslDetail);
if (useStatusColumn) {
sslItem->setText(COLUMN_STATE, connectStateString);
} else if (showState && connectStateString.isEmpty() == false) {
sText += " [" + StatusDefs::connectStateString(sslDetail) + "]";
}
sslItem->setText( COLUMN_NAME, sText);
if (useStatusColumn == false && showState == false) {
/* Show the state as tooltip */
sslItem->setToolTip(COLUMN_NAME, QString::fromStdString(sslDetail.autoconnect));
sslItem->setToolTip(COLUMN_NAME, connectStateString);
} else {
sslItem->setToolTip(COLUMN_NAME, "");
}
@ -945,11 +945,17 @@ void PeersDialog::insertPeers()
sslItem->setHidden(hideUnconnected);
gpg_online = true;
if (sslDetail.connectState) {
sslIcon = QIcon(":/images/connect_creating.png");
} else {
sslIcon = QIcon(":/images/connect_no.png");
}
sslFont.setBold(true);
sslColor = Qt::black;
} else {
sslItem->setHidden(hideUnconnected);
if (sslDetail.autoconnect != "Offline") {
if (sslDetail.connectState) {
sslIcon = QIcon(":/images/connect_creating.png");
} else {
sslIcon = QIcon(":/images/connect_no.png");

View file

@ -25,117 +25,181 @@
#include "StatusDefs.h"
const QString StatusDefs::name(const unsigned int status)
QString StatusDefs::name(unsigned int status)
{
switch (status) {
case RS_STATUS_OFFLINE:
return qApp->translate("StatusDefs", "Offline");
case RS_STATUS_AWAY:
return qApp->translate("StatusDefs", "Away");
case RS_STATUS_BUSY:
return qApp->translate("StatusDefs", "Busy");
case RS_STATUS_ONLINE:
return qApp->translate("StatusDefs", "Online");
case RS_STATUS_INACTIVE:
return qApp->translate("StatusDefs", "Idle");
}
switch (status) {
case RS_STATUS_OFFLINE:
return qApp->translate("StatusDefs", "Offline");
case RS_STATUS_AWAY:
return qApp->translate("StatusDefs", "Away");
case RS_STATUS_BUSY:
return qApp->translate("StatusDefs", "Busy");
case RS_STATUS_ONLINE:
return qApp->translate("StatusDefs", "Online");
case RS_STATUS_INACTIVE:
return qApp->translate("StatusDefs", "Idle");
}
std::cerr << "StatusDefs::name: Unknown status requested " << status;
return "";
std::cerr << "StatusDefs::name: Unknown status requested " << status;
return "";
}
const char *StatusDefs::imageIM(const unsigned int status)
const char *StatusDefs::imageIM(unsigned int status)
{
switch (status) {
case RS_STATUS_OFFLINE:
return ":/images/im-user-offline.png";
case RS_STATUS_AWAY:
return ":/images/im-user-away.png";
case RS_STATUS_BUSY:
return ":/images/im-user-busy.png";
case RS_STATUS_ONLINE:
return ":/images/im-user.png";
case RS_STATUS_INACTIVE:
return ":/images/im-user-inactive.png";
}
switch (status) {
case RS_STATUS_OFFLINE:
return ":/images/im-user-offline.png";
case RS_STATUS_AWAY:
return ":/images/im-user-away.png";
case RS_STATUS_BUSY:
return ":/images/im-user-busy.png";
case RS_STATUS_ONLINE:
return ":/images/im-user.png";
case RS_STATUS_INACTIVE:
return ":/images/im-user-inactive.png";
}
std::cerr << "StatusDefs::imageIM: Unknown status requested " << status;
return "";
std::cerr << "StatusDefs::imageIM: Unknown status requested " << status;
return "";
}
const char *StatusDefs::imageUser(const unsigned int status)
const char *StatusDefs::imageUser(unsigned int status)
{
switch (status) {
case RS_STATUS_OFFLINE:
return ":/images/user/identityoffline24.png";
case RS_STATUS_AWAY:
return ":/images/user/identity24away.png";
case RS_STATUS_BUSY:
return ":/images/user/identity24busy.png";
case RS_STATUS_ONLINE:
return ":/images/user/identity24.png";
case RS_STATUS_INACTIVE:
return ":/images/user/identity24idle.png";
}
switch (status) {
case RS_STATUS_OFFLINE:
return ":/images/user/identityoffline24.png";
case RS_STATUS_AWAY:
return ":/images/user/identity24away.png";
case RS_STATUS_BUSY:
return ":/images/user/identity24busy.png";
case RS_STATUS_ONLINE:
return ":/images/user/identity24.png";
case RS_STATUS_INACTIVE:
return ":/images/user/identity24idle.png";
}
std::cerr << "StatusDefs::imageUser: Unknown status requested " << status;
return "";
std::cerr << "StatusDefs::imageUser: Unknown status requested " << status;
return "";
}
const QString StatusDefs::tooltip(const unsigned int status)
QString StatusDefs::tooltip(unsigned int status)
{
switch (status) {
case RS_STATUS_OFFLINE:
return qApp->translate("StatusDefs", "Friend is offline");
case RS_STATUS_AWAY:
return qApp->translate("StatusDefs", "Friend is away");
case RS_STATUS_BUSY:
return qApp->translate("StatusDefs", "Friend is busy");
case RS_STATUS_ONLINE:
return qApp->translate("StatusDefs", "Friend is online");
case RS_STATUS_INACTIVE:
return qApp->translate("StatusDefs", "Friend is idle");
}
switch (status) {
case RS_STATUS_OFFLINE:
return qApp->translate("StatusDefs", "Friend is offline");
case RS_STATUS_AWAY:
return qApp->translate("StatusDefs", "Friend is away");
case RS_STATUS_BUSY:
return qApp->translate("StatusDefs", "Friend is busy");
case RS_STATUS_ONLINE:
return qApp->translate("StatusDefs", "Friend is online");
case RS_STATUS_INACTIVE:
return qApp->translate("StatusDefs", "Friend is idle");
}
std::cerr << "StatusDefs::tooltip: Unknown status requested " << status;
return "";
std::cerr << "StatusDefs::tooltip: Unknown status requested " << status;
return "";
}
const QColor StatusDefs::textColor(const unsigned int status)
QColor StatusDefs::textColor(unsigned int status)
{
switch (status) {
case RS_STATUS_OFFLINE:
return Qt::black;
case RS_STATUS_AWAY:
return Qt::gray;
case RS_STATUS_BUSY:
return Qt::gray;
case RS_STATUS_ONLINE:
return Qt::darkBlue;
case RS_STATUS_INACTIVE:
return Qt::gray;
}
switch (status) {
case RS_STATUS_OFFLINE:
return Qt::black;
case RS_STATUS_AWAY:
return Qt::gray;
case RS_STATUS_BUSY:
return Qt::gray;
case RS_STATUS_ONLINE:
return Qt::darkBlue;
case RS_STATUS_INACTIVE:
return Qt::gray;
}
std::cerr << "StatusDefs::textColor: Unknown status requested " << status;
return Qt::black;
std::cerr << "StatusDefs::textColor: Unknown status requested " << status;
return Qt::black;
}
const QFont StatusDefs::font(const unsigned int status)
QFont StatusDefs::font(unsigned int status)
{
QFont font;
QFont font;
switch (status) {
case RS_STATUS_AWAY:
case RS_STATUS_BUSY:
case RS_STATUS_ONLINE:
case RS_STATUS_INACTIVE:
font.setBold(true);
return font;
case RS_STATUS_OFFLINE:
font.setBold(false);
return font;
}
switch (status) {
case RS_STATUS_AWAY:
case RS_STATUS_BUSY:
case RS_STATUS_ONLINE:
case RS_STATUS_INACTIVE:
font.setBold(true);
return font;
case RS_STATUS_OFFLINE:
font.setBold(false);
return font;
}
std::cerr << "StatusDefs::font: Unknown status requested " << status;
return font;
std::cerr << "StatusDefs::font: Unknown status requested " << status;
return font;
}
QString StatusDefs::peerStateString(int peerState)
{
if (peerState & RS_PEER_STATE_CONNECTED) {
return qApp->translate("StatusDefs", "Connected");
} else if (peerState & RS_PEER_STATE_UNREACHABLE) {
return qApp->translate("StatusDefs", "Unreachable");
} else if (peerState & RS_PEER_STATE_ONLINE) {
return qApp->translate("StatusDefs", "Available");
} else if (peerState & RS_PEER_STATE_FRIEND) {
return qApp->translate("StatusDefs", "Offline");
}
return qApp->translate("StatusDefs", "Neighbour");
}
QString StatusDefs::connectStateString(RsPeerDetails &details)
{
QString stateString;
switch (details.connectState) {
case 0:
stateString = peerStateString(details.state);
break;
case RS_PEER_CONNECTSTATE_TRYING_TUNNEL:
stateString = qApp->translate("StatusDefs", "Trying tunnel connection");
break;
case RS_PEER_CONNECTSTATE_TRYING_TCP:
stateString = qApp->translate("StatusDefs", "Trying TCP");
break;
case RS_PEER_CONNECTSTATE_TRYING_UDP:
stateString = qApp->translate("StatusDefs", "Trying UDP");
break;
case RS_PEER_CONNECTSTATE_CONNECTED_TCP:
stateString = qApp->translate("StatusDefs", "Connected: TCP");
break;
case RS_PEER_CONNECTSTATE_CONNECTED_UDP:
stateString = qApp->translate("StatusDefs", "Connected: UDP");
break;
case RS_PEER_CONNECTSTATE_CONNECTED_TUNNEL:
stateString = qApp->translate("StatusDefs", "Connected: Tunnel");
break;
case RS_PEER_CONNECTSTATE_CONNECTED_UNKNOWN:
stateString = qApp->translate("StatusDefs", "Connected: Unknown");
break;
}
if (details.connectStateString.empty() == false) {
if (stateString.isEmpty() == false) {
stateString += ": ";
}
stateString += QString::fromStdString(details.connectStateString);
}
/* HACK to display DHT Status info too */
if (details.foundDHT) {
if (stateString.isEmpty() == false) {
stateString += ", ";
}
stateString += qApp->translate("StatusDefs", "DHT: Contact");
}
return stateString;
}

View file

@ -26,16 +26,21 @@
#include <QColor>
#include <QFont>
class RsPeerDetails;
class StatusDefs
{
public:
static const QString name(const unsigned int status);
static const char* imageIM(const unsigned int status);
static const char* imageUser(const unsigned int status);
static const QString tooltip(const unsigned int status);
static QString name(unsigned int status);
static const char* imageIM(unsigned int status);
static const char* imageUser(unsigned int status);
static QString tooltip(unsigned int status);
static const QColor textColor(const unsigned int status);
static const QFont font(const unsigned int status);
static QColor textColor(unsigned int status);
static QFont font(unsigned int status);
static QString peerStateString(int peerState);
static QString connectStateString(RsPeerDetails &details);
};
#endif

View file

@ -36,6 +36,7 @@
#include "gui/help/browser/helpbrowser.h"
#include "gui/common/PeerDefs.h"
#include "gui/MainWindow.h"
#include "gui/common/StatusDefs.h"
static QMap<std::string, ConfCertDialog*> instances;
@ -159,8 +160,8 @@ void ConfCertDialog::load()
ui.extPort -> setValue(detail.extPort);
ui.dynDNS->setText(QString::fromStdString(detail.dyndns));
ui.statusline->setText(QString::fromStdString(detail.autoconnect));
ui.statusline->setText(StatusDefs::connectStateString(detail));
ui.ipAddressList->clear();
for(std::list<std::string>::const_iterator it(detail.ipAddressList.begin());it!=detail.ipAddressList.end();++it)

View file

@ -26,6 +26,7 @@
#include "FeedHolder.h"
#include "../RsAutoUpdatePage.h"
#include "gui/msgs/MessageComposer.h"
#include "gui/common/StatusDefs.h"
#include "gui/notifyqt.h"
@ -178,7 +179,7 @@ void PeerItem::updateItem()
}
/* top Level info */
QString status = QString::fromStdString(RsPeerStateString(details.state));
QString status = StatusDefs::peerStateString(details.state);
#if 0
/* Append additional status info from status service */
@ -201,7 +202,7 @@ void PeerItem::updateItem()
ipLabel->setText(QString::fromStdString(out.str()));
}
connLabel->setText(QString::fromStdString(details.autoconnect));
connLabel->setText(StatusDefs::connectStateString(details));
/* do buttons */
chatButton->setEnabled(details.state & RS_PEER_STATE_CONNECTED);

View file

@ -1016,12 +1016,12 @@ p, li { white-space: pre-wrap; }
<translation>Hinzufügen</translation>
</message>
<message>
<location line="+79"/>
<location line="+73"/>
<source>Display</source>
<translation type="unfinished">Anzeige</translation>
</message>
<message>
<location line="+275"/>
<location line="+269"/>
<source>Set all to read</source>
<translation>Alle als gelesen markieren</translation>
</message>
@ -1071,7 +1071,7 @@ p, li { white-space: pre-wrap; }
<translation>Andere Kanäle</translation>
</message>
<message>
<location filename="../gui/ChannelFeed.ui" line="-174"/>
<location filename="../gui/ChannelFeed.ui" line="-168"/>
<location filename="../gui/ChannelFeed.cpp" line="+50"/>
<source>Post to Channel</source>
<translation>Kanalbeitrag erstellen</translation>
@ -1516,7 +1516,7 @@ p, li { white-space: pre-wrap; }
<translation>Übernehmen und Schliessen</translation>
</message>
<message>
<location filename="../gui/connect/ConfCertDialog.cpp" line="+127"/>
<location filename="../gui/connect/ConfCertDialog.cpp" line="+128"/>
<location line="+201"/>
<source>RetroShare</source>
<translation></translation>
@ -3644,7 +3644,7 @@ p, li { white-space: pre-wrap; }
<translation>Hinzufügen</translation>
</message>
<message>
<location line="+47"/>
<location line="+41"/>
<source>Start new Thread for Selected Forum</source>
<translation>Starte ein neues Thema im ausgewählten Forum</translation>
</message>
@ -3654,7 +3654,7 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished">Anzeige</translation>
</message>
<message>
<location line="+100"/>
<location line="+94"/>
<source>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; }
@ -7134,7 +7134,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location line="-20"/>
<location filename="../gui/feeds/PeerItem.cpp" line="+246"/>
<location filename="../gui/feeds/PeerItem.cpp" line="+247"/>
<source>Expand</source>
<translation>Erweitern</translation>
</message>
@ -10600,11 +10600,12 @@ Bist Du sicher?</translation>
<name>StatusDefs</name>
<message>
<location filename="../gui/common/StatusDefs.cpp" line="+32"/>
<location line="+120"/>
<source>Offline</source>
<translation></translation>
</message>
<message>
<location line="+2"/>
<location line="-118"/>
<source>Away</source>
<translation>Abwesend</translation>
</message>
@ -10648,6 +10649,66 @@ Bist Du sicher?</translation>
<source>Friend is idle</source>
<translation>Freund ist untätig</translation>
</message>
<message>
<location line="+49"/>
<source>Connected</source>
<translation>Verbunden</translation>
</message>
<message>
<location line="+2"/>
<source>Unreachable</source>
<translation>Unerreichbar</translation>
</message>
<message>
<location line="+2"/>
<source>Available</source>
<translation>Verfügbar</translation>
</message>
<message>
<location line="+5"/>
<source>Neighbour</source>
<translation>Nachbar</translation>
</message>
<message>
<location line="+12"/>
<source>Trying tunnel connection</source>
<translation>Versuche Tunnelverbindung</translation>
</message>
<message>
<location line="+3"/>
<source>Trying TCP</source>
<translation>Versuche TCP</translation>
</message>
<message>
<location line="+3"/>
<source>Trying UDP</source>
<translation>Versuche UDP</translation>
</message>
<message>
<location line="+3"/>
<source>Connected: TCP</source>
<translation>Verbunden: TCP</translation>
</message>
<message>
<location line="+3"/>
<source>Connected: UDP</source>
<translation>Verbunden: UDP</translation>
</message>
<message>
<location line="+3"/>
<source>Connected: Tunnel</source>
<translation>Verbunden: Tunnel</translation>
</message>
<message>
<location line="+3"/>
<source>Connected: Unknown</source>
<translation>Verbunden: Unbekannt</translation>
</message>
<message>
<location line="+16"/>
<source>DHT: Contact</source>
<translation>DHT: Kontakt</translation>
</message>
</context>
<context>
<name>StatusMessage</name>