[Json] Use built-in QJSonDocument class in Qt 5

remotes/origin/falkon
nowrep 12 years ago
parent 03186060aa
commit c9a556658a
  1. 4
      .travis.yml
  2. 2
      README.md
  3. 12
      src/lib/lib.pro
  4. 26
      src/lib/tools/json.cpp

@ -11,8 +11,8 @@ before_install:
install:
- sudo apt-get -qq update
- sudo apt-get -qq install libssl-dev pkg-config libhunspell-dev libqjson-dev
- if [[ "$QT" == "qt4" ]]; then sudo apt-get -qq install libqt4-dev libqt4-webkit libqt4-sql-sqlite; fi
- sudo apt-get -qq install libssl-dev pkg-config libhunspell-dev
- if [[ "$QT" == "qt4" ]]; then sudo apt-get -qq install libqt4-dev libqt4-webkit libqt4-sql-sqlite libqjson-dev; fi
- if [[ "$QT" == "qt5" ]]; then sudo apt-add-repository -y ppa:beineri/opt-qt511; sudo apt-get update -qq; sudo apt-get install -qq qt51base qt51webkit qt51tools qt51script libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev; fi
script:

@ -1,7 +1,7 @@
QupZilla Web Browser
----------------------------------------------------------------------------------------
[![Build Status](https://travis-ci.org/QupZilla/qupzilla.png?branch=master)](https://travis-ci.org/QupZilla/qupzilla)
[![Build Status](https://travis-ci.org/QupZilla/qupzilla.png?branch=bookmarks)](https://travis-ci.org/QupZilla/qupzilla)
Homepage: [http://www.qupzilla.com](http://www.qupzilla.com)
Blog: [http://blog.qupzilla.com](http://blog.qupzilla.com)
IRC: `#qupzilla` at `irc.freenode.net`

@ -508,13 +508,17 @@ isEqual(QT_MAJOR_VERSION, 5) {
SOURCES += tools/qzregexp.cpp
}
!isEqual(QT_MAJOR_VERSION, 5) {
LIBS += -lqjson
}
!mac:unix {
target.path = $$library_folder
INSTALLS += target
!contains(DEFINES, NO_X11):LIBS += -lX11
LIBS += -lcrypto -lqjson
LIBS += -lcrypto
RESOURCES -= data/certs.qrc
}
@ -523,11 +527,11 @@ win32 {
HEADERS += other/registerqappassociation.h
SOURCES += other/registerqappassociation.cpp
LIBS += -llibeay32 -lqjson
LIBS += -llibeay32
}
os2 {
LIBS += -lcrypto -lqjson
LIBS += -lcrypto
}
mac {
@ -537,7 +541,7 @@ mac {
webview/macwebviewscroller.cpp
RESOURCES -= data/certs.qrc
LIBS += -lcrypto -lqjson -framework CoreServices
LIBS += -lcrypto -framework CoreServices
}
message(===========================================)

@ -16,18 +16,44 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* ============================================================ */
#include "json.h"
#if QT_VERSION < 0x050000
#include <qjson/parser.h>
#include <qjson/serializer.h>
#else
#include <QJsonDocument>
#endif
QVariant Json::parse(const QByteArray &data, bool *ok)
{
#if QT_VERSION < 0x050000
QJson::Parser parser;
return parser.parse(data, ok);
#else
QJsonParseError error;
QJsonDocument doc = QJsonDocument::fromJson(data, &error);
if (ok) {
*ok = error.error == QJsonParseError::NoError;
}
return doc.toVariant();
#endif
}
QByteArray Json::serialize(const QVariant &variant, bool *ok)
{
#if QT_VERSION < 0x050000
QJson::Serializer serializer;
serializer.setIndentMode(QJson::IndentFull);
return serializer.serialize(variant, ok);
#else
QJsonDocument doc = QJsonDocument::fromVariant(variant);
if (ok) {
*ok = !doc.isNull();
}
return doc.toJson(QJsonDocument::Indented);
#endif
}

Loading…
Cancel
Save