Changed: #1302 Used setData(QVariant) instead setGraphicsData().

--HG--
branch : gsoc2011-worldeditorqt
This commit is contained in:
dnk-88 2011-08-10 17:13:06 +03:00
parent 1b1bab4cd8
commit a65eb22feb
4 changed files with 17 additions and 21 deletions

View file

@ -132,16 +132,6 @@ void Node::setData(int key, const QVariant &data)
m_data[key] = data; m_data[key] = data;
} }
void Node::setGraphicsData(int key, void *pointerToData)
{
m_graphicsData[key] = pointerToData;
}
void *Node::graphicsData(int key) const
{
return m_graphicsData[key];
}
Node *Node::parent() Node *Node::parent()
{ {
return m_parent; return m_parent;

View file

@ -35,9 +35,6 @@ class RootPrimitiveNode;
class LandscapeNode; class LandscapeNode;
class PrimitiveNode; class PrimitiveNode;
const int GRAPHICS_DATA_QT2D = 0;
const int GRAPHICS_DATA_NEL3D = 1;
/* /*
@class Node @class Node
@brief @brief
@ -93,10 +90,6 @@ public:
/// Return this node's custom data for the key key as a QVariant. /// Return this node's custom data for the key key as a QVariant.
QVariant data(int key) const; QVariant data(int key) const;
void setGraphicsData(int key, void *pointerToData);
void *graphicsData(int key) const;
/// Return a type this node. /// Return a type this node.
virtual NodeType type() const; virtual NodeType type() const;
@ -106,7 +99,6 @@ private:
Node *m_parent; Node *m_parent;
QList<Node *> m_children; QList<Node *> m_children;
QHash<int, QVariant> m_data; QHash<int, QVariant> m_data;
QHash<int, void *> m_graphicsData;
}; };
/* /*
@ -183,4 +175,6 @@ private:
} /* namespace WorldEditor */ } /* namespace WorldEditor */
Q_DECLARE_METATYPE(WorldEditor::Node *)
#endif // PRIMITIVE_ITEM_H #endif // PRIMITIVE_ITEM_H

View file

@ -16,6 +16,7 @@
// Project includes // Project includes
#include "world_editor_actions.h" #include "world_editor_actions.h"
#include "world_editor_constants.h"
#include "world_editor_misc.h" #include "world_editor_misc.h"
#include "primitive_item.h" #include "primitive_item.h"
#include "world_editor_scene.h" #include "world_editor_scene.h"
@ -37,6 +38,7 @@
// Qt includes // Qt includes
#include <QModelIndex> #include <QModelIndex>
#include <QPersistentModelIndex>
namespace WorldEditor namespace WorldEditor
{ {
@ -89,8 +91,13 @@ void addNewGraphicsItems(const QModelIndex &primIndex, PrimitivesTreeModel *mode
break; break;
} }
} }
QVariant variantNode;
variantNode.setValue<Node *>(node);
item->setData(Constants::WORLD_EDITOR_NODE, variantNode);
node->setGraphicsData(GRAPHICS_DATA_QT2D, item); QVariant graphicsData;
graphicsData.setValue<QGraphicsItem *>(item);
node->setData(Constants::GRAPHICS_DATA_QT4_2D, graphicsData);
} }
int count = model->rowCount(primIndex); int count = model->rowCount(primIndex);
@ -112,7 +119,7 @@ void removeGraphicsItems(const QModelIndex &primIndex, PrimitivesTreeModel *mode
case NLLIGO::CPrimitiveClass::Path: case NLLIGO::CPrimitiveClass::Path:
case NLLIGO::CPrimitiveClass::Zone: case NLLIGO::CPrimitiveClass::Zone:
{ {
QGraphicsItem *item = static_cast<QGraphicsItem *>(node->graphicsData(GRAPHICS_DATA_QT2D)); QGraphicsItem *item = qvariant_cast<QGraphicsItem *>(node->data(Constants::GRAPHICS_DATA_QT4_2D));
if (item != 0) if (item != 0)
delete item; delete item;
break; break;

View file

@ -1,5 +1,4 @@
// Object Viewer Qt - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/> // Object Viewer Qt - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
// Copyright (C) 2010 Winch Gate Property Limited
// Copyright (C) 2011 Dzmitry Kamiahin <dnk-88@tut.by> // Copyright (C) 2011 Dzmitry Kamiahin <dnk-88@tut.by>
// //
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
@ -24,6 +23,12 @@ namespace Constants
{ {
const char *const WORLD_EDITOR_PLUGIN = "WorldEditor"; const char *const WORLD_EDITOR_PLUGIN = "WorldEditor";
const int USER_TYPE = 65536;
const int NODE_PERISTENT_INDEX = USER_TYPE + 1;
const int WORLD_EDITOR_NODE = USER_TYPE + 2;
const int GRAPHICS_DATA_QT4_2D = USER_TYPE + 3;
const int GRAPHICS_DATA_NEL3D = USER_TYPE + 4;
//settings //settings
const char *const WORLD_EDITOR_SECTION = "WorldEditor"; const char *const WORLD_EDITOR_SECTION = "WorldEditor";
const char *const WORLD_WINDOW_STATE = "WorldWindowState"; const char *const WORLD_WINDOW_STATE = "WorldWindowState";