improve unicode handling when setting Start page
This commit is contained in:
@@ -3,6 +3,7 @@ add_subdirectory(App)
|
||||
|
||||
set(Web_Scripts
|
||||
Init.py
|
||||
TestWebGui.py
|
||||
)
|
||||
|
||||
if(BUILD_GUI)
|
||||
|
||||
@@ -119,10 +119,14 @@ Py::Object BrowserViewPy::setHtml(const Py::Tuple& args)
|
||||
{
|
||||
char* HtmlCode;
|
||||
char* BaseUrl;
|
||||
if (! PyArg_ParseTuple(args.ptr(), "ss",&HtmlCode,&BaseUrl))
|
||||
if (!PyArg_ParseTuple(args.ptr(), "et|s","utf-8",&HtmlCode,&BaseUrl))
|
||||
throw Py::Exception();
|
||||
|
||||
std::string EncodedHtml = std::string(HtmlCode);
|
||||
PyMem_Free(HtmlCode);
|
||||
|
||||
if (myWebView)
|
||||
myWebView->setHtml(QString::fromUtf8(HtmlCode),QUrl(QString::fromLatin1(BaseUrl)));
|
||||
myWebView->setHtml(QString::fromUtf8(EncodedHtml.c_str()), QUrl(QString::fromLatin1(BaseUrl)));
|
||||
return Py::None();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,3 +46,5 @@ class WebWorkbench ( Workbench ):
|
||||
return "WebGui::Workbench"
|
||||
|
||||
Gui.addWorkbench(WebWorkbench())
|
||||
|
||||
FreeCAD.__unit_test__ += [ "TestWebGui" ]
|
||||
|
||||
28
src/Mod/Web/TestWebGui.py
Normal file
28
src/Mod/Web/TestWebGui.py
Normal file
@@ -0,0 +1,28 @@
|
||||
# Copyright (c) 2018 Werner Mayer <wmayer[at]users.sourceforge.net> *
|
||||
# *
|
||||
# This file is part of the FreeCAD CAx development system. *
|
||||
# *
|
||||
# This program is free software; you can redistribute it and/or modify *
|
||||
# it under the terms of the GNU Lesser General Public License (LGPL) *
|
||||
# as published by the Free Software Foundation; either version 2 of *
|
||||
# the License, or (at your option) any later version. *
|
||||
# for detail see the LICENCE text file. *
|
||||
# *
|
||||
# FreeCAD is distributed in the hope that it will be useful, *
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
# GNU Library General Public License for more details. *
|
||||
# *
|
||||
# You should have received a copy of the GNU Library General Public *
|
||||
# License along with FreeCAD; if not, write to the Free Software *
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 *
|
||||
# USA *
|
||||
#**************************************************************************
|
||||
|
||||
import FreeCAD, os, sys, unittest, WebGui
|
||||
|
||||
class WebGuiTestCases(unittest.TestCase):
|
||||
def testHtmlCase(self):
|
||||
bytestr=b'<b>Fran\xc3\xa7ais</b>'
|
||||
browser=WebGui.openBrowserWindow('Browser')
|
||||
browser.setHtml(bytestr.decode("utf8"), FreeCAD.getResourceDir())
|
||||
Reference in New Issue
Block a user