mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-02-26 17:51:26 -05:00
Fixed utf8 issue with links from browser (Windows only).
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@4634 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
c1af9b13ad
commit
e3798dafe9
@ -130,7 +130,7 @@ void RetroShareLink::fromString(const QString& url)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Now try QUrl */
|
/* Now try QUrl */
|
||||||
fromUrl(QUrl::fromEncoded(url.toAscii()));
|
fromUrl(QUrl::fromEncoded(url.toUtf8().constData()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void RetroShareLink::fromUrl(const QUrl& url)
|
void RetroShareLink::fromUrl(const QUrl& url)
|
||||||
@ -444,7 +444,7 @@ QString RetroShareLink::title() const
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
QString RetroShareLink::toString(bool encoded /*= true*/) const
|
QString RetroShareLink::toString() const
|
||||||
{
|
{
|
||||||
switch (_type) {
|
switch (_type) {
|
||||||
case TYPE_UNKNOWN:
|
case TYPE_UNKNOWN:
|
||||||
@ -458,10 +458,6 @@ QString RetroShareLink::toString(bool encoded /*= true*/) const
|
|||||||
url.addQueryItem(FILE_SIZE, QString::number(_size));
|
url.addQueryItem(FILE_SIZE, QString::number(_size));
|
||||||
url.addQueryItem(FILE_HASH, _hash);
|
url.addQueryItem(FILE_HASH, _hash);
|
||||||
|
|
||||||
if (encoded) {
|
|
||||||
return url.toEncoded();
|
|
||||||
}
|
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
case TYPE_PERSON:
|
case TYPE_PERSON:
|
||||||
@ -472,10 +468,6 @@ QString RetroShareLink::toString(bool encoded /*= true*/) const
|
|||||||
url.addQueryItem(PERSON_NAME, _name);
|
url.addQueryItem(PERSON_NAME, _name);
|
||||||
url.addQueryItem(PERSON_HASH, _hash);
|
url.addQueryItem(PERSON_HASH, _hash);
|
||||||
|
|
||||||
if (encoded) {
|
|
||||||
return url.toEncoded();
|
|
||||||
}
|
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
case TYPE_FORUM:
|
case TYPE_FORUM:
|
||||||
@ -489,10 +481,6 @@ QString RetroShareLink::toString(bool encoded /*= true*/) const
|
|||||||
url.addQueryItem(FORUM_MSGID, _msgId);
|
url.addQueryItem(FORUM_MSGID, _msgId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (encoded) {
|
|
||||||
return url.toEncoded();
|
|
||||||
}
|
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
case TYPE_CHANNEL:
|
case TYPE_CHANNEL:
|
||||||
@ -506,10 +494,6 @@ QString RetroShareLink::toString(bool encoded /*= true*/) const
|
|||||||
url.addQueryItem(CHANNEL_MSGID, _msgId);
|
url.addQueryItem(CHANNEL_MSGID, _msgId);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (encoded) {
|
|
||||||
return url.toEncoded();
|
|
||||||
}
|
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
case TYPE_SEARCH:
|
case TYPE_SEARCH:
|
||||||
@ -519,10 +503,6 @@ QString RetroShareLink::toString(bool encoded /*= true*/) const
|
|||||||
url.setHost(HOST_SEARCH);
|
url.setHost(HOST_SEARCH);
|
||||||
url.addQueryItem(SEARCH_KEYWORDS, _name);
|
url.addQueryItem(SEARCH_KEYWORDS, _name);
|
||||||
|
|
||||||
if (encoded) {
|
|
||||||
return url.toEncoded();
|
|
||||||
}
|
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
case TYPE_MESSAGE:
|
case TYPE_MESSAGE:
|
||||||
@ -535,10 +515,6 @@ QString RetroShareLink::toString(bool encoded /*= true*/) const
|
|||||||
url.addQueryItem(MESSAGE_SUBJECT, _subject);
|
url.addQueryItem(MESSAGE_SUBJECT, _subject);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (encoded) {
|
|
||||||
return url.toEncoded();
|
|
||||||
}
|
|
||||||
|
|
||||||
return url.toString();
|
return url.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -557,7 +533,7 @@ QString RetroShareLink::niceName() const
|
|||||||
|
|
||||||
QString RetroShareLink::toHtml() const
|
QString RetroShareLink::toHtml() const
|
||||||
{
|
{
|
||||||
QString html = "<a href=\"" + toString(true) + "\"";
|
QString html = "<a href=\"" + toString() + "\"";
|
||||||
|
|
||||||
QString linkTitle = title();
|
QString linkTitle = title();
|
||||||
if (!linkTitle.isEmpty()) {
|
if (!linkTitle.isEmpty()) {
|
||||||
@ -570,12 +546,12 @@ QString RetroShareLink::toHtml() const
|
|||||||
|
|
||||||
QString RetroShareLink::toHtmlFull() const
|
QString RetroShareLink::toHtmlFull() const
|
||||||
{
|
{
|
||||||
return QString("<a href=\"") + toString(true) + "\">" + toString(false) + "</a>" ;
|
return QString("<a href=\"") + toString() + "\">" + toString() + "</a>" ;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString RetroShareLink::toHtmlSize() const
|
QString RetroShareLink::toHtmlSize() const
|
||||||
{
|
{
|
||||||
return QString("<a href=\"") + toString(true) + "\">" + name() +"</a>" + " " + "<font color=\"blue\">" + "(" + misc::friendlyUnit(_size) + ")" +"</font>";
|
return QString("<a href=\"") + toString() + "\">" + name() +"</a>" + " " + "<font color=\"blue\">" + "(" + misc::friendlyUnit(_size) + ")" +"</font>";
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RetroShareLink::checkName(const QString& name)
|
bool RetroShareLink::checkName(const QString& name)
|
||||||
@ -603,7 +579,7 @@ bool RetroShareLink::checkName(const QString& name)
|
|||||||
|
|
||||||
QUrl RetroShareLink::toUrl() const
|
QUrl RetroShareLink::toUrl() const
|
||||||
{
|
{
|
||||||
return QUrl(toString()) ;
|
return QUrl::fromEncoded(toString().toUtf8().constData());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RetroShareLink::checkHash(const QString& hash)
|
bool RetroShareLink::checkHash(const QString& hash)
|
||||||
|
@ -76,7 +76,7 @@ class RetroShareLink
|
|||||||
|
|
||||||
/// returns the string retroshare://file?name=&size=&hash=
|
/// returns the string retroshare://file?name=&size=&hash=
|
||||||
/// retroshare://person?name=&hash=
|
/// retroshare://person?name=&hash=
|
||||||
QString toString(bool encoded = true) const ;
|
QString toString() const;
|
||||||
/// returns the string <a href="retroshare://file?name=&size=&hash=">name</a>
|
/// returns the string <a href="retroshare://file?name=&size=&hash=">name</a>
|
||||||
/// <a href="retroshare://person?name=&hash=">name@hash</a>
|
/// <a href="retroshare://person?name=&hash=">name@hash</a>
|
||||||
QString toHtml() const ;
|
QString toHtml() const ;
|
||||||
|
@ -170,6 +170,9 @@ border-radius: 10px}</string>
|
|||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="openExternalLinks">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="0" colspan="5">
|
<item row="2" column="0" colspan="5">
|
||||||
|
@ -105,7 +105,7 @@ bool EventReceiver::sendRetroShareLink(const QString& link)
|
|||||||
if (info) {
|
if (info) {
|
||||||
#ifdef WINDOWS_SYS
|
#ifdef WINDOWS_SYS
|
||||||
if (info->wid) {
|
if (info->wid) {
|
||||||
QByteArray linkData = link.toAscii();
|
QByteArray linkData(link.toUtf8());
|
||||||
|
|
||||||
COPYDATASTRUCT send;
|
COPYDATASTRUCT send;
|
||||||
send.dwData = OP_RETROSHARELINK;
|
send.dwData = OP_RETROSHARELINK;
|
||||||
@ -149,7 +149,7 @@ bool EventReceiver::winEvent(MSG* message, long* result)
|
|||||||
COPYDATASTRUCT *data = (COPYDATASTRUCT*) message->lParam;
|
COPYDATASTRUCT *data = (COPYDATASTRUCT*) message->lParam;
|
||||||
|
|
||||||
if (data && data->dwData == OP_RETROSHARELINK) {
|
if (data && data->dwData == OP_RETROSHARELINK) {
|
||||||
received(QString::fromAscii((const char*) data->lpData, data->cbData));
|
received(QString::fromUtf8((const char*) data->lpData, data->cbData));
|
||||||
|
|
||||||
/* Keep the event from Qt */
|
/* Keep the event from Qt */
|
||||||
*result = 0;
|
*result = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user