mirror of
https://invent.kde.org/network/falkon.git
synced 2024-12-20 18:56:34 +01:00
Merge branch 'master' of git://github.com/srazi/qupzilla into srazi-master
Updated coding style.
This commit is contained in:
commit
94f1af7f2f
@ -111,86 +111,6 @@ void DownloadFileHelper::handleUnsupportedContent(QNetworkReply* reply, const Do
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// http://stackoverflow.com/questions/1031645/how-to-detect-utf-8-in-plain-c
|
|
||||||
static bool isUtf8(const char* string)
|
|
||||||
{
|
|
||||||
if (!string) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
const unsigned char* bytes = (const unsigned char*)string;
|
|
||||||
while (*bytes) {
|
|
||||||
if ((// ASCII
|
|
||||||
bytes[0] == 0x09 ||
|
|
||||||
bytes[0] == 0x0A ||
|
|
||||||
bytes[0] == 0x0D ||
|
|
||||||
(0x20 <= bytes[0] && bytes[0] <= 0x7F)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
bytes += 1;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((// non-overlong 2-byte
|
|
||||||
(0xC2 <= bytes[0] && bytes[0] <= 0xDF) &&
|
|
||||||
(0x80 <= bytes[1] && bytes[1] <= 0xBF)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
bytes += 2;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((// excluding overlongs
|
|
||||||
bytes[0] == 0xE0 &&
|
|
||||||
(0xA0 <= bytes[1] && bytes[1] <= 0xBF) &&
|
|
||||||
(0x80 <= bytes[2] && bytes[2] <= 0xBF)
|
|
||||||
) ||
|
|
||||||
(// straight 3-byte
|
|
||||||
((0xE1 <= bytes[0] && bytes[0] <= 0xEC) ||
|
|
||||||
bytes[0] == 0xEE ||
|
|
||||||
bytes[0] == 0xEF) &&
|
|
||||||
(0x80 <= bytes[1] && bytes[1] <= 0xBF) &&
|
|
||||||
(0x80 <= bytes[2] && bytes[2] <= 0xBF)
|
|
||||||
) ||
|
|
||||||
(// excluding surrogates
|
|
||||||
bytes[0] == 0xED &&
|
|
||||||
(0x80 <= bytes[1] && bytes[1] <= 0x9F) &&
|
|
||||||
(0x80 <= bytes[2] && bytes[2] <= 0xBF)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
bytes += 3;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((// planes 1-3
|
|
||||||
bytes[0] == 0xF0 &&
|
|
||||||
(0x90 <= bytes[1] && bytes[1] <= 0xBF) &&
|
|
||||||
(0x80 <= bytes[2] && bytes[2] <= 0xBF) &&
|
|
||||||
(0x80 <= bytes[3] && bytes[3] <= 0xBF)
|
|
||||||
) ||
|
|
||||||
(// planes 4-15
|
|
||||||
(0xF1 <= bytes[0] && bytes[0] <= 0xF3) &&
|
|
||||||
(0x80 <= bytes[1] && bytes[1] <= 0xBF) &&
|
|
||||||
(0x80 <= bytes[2] && bytes[2] <= 0xBF) &&
|
|
||||||
(0x80 <= bytes[3] && bytes[3] <= 0xBF)
|
|
||||||
) ||
|
|
||||||
(// plane 16
|
|
||||||
bytes[0] == 0xF4 &&
|
|
||||||
(0x80 <= bytes[1] && bytes[1] <= 0x8F) &&
|
|
||||||
(0x80 <= bytes[2] && bytes[2] <= 0xBF) &&
|
|
||||||
(0x80 <= bytes[3] && bytes[3] <= 0xBF)
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
bytes += 4;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString DownloadFileHelper::parseContentDisposition(const QByteArray &header)
|
QString DownloadFileHelper::parseContentDisposition(const QByteArray &header)
|
||||||
{
|
{
|
||||||
QString path;
|
QString path;
|
||||||
@ -201,7 +121,7 @@ QString DownloadFileHelper::parseContentDisposition(const QByteArray &header)
|
|||||||
|
|
||||||
QString value;
|
QString value;
|
||||||
|
|
||||||
if (isUtf8(header.constData())) {
|
if (QzTools::isUtf8(header.constData())) {
|
||||||
value = QString::fromUtf8(header);
|
value = QString::fromUtf8(header);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -110,7 +110,7 @@ void FtpSchemeReply::processCommand(int id, bool err)
|
|||||||
m_ftp->list();
|
m_ftp->list();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
m_ftpCdId = m_ftp->cd(url().path());
|
m_ftpCdId = m_ftp->cd(QString::fromLatin1(QByteArray::fromPercentEncoding(url().path().toUtf8())));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -122,6 +122,13 @@ void FtpSchemeReply::processCommand(int id, bool err)
|
|||||||
if (m_isGoingToDownload) {
|
if (m_isGoingToDownload) {
|
||||||
foreach(const QUrlInfo & item, m_items) {
|
foreach(const QUrlInfo & item, m_items) {
|
||||||
if (item.isFile() && item.name() == m_probablyFileForDownload) {
|
if (item.isFile() && item.name() == m_probablyFileForDownload) {
|
||||||
|
QByteArray decodedUrl = QByteArray::fromPercentEncoding(url().toString().toUtf8());
|
||||||
|
if (QzTools::isUtf8(decodedUrl.constData())) {
|
||||||
|
m_request.setUrl(QUrl(QString::fromUtf8(decodedUrl)));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_request.setUrl(QUrl(QString::fromLatin1(decodedUrl)));
|
||||||
|
}
|
||||||
emit downloadRequest(m_request);
|
emit downloadRequest(m_request);
|
||||||
abort();
|
abort();
|
||||||
break;
|
break;
|
||||||
@ -145,8 +152,13 @@ void FtpSchemeReply::processCommand(int id, bool err)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FtpSchemeReply::processListInfo(const QUrlInfo &urlInfo)
|
void FtpSchemeReply::processListInfo(QUrlInfo urlInfo)
|
||||||
{
|
{
|
||||||
|
QByteArray nameLatin1 = urlInfo.name().toLatin1();
|
||||||
|
if (QzTools::isUtf8(nameLatin1.constData())) {
|
||||||
|
urlInfo.setName(QString::fromUtf8(nameLatin1));
|
||||||
|
}
|
||||||
|
|
||||||
m_items.append(urlInfo);
|
m_items.append(urlInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,7 +259,16 @@ QString FtpSchemeReply::loadDirectory()
|
|||||||
}
|
}
|
||||||
|
|
||||||
QString page = sPage;
|
QString page = sPage;
|
||||||
page.replace(QLatin1String("%TITLE%"), tr("Index for %1").arg(url().toString()));
|
|
||||||
|
QByteArray titleByteArray = QByteArray::fromPercentEncoding(url().toString().toUtf8());
|
||||||
|
QString title;
|
||||||
|
if (QzTools::isUtf8(titleByteArray.constData())) {
|
||||||
|
title = QString::fromUtf8(titleByteArray);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
title = QString::fromLatin1(titleByteArray);
|
||||||
|
}
|
||||||
|
page.replace(QLatin1String("%TITLE%"), tr("Index for %1").arg(title));
|
||||||
|
|
||||||
QString upDirDisplay = QLatin1String("none");
|
QString upDirDisplay = QLatin1String("none");
|
||||||
QString tBody;
|
QString tBody;
|
||||||
@ -334,12 +355,18 @@ void FtpSchemeReply::ftpReplyErrorHandler(int id)
|
|||||||
}
|
}
|
||||||
QStringList sections = url().path().split(QLatin1Char('/'), QString::SkipEmptyParts);
|
QStringList sections = url().path().split(QLatin1Char('/'), QString::SkipEmptyParts);
|
||||||
if (!sections.isEmpty()) {
|
if (!sections.isEmpty()) {
|
||||||
m_probablyFileForDownload = sections.takeLast();
|
QByteArray lastSection = QByteArray::fromPercentEncoding(sections.takeLast().toUtf8());
|
||||||
|
if (QzTools::isUtf8(lastSection.constData())) {
|
||||||
|
m_probablyFileForDownload = QString::fromUtf8(lastSection);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
m_probablyFileForDownload = QString::fromLatin1(lastSection);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!m_probablyFileForDownload.isEmpty()) {
|
if (!m_probablyFileForDownload.isEmpty()) {
|
||||||
m_isGoingToDownload = true;
|
m_isGoingToDownload = true;
|
||||||
QString parentOfPath = QString("/%1/").arg(sections.join(QLatin1String("/")));
|
QString parentOfPath = QString("/%1/").arg(sections.join(QLatin1String("/")));
|
||||||
m_ftpCdId = m_ftp->cd(parentOfPath);
|
m_ftpCdId = m_ftp->cd(QString::fromLatin1(QByteArray::fromPercentEncoding(parentOfPath.toUtf8())));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
abort();
|
abort();
|
||||||
@ -368,7 +395,7 @@ FtpDownloader::FtpDownloader(QObject* parent)
|
|||||||
|
|
||||||
void FtpDownloader::download(const QUrl &url, QIODevice* dev)
|
void FtpDownloader::download(const QUrl &url, QIODevice* dev)
|
||||||
{
|
{
|
||||||
m_url = url;
|
m_url = QUrl(QString::fromLatin1(QByteArray::fromPercentEncoding(url.toString().toUtf8())));
|
||||||
m_dev = dev;
|
m_dev = dev;
|
||||||
QString server = m_url.host();
|
QString server = m_url.host();
|
||||||
if (server.isEmpty()) {
|
if (server.isEmpty()) {
|
||||||
|
@ -65,7 +65,7 @@ protected:
|
|||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void processCommand(int id, bool err);
|
void processCommand(int id, bool err);
|
||||||
void processListInfo(const QUrlInfo &urlInfo);
|
void processListInfo(QUrlInfo urlInfo);
|
||||||
void processData();
|
void processData();
|
||||||
QString loadDirectory();
|
QString loadDirectory();
|
||||||
void loadPage();
|
void loadPage();
|
||||||
|
@ -362,7 +362,7 @@ QIcon QzTools::iconFromFileName(const QString &fileName)
|
|||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QT_QUPZILLA_EXPORT QzTools::resolveFromPath(const QString &name)
|
QString QzTools::resolveFromPath(const QString &name)
|
||||||
{
|
{
|
||||||
const QString &path = qgetenv("PATH").trimmed();
|
const QString &path = qgetenv("PATH").trimmed();
|
||||||
|
|
||||||
@ -382,6 +382,86 @@ QString QT_QUPZILLA_EXPORT QzTools::resolveFromPath(const QString &name)
|
|||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// http://stackoverflow.com/questions/1031645/how-to-detect-utf-8-in-plain-c
|
||||||
|
bool QzTools::isUtf8(const char* string)
|
||||||
|
{
|
||||||
|
if (!string) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const unsigned char* bytes = (const unsigned char*)string;
|
||||||
|
while (*bytes) {
|
||||||
|
if ((// ASCII
|
||||||
|
bytes[0] == 0x09 ||
|
||||||
|
bytes[0] == 0x0A ||
|
||||||
|
bytes[0] == 0x0D ||
|
||||||
|
(0x20 <= bytes[0] && bytes[0] <= 0x7F)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
bytes += 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((// non-overlong 2-byte
|
||||||
|
(0xC2 <= bytes[0] && bytes[0] <= 0xDF) &&
|
||||||
|
(0x80 <= bytes[1] && bytes[1] <= 0xBF)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
bytes += 2;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((// excluding overlongs
|
||||||
|
bytes[0] == 0xE0 &&
|
||||||
|
(0xA0 <= bytes[1] && bytes[1] <= 0xBF) &&
|
||||||
|
(0x80 <= bytes[2] && bytes[2] <= 0xBF)
|
||||||
|
) ||
|
||||||
|
(// straight 3-byte
|
||||||
|
((0xE1 <= bytes[0] && bytes[0] <= 0xEC) ||
|
||||||
|
bytes[0] == 0xEE ||
|
||||||
|
bytes[0] == 0xEF) &&
|
||||||
|
(0x80 <= bytes[1] && bytes[1] <= 0xBF) &&
|
||||||
|
(0x80 <= bytes[2] && bytes[2] <= 0xBF)
|
||||||
|
) ||
|
||||||
|
(// excluding surrogates
|
||||||
|
bytes[0] == 0xED &&
|
||||||
|
(0x80 <= bytes[1] && bytes[1] <= 0x9F) &&
|
||||||
|
(0x80 <= bytes[2] && bytes[2] <= 0xBF)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
bytes += 3;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((// planes 1-3
|
||||||
|
bytes[0] == 0xF0 &&
|
||||||
|
(0x90 <= bytes[1] && bytes[1] <= 0xBF) &&
|
||||||
|
(0x80 <= bytes[2] && bytes[2] <= 0xBF) &&
|
||||||
|
(0x80 <= bytes[3] && bytes[3] <= 0xBF)
|
||||||
|
) ||
|
||||||
|
(// planes 4-15
|
||||||
|
(0xF1 <= bytes[0] && bytes[0] <= 0xF3) &&
|
||||||
|
(0x80 <= bytes[1] && bytes[1] <= 0xBF) &&
|
||||||
|
(0x80 <= bytes[2] && bytes[2] <= 0xBF) &&
|
||||||
|
(0x80 <= bytes[3] && bytes[3] <= 0xBF)
|
||||||
|
) ||
|
||||||
|
(// plane 16
|
||||||
|
bytes[0] == 0xF4 &&
|
||||||
|
(0x80 <= bytes[1] && bytes[1] <= 0x8F) &&
|
||||||
|
(0x80 <= bytes[2] && bytes[2] <= 0xBF) &&
|
||||||
|
(0x80 <= bytes[3] && bytes[3] <= 0xBF)
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
bytes += 4;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// Qt5 migration help functions
|
// Qt5 migration help functions
|
||||||
bool QzTools::isCertificateValid(const QSslCertificate &cert)
|
bool QzTools::isCertificateValid(const QSslCertificate &cert)
|
||||||
{
|
{
|
||||||
|
@ -59,6 +59,7 @@ QString QT_QUPZILLA_EXPORT applyDirectionToPage(QString &pageContents);
|
|||||||
QString QT_QUPZILLA_EXPORT resolveFromPath(const QString &name);
|
QString QT_QUPZILLA_EXPORT resolveFromPath(const QString &name);
|
||||||
|
|
||||||
QIcon QT_QUPZILLA_EXPORT iconFromFileName(const QString &fileName);
|
QIcon QT_QUPZILLA_EXPORT iconFromFileName(const QString &fileName);
|
||||||
|
bool QT_QUPZILLA_EXPORT isUtf8(const char* string);
|
||||||
|
|
||||||
QString QT_QUPZILLA_EXPORT buildSystem();
|
QString QT_QUPZILLA_EXPORT buildSystem();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user