From cf8f369f8575dcb9ca4d5116f3afc7cff4a080af Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Wed, 15 Oct 2014 13:50:27 +0200 Subject: Move Qt Core examples under a common subdirectory Qt Core examples were scattered into several subdirectories under qtbase/examples. This caused an issue with the example manifest file generated by QDoc; it expects to find all examples under a common directory in order to produde correct paths to the example .pro files. Qt Creator will not find the examples without a valid manifest file. This change moves the examples and edits the documentation files accordingly. Task-number: QTBUG-41963 Change-Id: I51d86782e0ba21c5c9bae5f15401ec774abe5cf8 Reviewed-by: Friedemann Kleint Reviewed-by: Oswald Buddenhagen Reviewed-by: Leena Miettinen --- examples/json/savegame/character.cpp | 101 --------------- examples/json/savegame/character.h | 76 ----------- examples/json/savegame/doc/src/savegame.qdoc | 184 --------------------------- examples/json/savegame/game.cpp | 164 ------------------------ examples/json/savegame/game.h | 75 ----------- examples/json/savegame/level.cpp | 83 ------------ examples/json/savegame/level.h | 65 ---------- examples/json/savegame/main.cpp | 70 ---------- examples/json/savegame/savegame.pro | 22 ---- 9 files changed, 840 deletions(-) delete mode 100644 examples/json/savegame/character.cpp delete mode 100644 examples/json/savegame/character.h delete mode 100644 examples/json/savegame/doc/src/savegame.qdoc delete mode 100644 examples/json/savegame/game.cpp delete mode 100644 examples/json/savegame/game.h delete mode 100644 examples/json/savegame/level.cpp delete mode 100644 examples/json/savegame/level.h delete mode 100644 examples/json/savegame/main.cpp delete mode 100644 examples/json/savegame/savegame.pro (limited to 'examples/json/savegame') diff --git a/examples/json/savegame/character.cpp b/examples/json/savegame/character.cpp deleted file mode 100644 index ef30f0eaf4..0000000000 --- a/examples/json/savegame/character.cpp +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names -** of its contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "character.h" - -Character::Character() : - mLevel(0), - mClassType(Warrior) { -} - -Character::Character(const QString &name, int level, Character::ClassType classType) : - mName(name), - mLevel(level), - mClassType(classType) -{ -} - -QString Character::name() const -{ - return mName; -} - -void Character::setName(const QString &name) -{ - mName = name; -} - -int Character::level() const -{ - return mLevel; -} - -void Character::setLevel(int level) -{ - mLevel = level; -} - -Character::ClassType Character::classType() const -{ - return mClassType; -} - -void Character::setClassType(Character::ClassType classType) -{ - mClassType = classType; -} - -//! [0] -void Character::read(const QJsonObject &json) -{ - mName = json["name"].toString(); - mLevel = json["level"].toDouble(); - mClassType = ClassType(qRound(json["classType"].toDouble())); -} -//! [0] - -//! [1] -void Character::write(QJsonObject &json) const -{ - json["name"] = mName; - json["level"] = mLevel; - json["classType"] = mClassType; -} -//! [1] diff --git a/examples/json/savegame/character.h b/examples/json/savegame/character.h deleted file mode 100644 index 32369820f4..0000000000 --- a/examples/json/savegame/character.h +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names -** of its contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef CHARACTER_H -#define CHARACTER_H - -#include -#include - -//! [0] -class Character -{ -public: - enum ClassType { - Warrior, Mage, Archer - }; - - Character(); - Character(const QString &name, int level, ClassType classType); - - QString name() const; - void setName(const QString &name); - - int level() const; - void setLevel(int level); - - ClassType classType() const; - void setClassType(ClassType classType); - - void read(const QJsonObject &json); - void write(QJsonObject &json) const; -private: - QString mName; - int mLevel; - ClassType mClassType; -}; -//! [0] - -#endif // CHARACTER_H diff --git a/examples/json/savegame/doc/src/savegame.qdoc b/examples/json/savegame/doc/src/savegame.qdoc deleted file mode 100644 index 872f2faf42..0000000000 --- a/examples/json/savegame/doc/src/savegame.qdoc +++ /dev/null @@ -1,184 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the documentation of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:FDL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. For licensing terms and -** conditions see http://qt.digia.com/licensing. For further information -** use the contact form at http://qt.digia.com/contact-us. -** -** GNU Free Documentation License Usage -** Alternatively, this file may be used under the terms of the GNU Free -** Documentation License version 1.3 as published by the Free Software -** Foundation and appearing in the file included in the packaging of -** this file. Please review the following information to ensure -** the GNU Free Documentation License version 1.3 requirements -** will be met: http://www.gnu.org/copyleft/fdl.html. -** $QT_END_LICENSE$ -** -****************************************************************************/ - -/*! - \example savegame - \title JSON Save Game Example - - \brief The JSON Save Game example demonstrates how to save and load a - small game using QJsonDocument, QJsonObject and QJsonArray. - - Many games provide save functionality, so that the player's progress through - the game can be saved and loaded at a later time. The process of saving a - game generally involves serializing each game object's member variables - to a file. Many formats can be used for this purpose, one of which is JSON. - With QJsonDocument, you also have the ability to serialize a document in a - binary format, which is great if you don't want the save file to be - readable, or if you need to keep the file size down. - - In this example, we'll demonstrate how to save and load a simple game to - and from JSON and binary formats. - - \section1 The Character Class - - The Character class represents a non-player character (NPC) in our game, and - stores the player's name, level, and class type. - - It provides read() and write() functions to serialise its member variables. - - \snippet savegame/character.h 0 - - Of particular interest to us are the read and write function - implementations: - - \snippet savegame/character.cpp 0 - - In the read() function, we assign Character's members values from the - QJsonObject argument. You can use either \l QJsonObject::operator[]() or - QJsonObject::value() to access values within the JSON object; both are - const functions and return QJsonValue::Undefined if the key is invalid. We - could check if the keys are valid before attempting to read them with - QJsonObject::contains(), but we assume that they are. - - \snippet savegame/character.cpp 1 - - In the write() function, we do the reverse of the read() function; assign - values from the Character object to the JSON object. As with accessing - values, there are two ways to set values on a QJsonObject: - \l QJsonObject::operator[]() and QJsonObject::insert(). Both will override - any existing value at the given key. - - Next up is the Level class: - - \snippet savegame/level.h 0 - - We want to have several levels in our game, each with several NPCs, so we - keep a QList of Character objects. We also provide the familiar read() and - write() functions. - - \snippet savegame/level.cpp 0 - - Containers can be written and read to and from JSON using QJsonArray. In our - case, we construct a QJsonArray from the value associated with the key - \c "npcs". Then, for each QJsonValue element in the array, we call - toObject() to get the Character's JSON object. The Character object can then - read their JSON and be appended to our NPC list. - - \note \l{Container Classes}{Associate containers} can be written by storing - the key in each value object (if it's not already). With this approach, the - container is stored as a regular array of objects, but the index of each - element is used as the key to construct the container when reading it back - in. - - \snippet savegame/level.cpp 1 - - Again, the write() function is similar to the read() function, except - reversed. - - Having established the Character and Level classes, we can move on to - the Game class: - - \snippet savegame/game.h 0 - - First of all, we define the \c SaveFormat enum. This will allow us to - specify the format in which the game should be saved: \c Json or \c Binary. - - Next, we provide accessors for the player and levels. We then expose three - functions: newGame(), saveGame() and loadGame(). - - The read() and write() functions are used by saveGame() and loadGame(). - - \snippet savegame/game.cpp 0 - - To setup a new game, we create the player and populate the levels and their - NPCs. - - \snippet savegame/game.cpp 1 - - The first thing we do in the read() function is tell the player to read - itself. We then clear the levels list so that calling loadGame() on the same - Game object twice doesn't result in old levels hanging around. - - We then populate the level list by reading each Level from a QJsonArray. - - \snippet savegame/game.cpp 2 - - We write the game to JSON similarly to how we write Level. - - \snippet savegame/game.cpp 3 - - When loading a saved game in loadGame(), the first thing we do is open the - save file based on which format it was saved to; \c "save.json" for JSON, - and \c "save.dat" for binary. We print a warning and return \c false if the - file couldn't be opened. - - Since QJsonDocument's \l{QJsonDocument::fromJson()}{fromJson()} and - \l{QJsonDocument::fromBinaryData()}{fromBinaryData()} functions both take a - QByteArray, we can read the entire contents of the save file into one, - regardless of the save format. - - After constructing the QJsonDocument, we instruct the Game object to read - itself and then return \c true to indicate success. - - \snippet savegame/game.cpp 4 - - Not surprisingly, saveGame() looks very much like loadGame(). We determine - the file extension based on the format, print a warning and return \c false - if the opening of the file fails. We then write the Game object to a - QJsonDocument, and call either QJsonDocument::toJson() or to - QJsonDocument::toBinaryData() to save the game, depending on which format - was specified. - - We are now ready to enter main(): - - \snippet savegame/main.cpp 0 - - Since we're only interested in demonstrating \e serialization of a game with - JSON, our game is not actually playable. Therefore, we only need - QCoreApplication and have no event loop. We create our game and assume that - the player had a great time and made lots of progress, altering the internal - state of our Character, Level and Game objects. - - \snippet savegame/main.cpp 1 - - When the player has finished, we save their game. For demonstration - purposes, we serialize to both JSON and binary. You can examine the contents - of the files in the same directory as the executable, although the binary - save file will contain some garbage characters (which is normal). - - To show that the saved files can be loaded again, we call loadGame() for - each format, returning \c 1 on failure. Assuming everything went well, we - return \c 0 to indicate success. - - That concludes our example. As you can see, serialization with Qt's JSON - classes is very simple and convenient. The advantages of using QJsonDocument - and friends over QDataStream, for example, is that you not only get - human-readable JSON files, but you also have the option to use a binary - format if it's required, \e without rewriting any code. - - \sa {JSON Support in Qt}, {Data Storage} -*/ diff --git a/examples/json/savegame/game.cpp b/examples/json/savegame/game.cpp deleted file mode 100644 index a08071b208..0000000000 --- a/examples/json/savegame/game.cpp +++ /dev/null @@ -1,164 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names -** of its contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "game.h" - -#include -#include -#include - -Game::Game() -{ -} - -const Character &Game::player() const -{ - return mPlayer; -} - -const QList &Game::levels() const { - return mLevels; -} - -//! [0] -void Game::newGame() { - mPlayer = Character(); - mPlayer.setName(QStringLiteral("Hero")); - mPlayer.setClassType(Character::Archer); - mPlayer.setLevel(15); - - mLevels.clear(); - - Level village; - QList villageNpcs; - villageNpcs.append(Character(QStringLiteral("Barry the Blacksmith"), 10, Character::Warrior)); - villageNpcs.append(Character(QStringLiteral("Terry the Trader"), 10, Character::Warrior)); - village.setNpcs(villageNpcs); - mLevels.append(village); - - Level dungeon; - QList dungeonNpcs; - dungeonNpcs.append(Character(QStringLiteral("Eric the Evil"), 20, Character::Mage)); - dungeonNpcs.append(Character(QStringLiteral("Eric's Sidekick #1"), 5, Character::Warrior)); - dungeonNpcs.append(Character(QStringLiteral("Eric's Sidekick #2"), 5, Character::Warrior)); - dungeon.setNpcs(dungeonNpcs); - mLevels.append(dungeon); -} -//! [0] - -//! [3] -bool Game::loadGame(Game::SaveFormat saveFormat) -{ - QFile loadFile(saveFormat == Json - ? QStringLiteral("save.json") - : QStringLiteral("save.dat")); - - if (!loadFile.open(QIODevice::ReadOnly)) { - qWarning("Couldn't open save file."); - return false; - } - - QByteArray saveData = loadFile.readAll(); - - QJsonDocument loadDoc(saveFormat == Json - ? QJsonDocument::fromJson(saveData) - : QJsonDocument::fromBinaryData(saveData)); - - read(loadDoc.object()); - - return true; -} -//! [3] - -//! [4] -bool Game::saveGame(Game::SaveFormat saveFormat) const -{ - QFile saveFile(saveFormat == Json - ? QStringLiteral("save.json") - : QStringLiteral("save.dat")); - - if (!saveFile.open(QIODevice::WriteOnly)) { - qWarning("Couldn't open save file."); - return false; - } - - QJsonObject gameObject; - write(gameObject); - QJsonDocument saveDoc(gameObject); - saveFile.write(saveFormat == Json - ? saveDoc.toJson() - : saveDoc.toBinaryData()); - - return true; -} -//! [4] - -//! [1] -void Game::read(const QJsonObject &json) -{ - mPlayer.read(json["player"].toObject()); - - mLevels.clear(); - QJsonArray levelArray = json["levels"].toArray(); - for (int levelIndex = 0; levelIndex < levelArray.size(); ++levelIndex) { - QJsonObject levelObject = levelArray[levelIndex].toObject(); - Level level; - level.read(levelObject); - mLevels.append(level); - } -} -//! [1] - -//! [2] -void Game::write(QJsonObject &json) const -{ - QJsonObject playerObject; - mPlayer.write(playerObject); - json["player"] = playerObject; - - QJsonArray levelArray; - foreach (const Level level, mLevels) { - QJsonObject levelObject; - level.write(levelObject); - levelArray.append(levelObject); - } - json["levels"] = levelArray; -} -//! [2] diff --git a/examples/json/savegame/game.h b/examples/json/savegame/game.h deleted file mode 100644 index 9216a373d1..0000000000 --- a/examples/json/savegame/game.h +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names -** of its contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef GAME_H -#define GAME_H - -#include -#include - -#include "character.h" -#include "level.h" - -//! [0] -class Game -{ -public: - Game(); - - enum SaveFormat { - Json, Binary - }; - - const Character &player() const; - const QList &levels() const; - - void newGame(); - bool loadGame(SaveFormat saveFormat); - bool saveGame(SaveFormat saveFormat) const; - - void read(const QJsonObject &json); - void write(QJsonObject &json) const; -private: - Character mPlayer; - QList mLevels; -}; -//! [0] - -#endif // GAME_H diff --git a/examples/json/savegame/level.cpp b/examples/json/savegame/level.cpp deleted file mode 100644 index afbd3e0fa0..0000000000 --- a/examples/json/savegame/level.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names -** of its contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "level.h" - -#include - -Level::Level() { -} - -const QList &Level::npcs() const -{ - return mNpcs; -} - -void Level::setNpcs(const QList &npcs) -{ - mNpcs = npcs; -} - -//! [0] -void Level::read(const QJsonObject &json) -{ - mNpcs.clear(); - QJsonArray npcArray = json["npcs"].toArray(); - for (int npcIndex = 0; npcIndex < npcArray.size(); ++npcIndex) { - QJsonObject npcObject = npcArray[npcIndex].toObject(); - Character npc; - npc.read(npcObject); - mNpcs.append(npc); - } -} -//! [0] - -//! [1] -void Level::write(QJsonObject &json) const -{ - QJsonArray npcArray; - foreach (const Character npc, mNpcs) { - QJsonObject npcObject; - npc.write(npcObject); - npcArray.append(npcObject); - } - json["npcs"] = npcArray; -} -//! [1] diff --git a/examples/json/savegame/level.h b/examples/json/savegame/level.h deleted file mode 100644 index 6cdf508c87..0000000000 --- a/examples/json/savegame/level.h +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names -** of its contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef LEVEL_H -#define LEVEL_H - -#include -#include - -#include "character.h" - -//! [0] -class Level -{ -public: - Level(); - - const QList &npcs() const; - void setNpcs(const QList &npcs); - - void read(const QJsonObject &json); - void write(QJsonObject &json) const; -private: - QList mNpcs; -}; -//! [0] - -#endif // LEVEL_H diff --git a/examples/json/savegame/main.cpp b/examples/json/savegame/main.cpp deleted file mode 100644 index 1b44306bb0..0000000000 --- a/examples/json/savegame/main.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). -** Contact: http://www.qt-project.org/legal -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names -** of its contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include - -#include "game.h" -//! [0] -int main(int argc, char *argv[]) -{ - QCoreApplication app(argc, argv); - - Game game; - game.newGame(); - // Game is played; changes are made... -//! [0] -//! [1] - if (!game.saveGame(Game::Json)) - return 1; - - if (!game.saveGame(Game::Binary)) - return 1; - - Game fromJsonGame; - if (!fromJsonGame.loadGame(Game::Json)) - return 1; - - Game fromBinaryGame; - if (!fromBinaryGame.loadGame(Game::Binary)) - return 1; - - return 0; -} -//! [1] diff --git a/examples/json/savegame/savegame.pro b/examples/json/savegame/savegame.pro deleted file mode 100644 index fd754ace80..0000000000 --- a/examples/json/savegame/savegame.pro +++ /dev/null @@ -1,22 +0,0 @@ -QT += core -QT -= gui - -TARGET = savegame -CONFIG += console -CONFIG -= app_bundle - -TEMPLATE = app - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/json/savegame -INSTALLS += target - -SOURCES += main.cpp \ - character.cpp \ - game.cpp \ - level.cpp - -HEADERS += \ - character.h \ - game.h \ - level.h -- cgit v1.2.3