fix encoding problem when clicking a link on StartPage if application is installed into a directory with non-ASCII characters
This commit is contained in:
@@ -85,6 +85,7 @@
|
||||
|
||||
#include <Base/Parameter.h>
|
||||
#include <Base/Exception.h>
|
||||
#include <Base/Tools.h>
|
||||
#include <CXX/Extensions.hxx>
|
||||
|
||||
using namespace WebGui;
|
||||
@@ -224,7 +225,7 @@ Py::Object BrowserViewPy::setHtml(const Py::Tuple& args)
|
||||
PyMem_Free(HtmlCode);
|
||||
|
||||
if (myWebView)
|
||||
myWebView->setHtml(QString::fromUtf8(EncodedHtml.c_str()), QUrl(QString::fromLatin1(BaseUrl)));
|
||||
myWebView->setHtml(QString::fromUtf8(EncodedHtml.c_str()), QUrl(QString::fromUtf8(BaseUrl)));
|
||||
return Py::None();
|
||||
}
|
||||
}
|
||||
@@ -439,7 +440,8 @@ BrowserView::BrowserView(QWidget* parent)
|
||||
connect(view->page(), SIGNAL(iconChanged(const QIcon &)),
|
||||
this, SLOT(setWindowIcon(const QIcon &)));
|
||||
#endif
|
||||
|
||||
connect(view->page(), SIGNAL(linkHovered(const QString &)),
|
||||
this, SLOT(onLinkHovered(const QString &)));
|
||||
connect(view, SIGNAL(viewSource(const QUrl&)),
|
||||
this, SLOT(onViewSource(const QUrl&)));
|
||||
connect(view, SIGNAL(loadStarted()),
|
||||
@@ -463,6 +465,11 @@ BrowserView::~BrowserView()
|
||||
delete view;
|
||||
}
|
||||
|
||||
void BrowserView::onLinkHovered(const QString& url)
|
||||
{
|
||||
Gui::getMainWindow()->statusBar()->showMessage(url);
|
||||
}
|
||||
|
||||
#ifdef QTWEBENGINE
|
||||
void BrowserView::urlFilter(const QUrl &url)
|
||||
#else
|
||||
@@ -523,7 +530,12 @@ void BrowserView::onLinkClicked (const QUrl & url)
|
||||
Gui::Command::doCommand(Gui::Command::Gui,q.toStdString().c_str());
|
||||
}
|
||||
// Gui::Command::doCommand(Gui::Command::Gui,"execfile('%s')",(const char*) fi.absoluteFilePath(). toLocal8Bit());
|
||||
Gui::Command::doCommand(Gui::Command::Gui,"exec(open('%s').read())",(const char*) fi.absoluteFilePath() .toLocal8Bit());
|
||||
QString filename = Base::Tools::escapeEncodeFilename(fi.absoluteFilePath());
|
||||
#if PY_MAJOR_VERSION < 3
|
||||
Gui::Command::doCommand(Gui::Command::Gui,"exec(open(unicode('%s', 'utf-8')).read())",(const char*) filename.toUtf8());
|
||||
#else
|
||||
Gui::Command::doCommand(Gui::Command::Gui,"exec(open('%s').read())",(const char*) filename.toUtf8());
|
||||
#endif
|
||||
}
|
||||
catch (const Base::Exception& e) {
|
||||
QMessageBox::critical(this, tr("Error"), QString::fromUtf8(e.what()));
|
||||
|
||||
@@ -119,6 +119,7 @@ protected Q_SLOTS:
|
||||
void onUnsupportedContent(QNetworkReply* reply);
|
||||
void onLinkClicked (const QUrl& url);
|
||||
#endif
|
||||
void onLinkHovered(const QString& url);
|
||||
void onViewSource(const QUrl &url);
|
||||
void onOpenLinkInExternalBrowser(const QUrl& url);
|
||||
void onOpenLinkInNewWindow(const QUrl&);
|
||||
|
||||
Reference in New Issue
Block a user