diff --git a/.hgignore b/.hgignore
index 530c92512..6b7285bac 100644
--- a/.hgignore
+++ b/.hgignore
@@ -43,7 +43,6 @@ default_c
*.so
*.so.*
*_debug
-core
*.pc
*.gch
diff --git a/code/CMakeLists.txt b/code/CMakeLists.txt
index 4f0439dfd..ba40d803e 100644
--- a/code/CMakeLists.txt
+++ b/code/CMakeLists.txt
@@ -190,6 +190,10 @@ IF(WITH_TOOLS)
ADD_SUBDIRECTORY(tool)
ENDIF(WITH_TOOLS)
+IF(WITH_STUDIO)
+ ADD_SUBDIRECTORY(studio)
+ENDIF(WITH_STUDIO)
+
# To build the documention, you will have to enable it
# and then do the equivalent of "make DoxygenDoc".
IF(BUILD_DOCUMENTATION)
diff --git a/code/CMakeModules/nel.cmake b/code/CMakeModules/nel.cmake
index b194b5ff9..36b813fa2 100644
--- a/code/CMakeModules/nel.cmake
+++ b/code/CMakeModules/nel.cmake
@@ -229,6 +229,10 @@ Remove the CMakeCache.txt file and try again from another folder, e.g.:
ENDMACRO(CHECK_OUT_OF_SOURCE)
MACRO(NL_SETUP_DEFAULT_OPTIONS)
+ IF(WITH_QT)
+ OPTION(WITH_STUDIO "Build Core Studio" OFF )
+ ENDIF(WITH_QT)
+
###
# Features
###
diff --git a/code/nel/tools/3d/CMakeLists.txt b/code/nel/tools/3d/CMakeLists.txt
index cc3b54f02..c9981e276 100644
--- a/code/nel/tools/3d/CMakeLists.txt
+++ b/code/nel/tools/3d/CMakeLists.txt
@@ -56,7 +56,6 @@ IF(WITH_NEL_TOOLS)
IF(WITH_QT)
ADD_SUBDIRECTORY(tile_edit_qt)
- ADD_SUBDIRECTORY(object_viewer_qt)
ADD_SUBDIRECTORY(object_viewer_widget)
ENDIF(WITH_QT)
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formitem.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formitem.cpp
deleted file mode 100644
index 744bb58da..000000000
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formitem.cpp
+++ /dev/null
@@ -1,163 +0,0 @@
-// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework
-// Copyright (C) 2011 Adrian Jaekel
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program 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 Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-
-#include "stdpch.h"
-#include "formitem.h"
-
-// Qt includes
-
-// NeL includes
-#include
-#include
-#include
-
-namespace GeorgesQt
-{
-
- CFormItem::CFormItem(NLGEORGES::UFormElm* elm, const QList &data, CFormItem *parent,
- NLGEORGES::UFormElm::TWhereIsValue wV, NLGEORGES::UFormElm::TWhereIsNode wN)
- {
- parentItem = parent;
- itemData = data;
- formElm = elm;
- whereV = wV;
- whereN = wN;
- }
-
- CFormItem::~CFormItem()
- {
- qDeleteAll(childItems);
- }
-
- void CFormItem::appendChild(CFormItem *item)
- {
- childItems.append(item);
- }
-
- CFormItem *CFormItem::child(int row)
- {
- return childItems.value(row);
- }
-
- int CFormItem::childCount() const
- {
- return childItems.count();
- }
-
- int CFormItem::columnCount() const
- {
- //nlinfo("columnCount %d",itemData.count());
- return itemData.count();
- }
-
- QVariant CFormItem::data(int column) const
- {
- return itemData.value(column);
- }
-
- CFormItem *CFormItem::parent()
- {
- return parentItem;
- }
-
- int CFormItem::row() const
- {
- if (parentItem)
- return parentItem->childItems.indexOf(const_cast(this));
-
- return 0;
- }
-
- bool CFormItem::setData(int column, const QVariant &value)
- {
- if (column < 0 || column >= itemData.size())
- return false;
-
- // TODO: default values
- if (!formElm)
- return false;
-
- itemData[column] = value;
- if (formElm->isAtom())
- {
- const NLGEORGES::UType *type = formElm->getType();
- if (type)
- {
- switch (type->getType())
- {
- case NLGEORGES::UType::UnsignedInt:
- case NLGEORGES::UType::SignedInt:
- case NLGEORGES::UType::Double:
- case NLGEORGES::UType::String:
- if (parentItem->formElm->isArray())
- {
- //((NLGEORGES::CFormElm*)parentItem->formElm);//->arrayInsertNodeByName(
- //if(parentItem->formElm->getArrayNode(elmName, num))
- //{
- //}
-
- bool ok;
- // TODO: the node can be renamed from eg "#0" to "foobar"
- int arrayIndex = itemData[0].toString().remove("#").toInt(&ok);
- if(ok)
- {
- NLGEORGES::UFormElm *elmt = 0;
- if(parentItem->formElm->getArrayNode(&elmt, arrayIndex) && elmt)
- {
- if (elmt->isAtom())
- {
- ((NLGEORGES::CFormElmAtom*)elmt)->setValue(value.toString().toUtf8().constData());
- nldebug(QString("array element string %1 %2")
- .arg(itemData[0].toString()).arg(value.toString())
- .toUtf8().constData());
- }
- }
- }
- }
- else
- {
- if(parentItem->formElm->setValueByName(
- value.toString().toUtf8().constData(),
- itemData[0].toString().toUtf8().constData()))
- {
- nldebug(QString("string %1 %2")
- .arg(itemData[0].toString()).arg(value.toString())
- .toUtf8().constData());
- }
- else
- {
- nldebug(QString("FAILED string %1 %2")
- .arg(itemData[0].toString()).arg(value.toString())
- .toUtf8().constData());
- }
- }
- break;
- case NLGEORGES::UType::Color:
- nldebug("Color is TODO");
- break;
- default:
- break;
- }
- }
- }
- else
- {
- nldebug("setting sth other than Atom");
- }
- //formElm->setValueByName();
- return true;
- }
-}
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor.qrc b/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor.qrc
deleted file mode 100644
index 3d514dbc0..000000000
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor.qrc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- images/ic_nel_georges_editor.png
-
-
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_model.cpp b/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_model.cpp
deleted file mode 100644
index dd0220bbf..000000000
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_model.cpp
+++ /dev/null
@@ -1,704 +0,0 @@
-// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework
-// Copyright (C) 2011 Adrian Jaekel
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Affero General Public License as
-// published by the Free Software Foundation, either version 3 of the
-// License, or (at your option) any later version.
-//
-// This program 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 Affero General Public License for more details.
-//
-// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .
-
-#include "stdpch.h"
-#include "georgesform_model.h"
-#include "formitem.h"
-
-// NeL includes
-#include
-#include
-#include
-#include
-#include
-#include
-
-// Qt includes
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-
-using namespace NLGEORGES;
-
-namespace GeorgesQt
-{
-
- CGeorgesFormModel::CGeorgesFormModel(UFormElm *rootElm, QMap< QString, QStringList> deps,
- QString comment, QStringList parents, bool *expanded, QObject *parent) : QAbstractItemModel(parent)
- {
-
- m_rootData << "Value" << "Data" << "Extra";// << "Type";
- m_rootElm = rootElm;
- m_rootItem = new CFormItem(m_rootElm, m_rootData);
- m_dependencies = deps;
- m_comments = comment;
- m_parents = parents;
- m_parentRows = new QList;
- m_expanded = expanded;
-
- setupModelData();
- }
-
- CGeorgesFormModel::~CGeorgesFormModel()
- {
- delete m_rootItem;
- }
-
- /******************************************************************************/
-
- QVariant CGeorgesFormModel::data(const QModelIndex &p_index, int p_role) const
- {
- if (!p_index.isValid())
- return QVariant();
-
- switch (p_role)
- {
- case Qt::DisplayRole:
- {
- return getItem(p_index)->data(p_index.column());
- }
- case Qt::BackgroundRole:
- {
- QBrush defaultBrush = QBrush(QColor(255,0,0,30));
- QBrush parentBrush = QBrush(QColor(0,255,0,30));
-
- // if elm not existing it must be some kind of default or type value
- if(!getItem(p_index)->getFormElm())
- {
- return defaultBrush;
- }
-
- // else it might be some parent elm
- switch (getItem(p_index)->nodeFrom())
- {
- case NLGEORGES::UFormElm::NodeParentForm:
- {
- return parentBrush;
- }
- case NLGEORGES::UFormElm::NodeForm:
- {
- switch (getItem(p_index)->valueFrom())
- {
- case NLGEORGES::UFormElm::ValueParentForm:
- {
- return parentBrush;
- }
- default:
- {
- // parent status test kindof ugly, testing only 2 steps deep
- // only needed for colorization as treeview default hides childs
- // when parent is hidden
- CFormItem *parent = getItem(p_index)->parent();
- if (parent)
- {
- if (parent->nodeFrom() == NLGEORGES::UFormElm::NodeParentForm)
- {
- return parentBrush;
- }
-
- CFormItem *parentParent = parent->parent();
- if (parentParent)
- {
- if (parentParent->nodeFrom() == NLGEORGES::UFormElm::NodeParentForm)
- {
- return parentBrush;
- }
- } // endif parentParent
- } // endif parent
- } // end default
- } // end switch valueFrom
- } // end case nodeForm
- } // end switch nodeFrom
- return QVariant();
- }
- case Qt::DecorationRole:
- {
- if (p_index.column() == 2)
- {
- //p_index.
- QModelIndex in = index(p_index.row(),p_index.column()-1,p_index.parent());
- CFormItem *item = getItem(in);
-
- QString value = item->data(1).toString();
- //QString path = NLMISC::CPath::lookup(value.toUtf8().constData(),false).c_str();
-
- /*if (value.contains(".shape"))
- {
- if (Modules::objViewInt())
- {
- QIcon *icon = Modules::objViewInt()->saveOneImage(value.toUtf8().constData());
- if (icon)
- {
- if(icon->isNull())
- return QIcon(":/images/pqrticles.png");
- else
- return QIcon(*icon);
- }
- else
- {
- return QIcon();
- }
- }
- }*/
- if(value.contains(".tga") || value.contains(".png"))
- {
- QString path = NLMISC::CPath::lookup(value.toUtf8().constData(),false).c_str();
- if(path.isEmpty())
- {
- path = ":/images/pqrticles.png";
- }
- return QIcon(path);
- }
- }
- return QVariant();
- break;
- }
- case Qt::ToolTipRole:
- {
- if (p_index.column() == 2)
- {
- QModelIndex in = index(p_index.row(),p_index.column()-1,p_index.parent());
- CFormItem *item = getItem(in);
- QString value = item->data(1).toString();
-
- /*if (value.contains(".shape"))
- {
- if (Modules::objViewInt())
- {
- QIcon *icon = Modules::objViewInt()->saveOneImage(value.toUtf8().constData());
- if (icon)
- {
- if(icon->isNull())
- return QIcon(":/images/pqrticles.png");
- else
- return QIcon(*icon);
- }
- else
- {
- return QIcon();
- }
- }
- }*/
- if(value.contains(".tga") || value.contains(".png"))
- {
- QString path = NLMISC::CPath::lookup(value.toUtf8().constData(),false).c_str();
- if(path.isEmpty())
- {
- path = ":/images/pqrticles.png";
- }
-
- QString imageTooltip = QString("").arg(path);
-
- return imageTooltip;
- }
- }
- return QVariant();
- break;
- }
- default:
- return QVariant();
- }
- }
-
- /******************************************************************************/
-
- CFormItem *CGeorgesFormModel::getItem(const QModelIndex &index) const
- {
- if (index.isValid())
- {
- CFormItem *item = static_cast(index.internalPointer());
- if (item)
- return item;
- }
- return m_rootItem;
- }
-
- /******************************************************************************/
-
- bool CGeorgesFormModel::setData(const QModelIndex &index, const QVariant &value,
- int role)
- {
-
- if (role != Qt::EditRole)
- return false;
-
- CFormItem *item = getItem(index);
- bool result = item->setData(index.column(), value);
-
- Q_EMIT dataChanged(index, index);
-
- //setupModelData();
- return result;
- }
-
- /******************************************************************************/
-
- Qt::ItemFlags CGeorgesFormModel::flags(const QModelIndex& index) const {
-
- if (!index.isValid())
- return 0;
-
- Qt::ItemFlags returnValue = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
-
- if(index.column() == 1)
- returnValue |= Qt::ItemIsEditable;
-
- return returnValue;
-
- }
-
- /******************************************************************************/
-
- QVariant CGeorgesFormModel::headerData(int section,
- Qt::Orientation orientation, int role) const
- {
- if (orientation == Qt::Horizontal)
- {
- if (role == Qt::DisplayRole)
- return m_rootItem->data(section);
- if (role == Qt::TextAlignmentRole)
- return Qt::AlignLeft;
- if (section == 0 && role == Qt::DecorationRole)
- {
- // transparent pixmap as we paint it ourself with tree brach
- // if we extend the HeaderView::paintSection for the CE_HeaderLabel
- // we could drop this
- QPixmap pixmap = QPixmap(
- QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize),
- QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize));
- // Create new picture for transparent
- QPixmap transparent(pixmap.size());
-
- // Do transparency
- transparent.fill(Qt::transparent);
- QPainter p(&transparent);
- p.setCompositionMode(QPainter::CompositionMode_Source);
- p.drawPixmap(0, 0, pixmap);
- p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
- // Set transparency level to 150 (possible values are 0-255)
- // The alpha channel of a color specifies the transparency effect,
- // 0 represents a fully transparent color, while 255 represents
- // a fully opaque color.
- p.fillRect(transparent.rect(), QColor(0, 0, 0, 0));
- p.end();
-
- // Set original picture's reference to new transparent one
- pixmap = transparent;
- return pixmap;
- }
- }
- return QVariant();
- }
-
- /******************************************************************************/
-
- QModelIndex CGeorgesFormModel::index(int row, int column, const QModelIndex &parent)
- const
- {
- if (!hasIndex(row, column, parent))
- return QModelIndex();
-
- CFormItem *parentItem;
-
- if (!parent.isValid())
- parentItem = m_rootItem;
- else
- parentItem = static_cast(parent.internalPointer());
-
- CFormItem *childItem = parentItem->child(row);
- if (childItem)
- return createIndex(row, column, childItem);
- else
- return QModelIndex();
- }
-
- /******************************************************************************/
-
- QModelIndex CGeorgesFormModel::parent(const QModelIndex &index) const
- {
- if (!index.isValid())
- return QModelIndex();
-
- CFormItem *childItem = static_cast(index.internalPointer());
- CFormItem *parentItem = childItem->parent();
-
- if (parentItem == m_rootItem)
- return QModelIndex();
-
- return createIndex(parentItem->row(), 0, parentItem);
- }
-
- /******************************************************************************/
-
- int CGeorgesFormModel::rowCount(const QModelIndex &parent) const {
-
- CFormItem *parentItem;
- if (parent.column() > 0)
- return 0;
-
- if (!parent.isValid())
- parentItem = m_rootItem;
- else
- parentItem = static_cast(parent.internalPointer());
-
- return parentItem->childCount();
-
- }
-
- /******************************************************************************/
-
- int CGeorgesFormModel::columnCount(const QModelIndex &parent) const {
-
- if (parent.isValid())
- return static_cast(parent.internalPointer())->columnCount();
- else
- return m_rootItem->columnCount();
-
- }
-
- /******************************************************************************/
-
- void CGeorgesFormModel::loadFormData(UFormElm *root, CFormItem *parent) {
-
- if (!root)
- return;
-
- uint num = 0;
-
-
- if (root->isStruct())
- {
- //((CFormElm*)root)->getForm()->getComment();
- uint structSize = 0;
- root->getStructSize(structSize);
- while (num < structSize)
- {
- UFormElm::TWhereIsNode *whereN = new UFormElm::TWhereIsNode;
- UFormElm::TWhereIsValue *whereV = new UFormElm::TWhereIsValue;
- // Append a new item to the current parent's list of children.
- std::string elmName;
- if(root->getStructNodeName(num, elmName))
- {
- QList columnData;
- //QVariant value;
- std::string value;
- //NLMISC::CRGBA value_color;
- //uint value_uint;
- //sint value_sint;
- //double value_double;
- QString elmtType;
- UFormElm *elmt = 0;
- if(root->getNodeByName(&elmt, elmName.c_str(), whereN, true))
- {
- if (elmt)
- {
- if (elmt->isArray())
- elmtType = "Array";
- if (elmt->isStruct())
- elmtType = "Struct";
- if (elmt->isAtom())
- {
- elmtType = "Atom";
- uint numDefinitions = 0;
- const UType *type = elmt->getType();
- if (type)
- {
- numDefinitions = type->getNumDefinition();
- root->getValueByName(value, elmName.c_str(),UFormElm::Eval,whereV);
- switch (type->getType())
- {
- case UType::UnsignedInt:
- {
- uint v;
- NLMISC::fromString(value, v);
- value = NLMISC::toString(v);
- elmtType.append("_uint");break;
- }
- case UType::SignedInt:
- {
- sint v;
- NLMISC::fromString(value, v);
- value = NLMISC::toString(v);
- elmtType.append("_sint");break;
- }
- case UType::Double:
- float v;
- NLMISC::fromString(value, v);
- value = NLMISC::toString(v);
- elmtType.append("_double");break;
- case UType::String:
- elmtType.append("_string");break;
- case UType::Color:
- elmtType.append("_color");break;
- default:
- elmtType.append("_unknownType");
- }
- }
- else
- {
- elmtType.append("_noType");
- }
-
- if (numDefinitions)
- {
- std::string l, v;
- QString tmpLabel, tmpValue;
- for (uint i = 0; i < numDefinitions; i++)
- {
- type->getDefinition(i,l,v);
- tmpLabel = l.c_str();
- tmpValue = v.c_str();
- if (type->getType() == UType::SignedInt)
- {
- if (QString("%1").arg(value.c_str()).toDouble() == tmpValue.toDouble()) {
- value = l;
- break;
- }
- }
- if (type->getType() == UType::String)
- {
- if (QString(value.c_str()) == tmpValue)
- {
- value = l;
- break;
- }
- }
- }
- }
- }
- if (elmt->isVirtualStruct())
- {
- root->getValueByName(value, elmName.c_str(),UFormElm::Eval,whereV);
- elmtType = "VirtualStruct";
- }
- switch (*whereN)
- {
- case UFormElm::NodeForm:
- elmtType.append("_fromForm"); break;
- case UFormElm::NodeParentForm:
- elmtType.append("_fromParentForm"); break;
- case UFormElm::NodeDfn:
- elmtType.append("_isDFN"); break;
- case UFormElm::NodeType:
- elmtType.append("_isType"); break;
- default:
- elmtType.append("_noNode");
- }
- switch (*whereV)
- {
- case UFormElm::ValueForm:
- elmtType.append("_formValue"); break;
- case UFormElm::ValueParentForm:
- elmtType.append("_parentValue"); break;
- case UFormElm::ValueDefaultDfn:
- elmtType.append("_dfnValue"); break;
- case UFormElm::ValueDefaultType:
- elmtType.append("_typeValue"); break;
- default:
- elmtType.append("_noValue");
- }
- columnData << QString(elmName.c_str()) << QString(value.c_str()) << "";// << elmtType;
- parent->appendChild(new CFormItem(elmt, columnData, parent, *whereV, *whereN));
- //if (parents.last()->childCount() > 0) {
- // parents << parents.last()->child(parents.last()->childCount()-1);
- //}
- loadFormData(elmt, parent->child(parent->childCount()-1));
- }
- else
- {
- // add Defaults
- // TODO: spams warnings for non ATOM values but i dont get type of non existing nodes
- bool success = root->getValueByName(value, elmName.c_str(),UFormElm::Eval,whereV);
- switch (*whereN)
- {
- case UFormElm::NodeForm:
- elmtType.append("_fromForm"); break;
- case UFormElm::NodeParentForm:
- elmtType.append("_fromParentForm"); break;
- case UFormElm::NodeDfn:
- elmtType.append("_isDFN"); break;
- case UFormElm::NodeType:
- elmtType.append("_isType"); break;
- default:
- elmtType.append("_noNode");
- }
- switch (*whereV)
- {
- case UFormElm::ValueForm:
- elmtType.append("_formValue"); break;
- case UFormElm::ValueParentForm:
- elmtType.append("_parentValue"); break;
- case UFormElm::ValueDefaultDfn:
- elmtType.append("_dfnValue"); break;
- case UFormElm::ValueDefaultType:
- elmtType.append("_typeValue"); break;
- default:
- elmtType.append("_noValue");
- }
-
- columnData << QString(elmName.c_str()) << QString(value.c_str()) << "";// << elmtType;
- parent->appendChild(new CFormItem(elmt, columnData, parent, *whereV, *whereN));
- }
- }
- else
- {
- nlinfo("getNodeByName returned false");
- }
- }
- num++;
- }
- }
- if (root->isArray())
- {
- uint arraySize = 0;
- root->getArraySize(arraySize);
- while (num < arraySize)
- {
- std::string elmName;
- if(root->getArrayNodeName(elmName, num))
- {
- QList columnData;
- std::string value;
- QString elmtType;
-
- UFormElm *elmt = 0;
- if(root->getArrayNode(&elmt,0) && elmt)
- {
- if (elmt->isArray())
- elmtType = "Array";
- if (elmt->isStruct()) {
- elmtType = "Struct";
- }
- if (elmt->isAtom())
- {
- elmt->getValue(value);
- elmtType = "Atom";
- }
- if (elmt->isVirtualStruct())
- elmtType = "VirtualStruct";
-
- elmtType.append("_arrayValue");
- columnData << QString(elmName.c_str()) << QString(value.c_str()) << "";// << elmtType;
- parent->appendChild(new CFormItem(elmt, columnData, parent));
- loadFormData(elmt, parent->child(parent->childCount()-1));
- }
- }
- num++;
- }
- }
- }
-
- /******************************************************************************/
-
- void CGeorgesFormModel::loadFormHeader()
- {
-
- if (m_parents.size())
- {
- CFormItem *fi_pars = new CFormItem(m_rootElm, QList() << "parents" << "" << "", m_rootItem);
- m_rootItem->appendChild(fi_pars);
-
- Q_FOREACH(QString str, m_parents)
- {
- fi_pars->appendChild(new CFormItem(m_rootElm, QList() << str << "" << "", fi_pars));
- }
- }
-
- /*QStringList dfns = _dependencies["dfn"];
- QStringList typs = _dependencies["typ"];
-
- _dependencies.remove("dfn");
- _dependencies.remove("typ");
-
- CFormItem *fi_dep = new CFormItem(_rootElm, QList() << "dependencies", _rootItem);
- _rootItem->appendChild(fi_dep);
-
- if (!dfns.isEmpty()) {
- CFormItem *fi_dfn = new CFormItem(_rootElm, QList() << "dfn", fi_dep);
- fi_dep->appendChild(fi_dfn);
- foreach(QString str, dfns) {
- fi_dfn->appendChild(new CFormItem(_rootElm, QList() << str, fi_dfn));
- }
- }
- if (!typs.isEmpty()) {
- CFormItem *fi_typ = new CFormItem(_rootElm, QList() << "typ", fi_dep);
- fi_dep->appendChild(fi_typ);
- foreach(QString str, typs) {
- fi_typ->appendChild(new CFormItem(_rootElm, QList() << str, fi_typ));
- }
- }
- if (!_dependencies.isEmpty()) {
- CFormItem *fi_other = new CFormItem(_rootElm, QList() << "other", fi_dep);
- fi_dep->appendChild(fi_other);
- foreach(QStringList list, _dependencies) {
- foreach(QString str, list) {
- fi_other->appendChild(new CFormItem(_rootElm, QList() << str, fi_other));
- }
- }
- }*/
- }
-
- /******************************************************************************/
-
- void CGeorgesFormModel::setupModelData()
- {
- loadFormHeader();
- loadFormData(m_rootElm, m_rootItem);
- }
-
- /******************************************************************************/
-
- void CGeorgesFormModel::setShowParents( bool show ) {
- m_showParents = show;
- Q_EMIT layoutAboutToBeChanged();
- Q_EMIT layoutChanged();
- }
- void CGeorgesFormModel::setShowDefaults( bool show )
- {
- m_showDefaults = show;
- Q_EMIT layoutAboutToBeChanged();
- Q_EMIT layoutChanged();
- }
-
- void CGeorgesFormModel::addParentForm(QString parentForm)
- {
- beginResetModel();
- m_parents.push_back(parentForm);
- delete m_rootItem;
- m_rootItem = new CFormItem(m_rootElm, m_rootData);
- setupModelData();
- endResetModel();
- }
-
- void CGeorgesFormModel::removeParentForm(QString parentForm)
- {
- beginResetModel();
- m_parents.removeOne(parentForm);
-
- delete m_rootItem;
- m_rootItem = new CFormItem(m_rootElm, m_rootData);
- setupModelData();
- endResetModel();
- }
-} /* namespace GeorgesQt */
-
-/* end of file */
diff --git a/code/nel/tools/3d/object_viewer_qt/CMakeLists.txt b/code/studio/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/CMakeLists.txt
rename to code/studio/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/data/andbasr.ttf b/code/studio/data/andbasr.ttf
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/data/andbasr.ttf
rename to code/studio/data/andbasr.ttf
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/html/cdirection_widget.png b/code/studio/doc/html/cdirection_widget.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/html/cdirection_widget.png
rename to code/studio/doc/html/cdirection_widget.png
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/html/cedit_color_widget.png b/code/studio/doc/html/cedit_color_widget.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/html/cedit_color_widget.png
rename to code/studio/doc/html/cedit_color_widget.png
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/html/cedit_range_float_widget.png b/code/studio/doc/html/cedit_range_float_widget.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/html/cedit_range_float_widget.png
rename to code/studio/doc/html/cedit_range_float_widget.png
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/html/cedit_range_int_widget.png b/code/studio/doc/html/cedit_range_int_widget.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/html/cedit_range_int_widget.png
rename to code/studio/doc/html/cedit_range_int_widget.png
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/html/gui_struct.png b/code/studio/doc/html/gui_struct.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/html/gui_struct.png
rename to code/studio/doc/html/gui_struct.png
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/html/object_viewer_qt_window.png b/code/studio/doc/html/object_viewer_qt_window.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/html/object_viewer_qt_window.png
rename to code/studio/doc/html/object_viewer_qt_window.png
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/make_ovqt_dox.bat b/code/studio/doc/make_ovqt_dox.bat
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/make_ovqt_dox.bat
rename to code/studio/doc/make_ovqt_dox.bat
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/make_ovqt_dox.sh b/code/studio/doc/make_ovqt_dox.sh
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/make_ovqt_dox.sh
rename to code/studio/doc/make_ovqt_dox.sh
diff --git a/code/nel/tools/3d/object_viewer_qt/doc/ovqt.dox b/code/studio/doc/ovqt.dox
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/doc/ovqt.dox
rename to code/studio/doc/ovqt.dox
diff --git a/code/nel/tools/3d/object_viewer_qt/ovqt_config.h.cmake b/code/studio/ovqt_config.h.cmake
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/ovqt_config.h.cmake
rename to code/studio/ovqt_config.h.cmake
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/CMakeLists.txt b/code/studio/src/3rdparty/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/CMakeLists.txt
rename to code/studio/src/3rdparty/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/CMakeLists.txt b/code/studio/src/3rdparty/qtpropertybrowser/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/CMakeLists.txt
rename to code/studio/src/3rdparty/qtpropertybrowser/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/LGPL_EXCEPTION.txt b/code/studio/src/3rdparty/qtpropertybrowser/LGPL_EXCEPTION.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/LGPL_EXCEPTION.txt
rename to code/studio/src/3rdparty/qtpropertybrowser/LGPL_EXCEPTION.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/LICENSE.GPL3 b/code/studio/src/3rdparty/qtpropertybrowser/LICENSE.GPL3
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/LICENSE.GPL3
rename to code/studio/src/3rdparty/qtpropertybrowser/LICENSE.GPL3
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/LICENSE.LGPL b/code/studio/src/3rdparty/qtpropertybrowser/LICENSE.LGPL
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/LICENSE.LGPL
rename to code/studio/src/3rdparty/qtpropertybrowser/LICENSE.LGPL
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtAbstractEditorFactoryBase b/code/studio/src/3rdparty/qtpropertybrowser/QtAbstractEditorFactoryBase
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtAbstractEditorFactoryBase
rename to code/studio/src/3rdparty/qtpropertybrowser/QtAbstractEditorFactoryBase
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtAbstractPropertyBrowser b/code/studio/src/3rdparty/qtpropertybrowser/QtAbstractPropertyBrowser
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtAbstractPropertyBrowser
rename to code/studio/src/3rdparty/qtpropertybrowser/QtAbstractPropertyBrowser
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtAbstractPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtAbstractPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtAbstractPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtAbstractPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtBoolPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtBoolPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtBoolPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtBoolPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtBrowserItem b/code/studio/src/3rdparty/qtpropertybrowser/QtBrowserItem
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtBrowserItem
rename to code/studio/src/3rdparty/qtpropertybrowser/QtBrowserItem
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtButtonPropertyBrowser b/code/studio/src/3rdparty/qtpropertybrowser/QtButtonPropertyBrowser
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtButtonPropertyBrowser
rename to code/studio/src/3rdparty/qtpropertybrowser/QtButtonPropertyBrowser
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCharEditorFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtCharEditorFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCharEditorFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtCharEditorFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCharPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtCharPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCharPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtCharPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCheckBoxFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtCheckBoxFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCheckBoxFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtCheckBoxFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtColorEditorFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtColorEditorFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtColorEditorFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtColorEditorFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtColorPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtColorPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtColorPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtColorPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCursorEditorFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtCursorEditorFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCursorEditorFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtCursorEditorFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCursorPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtCursorPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtCursorPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtCursorPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDateEditFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtDateEditFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDateEditFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtDateEditFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDatePropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtDatePropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDatePropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtDatePropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDateTimeEditFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtDateTimeEditFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDateTimeEditFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtDateTimeEditFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDateTimePropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtDateTimePropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDateTimePropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtDateTimePropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDoublePropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtDoublePropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDoublePropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtDoublePropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDoubleSpinBoxFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtDoubleSpinBoxFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtDoubleSpinBoxFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtDoubleSpinBoxFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtEnumEditorFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtEnumEditorFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtEnumEditorFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtEnumEditorFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtEnumPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtEnumPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtEnumPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtEnumPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtFlagPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtFlagPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtFlagPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtFlagPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtFontEditorFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtFontEditorFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtFontEditorFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtFontEditorFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtFontPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtFontPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtFontPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtFontPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtGroupBoxPropertyBrowser b/code/studio/src/3rdparty/qtpropertybrowser/QtGroupBoxPropertyBrowser
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtGroupBoxPropertyBrowser
rename to code/studio/src/3rdparty/qtpropertybrowser/QtGroupBoxPropertyBrowser
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtGroupPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtGroupPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtGroupPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtGroupPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtIntPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtIntPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtIntPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtIntPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtKeySequenceEditorFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtKeySequenceEditorFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtKeySequenceEditorFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtKeySequenceEditorFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtKeySequencePropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtKeySequencePropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtKeySequencePropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtKeySequencePropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtLineEditFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtLineEditFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtLineEditFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtLineEditFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtLocalePropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtLocalePropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtLocalePropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtLocalePropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtPointFPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtPointFPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtPointFPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtPointFPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtPointPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtPointPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtPointPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtPointPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtProperty b/code/studio/src/3rdparty/qtpropertybrowser/QtProperty
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtProperty
rename to code/studio/src/3rdparty/qtpropertybrowser/QtProperty
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtRectFPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtRectFPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtRectFPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtRectFPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtRectPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtRectPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtRectPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtRectPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtScrollBarFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtScrollBarFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtScrollBarFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtScrollBarFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSizeFPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtSizeFPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSizeFPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtSizeFPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSizePolicyPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtSizePolicyPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSizePolicyPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtSizePolicyPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSizePropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtSizePropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSizePropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtSizePropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSliderFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtSliderFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSliderFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtSliderFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSpinBoxFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtSpinBoxFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtSpinBoxFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtSpinBoxFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtStringPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtStringPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtStringPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtStringPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtTimeEditFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtTimeEditFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtTimeEditFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtTimeEditFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtTimePropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtTimePropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtTimePropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtTimePropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtTreePropertyBrowser b/code/studio/src/3rdparty/qtpropertybrowser/QtTreePropertyBrowser
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtTreePropertyBrowser
rename to code/studio/src/3rdparty/qtpropertybrowser/QtTreePropertyBrowser
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtVariantEditorFactory b/code/studio/src/3rdparty/qtpropertybrowser/QtVariantEditorFactory
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtVariantEditorFactory
rename to code/studio/src/3rdparty/qtpropertybrowser/QtVariantEditorFactory
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtVariantProperty b/code/studio/src/3rdparty/qtpropertybrowser/QtVariantProperty
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtVariantProperty
rename to code/studio/src/3rdparty/qtpropertybrowser/QtVariantProperty
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtVariantPropertyManager b/code/studio/src/3rdparty/qtpropertybrowser/QtVariantPropertyManager
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/QtVariantPropertyManager
rename to code/studio/src/3rdparty/qtpropertybrowser/QtVariantPropertyManager
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/README.TXT b/code/studio/src/3rdparty/qtpropertybrowser/README.TXT
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/README.TXT
rename to code/studio/src/3rdparty/qtpropertybrowser/README.TXT
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-arrow.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-arrow.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-arrow.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-arrow.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-busy.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-busy.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-busy.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-busy.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-closedhand.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-closedhand.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-closedhand.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-closedhand.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-cross.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-cross.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-cross.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-cross.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-forbidden.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-forbidden.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-forbidden.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-forbidden.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-hand.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-hand.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-hand.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-hand.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-hsplit.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-hsplit.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-hsplit.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-hsplit.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-ibeam.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-ibeam.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-ibeam.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-ibeam.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-openhand.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-openhand.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-openhand.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-openhand.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizeall.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizeall.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizeall.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizeall.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizeb.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizeb.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizeb.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizeb.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizef.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizef.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizef.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizef.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizeh.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizeh.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizeh.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizeh.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizev.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizev.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-sizev.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-sizev.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-uparrow.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-uparrow.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-uparrow.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-uparrow.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-vsplit.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-vsplit.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-vsplit.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-vsplit.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-wait.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-wait.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-wait.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-wait.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-whatsthis.png b/code/studio/src/3rdparty/qtpropertybrowser/images/cursor-whatsthis.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/cursor-whatsthis.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/cursor-whatsthis.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/resetproperty.png b/code/studio/src/3rdparty/qtpropertybrowser/images/resetproperty.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/images/resetproperty.png
rename to code/studio/src/3rdparty/qtpropertybrowser/images/resetproperty.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtbuttonpropertybrowser.cpp b/code/studio/src/3rdparty/qtpropertybrowser/qtbuttonpropertybrowser.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtbuttonpropertybrowser.cpp
rename to code/studio/src/3rdparty/qtpropertybrowser/qtbuttonpropertybrowser.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtbuttonpropertybrowser.h b/code/studio/src/3rdparty/qtpropertybrowser/qtbuttonpropertybrowser.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtbuttonpropertybrowser.h
rename to code/studio/src/3rdparty/qtpropertybrowser/qtbuttonpropertybrowser.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qteditorfactory.cpp b/code/studio/src/3rdparty/qtpropertybrowser/qteditorfactory.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qteditorfactory.cpp
rename to code/studio/src/3rdparty/qtpropertybrowser/qteditorfactory.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qteditorfactory.h b/code/studio/src/3rdparty/qtpropertybrowser/qteditorfactory.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qteditorfactory.h
rename to code/studio/src/3rdparty/qtpropertybrowser/qteditorfactory.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtgroupboxpropertybrowser.cpp b/code/studio/src/3rdparty/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
rename to code/studio/src/3rdparty/qtpropertybrowser/qtgroupboxpropertybrowser.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtgroupboxpropertybrowser.h b/code/studio/src/3rdparty/qtpropertybrowser/qtgroupboxpropertybrowser.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtgroupboxpropertybrowser.h
rename to code/studio/src/3rdparty/qtpropertybrowser/qtgroupboxpropertybrowser.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowser.cpp b/code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowser.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowser.cpp
rename to code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowser.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowser.h b/code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowser.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowser.h
rename to code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowser.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowser.pri b/code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowser.pri
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowser.pri
rename to code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowser.pri
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowser.qrc b/code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowser.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowser.qrc
rename to code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowser.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowserutils.cpp b/code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowserutils.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowserutils.cpp
rename to code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowserutils.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowserutils_p.h b/code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowserutils_p.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertybrowserutils_p.h
rename to code/studio/src/3rdparty/qtpropertybrowser/qtpropertybrowserutils_p.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertymanager.cpp b/code/studio/src/3rdparty/qtpropertybrowser/qtpropertymanager.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertymanager.cpp
rename to code/studio/src/3rdparty/qtpropertybrowser/qtpropertymanager.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertymanager.h b/code/studio/src/3rdparty/qtpropertybrowser/qtpropertymanager.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtpropertymanager.h
rename to code/studio/src/3rdparty/qtpropertybrowser/qtpropertymanager.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qttreepropertybrowser.cpp b/code/studio/src/3rdparty/qtpropertybrowser/qttreepropertybrowser.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qttreepropertybrowser.cpp
rename to code/studio/src/3rdparty/qtpropertybrowser/qttreepropertybrowser.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qttreepropertybrowser.h b/code/studio/src/3rdparty/qtpropertybrowser/qttreepropertybrowser.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qttreepropertybrowser.h
rename to code/studio/src/3rdparty/qtpropertybrowser/qttreepropertybrowser.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtvariantproperty.cpp b/code/studio/src/3rdparty/qtpropertybrowser/qtvariantproperty.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtvariantproperty.cpp
rename to code/studio/src/3rdparty/qtpropertybrowser/qtvariantproperty.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtvariantproperty.h b/code/studio/src/3rdparty/qtpropertybrowser/qtvariantproperty.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/3rdparty/qtpropertybrowser/qtvariantproperty.h
rename to code/studio/src/3rdparty/qtpropertybrowser/qtvariantproperty.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/CMakeLists.txt b/code/studio/src/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/CMakeLists.txt
rename to code/studio/src/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/description.h b/code/studio/src/description.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/description.h
rename to code/studio/src/description.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/extension_system/iplugin.h b/code/studio/src/extension_system/iplugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/extension_system/iplugin.h
rename to code/studio/src/extension_system/iplugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/extension_system/iplugin_manager.h b/code/studio/src/extension_system/iplugin_manager.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/extension_system/iplugin_manager.h
rename to code/studio/src/extension_system/iplugin_manager.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/extension_system/iplugin_spec.h b/code/studio/src/extension_system/iplugin_spec.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/extension_system/iplugin_spec.h
rename to code/studio/src/extension_system/iplugin_spec.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/extension_system/plugin_manager.cpp b/code/studio/src/extension_system/plugin_manager.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/extension_system/plugin_manager.cpp
rename to code/studio/src/extension_system/plugin_manager.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/extension_system/plugin_manager.h b/code/studio/src/extension_system/plugin_manager.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/extension_system/plugin_manager.h
rename to code/studio/src/extension_system/plugin_manager.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/extension_system/plugin_spec.cpp b/code/studio/src/extension_system/plugin_spec.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/extension_system/plugin_spec.cpp
rename to code/studio/src/extension_system/plugin_spec.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/extension_system/plugin_spec.h b/code/studio/src/extension_system/plugin_spec.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/extension_system/plugin_spec.h
rename to code/studio/src/extension_system/plugin_spec.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/ic_nel_pill.ico b/code/studio/src/ic_nel_pill.ico
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/ic_nel_pill.ico
rename to code/studio/src/ic_nel_pill.ico
diff --git a/code/nel/tools/3d/object_viewer_qt/src/images/nel_ide_load.png b/code/studio/src/images/nel_ide_load.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/images/nel_ide_load.png
rename to code/studio/src/images/nel_ide_load.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/main.cpp b/code/studio/src/main.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/main.cpp
rename to code/studio/src/main.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/object_viewer_qt.qrc b/code/studio/src/object_viewer_qt.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/object_viewer_qt.qrc
rename to code/studio/src/object_viewer_qt.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/object_viewer_qt.rc b/code/studio/src/object_viewer_qt.rc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/object_viewer_qt.rc
rename to code/studio/src/object_viewer_qt.rc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/CMakeLists.txt b/code/studio/src/plugins/CMakeLists.txt
similarity index 95%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/CMakeLists.txt
rename to code/studio/src/plugins/CMakeLists.txt
index 3e99bdc43..5916be455 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/CMakeLists.txt
+++ b/code/studio/src/plugins/CMakeLists.txt
@@ -13,6 +13,7 @@ IF(WITH_GUI)
ENDIF(WITH_GUI)
ADD_SUBDIRECTORY(translation_manager)
+ADD_SUBDIRECTORY(tile_editor)
ADD_SUBDIRECTORY(bnp_manager)
# Note: Temporarily disabled until development continues.
#ADD_SUBDIRECTORY(zone_painter)
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/CMakeLists.txt b/code/studio/src/plugins/bnp_manager/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/CMakeLists.txt
rename to code/studio/src/plugins/bnp_manager/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_dirtree_dialog.cpp b/code/studio/src/plugins/bnp_manager/bnp_dirtree_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_dirtree_dialog.cpp
rename to code/studio/src/plugins/bnp_manager/bnp_dirtree_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_dirtree_dialog.h b/code/studio/src/plugins/bnp_manager/bnp_dirtree_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_dirtree_dialog.h
rename to code/studio/src/plugins/bnp_manager/bnp_dirtree_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_dirtree_form.ui b/code/studio/src/plugins/bnp_manager/bnp_dirtree_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_dirtree_form.ui
rename to code/studio/src/plugins/bnp_manager/bnp_dirtree_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_file.cpp b/code/studio/src/plugins/bnp_manager/bnp_file.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_file.cpp
rename to code/studio/src/plugins/bnp_manager/bnp_file.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_file.h b/code/studio/src/plugins/bnp_manager/bnp_file.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_file.h
rename to code/studio/src/plugins/bnp_manager/bnp_file.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filelist_dialog.cpp b/code/studio/src/plugins/bnp_manager/bnp_filelist_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filelist_dialog.cpp
rename to code/studio/src/plugins/bnp_manager/bnp_filelist_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filelist_dialog.h b/code/studio/src/plugins/bnp_manager/bnp_filelist_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filelist_dialog.h
rename to code/studio/src/plugins/bnp_manager/bnp_filelist_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filelist_dialog.ui b/code/studio/src/plugins/bnp_manager/bnp_filelist_dialog.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filelist_dialog.ui
rename to code/studio/src/plugins/bnp_manager/bnp_filelist_dialog.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filesystem_model.cpp b/code/studio/src/plugins/bnp_manager/bnp_filesystem_model.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filesystem_model.cpp
rename to code/studio/src/plugins/bnp_manager/bnp_filesystem_model.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filesystem_model.h b/code/studio/src/plugins/bnp_manager/bnp_filesystem_model.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_filesystem_model.h
rename to code/studio/src/plugins/bnp_manager/bnp_filesystem_model.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager.qrc b/code/studio/src/plugins/bnp_manager/bnp_manager.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager.qrc
rename to code/studio/src/plugins/bnp_manager/bnp_manager.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_constants.h b/code/studio/src/plugins/bnp_manager/bnp_manager_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_constants.h
rename to code/studio/src/plugins/bnp_manager/bnp_manager_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_plugin.cpp b/code/studio/src/plugins/bnp_manager/bnp_manager_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_plugin.cpp
rename to code/studio/src/plugins/bnp_manager/bnp_manager_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_plugin.h b/code/studio/src/plugins/bnp_manager/bnp_manager_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_plugin.h
rename to code/studio/src/plugins/bnp_manager/bnp_manager_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_window.cpp b/code/studio/src/plugins/bnp_manager/bnp_manager_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_window.cpp
rename to code/studio/src/plugins/bnp_manager/bnp_manager_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_window.h b/code/studio/src/plugins/bnp_manager/bnp_manager_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_window.h
rename to code/studio/src/plugins/bnp_manager/bnp_manager_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_window.ui b/code/studio/src/plugins/bnp_manager/bnp_manager_window.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_manager_window.ui
rename to code/studio/src/plugins/bnp_manager/bnp_manager_window.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_proxy_model.cpp b/code/studio/src/plugins/bnp_manager/bnp_proxy_model.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_proxy_model.cpp
rename to code/studio/src/plugins/bnp_manager/bnp_proxy_model.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_proxy_model.h b/code/studio/src/plugins/bnp_manager/bnp_proxy_model.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/bnp_proxy_model.h
rename to code/studio/src/plugins/bnp_manager/bnp_proxy_model.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_add_item.png b/code/studio/src/plugins/bnp_manager/images/ic_nel_add_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_add_item.png
rename to code/studio/src/plugins/bnp_manager/images/ic_nel_add_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_bnp_make.png b/code/studio/src/plugins/bnp_manager/images/ic_nel_bnp_make.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_bnp_make.png
rename to code/studio/src/plugins/bnp_manager/images/ic_nel_bnp_make.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_delete_item.png b/code/studio/src/plugins/bnp_manager/images/ic_nel_delete_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_delete_item.png
rename to code/studio/src/plugins/bnp_manager/images/ic_nel_delete_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_export.png b/code/studio/src/plugins/bnp_manager/images/ic_nel_export.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_export.png
rename to code/studio/src/plugins/bnp_manager/images/ic_nel_export.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_new.png b/code/studio/src/plugins/bnp_manager/images/ic_nel_new.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_new.png
rename to code/studio/src/plugins/bnp_manager/images/ic_nel_new.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_reset_all.png b/code/studio/src/plugins/bnp_manager/images/ic_nel_reset_all.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/images/ic_nel_reset_all.png
rename to code/studio/src/plugins/bnp_manager/images/ic_nel_reset_all.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/ovqt_plugin_bnp_manager.xml b/code/studio/src/plugins/bnp_manager/ovqt_plugin_bnp_manager.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/bnp_manager/ovqt_plugin_bnp_manager.xml
rename to code/studio/src/plugins/bnp_manager/ovqt_plugin_bnp_manager.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/CMakeLists.txt b/code/studio/src/plugins/core/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/CMakeLists.txt
rename to code/studio/src/plugins/core/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/context_manager.cpp b/code/studio/src/plugins/core/context_manager.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/context_manager.cpp
rename to code/studio/src/plugins/core/context_manager.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/context_manager.h b/code/studio/src/plugins/core/context_manager.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/context_manager.h
rename to code/studio/src/plugins/core/context_manager.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core.cpp b/code/studio/src/plugins/core/core.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/core.cpp
rename to code/studio/src/plugins/core/core.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core.h b/code/studio/src/plugins/core/core.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/core.h
rename to code/studio/src/plugins/core/core.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core.qrc b/code/studio/src/plugins/core/core.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/core.qrc
rename to code/studio/src/plugins/core/core.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_constants.h b/code/studio/src/plugins/core/core_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_constants.h
rename to code/studio/src/plugins/core/core_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_global.h b/code/studio/src/plugins/core/core_global.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_global.h
rename to code/studio/src/plugins/core/core_global.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_plugin.cpp b/code/studio/src/plugins/core/core_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_plugin.cpp
rename to code/studio/src/plugins/core/core_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_plugin.h b/code/studio/src/plugins/core/core_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/core_plugin.h
rename to code/studio/src/plugins/core/core_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/general_settings_page.cpp b/code/studio/src/plugins/core/general_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/general_settings_page.cpp
rename to code/studio/src/plugins/core/general_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/general_settings_page.h b/code/studio/src/plugins/core/general_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/general_settings_page.h
rename to code/studio/src/plugins/core/general_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/general_settings_page.ui b/code/studio/src/plugins/core/general_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/general_settings_page.ui
rename to code/studio/src/plugins/core/general_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_add_item.png b/code/studio/src/plugins/core/icons/ic_nel_add_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_add_item.png
rename to code/studio/src/plugins/core/icons/ic_nel_add_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_crash.png b/code/studio/src/plugins/core/icons/ic_nel_crash.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_crash.png
rename to code/studio/src/plugins/core/icons/ic_nel_crash.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_delete_item.png b/code/studio/src/plugins/core/icons/ic_nel_delete_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_delete_item.png
rename to code/studio/src/plugins/core/icons/ic_nel_delete_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_down_item.png b/code/studio/src/plugins/core/icons/ic_nel_down_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_down_item.png
rename to code/studio/src/plugins/core/icons/ic_nel_down_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_generic_settings.png b/code/studio/src/plugins/core/icons/ic_nel_generic_settings.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_generic_settings.png
rename to code/studio/src/plugins/core/icons/ic_nel_generic_settings.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_new.png b/code/studio/src/plugins/core/icons/ic_nel_new.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_new.png
rename to code/studio/src/plugins/core/icons/ic_nel_new.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_open.png b/code/studio/src/plugins/core/icons/ic_nel_open.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_open.png
rename to code/studio/src/plugins/core/icons/ic_nel_open.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_path_settings.png b/code/studio/src/plugins/core/icons/ic_nel_path_settings.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_path_settings.png
rename to code/studio/src/plugins/core/icons/ic_nel_path_settings.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_pill.png b/code/studio/src/plugins/core/icons/ic_nel_pill.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_pill.png
rename to code/studio/src/plugins/core/icons/ic_nel_pill.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_redo.png b/code/studio/src/plugins/core/icons/ic_nel_redo.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_redo.png
rename to code/studio/src/plugins/core/icons/ic_nel_redo.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_reset_all.png b/code/studio/src/plugins/core/icons/ic_nel_reset_all.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_reset_all.png
rename to code/studio/src/plugins/core/icons/ic_nel_reset_all.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_save.png b/code/studio/src/plugins/core/icons/ic_nel_save.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_save.png
rename to code/studio/src/plugins/core/icons/ic_nel_save.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_save_as.png b/code/studio/src/plugins/core/icons/ic_nel_save_as.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_save_as.png
rename to code/studio/src/plugins/core/icons/ic_nel_save_as.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_undo.png b/code/studio/src/plugins/core/icons/ic_nel_undo.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_undo.png
rename to code/studio/src/plugins/core/icons/ic_nel_undo.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_up_item.png b/code/studio/src/plugins/core/icons/ic_nel_up_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icons/ic_nel_up_item.png
rename to code/studio/src/plugins/core/icons/ic_nel_up_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icontext.h b/code/studio/src/plugins/core/icontext.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icontext.h
rename to code/studio/src/plugins/core/icontext.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icore.h b/code/studio/src/plugins/core/icore.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icore.h
rename to code/studio/src/plugins/core/icore.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/icore_listener.h b/code/studio/src/plugins/core/icore_listener.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/icore_listener.h
rename to code/studio/src/plugins/core/icore_listener.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/images/nel.png b/code/studio/src/plugins/core/images/nel.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/images/nel.png
rename to code/studio/src/plugins/core/images/nel.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/images/preferences.png b/code/studio/src/plugins/core/images/preferences.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/images/preferences.png
rename to code/studio/src/plugins/core/images/preferences.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/ioptions_page.h b/code/studio/src/plugins/core/ioptions_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/ioptions_page.h
rename to code/studio/src/plugins/core/ioptions_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.cpp b/code/studio/src/plugins/core/main_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.cpp
rename to code/studio/src/plugins/core/main_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.h b/code/studio/src/plugins/core/main_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/main_window.h
rename to code/studio/src/plugins/core/main_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/menu_manager.cpp b/code/studio/src/plugins/core/menu_manager.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/menu_manager.cpp
rename to code/studio/src/plugins/core/menu_manager.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/menu_manager.h b/code/studio/src/plugins/core/menu_manager.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/menu_manager.h
rename to code/studio/src/plugins/core/menu_manager.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/ovqt_plugin_core.xml b/code/studio/src/plugins/core/ovqt_plugin_core.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/ovqt_plugin_core.xml
rename to code/studio/src/plugins/core/ovqt_plugin_core.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/plugin_view_dialog.cpp b/code/studio/src/plugins/core/plugin_view_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/plugin_view_dialog.cpp
rename to code/studio/src/plugins/core/plugin_view_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/plugin_view_dialog.h b/code/studio/src/plugins/core/plugin_view_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/plugin_view_dialog.h
rename to code/studio/src/plugins/core/plugin_view_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/plugin_view_dialog.ui b/code/studio/src/plugins/core/plugin_view_dialog.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/plugin_view_dialog.ui
rename to code/studio/src/plugins/core/plugin_view_dialog.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/qtwin.cpp b/code/studio/src/plugins/core/qtwin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/qtwin.cpp
rename to code/studio/src/plugins/core/qtwin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/qtwin.h b/code/studio/src/plugins/core/qtwin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/qtwin.h
rename to code/studio/src/plugins/core/qtwin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/search_paths_settings_page.cpp b/code/studio/src/plugins/core/search_paths_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/search_paths_settings_page.cpp
rename to code/studio/src/plugins/core/search_paths_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/search_paths_settings_page.h b/code/studio/src/plugins/core/search_paths_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/search_paths_settings_page.h
rename to code/studio/src/plugins/core/search_paths_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/search_paths_settings_page.ui b/code/studio/src/plugins/core/search_paths_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/search_paths_settings_page.ui
rename to code/studio/src/plugins/core/search_paths_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/settings_dialog.cpp b/code/studio/src/plugins/core/settings_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/settings_dialog.cpp
rename to code/studio/src/plugins/core/settings_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/settings_dialog.h b/code/studio/src/plugins/core/settings_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/settings_dialog.h
rename to code/studio/src/plugins/core/settings_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/core/settings_dialog.ui b/code/studio/src/plugins/core/settings_dialog.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/core/settings_dialog.ui
rename to code/studio/src/plugins/core/settings_dialog.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/CMakeLists.txt b/code/studio/src/plugins/disp_sheet_id/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/CMakeLists.txt
rename to code/studio/src/plugins/disp_sheet_id/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/disp_sheet_id_plugin.cpp b/code/studio/src/plugins/disp_sheet_id/disp_sheet_id_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/disp_sheet_id_plugin.cpp
rename to code/studio/src/plugins/disp_sheet_id/disp_sheet_id_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/disp_sheet_id_plugin.h b/code/studio/src/plugins/disp_sheet_id/disp_sheet_id_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/disp_sheet_id_plugin.h
rename to code/studio/src/plugins/disp_sheet_id/disp_sheet_id_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/ovqt_plugin_disp_sheet_id.xml b/code/studio/src/plugins/disp_sheet_id/ovqt_plugin_disp_sheet_id.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/ovqt_plugin_disp_sheet_id.xml
rename to code/studio/src/plugins/disp_sheet_id/ovqt_plugin_disp_sheet_id.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/sheet_id_view.cpp b/code/studio/src/plugins/disp_sheet_id/sheet_id_view.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/sheet_id_view.cpp
rename to code/studio/src/plugins/disp_sheet_id/sheet_id_view.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/sheet_id_view.h b/code/studio/src/plugins/disp_sheet_id/sheet_id_view.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/sheet_id_view.h
rename to code/studio/src/plugins/disp_sheet_id/sheet_id_view.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/sheet_id_view.ui b/code/studio/src/plugins/disp_sheet_id/sheet_id_view.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/disp_sheet_id/sheet_id_view.ui
rename to code/studio/src/plugins/disp_sheet_id/sheet_id_view.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/CMakeLists.txt b/code/studio/src/plugins/example/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/CMakeLists.txt
rename to code/studio/src/plugins/example/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_plugin.cpp b/code/studio/src/plugins/example/example_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_plugin.cpp
rename to code/studio/src/plugins/example/example_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_plugin.h b/code/studio/src/plugins/example/example_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_plugin.h
rename to code/studio/src/plugins/example/example_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_settings_page.cpp b/code/studio/src/plugins/example/example_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_settings_page.cpp
rename to code/studio/src/plugins/example/example_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_settings_page.h b/code/studio/src/plugins/example/example_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_settings_page.h
rename to code/studio/src/plugins/example/example_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_settings_page.ui b/code/studio/src/plugins/example/example_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/example_settings_page.ui
rename to code/studio/src/plugins/example/example_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/ovqt_plugin_example.xml b/code/studio/src/plugins/example/ovqt_plugin_example.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/ovqt_plugin_example.xml
rename to code/studio/src/plugins/example/ovqt_plugin_example.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/qnel_widget.cpp b/code/studio/src/plugins/example/qnel_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/qnel_widget.cpp
rename to code/studio/src/plugins/example/qnel_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/qnel_widget.h b/code/studio/src/plugins/example/qnel_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/qnel_widget.h
rename to code/studio/src/plugins/example/qnel_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/simple_viewer.cpp b/code/studio/src/plugins/example/simple_viewer.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/simple_viewer.cpp
rename to code/studio/src/plugins/example/simple_viewer.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/example/simple_viewer.h b/code/studio/src/plugins/example/simple_viewer.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/example/simple_viewer.h
rename to code/studio/src/plugins/example/simple_viewer.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/CMakeLists.txt b/code/studio/src/plugins/georges_editor/CMakeLists.txt
similarity index 92%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/CMakeLists.txt
rename to code/studio/src/plugins/georges_editor/CMakeLists.txt
index 40a8dcbfe..af33f5311 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/CMakeLists.txt
+++ b/code/studio/src/plugins/georges_editor/CMakeLists.txt
@@ -1,12 +1,14 @@
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR}
${CMAKE_CURRENT_SOURCE_DIR}
${LIBXML2_INCLUDE_DIR}
- ${QT_INCLUDES})
+ ${QT_INCLUDES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/qtpropertybrowser)
FILE(GLOB SRC *.cpp *.h)
SET(OVQT_EXT_SYS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin.h
${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_manager.h
- ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h)
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h)
SET(OVQT_PLUG_GEORGES_EDITOR_HDR georges_editor_plugin.h
georges_editor_form.h
@@ -36,7 +38,7 @@ SOURCE_GROUP("OVQT Extension System" FILES ${OVQT_EXT_SYS_SRC})
ADD_LIBRARY(ovqt_plugin_georges_editor MODULE ${SRC} ${OVQT_PLUG_GEORGES_EDITOR_MOC_SRC} ${OVQT_EXT_SYS_SRC} ${OVQT_PLUG_GEORGES_EDITOR_UI_HDRS} ${OVQT_PLUGIN_GEORGES_EDITOR_RC_SRCS})
-TARGET_LINK_LIBRARIES(ovqt_plugin_georges_editor ovqt_plugin_core nelmisc nelgeorges ${QT_LIBRARIES})
+TARGET_LINK_LIBRARIES(ovqt_plugin_georges_editor ovqt_plugin_core nelmisc nelgeorges qt_property_browser ${QT_LIBRARIES})
NL_DEFAULT_PROPS(ovqt_plugin_georges_editor "NeL, Tools, 3D: Object Viewer Qt Plugin: Georges Editor")
NL_ADD_RUNTIME_FLAGS(ovqt_plugin_georges_editor)
diff --git a/code/studio/src/plugins/georges_editor/actions.cpp b/code/studio/src/plugins/georges_editor/actions.cpp
new file mode 100644
index 000000000..c96bca95c
--- /dev/null
+++ b/code/studio/src/plugins/georges_editor/actions.cpp
@@ -0,0 +1,103 @@
+// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework
+// Copyright (C) 2011 Adrian Jaekel
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+// Project includes
+#include "actions.h"
+#include "formitem.h"
+#include "georgesform_model.h"
+
+// Qt includes
+
+
+// NeL includes
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace GeorgesQt
+{
+
+ CUndoFormArrayRenameCommand::CUndoFormArrayRenameCommand(CGeorgesFormModel *model, CFormItem *item, const QVariant &value, QUndoCommand *parent)
+ : QUndoCommand("Rename Form Array Member", parent), m_model(model), m_item(item)
+ {
+ m_newValue = value.toString();
+ }
+
+ void CUndoFormArrayRenameCommand::redo()
+ {
+ update(true);
+ }
+
+ void CUndoFormArrayRenameCommand::undo()
+ {
+ update(false);
+ }
+
+ void CUndoFormArrayRenameCommand::update(bool redo)
+ {
+ // Get the parent node
+ const NLGEORGES::CFormDfn *parentDfn;
+ uint indexDfn;
+ const NLGEORGES::CFormDfn *nodeDfn;
+ const NLGEORGES::CType *nodeType;
+ NLGEORGES::CFormElm *node;
+ NLGEORGES::UFormDfn::TEntryType type;
+ bool isArray;
+ bool vdfnArray;
+ NLGEORGES::CForm *form=static_cast(m_item->form());
+ NLGEORGES::CFormElm *elm = static_cast(&form->Elements);
+
+ nlverify ( elm->getNodeByName (m_item->formName().c_str (), &parentDfn, indexDfn, &nodeDfn, &nodeType, &node, type, isArray, vdfnArray, true, NLGEORGES_FIRST_ROUND) );
+ if (node)
+ {
+ std::string tmpName;
+ node->getFormName(tmpName);
+
+ NLGEORGES::CFormElmArray* array = static_cast (node->getParent ());
+
+ // In the redo stage save the old value, just in case.
+ if(redo)
+ {
+ // If the name of the element is empty then give it a nice default.
+ if(array->Elements[m_item->structId()].Name.empty())
+ {
+ m_oldValue.append("#");
+ m_oldValue.append(QString("%1").arg(m_item->structId()));
+ }
+ else
+ {
+ m_oldValue = QString(array->Elements[m_item->structId()].Name.c_str());
+ }
+ }
+
+ QString value;
+ if(redo)
+ value = m_newValue;
+ else
+ value = m_oldValue;
+
+
+ array->Elements[m_item->structId()].Name = value.toAscii().data();
+ m_item->setName(value.toAscii().data());
+
+ m_model->emitDataChanged(m_model->index(m_item->row(), 0, m_item));
+ }
+ }
+}
\ No newline at end of file
diff --git a/code/studio/src/plugins/georges_editor/actions.h b/code/studio/src/plugins/georges_editor/actions.h
new file mode 100644
index 000000000..0c57b0577
--- /dev/null
+++ b/code/studio/src/plugins/georges_editor/actions.h
@@ -0,0 +1,48 @@
+// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework
+// Copyright (C) 2011 Adrian Jaekel
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef ACTIONS_H
+#define ACTIONS_H
+
+#include
+#include
+
+namespace GeorgesQt
+{
+ class CFormItem;
+ class CGeorgesFormModel;
+
+ class CUndoFormArrayRenameCommand : public QUndoCommand
+ {
+ public:
+ CUndoFormArrayRenameCommand(CGeorgesFormModel *model, CFormItem *item, const QVariant &value, QUndoCommand *parent = 0);
+ ~CUndoFormArrayRenameCommand() {}
+
+ void redo();
+ void undo();
+
+ void update(bool redo);
+
+ protected:
+ CFormItem *m_item;
+ CGeorgesFormModel *m_model;
+
+ QString m_newValue;
+ QString m_oldValue;
+ };
+}
+
+#endif // ACTIONS_H
\ No newline at end of file
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/expandable_headerview.cpp b/code/studio/src/plugins/georges_editor/expandable_headerview.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/expandable_headerview.cpp
rename to code/studio/src/plugins/georges_editor/expandable_headerview.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/expandable_headerview.h b/code/studio/src/plugins/georges_editor/expandable_headerview.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/expandable_headerview.h
rename to code/studio/src/plugins/georges_editor/expandable_headerview.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formdelegate.cpp b/code/studio/src/plugins/georges_editor/formdelegate.cpp
similarity index 99%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formdelegate.cpp
rename to code/studio/src/plugins/georges_editor/formdelegate.cpp
index 91f62c24b..f2a2ba6c3 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formdelegate.cpp
+++ b/code/studio/src/plugins/georges_editor/formdelegate.cpp
@@ -38,6 +38,8 @@
#include "georgesform_proxy_model.h"
#include "formitem.h"
+#if 0
+
namespace GeorgesQt
{
@@ -277,3 +279,5 @@ namespace GeorgesQt
editor->setGeometry(r);
}
} /* namespace GeorgesQt */
+
+#endif // 0
\ No newline at end of file
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formdelegate.h b/code/studio/src/plugins/georges_editor/formdelegate.h
similarity index 98%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formdelegate.h
rename to code/studio/src/plugins/georges_editor/formdelegate.h
index b6885833e..42b10ef3d 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formdelegate.h
+++ b/code/studio/src/plugins/georges_editor/formdelegate.h
@@ -19,6 +19,8 @@
#include
+#if 0
+
namespace GeorgesQt
{
@@ -38,4 +40,6 @@ namespace GeorgesQt
};
}
+#endif // 0
+
#endif // FORMDELEGATE_H
diff --git a/code/studio/src/plugins/georges_editor/formitem.cpp b/code/studio/src/plugins/georges_editor/formitem.cpp
new file mode 100644
index 000000000..426009ca3
--- /dev/null
+++ b/code/studio/src/plugins/georges_editor/formitem.cpp
@@ -0,0 +1,232 @@
+// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework
+// Copyright (C) 2011 Adrian Jaekel
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+// Project includes
+#include "formitem.h"
+#include "actions.h"
+#include "georges_editor_form.h"
+
+// Qt includes
+#include
+
+// NeL includes
+#include
+#include
+#include
+#include
+
+using namespace NLGEORGES;
+
+namespace GeorgesQt
+{
+ CFormItem::CFormItem()
+ {
+ }
+
+ CFormItem::~CFormItem()
+ {
+ qDeleteAll(childItems);
+ }
+
+ void CFormItem::appendChild(CFormItem *item)
+ {
+ childItems.append(item);
+ }
+
+ CFormItem *CFormItem::child(int row)
+ {
+ return childItems.value(row);
+ }
+
+ int CFormItem::childCount() const
+ {
+ return childItems.count();
+ }
+
+ int CFormItem::columnCount() const
+ {
+ //nlinfo("columnCount %d",itemData.count());
+ //return itemData.count();
+ return 1;
+ }
+
+ QVariant CFormItem::data(int column) const
+ {
+ //return itemData.value(column);
+ return QVariant(_Name.c_str());
+ }
+
+ CFormItem *CFormItem::parent()
+ {
+ return parentItem;
+ }
+
+ int CFormItem::row() const
+ {
+ if (parentItem)
+ return parentItem->childItems.indexOf(const_cast(this));
+
+ return 0;
+ }
+
+ bool CFormItem::setData(int column, const QVariant &value)
+ {
+ nlwarning("This should not be called anymore.");
+ return false;
+ }
+
+ bool CFormItem::isEditable(int column)
+ {
+ // Ensure only valid types can be edited.
+ if(_Type == Null)
+ return false;
+
+ // Make sure only the first column (name) can be editted.
+ if (column != 0)
+ return false;
+
+ if(isArrayMember())
+ return true;
+
+ return false;
+ }
+
+ bool CFormItem::isArray()
+ {
+ // If it wasn't a root node then lets check the node type.
+ const NLGEORGES::CFormDfn *parentDfn;
+ uint indexDfn;
+ const NLGEORGES::CFormDfn *nodeDfn;
+ const NLGEORGES::CType *nodeType;
+ NLGEORGES::CFormElm *node;
+ NLGEORGES::UFormDfn::TEntryType type;
+ bool array;
+ bool parentVDfnArray;
+ NLGEORGES::CForm *form = static_cast(m_form);
+ NLGEORGES::CFormElm *elm = static_cast(&form->getRootNode());
+ nlverify ( elm->getNodeByName (_FormName.c_str(), &parentDfn, indexDfn,
+ &nodeDfn, &nodeType, &node, type, array, parentVDfnArray, true, NLGEORGES_FIRST_ROUND) );
+
+ if(array && node)
+ return true;
+
+ return false;
+ }
+
+ bool CFormItem::isArrayMember()
+ {
+ CFormItem *parent = this->parent();
+
+ // If it wasn't a root node then lets check the node type.
+ const NLGEORGES::CFormDfn *parentDfn;
+ uint indexDfn;
+ const NLGEORGES::CFormDfn *nodeDfn;
+ const NLGEORGES::CType *nodeType;
+ NLGEORGES::CFormElm *parentNode;
+ NLGEORGES::UFormDfn::TEntryType type;
+ bool array;
+ bool parentVDfnArray;
+ NLGEORGES::CForm *form = static_cast(m_form);
+ NLGEORGES::CFormElm *elm = static_cast(&form->getRootNode());
+ nlverify ( elm->getNodeByName (parent->formName ().c_str (), &parentDfn, indexDfn,
+ &nodeDfn, &nodeType, &parentNode, type, array, parentVDfnArray, true, NLGEORGES_FIRST_ROUND) );
+
+ if(array && parentNode)
+ return true;
+
+ return false;
+ }
+
+ QIcon CFormItem::getItemImage(CFormItem *rootItem)
+ {
+ if(_Type == CFormItem::Null)
+ {
+ return QIcon(":/images/root.ico");
+ }
+ else if(_Type == CFormItem::Form)
+ {
+ // If the parent is the root item then this is the content.
+ if(parentItem == rootItem)
+ return QIcon(":/images/root.ico");
+
+ // If it wasn't a root node then lets check the node type.
+ const NLGEORGES::CFormDfn *parentDfn;
+ uint indexDfn;
+ const NLGEORGES::CFormDfn *nodeDfn;
+ const NLGEORGES::CType *nodeType;
+ NLGEORGES::CFormElm *node;
+ NLGEORGES::UFormDfn::TEntryType type;
+ bool array;
+ bool parentVDfnArray;
+ NLGEORGES::CForm *form = static_cast(m_form);
+ NLGEORGES::CFormElm *elm = static_cast(&form->getRootNode());
+ nlverify ( elm->getNodeByName (_FormName.c_str(), &parentDfn, indexDfn, &nodeDfn, &nodeType, &node, type, array, parentVDfnArray, true, NLGEORGES_FIRST_ROUND) );
+
+ if(array)
+ {
+ return QIcon(":/images/array.ico");
+ }
+ else
+ {
+ if(type == NLGEORGES::UFormDfn::EntryType)
+ {
+ if(parentDfn)
+ {
+ // Not sure what the hell to do with this. Gets filename from parent dfn?
+ }
+ return QIcon(":/images/zfee51.ico");
+ }
+ else if(type == NLGEORGES::UFormDfn::EntryDfn)
+ {
+ if(parentDfn)
+ {
+ // Not sure what the hell to do with this. Gets filename from parent dfn?
+ }
+ return QIcon(":/images/struct.ico");
+ }
+ else if(type == NLGEORGES::UFormDfn::EntryVirtualDfn)
+ {
+ if(node)
+ {
+ // Not sure what the hell to do with this. Gets filename from parent dfn?
+ std::string dfnName;
+ NLMISC::safe_cast(node)->getDfnName(dfnName);
+ // return dfnName.c_str() ?
+ }
+ return QIcon(":/images/vstruct.ico");
+ }
+ }
+ //return QIcon(":/images/struct.ico");
+ }
+ return QIcon();
+ }
+
+ CFormItem *CFormItem::add (TSub type, const char *name, uint structId, const char *formName, uint slot, NLGEORGES::UForm *formPtr)
+ {
+ CFormItem *newNode = new CFormItem();
+ newNode->_Type = type;
+ newNode->_Name = name;
+ newNode->parentItem = this;
+ newNode->_StructId = structId;
+ newNode->_FormName = formName;
+ newNode->_Slot = slot;
+ newNode->m_form = formPtr;
+
+ appendChild(newNode);
+ return newNode;
+ }
+
+}
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formitem.h b/code/studio/src/plugins/georges_editor/formitem.h
similarity index 52%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formitem.h
rename to code/studio/src/plugins/georges_editor/formitem.h
index f440d1cf4..cc2dafece 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/formitem.h
+++ b/code/studio/src/plugins/georges_editor/formitem.h
@@ -18,6 +18,7 @@
#define FORMITEM_H
// NeL includes
+#include
#include
// Qt includes
@@ -28,17 +29,25 @@ namespace GeorgesQt
{
class CFormItem
-
{
public:
- CFormItem(NLGEORGES::UFormElm *elm, const QList &data,
- CFormItem *parent = 0,
- NLGEORGES::UFormElm::TWhereIsValue = NLGEORGES::UFormElm::ValueForm,
- NLGEORGES::UFormElm::TWhereIsNode = NLGEORGES::UFormElm::NodeForm);
+ // What is the sub object ?
+ enum TSub
+ {
+ Null, // Nothing in this node (root ?)
+ Header, // Header node
+ Type, // This node is a type
+ Dfn, // This node is a dfn
+ Form, // This node is a form
+ };
+
+ CFormItem();
~CFormItem();
void appendChild(CFormItem *child);
+ CFormItem *add (TSub type, const char *name, uint structId, const char *formName, uint slot, NLGEORGES::UForm *formPtr);
+
CFormItem *child(int row);
int childCount() const;
int columnCount() const;
@@ -46,23 +55,36 @@ namespace GeorgesQt
int row() const;
CFormItem *parent();
bool setData(int column, const QVariant &value);
- NLGEORGES::UFormElm* getFormElm() {return formElm;}
- NLGEORGES::UFormElm::TWhereIsValue valueFrom()
- {
- return whereV;
- }
- NLGEORGES::UFormElm::TWhereIsNode nodeFrom()
- {
- return whereN;
- }
- private:
+ TSub nodeType() { return _Type; }
+ std::string formName() { return _FormName; }
+
+ std::string name() { return _Name; }
+ void setName(std::string name) { _Name = name; }
+
+ uint structId() { return _StructId; }
+
+ NLGEORGES::UForm *form() { return m_form; }
+
+ bool isEditable(int column);
+ bool isArray();
+ bool isArrayMember();
+
+ QIcon getItemImage(CFormItem *rootItem);
+
+ private:
QList childItems;
QList itemData;
CFormItem *parentItem;
NLGEORGES::UFormElm* formElm;
- NLGEORGES::UFormElm::TWhereIsValue whereV;
- NLGEORGES::UFormElm::TWhereIsNode whereN;
+ NLGEORGES::UForm *m_form;
+
+ uint _StructId;
+ std::string _Name;
+ std::string _FormName;
+ TSub _Type;
+ uint _Slot;
+
}; // CFormItem
}
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges.cpp b/code/studio/src/plugins/georges_editor/georges.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges.cpp
rename to code/studio/src/plugins/georges_editor/georges.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges.h b/code/studio/src/plugins/georges_editor/georges.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges.h
rename to code/studio/src/plugins/georges_editor/georges.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_dirtree_dialog.cpp b/code/studio/src/plugins/georges_editor/georges_dirtree_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_dirtree_dialog.cpp
rename to code/studio/src/plugins/georges_editor/georges_dirtree_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_dirtree_dialog.h b/code/studio/src/plugins/georges_editor/georges_dirtree_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_dirtree_dialog.h
rename to code/studio/src/plugins/georges_editor/georges_dirtree_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_dirtree_form.ui b/code/studio/src/plugins/georges_editor/georges_dirtree_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_dirtree_form.ui
rename to code/studio/src/plugins/georges_editor/georges_dirtree_form.ui
diff --git a/code/studio/src/plugins/georges_editor/georges_editor.qrc b/code/studio/src/plugins/georges_editor/georges_editor.qrc
new file mode 100644
index 000000000..8d71d1438
--- /dev/null
+++ b/code/studio/src/plugins/georges_editor/georges_editor.qrc
@@ -0,0 +1,12 @@
+
+
+ images/array.ico
+ images/header.ico
+ images/hold.ico
+ images/root.ico
+ images/struct.ico
+ images/vstruct.ico
+ images/zfee51.ico
+ images/ic_nel_georges_editor.png
+
+
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_constants.h b/code/studio/src/plugins/georges_editor/georges_editor_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_constants.h
rename to code/studio/src/plugins/georges_editor/georges_editor_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_form.cpp b/code/studio/src/plugins/georges_editor/georges_editor_form.cpp
similarity index 98%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_form.cpp
rename to code/studio/src/plugins/georges_editor/georges_editor_form.cpp
index 6c46d4964..a0240eef8 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_form.cpp
+++ b/code/studio/src/plugins/georges_editor/georges_editor_form.cpp
@@ -36,6 +36,7 @@
namespace GeorgesQt
{
+ QUndoStack *GeorgesEditorForm::UndoStack = NULL;
GeorgesEditorForm::GeorgesEditorForm(QWidget *parent)
: QMainWindow(parent),
@@ -62,7 +63,7 @@ namespace GeorgesQt
m_mainDock->setDockNestingEnabled(true);
layout->addWidget(m_mainDock);
- m_undoStack = new QUndoStack(this);
+ UndoStack = new QUndoStack(this);
Core::MenuManager *menuManager = Core::ICore::instance()->menuManager();
m_openAction = menuManager->action(Core::Constants::OPEN);
@@ -115,7 +116,7 @@ namespace GeorgesQt
QUndoStack *GeorgesEditorForm::undoStack() const
{
- return m_undoStack;
+ return UndoStack;
}
void GeorgesEditorForm::open()
@@ -212,7 +213,7 @@ namespace GeorgesQt
}
CGeorgesTreeViewDialog *dock = new CGeorgesTreeViewDialog(m_mainDock);
- dock->setUndoStack(m_undoStack);
+ dock->setUndoStack(UndoStack);
m_lastActiveDock = dock;
m_dockedWidgets.append(dock);
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_form.h b/code/studio/src/plugins/georges_editor/georges_editor_form.h
similarity index 98%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_form.h
rename to code/studio/src/plugins/georges_editor/georges_editor_form.h
index 77fdd1ec8..c9cef964c 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_form.h
+++ b/code/studio/src/plugins/georges_editor/georges_editor_form.h
@@ -38,6 +38,8 @@ public:
QUndoStack *undoStack() const;
+ static QUndoStack *UndoStack;
+
public Q_SLOTS:
void open();
void loadFile(const QString fileName);
@@ -54,7 +56,6 @@ private:
void readSettings();
void writeSettings();
- QUndoStack *m_undoStack;
Ui::GeorgesEditorForm m_ui;
CGeorgesDirTreeDialog *m_georgesDirTreeDialog;
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_form.ui b/code/studio/src/plugins/georges_editor/georges_editor_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_form.ui
rename to code/studio/src/plugins/georges_editor/georges_editor_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_plugin.cpp b/code/studio/src/plugins/georges_editor/georges_editor_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_plugin.cpp
rename to code/studio/src/plugins/georges_editor/georges_editor_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_plugin.h b/code/studio/src/plugins/georges_editor/georges_editor_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_editor_plugin.h
rename to code/studio/src/plugins/georges_editor/georges_editor_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_filesystem_model.cpp b/code/studio/src/plugins/georges_editor/georges_filesystem_model.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_filesystem_model.cpp
rename to code/studio/src/plugins/georges_editor/georges_filesystem_model.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_filesystem_model.h b/code/studio/src/plugins/georges_editor/georges_filesystem_model.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_filesystem_model.h
rename to code/studio/src/plugins/georges_editor/georges_filesystem_model.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_dialog.cpp b/code/studio/src/plugins/georges_editor/georges_treeview_dialog.cpp
similarity index 53%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_dialog.cpp
rename to code/studio/src/plugins/georges_editor/georges_treeview_dialog.cpp
index c19a01fd7..f1819f52a 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_dialog.cpp
+++ b/code/studio/src/plugins/georges_editor/georges_treeview_dialog.cpp
@@ -14,14 +14,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-#include "stdpch.h"
#include "georges_treeview_dialog.h"
-#include "georges.h"
-#include "georgesform_model.h"
-#include "georgesform_proxy_model.h"
-#include "formitem.h"
-#include "formdelegate.h"
-#include "expandable_headerview.h"
// Qt includes
#include
@@ -43,6 +36,14 @@
#include "../core/icore.h"
#include "../core/core_constants.h"
+// Project includes
+#include "georges.h"
+#include "georgesform_model.h"
+#include "georgesform_proxy_model.h"
+#include "formitem.h"
+#include "formdelegate.h"
+#include "expandable_headerview.h"
+
using namespace NLMISC;
using namespace NLGEORGES;
@@ -60,7 +61,7 @@ namespace GeorgesQt
// Set the default sheet dir dir to the level design path.
m_lastSheetDir = ".";
QSettings *settings = Core::ICore::instance()->settings();
- settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
+ settings->beginGroup(Core::Constants::DATA_PATH_SECTION);
m_lastSheetDir = settings->value(Core::Constants::LEVELDESIGN_PATH, "l:/leveldesign").toString();
settings->endGroup();
@@ -71,23 +72,14 @@ namespace GeorgesQt
m_ui.treeView->header()->setStretchLastSection(true);
m_ui.treeViewTabWidget->setTabEnabled (2,false);
- m_ui.checkBoxParent->setStyleSheet("background-color: rgba(0,255,0,30)");
- m_ui.checkBoxDefaults->setStyleSheet("background-color: rgba(255,0,0,30)");
m_form = 0;
- FormDelegate *formdelegate = new FormDelegate(this);
- m_ui.treeView->setItemDelegateForColumn(1, formdelegate);
-
- // Set up custom context menu.
- setContextMenuPolicy(Qt::CustomContextMenu);
- connect(this, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(showContextMenu(const QPoint&)));
+ m_ui.treeView->setContextMenuPolicy(Qt::CustomContextMenu);
+ connect(m_ui.treeView, SIGNAL(customContextMenuRequested(const QPoint&)),
+ this, SLOT(showContextMenu(const QPoint&)));
connect(m_ui.treeView, SIGNAL(doubleClicked (QModelIndex)),
this, SLOT(doubleClicked (QModelIndex)));
- connect(m_ui.checkBoxParent, SIGNAL(toggled(bool)),
- this, SLOT(filterRows()));
- connect(m_ui.checkBoxDefaults, SIGNAL(toggled(bool)),
- this, SLOT(filterRows()));
connect(m_header, SIGNAL(headerClicked(int)),
this, SLOT(headerClicked(int)));
}
@@ -101,12 +93,12 @@ namespace GeorgesQt
void CGeorgesTreeViewDialog::headerClicked(int section)
{
if (section == 0)
- {
+ {
if (*(m_header->expanded()))
m_ui.treeView->expandAll();
else
m_ui.treeView->collapseAll();
- }
+ }
}
void CGeorgesTreeViewDialog::setForm(const CForm *form)
@@ -116,30 +108,30 @@ namespace GeorgesQt
NLGEORGES::CForm* CGeorgesTreeViewDialog::getFormByName(const QString formName)
{
- if(NLMISC::CPath::exists(formName.toUtf8().constData()))
+ if(NLMISC::CPath::exists(formName.toAscii().data()))
{
- //NLGEORGES::CForm *form = dynamic_cast(m_georges->loadForm(formName.toUtf8()));
- return (NLGEORGES::CForm *)m_georges->loadForm(formName.toUtf8().constData());
+ //NLGEORGES::CForm *form = dynamic_cast(m_georges->loadForm(formName.toAscii().data()));
+ return (NLGEORGES::CForm *)m_georges->loadForm(formName.toAscii().data());
}
//else
//{
// CForm *form = 0;
// // Load the DFN
- // std::string extStr = NLMISC::CFile::getExtension( formName.toUtf8() );
+ // std::string extStr = NLMISC::CFile::getExtension( formName.toAscii().data() );
// QString dfnName = QString("%1.dfn").arg(extStr.c_str());
// UFormDfn *formdfn;
- // if (NLMISC::CPath::exists(dfnName.toUtf8()))
+ // if (NLMISC::CPath::exists(dfnName.toAscii().data()))
// {
- // formdfn = _georges->loadFormDfn (dfnName.toUtf8());
+ // formdfn = _georges->loadFormDfn (dfnName.toAscii().data());
// if (!formdfn)
// {
- // nlwarning("Failed to load dfn: %s", dfnName.toUtf8());
+ // nlwarning("Failed to load dfn: %s", dfnName.toAscii().data());
// return 0;
// }
// }
// else
// {
- // nlwarning("Cannot find dfn: %s", dfnName.toUtf8());
+ // nlwarning("Cannot find dfn: %s", dfnName.toAscii().data());
// return 0;
// }
@@ -155,56 +147,56 @@ namespace GeorgesQt
// }
// return form;
//}
- nlinfo("File '%s' does not exist!", formName.toUtf8().constData());
+ nlinfo("File '%s' does not exist!", formName.toAscii().data());
return 0;
}
NLGEORGES::CForm* CGeorgesTreeViewDialog::getFormByDfnName(const QString dfnName)
{
- if(NLMISC::CPath::exists(dfnName.toUtf8().constData()))
- {
- // Create a new form object.
- NLGEORGES::CForm *form = new NLGEORGES::CForm();
- m_form = form;
+ if(NLMISC::CPath::exists(dfnName.toAscii().data()))
+ {
+ // Create a new form object.
+ NLGEORGES::CForm *form = new NLGEORGES::CForm();
+ m_form = form;
- // Retrieve a copy of the root definition.
- NLGEORGES::CFormDfn *formDfn = dynamic_cast(m_georges->loadFormDfn(dfnName.toUtf8().constData()));
+ // Retrieve a copy of the root definition.
+ NLGEORGES::CFormDfn *formDfn = dynamic_cast(m_georges->loadFormDfn(dfnName.toAscii().data()));
- // Next we'll use the root node to build a new form.
- NLGEORGES::CFormElmStruct *fes = dynamic_cast(getRootNode(0));
- fes->build(formDfn);
+ // Next we'll use the root node to build a new form.
+ NLGEORGES::CFormElmStruct *fes = dynamic_cast(getRootNode(0));
+ fes->build(formDfn);
- // And then initialize the held elements;
- for(uint i = 0; i(getRootNode(i+1));
- fes->build(formDfn);
- }
+ // And then initialize the held elements;
+ for(uint i = 0; i(getRootNode(i+1));
+ fes->build(formDfn);
+ }
- return form;
- }
- nlinfo("File '%s' does not exist!", dfnName.toUtf8().constData());
- return NULL;
+ return form;
+ }
+ nlinfo("File '%s' does not exist!", dfnName.toAscii().data());
+ return NULL;
}
NLGEORGES::CFormElm *CGeorgesTreeViewDialog::getRootNode(uint slot)
{
- NLGEORGES::CForm *form = getFormPtr();
+ NLGEORGES::CForm *form = getFormPtr();
- if(slot == 0)
- {
- const NLGEORGES::UFormElm &formElm = form->getRootNode();
- return (NLGEORGES::CFormElm *)&formElm;
- }
+ if(slot == 0)
+ {
+ const NLGEORGES::UFormElm &formElm = form->getRootNode();
+ return (NLGEORGES::CFormElm *)&formElm;
+ }
- // Make sure the slot value is valid and then return the corresponding element.
- nlassert(slot < NLGEORGES::CForm::HeldElementCount+1);
- return getFormPtr()->HeldElements[slot-1];
+ // Make sure the slot value is valid and then return the corresponding element.
+ nlassert(slot < NLGEORGES::CForm::HeldElementCount+1);
+ return getFormPtr()->HeldElements[slot-1];
}
NLGEORGES::CForm *CGeorgesTreeViewDialog::getFormPtr()
{
- return dynamic_cast(m_form);
+ return dynamic_cast(m_form);
}
void CGeorgesTreeViewDialog::loadFormIntoDialog(CForm *form)
@@ -218,14 +210,16 @@ namespace GeorgesQt
UFormElm *root = 0;
root = &m_form->getRootNode();
+ // Extract the parent forms into the list of parents in the dialog.
QStringList parents;
- uint cnt = form->getParentCount();
- for (uint i = 0; i < cnt /*form->getParentCount()*/; i++)
+ uint cnt = form->getParentCount();
+ for (uint i = 0; i < cnt /*form->getParentCount()*/; i++)
{
UForm *u = m_form->getParentForm(i);
parents << u->getFilename().c_str();
}
+ // Exact the comment box for the dialog.
QString comments;
comments = m_form->getComment().c_str();
@@ -249,22 +243,15 @@ namespace GeorgesQt
nlinfo("typ's %d",deps["typ"].count());
nlinfo("dfn's %d",deps["dfn"].count());
- //nlwarning(strList.join(";").toUtf8());
+ //nlwarning(strList.join(";").toAscii().data());
if (root)
{
loadedForm = m_form->getFilename().c_str();
- CGeorgesFormModel *model = new CGeorgesFormModel(root,deps,comments,parents,m_header->expanded());
- CGeorgesFormProxyModel *proxyModel = new CGeorgesFormProxyModel();
- proxyModel->setSourceModel(model);
- m_ui.treeView->setModel(proxyModel);
+ CGeorgesFormModel *model = new CGeorgesFormModel(m_form,deps,comments,parents,m_header->expanded());
+ m_ui.treeView->setModel(model);
m_ui.treeView->expandAll();
- // this is a debug output row
- m_ui.treeView->hideColumn(3);
- filterRows();
-
- // //_ui.treeView->setRowHidden(0,QModelIndex(),true);
connect(model, SIGNAL(dataChanged(const QModelIndex, const QModelIndex)),
this, SLOT(modifiedFile()));
@@ -276,12 +263,11 @@ namespace GeorgesQt
void CGeorgesTreeViewDialog::addParentForm(QString parentFormNm)
{
// Try to load the form
- NLGEORGES::UForm *uParentForm = m_georges->loadForm(parentFormNm.toUtf8().constData());
+ NLGEORGES::UForm *uParentForm = m_georges->loadForm(parentFormNm.toAscii().data());
NLGEORGES::CForm *parentForm = dynamic_cast(uParentForm);
NLGEORGES::CForm *mainForm = static_cast(m_form);
- CGeorgesFormProxyModel * proxyModel = dynamic_cast(m_ui.treeView->model());
- CGeorgesFormModel *model = dynamic_cast(proxyModel->sourceModel());
+ CGeorgesFormModel *model = dynamic_cast(m_ui.treeView->model());
if(parentForm)
{
@@ -291,11 +277,11 @@ namespace GeorgesQt
if (parentForm->Elements.FormDfn == mainForm->Elements.FormDfn)
{
// This is the parent form selector
- if(!mainForm->insertParent(mainForm->getParentCount(),parentFormNm.toUtf8(), parentForm))
- nlwarning("Failed to add parent form: %s", parentFormNm.toUtf8().constData());
+ if(!mainForm->insertParent(mainForm->getParentCount(),parentFormNm.toAscii().data(), parentForm))
+ nlwarning("Failed to add parent form: %s", parentFormNm.toAscii().data());
else
{
- nlinfo("Successfullyadded parent form: %s", parentFormNm.toUtf8().constData());
+ nlinfo("Successfullyadded parent form: %s", parentFormNm.toAscii().data());
model->addParentForm(parentFormNm);
}
}
@@ -316,12 +302,12 @@ namespace GeorgesQt
void CGeorgesTreeViewDialog::write( )
{
- NLMISC::COFile file;
- std::string s = NLMISC::CPath::lookup(loadedForm.toUtf8().constData(), false);
- if(file.open (s))
- {
- try
- {
+ NLMISC::COFile file;
+ std::string s = NLMISC::CPath::lookup(loadedForm.toAscii().data(), false);
+ if(file.open (s))
+ {
+ try
+ {
// if (loadedForm.contains(".typ"))
// {
// //nlassert (Type != NULL);
@@ -334,7 +320,7 @@ namespace GeorgesQt
// // flushValueChange ();
// //}
// //Type->write (xmlStream.getDocument (), theApp.Georges4CVS);
- // //modify (NULL, NULL, false);
+ // //modify (NULL, NULL, false);
// //flushValueChange ();
// //UpdateAllViews (NULL);
// //return TRUE;
@@ -356,9 +342,9 @@ namespace GeorgesQt
// }
// else
// {
- nlassert (m_form != NULL);
+ nlassert (m_form != NULL);
- // Write the file
+ // Write the file
// /*if (IsModified ())
// {
// ((CForm*)(UForm*)Form)->Header.MinorVersion++;
@@ -380,33 +366,29 @@ namespace GeorgesQt
// // Get the left view
// //CView* pView = getLeftView ();
// }
- }
- catch (Exception &e)
- {
- nlerror("Error while loading file: %s", e.what());
- }
- }
- else
- {
- nlerror("Can't open the file %s for writing.", s.c_str());
- }
+ }
+ catch (Exception &e)
+ {
+ nlerror("Error while loading file: %s", e.what());
+ }
+ }
+ else
+ {
+ nlerror("Can't open the file %s for writing.", s.c_str());
+ }
}
void CGeorgesTreeViewDialog::doubleClicked ( const QModelIndex & index )
{
- // TODO: this is messy :( perhaps this can be done better
- CGeorgesFormProxyModel * proxyModel =
- dynamic_cast(m_ui.treeView->model());
- CGeorgesFormModel *model =
- dynamic_cast(proxyModel->sourceModel());
- QModelIndex sourceIndex = proxyModel->mapToSource(index);
+ //CGeorgesFormModel *model =
+ // dynamic_cast((m_ui.treeView->model());
- CFormItem *item = model->getItem(sourceIndex);
+ //CFormItem *item = model->getItem(index);
- if (item->parent() && item->parent()->data(0) == "parents")
- {
- Q_EMIT changeFile(CPath::lookup(item->data(0).toString().toUtf8().constData(),false).c_str());
- }
+ //if (item->parent() && item->parent()->data(0) == "parents")
+ //{
+ // Q_EMIT changeFile(CPath::lookup(item->data(0).toString().toAscii().data(),false).c_str());
+ //}
//// col containing additional stuff like icons
//if (index.column() == 2)
@@ -415,7 +397,7 @@ namespace GeorgesQt
// CFormItem *item = m->getItem(in2);
// QString value = item->data(1).toString();
- // QString path = CPath::lookup(value.toUtf8(),false).c_str();
+ // QString path = CPath::lookup(value.toAscii().data(),false).c_str();
// if(value.contains(".tga") || value.contains(".png"))
// {
@@ -443,7 +425,7 @@ namespace GeorgesQt
// {
// Modules::objViewInt()->resetScene();
// //Modules::config().configRemapExtensions();
- // Modules::objViewInt()->loadMesh(path.toUtf8(),"");
+ // Modules::objViewInt()->loadMesh(path.toAscii().data(),"");
// }
// return;
// }
@@ -472,12 +454,12 @@ namespace GeorgesQt
void CGeorgesTreeViewDialog::filterRows()
{
- CGeorgesFormProxyModel * mp = dynamic_cast(m_ui.treeView->model());
- CGeorgesFormModel *m = dynamic_cast(mp->sourceModel());
- if (m) {
- m->setShowParents(m_ui.checkBoxParent->isChecked());
- m->setShowDefaults(m_ui.checkBoxDefaults->isChecked());
- }
+ //CGeorgesFormProxyModel * mp = dynamic_cast(m_ui.treeView->model());
+ //CGeorgesFormModel *m = dynamic_cast(mp->sourceModel());
+ //if (m) {
+ // m->setShowParents(m_ui.checkBoxParent->isChecked());
+ // m->setShowDefaults(m_ui.checkBoxDefaults->isChecked());
+ //}
}
void CGeorgesTreeViewDialog::showContextMenu(const QPoint &pos)
@@ -485,116 +467,135 @@ namespace GeorgesQt
QMenu contextMenu;
QMenu *structContext = NULL;
QPoint globalPos = this->mapToGlobal(pos);
-
+
// Fisrt we're going to see if we've right clicked on a new item and select it.
const QModelIndex &index = this->m_ui.treeView->currentIndex();
if(!index.isValid())
return;
- CGeorgesFormProxyModel * mp = dynamic_cast(m_ui.treeView->model());
- CGeorgesFormModel *m = dynamic_cast(mp->sourceModel());
- QModelIndex sourceIndex = mp->mapToSource(index);
+ CGeorgesFormModel *m = dynamic_cast(m_ui.treeView->model());
- if (m)
+ if(m)
{
-
- CFormItem *item = m->getItem(sourceIndex);
+ CFormItem *item = m->getItem(index);
// Right click on the "parents" item
- if (item->data(0) == "parents")
- contextMenu.addAction("Add parent...");
- // Right click on a parent item
- else if(item->parent() && item->parent()->data(0) == "parents")
+ // if (item->data(0) == "parents")
+ // contextMenu.addAction("Add parent...");
+ // // Right click on a parent item
+ // else if(item->parent() && item->parent()->data(0) == "parents")
+ // {
+ // contextMenu.addAction("Add parent...");
+ // contextMenu.addAction("Remove parent");
+ // }
+ if(item->isArray())
{
- contextMenu.addAction("Add parent...");
- contextMenu.addAction("Remove parent");
+ contextMenu.addAction("Append array entry...");
}
- else if(item->getFormElm()->isArray())
- contextMenu.addAction("Add array entry...");
- else if(item->getFormElm()->isStruct())
+ else if(item->isArrayMember())
{
- QMenu *structContext = new QMenu("Add struct element...", this);
- contextMenu.addMenu(structContext);
-
- NLGEORGES::UFormDfn *defn = item->getFormElm()->getStructDfn();
- if(defn)
- {
- for(uint defnNum=0; defnNum < defn->getNumEntry(); defnNum++)
- {
- std::string entryName;
- std::string dummy;
- UFormElm::TWhereIsValue *whereV = new UFormElm::TWhereIsValue;
- bool result = defn->getEntryName(defnNum, entryName);
- bool result2 = item->getFormElm()->getValueByName(dummy, entryName.c_str(), NLGEORGES::UFormElm::Eval, whereV);
-
-
- if(result2 && *whereV != UFormElm::ValueForm)
- {
- structContext->addAction(entryName.c_str());
- }
- delete whereV;
- }
- }
+ contextMenu.addAction("Delete array entry...");
+ contextMenu.addAction("Insert after array entry...");
}
- else if(item->getFormElm()->isAtom() && item->valueFrom() == NLGEORGES::UFormElm::ValueForm)
- contextMenu.addAction("Revert to parent/default...");
+ // else if(item->getFormElm()->isStruct())
+ // {
+ // QMenu *structContext = new QMenu("Add struct element...", this);
+ // contextMenu.addMenu(structContext);
- QAction *selectedItem = contextMenu.exec(globalPos);
- if(selectedItem)
- {
- if(selectedItem->text() == "Add parent...")
- {
- // Get the file extension of the form so we can build a dialog pattern.
- QString file = m_form->getFilename().c_str();
- file = file.remove(0,file.indexOf(".")+1);
- QString filePattern = "Parent Sheets (*."+file+")";
-
- nlinfo("parent defn name '%s'", file.toUtf8().constData());
- QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Select parent sheets..."), m_lastSheetDir, filePattern);
- if(!fileNames.isEmpty())
- {
- Q_FOREACH(QString fileToParent, fileNames)
- {
- // Get just the filename. Georges doesn't want the path.
- QFileInfo pathInfo( fileToParent );
- QString tmpFileName( pathInfo.fileName() );
+ // NLGEORGES::UFormDfn *defn = item->getFormElm()->getStructDfn();
+ // if(defn)
+ // {
+ // for(uint defnNum=0; defnNum < defn->getNumEntry(); defnNum++)
+ // {
+ // std::string entryName;
+ // std::string dummy;
+ // UFormElm::TWhereIsValue *whereV = new UFormElm::TWhereIsValue;
+ // bool result = defn->getEntryName(defnNum, entryName);
+ // bool result2 = item->getFormElm()->getValueByName(dummy, entryName.c_str(), NLGEORGES::UFormElm::Eval, whereV);
- nlinfo("requesting to add parent form '%s'", tmpFileName.toUtf8().constData());
-
- // Call to add the form and load it into the Georges form.
- addParentForm(tmpFileName);
+ //
+ // if(result2 && *whereV != UFormElm::ValueForm)
+ // {
+ // structContext->addAction(entryName.c_str());
+ // }
+ // delete whereV;
+ // }
+ // }
+ // }
+ // else if(item->getFormElm()->isAtom() && item->valueFrom() == NLGEORGES::UFormElm::ValueForm)
+ // contextMenu.addAction("Revert to parent/default...");
- // Save the file lookup path for future dialog boxes.
- m_lastSheetDir = pathInfo.absolutePath();
- }
- }
- m_ui.treeView->expandAll();
- }
- else if(selectedItem->text() == "Remove parent")
- {
- NLGEORGES::CForm *form = static_cast(m_form);
- QString parentFileName = item->data(0).toString();
+ QAction *selectedItem = contextMenu.exec(QCursor::pos());
+ if(selectedItem)
+ {
+ if(selectedItem->text() == "Append array entry...")
+ {
- for(uint num = 0; num < form->getParentCount(); num++)
- {
- QString curParentName = form->getParent(num)->getFilename().c_str();
- if(parentFileName == curParentName)
- {
- form->removeParent(num);
- m->removeParentForm(parentFileName);
- break;
- }
- }
- m_ui.treeView->expandAll();
- }
+ } // Append an array entry...
+ else if(selectedItem->text() == "Delete array entry...")
+ {
- } // if selected context menu item is valid.
+ }
+ else if(selectedItem->text() == "Insert after array entry...")
+ {
+
+ }
+
+
+ // if(selectedItem->text() == "Add parent...")
+ // {
+ // // Get the file extension of the form so we can build a dialog pattern.
+ // QString file = m_form->getFilename().c_str();
+ // file = file.remove(0,file.indexOf(".")+1);
+ // QString filePattern = "Parent Sheets (*."+file+")";
+ //
+ // nlinfo("parent defn name '%s'", file.toAscii().data());
+ // QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Select parent sheets..."), m_lastSheetDir, filePattern);
+ // if(!fileNames.isEmpty())
+ // {
+ // Q_FOREACH(QString fileToParent, fileNames)
+ // {
+ // // Get just the filename. Georges doesn't want the path.
+ // QFileInfo pathInfo( fileToParent );
+ // QString tmpFileName( pathInfo.fileName() );
+
+ // nlinfo("requesting to add parent form '%s'", tmpFileName.toAscii().data());
+ //
+ // // Call to add the form and load it into the Georges form.
+ // addParentForm(tmpFileName);
+
+ // // Save the file lookup path for future dialog boxes.
+ // m_lastSheetDir = pathInfo.absolutePath();
+ // }
+ // }
+ // m_ui.treeView->expandAll();
+ // }
+ // else if(selectedItem->text() == "Remove parent")
+ // {
+ // NLGEORGES::CForm *form = static_cast(m_form);
+ // QString parentFileName = item->data(0).toString();
+
+ // for(uint num = 0; num < form->getParentCount(); num++)
+ // {
+ // QString curParentName = form->getParent(num)->getFilename().c_str();
+ // if(parentFileName == curParentName)
+ // {
+ // form->removeParent(num);
+ // m->removeParentForm(parentFileName);
+ // break;
+ // }
+ // }
+
+ // m_ui.treeView->expandAll();
+ // }
+
+ } // if selected context menu item is valid.
} // if 'm' model valid.
- if(structContext)
- delete structContext;
+ //if(structContext)
+ // delete structContext;
}
} /* namespace GeorgesQt */
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_dialog.h b/code/studio/src/plugins/georges_editor/georges_treeview_dialog.h
similarity index 87%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_dialog.h
rename to code/studio/src/plugins/georges_editor/georges_treeview_dialog.h
index e34ab572b..6f7b57acc 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_dialog.h
+++ b/code/studio/src/plugins/georges_editor/georges_treeview_dialog.h
@@ -57,14 +57,14 @@ namespace GeorgesQt
bool isModified() {return m_modified;}
void setModified(bool m) {m_modified = m;}
- NLGEORGES::CForm* getFormByName(const QString formName);
- NLGEORGES::CForm* getFormByDfnName(const QString dfnName);
+ NLGEORGES::CForm* getFormByName(const QString formName);
+ NLGEORGES::CForm* getFormByDfnName(const QString dfnName);
- /// Retrieves the root element based on the slot (document or held elements.)
- NLGEORGES::CFormElm *getRootNode(uint slot);
+ /// Retrieves the root element based on the slot (document or held elements.)
+ NLGEORGES::CFormElm *getRootNode(uint slot);
- /// Returns the form as a CForm pointer.
- NLGEORGES::CForm *getFormPtr();
+ /// Returns the form as a CForm pointer.
+ NLGEORGES::CForm *getFormPtr();
void addParentForm(QString parentFormNm);
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_form.ui b/code/studio/src/plugins/georges_editor/georges_treeview_form.ui
similarity index 51%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_form.ui
rename to code/studio/src/plugins/georges_editor/georges_treeview_form.ui
index 8d53bfdd6..0bf52a3ea 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georges_treeview_form.ui
+++ b/code/studio/src/plugins/georges_editor/georges_treeview_form.ui
@@ -6,8 +6,8 @@
0
0
- 400
- 300
+ 564
+ 525
@@ -18,8 +18,8 @@
- 199
- 165
+ 280
+ 242
@@ -29,9 +29,21 @@
-
+
+
+ 0
+ 0
+
+
+
-
+
+
+ 0
+ 0
+
+
QTabWidget::West
@@ -39,60 +51,40 @@
0
-
- Qt::NoFocus
-
Form
-
-
- 0
-
-
-
-
-
-
- 0
- 0
-
-
-
-
- 0
- 0
-
-
-
- true
-
-
-
- -
-
-
- Parent
-
-
-
- -
-
+
+
-
+
Qt::Horizontal
-
-
- 40
- 20
-
-
-
-
- -
-
-
- Defaults
-
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ true
+
+
+
+
+
+ 0
+ 0
+
+
+
@@ -126,8 +118,14 @@
-
-
-
+
+
+ QtTreePropertyBrowser
+ QWidget
+
+ 1
+
+
+
diff --git a/code/studio/src/plugins/georges_editor/georgesform_model.cpp b/code/studio/src/plugins/georges_editor/georgesform_model.cpp
new file mode 100644
index 000000000..387bc8917
--- /dev/null
+++ b/code/studio/src/plugins/georges_editor/georgesform_model.cpp
@@ -0,0 +1,561 @@
+// Object Viewer Qt - Georges Editor Plugin - MMORPG Framework
+// Copyright (C) 2011 Adrian Jaekel
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include "georgesform_model.h"
+
+// System Includes
+#include
+
+// NeL includes
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+// Qt includes
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+// project includes
+#include "formitem.h"
+#include "georges_editor_form.h"
+#include "actions.h"
+
+using namespace NLGEORGES;
+
+namespace GeorgesQt
+{
+
+ CGeorgesFormModel::CGeorgesFormModel(UForm *form, QMap< QString, QStringList> deps,
+ QString comment, QStringList parents, bool *expanded, QObject *parent) : QAbstractItemModel(parent)
+ {
+ m_form = form;
+ m_rootData << "Value" << "Data" << "Extra";// << "Type";
+ m_rootItem = new CFormItem();
+ m_dependencies = deps;
+ m_comments = comment;
+ m_parents = parents;
+ m_parentRows = new QList;
+ m_expanded = expanded;
+
+ setupModelData();
+ }
+
+ CGeorgesFormModel::~CGeorgesFormModel()
+ {
+ delete m_rootItem;
+ }
+
+ /******************************************************************************/
+
+ QVariant CGeorgesFormModel::data(const QModelIndex &p_index, int p_role) const
+ {
+ if (!p_index.isValid())
+ return QVariant();
+
+ switch (p_role)
+ {
+ case Qt::DisplayRole:
+ {
+ return getItem(p_index)->data(p_index.column());
+ }
+ case Qt::DecorationRole:
+ {
+ // Based on the _Type return a QIcon from resources.
+ CFormItem *item = getItem(p_index);
+ return item->getItemImage(m_rootItem);
+ }
+ default:
+ return QVariant();
+ }
+ }
+
+ /******************************************************************************/
+
+ CFormItem *CGeorgesFormModel::getItem(const QModelIndex &index) const
+ {
+ if (index.isValid())
+ {
+ CFormItem *item = static_cast(index.internalPointer());
+ if (item)
+ return item;
+ }
+ return m_rootItem;
+ }
+
+ /******************************************************************************/
+
+ bool CGeorgesFormModel::setData(const QModelIndex &index, const QVariant &value, int role)
+ {
+
+ if (role != Qt::EditRole)
+ return false;
+
+ CFormItem *item = getItem(index);
+
+ if(!item->isEditable(index.column()))
+ return false;
+
+ GeorgesEditorForm::UndoStack->push(new CUndoFormArrayRenameCommand(this,item,value));
+
+ Q_EMIT dataChanged(index, index);
+
+ //setupModelData();
+ return true;
+ }
+
+ /******************************************************************************/
+
+ Qt::ItemFlags CGeorgesFormModel::flags(const QModelIndex& index) const {
+
+ if (!index.isValid())
+ return 0;
+
+ Qt::ItemFlags returnValue = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
+
+ CFormItem *item = getItem(index);
+
+ if(item->isEditable(index.column()))
+ {
+ returnValue |= Qt::ItemIsEditable;
+ }
+
+ return returnValue;
+
+ }
+
+ /******************************************************************************/
+
+ QVariant CGeorgesFormModel::headerData(int section,
+ Qt::Orientation orientation, int role) const
+ {
+ if (orientation == Qt::Horizontal)
+ {
+ if (role == Qt::DisplayRole)
+ return m_rootItem->data(section);
+ if (role == Qt::TextAlignmentRole)
+ return Qt::AlignLeft;
+ if (section == 0 && role == Qt::DecorationRole)
+ {
+ // transparent pixmap as we paint it ourself with tree brach
+ // if we extend the HeaderView::paintSection for the CE_HeaderLabel
+ // we could drop this
+ QPixmap pixmap = QPixmap(
+ QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize),
+ QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize));
+ // Create new picture for transparent
+ QPixmap transparent(pixmap.size());
+
+ // Do transparency
+ transparent.fill(Qt::transparent);
+ QPainter p(&transparent);
+ p.setCompositionMode(QPainter::CompositionMode_Source);
+ p.drawPixmap(0, 0, pixmap);
+ p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
+ // Set transparency level to 150 (possible values are 0-255)
+ // The alpha channel of a color specifies the transparency effect,
+ // 0 represents a fully transparent color, while 255 represents
+ // a fully opaque color.
+ p.fillRect(transparent.rect(), QColor(0, 0, 0, 0));
+ p.end();
+
+ // Set original picture's reference to new transparent one
+ pixmap = transparent;
+ return pixmap;
+ }
+ }
+ return QVariant();
+ }
+
+ /******************************************************************************/
+
+ QModelIndex CGeorgesFormModel::index(int row, int column, const QModelIndex &parent)
+ const
+ {
+ if (!hasIndex(row, column, parent))
+ return QModelIndex();
+
+ CFormItem *parentItem;
+
+ if (!parent.isValid())
+ parentItem = m_rootItem;
+ else
+ parentItem = static_cast(parent.internalPointer());
+
+ CFormItem *childItem = parentItem->child(row);
+ if (childItem)
+ return createIndex(row, column, childItem);
+ else
+ return QModelIndex();
+ }
+
+ QModelIndex CGeorgesFormModel::index(int row, int column, CFormItem *item) const
+ {
+ if(item == m_rootItem)
+ return QModelIndex();
+
+ return createIndex(row, 0, item);
+ }
+
+ /******************************************************************************/
+
+ QModelIndex CGeorgesFormModel::parent(const QModelIndex &index) const
+ {
+ if (!index.isValid())
+ return QModelIndex();
+
+ CFormItem *childItem = static_cast(index.internalPointer());
+ CFormItem *parentItem = childItem->parent();
+
+ if (parentItem == m_rootItem)
+ return QModelIndex();
+
+ return createIndex(parentItem->row(), 0, parentItem);
+ }
+
+ /******************************************************************************/
+
+ int CGeorgesFormModel::rowCount(const QModelIndex &parent) const {
+
+ CFormItem *parentItem;
+ if (parent.column() > 0)
+ return 0;
+
+ if (!parent.isValid())
+ parentItem = m_rootItem;
+ else
+ parentItem = static_cast(parent.internalPointer());
+
+ return parentItem->childCount();
+
+ }
+
+ /******************************************************************************/
+
+ int CGeorgesFormModel::columnCount(const QModelIndex &parent) const {
+
+ if (parent.isValid())
+ return static_cast(parent.internalPointer())->columnCount();
+ else
+ return m_rootItem->columnCount();
+
+ }
+
+ /******************************************************************************/
+
+ void CGeorgesFormModel::loadFormData(UFormElm *root, CFormItem *parent) {
+ return;
+ }
+
+ CFormItem *CGeorgesFormModel::addStruct (CFormItem *parent,
+ NLGEORGES::CFormElmStruct *_struct,
+ NLGEORGES::CFormDfn *parentDfn,
+ const char *name,
+ uint structId,
+ const char *formName,
+ uint slot)
+{
+ // The form pointer
+ NLGEORGES::CForm *formPtr = static_cast(m_form);
+
+ // Add the new node
+ CFormItem *newNode = parent->add(CFormItem::Form, name, structId, formName, slot, m_form);
+
+ // Can be NULL in virtual DFN
+ if (parentDfn)
+ {
+ // Get the parents
+ std::vector arrayDfn;
+ arrayDfn.reserve (parentDfn->countParentDfn ());
+ parentDfn->getParentDfn (arrayDfn);
+
+ // For each child
+ uint elm=0;
+ for (uint dfn=0; dfngetNumEntry (); i++)
+ {
+ // Get the entry ref
+ NLGEORGES::CFormDfn::CEntry &entry = arrayDfn[dfn]->getEntry (i);
+
+ // Form entry name
+ std::string entryName = (std::string (formName)+"."+entry.getName ());
+
+ // Is a struct ?
+ if ( (entry.getType () == NLGEORGES::UFormDfn::EntryDfn) || (entry.getType () == NLGEORGES::UFormDfn::EntryVirtualDfn) )
+ {
+ // Is an array of struct ?
+ if (entry.getArrayFlag ())
+ {
+ // Get it from the form
+ CFormElmArray *nextArray = NULL;
+ if (_struct && _struct->Elements[elm].Element)
+ nextArray = NLMISC::safe_cast (_struct->Elements[elm].Element);
+
+ // Else, get it from the parent if we are not a virtual DFN (don't inheritate)
+
+ // todo array of virtual struct
+ if (!nextArray && (entry.getType () != NLGEORGES::UFormDfn::EntryVirtualDfn) )
+ {
+ // For each parent form
+ for (uint parent=0; parentgetParentCount (); parent++)
+ {
+ // Get the node by name
+ NLGEORGES::UFormElm *uNode;
+ if (formPtr->getParent (parent)->getRootNode ().getNodeByName (&uNode, entryName.c_str(), NULL, false) && uNode)
+ {
+ nextArray = NLMISC::safe_cast (uNode);
+ }
+ }
+ }
+
+ // Add the new struct
+ addArray (newNode, nextArray, entry.getDfnPtr (), entry.getName().c_str(), elm, entryName.c_str (), slot);
+ }
+ else
+ {
+ // Add it
+ NLGEORGES::CFormElmStruct *nextForm = NULL;
+
+ // Get it from the form
+ if (_struct && _struct->Elements[elm].Element)
+ nextForm = NLMISC::safe_cast (_struct->Elements[elm].Element);
+
+ // Else, get it from the parent
+ if (!nextForm)
+ {
+ // For each parent form
+ for (uint parent=0; parentgetParentCount (); parent++)
+ {
+ // Get the node by name
+ NLGEORGES::UFormElm *uNode;
+ if (formPtr->getParent (parent)->getRootNode ().getNodeByName (&uNode, entryName.c_str(), NULL, false) && uNode)
+ {
+ nextForm = NLMISC::safe_cast (uNode);
+ }
+ }
+ }
+
+ // Virtual Dfn pointer
+ NLGEORGES::CFormElmVirtualStruct *vStruct = ((entry.getType () == NLGEORGES::UFormDfn::EntryVirtualDfn) && nextForm) ?
+ NLMISC::safe_cast (nextForm) : NULL;
+
+ NLGEORGES::CFormDfn *tmpDfn = vStruct ?
+ ((NLGEORGES::CFormDfn*)vStruct->FormDfn) : entry.getDfnPtr();
+ // Add the new struct
+ addStruct (newNode, nextForm, tmpDfn, entry.getName().c_str(), elm, entryName.c_str(), slot);
+ }
+ }
+ // Array of type ?
+ else if ( entry.getArrayFlag () )
+ {
+ NLGEORGES::CFormElmArray *nextArray = NULL;
+
+ // Get it from the form
+ if (_struct && _struct->Elements[elm].Element)
+ nextArray = NLMISC::safe_cast (_struct->Elements[elm].Element);
+
+ // Else, get it from the parent
+ if (!nextArray)
+ {
+ // For each parent form
+ for (uint parent=0; parentgetParentCount (); parent++)
+ {
+ // Get the node by name
+ NLGEORGES::UFormElm *uNode;
+ if (formPtr->getParent (parent)->getRootNode ().getNodeByName (&uNode, entryName.c_str(), NULL, false) && uNode)
+ {
+ nextArray = NLMISC::safe_cast (uNode);
+ }
+ }
+ }
+
+ // Add the new array
+ addArray ( newNode, nextArray, NULL, entry.getName().c_str(), elm, entryName.c_str(), slot );
+ }
+
+ // Next element
+ elm++;
+ }
+ }
+ }
+
+ return newNode;
+}
+
+// ***************************************************************************
+
+CFormItem *CGeorgesFormModel::addArray(CFormItem *parent,
+ NLGEORGES::CFormElmArray *array,
+ NLGEORGES::CFormDfn *rootDfn,
+ const char *name,
+ uint structId,
+ const char *formName,
+ uint slot)
+{
+ // Add the new node
+ CFormItem *newNode = parent->add (CFormItem::Form, name, structId, formName, slot, m_form);
+
+ // The array exist
+ if (array)
+ {
+ // For each array element
+ for (uint elm=0; elmElements.size(); elm++)
+ {
+ // The form name
+ char formArrayElmName[512];
+ NLMISC::smprintf (formArrayElmName, 512, "%s[%d]", formName, elm);
+
+ // The name
+ char formArrayName[512];
+ if (array->Elements[elm].Name.empty ())
+ {
+ NLMISC::smprintf (formArrayName, 512, "#%d", elm);
+ }
+ else
+ {
+ NLMISC::smprintf (formArrayName, 512, "%s", array->Elements[elm].Name.c_str());
+ }
+
+ // Is a struct
+ if (rootDfn)
+ {
+ // Get struct ptr
+ NLGEORGES::CFormElmStruct *elmPtr = array->Elements[elm].Element ? static_cast(array->Elements[elm].Element) : NULL;
+ addStruct (newNode, elmPtr, rootDfn, formArrayName, elm, formArrayElmName, slot);
+ }
+ else
+ {
+ NLGEORGES::CFormElmArray *elmPtr = array->Elements[elm].Element ? static_cast(array->Elements[elm].Element) : NULL;
+ newNode->add (CFormItem::Form, formArrayName, elm, formArrayElmName, slot, m_form);
+ }
+ }
+ }
+
+ return newNode;
+}
+
+
+
+ /******************************************************************************/
+
+ void CGeorgesFormModel::loadFormHeader()
+ {
+
+ /* if (m_parents.size())
+ {
+ CFormItem *fi_pars = new CFormItem(m_rootElm, QList() << "parents" << "" << "", m_rootItem);
+ m_rootItem->appendChild(fi_pars);
+
+ Q_FOREACH(QString str, m_parents)
+ {
+ fi_pars->appendChild(new CFormItem(m_rootElm, QList() << str << "" << "", fi_pars));
+ }
+ }*/
+
+ /*QStringList dfns = _dependencies["dfn"];
+ QStringList typs = _dependencies["typ"];
+
+ _dependencies.remove("dfn");
+ _dependencies.remove("typ");
+
+ CFormItem *fi_dep = new CFormItem(_rootElm, QList() << "dependencies", _rootItem);
+ _rootItem->appendChild(fi_dep);
+
+ if (!dfns.isEmpty()) {
+ CFormItem *fi_dfn = new CFormItem(_rootElm, QList() << "dfn", fi_dep);
+ fi_dep->appendChild(fi_dfn);
+ foreach(QString str, dfns) {
+ fi_dfn->appendChild(new CFormItem(_rootElm, QList() << str, fi_dfn));
+ }
+ }
+ if (!typs.isEmpty()) {
+ CFormItem *fi_typ = new CFormItem(_rootElm, QList() << "typ", fi_dep);
+ fi_dep->appendChild(fi_typ);
+ foreach(QString str, typs) {
+ fi_typ->appendChild(new CFormItem(_rootElm, QList() << str, fi_typ));
+ }
+ }
+ if (!_dependencies.isEmpty()) {
+ CFormItem *fi_other = new CFormItem(_rootElm, QList() << "other", fi_dep);
+ fi_dep->appendChild(fi_other);
+ foreach(QStringList list, _dependencies) {
+ foreach(QString str, list) {
+ fi_other->appendChild(new CFormItem(_rootElm, QList() << str, fi_other));
+ }
+ }
+ }*/
+ }
+
+ /******************************************************************************/
+
+ void CGeorgesFormModel::setupModelData()
+ {
+ m_rootElm = &((NLGEORGES::CForm*)m_form)->Elements;
+ NLGEORGES::CFormElmStruct *rootstruct = &((NLGEORGES::CForm*)m_form)->Elements;
+ //loadFormHeader();
+ addStruct(m_rootItem, rootstruct, rootstruct->FormDfn, "Content", 0xffffffff, "", 0);
+ //loadFormData(m_rootElm, m_rootItem);
+ }
+
+ /******************************************************************************/
+
+ void CGeorgesFormModel::setShowParents( bool show ) {
+ m_showParents = show;
+ Q_EMIT layoutAboutToBeChanged();
+ Q_EMIT layoutChanged();
+ }
+ void CGeorgesFormModel::setShowDefaults( bool show )
+ {
+ m_showDefaults = show;
+ Q_EMIT layoutAboutToBeChanged();
+ Q_EMIT layoutChanged();
+ }
+
+ void CGeorgesFormModel::addParentForm(QString parentForm)
+ {
+ beginResetModel();
+ m_parents.push_back(parentForm);
+ delete m_rootItem;
+ m_rootItem = new CFormItem();
+ setupModelData();
+ endResetModel();
+ }
+
+ void CGeorgesFormModel::removeParentForm(QString parentForm)
+ {
+ beginResetModel();
+ m_parents.removeOne(parentForm);
+
+ delete m_rootItem;
+ m_rootItem = new CFormItem();
+ setupModelData();
+ endResetModel();
+ }
+} /* namespace GeorgesQt */
+
+/* end of file */
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_model.h b/code/studio/src/plugins/georges_editor/georgesform_model.h
similarity index 75%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_model.h
rename to code/studio/src/plugins/georges_editor/georgesform_model.h
index 710598236..07589b63c 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_model.h
+++ b/code/studio/src/plugins/georges_editor/georgesform_model.h
@@ -27,6 +27,10 @@
namespace NLGEORGES {
class UFormElm;
+ class UForm;
+ class CFormElmStruct;
+ class CFormDfn;
+ class CFormElmArray;
}
namespace GeorgesQt
@@ -36,9 +40,8 @@ namespace GeorgesQt
class CGeorgesFormModel : public QAbstractItemModel
{
-
public:
- CGeorgesFormModel(NLGEORGES::UFormElm *root, QMap< QString, QStringList> deps,
+ CGeorgesFormModel(NLGEORGES::UForm *form, QMap< QString, QStringList> deps,
QString comment, QStringList parents, bool* expanded, QObject *parent = 0);
~CGeorgesFormModel();
@@ -47,6 +50,7 @@ namespace GeorgesQt
Qt::ItemFlags flags(const QModelIndex &index) const;
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+ QModelIndex index(int row, int column, CFormItem *item) const;
QModelIndex parent(const QModelIndex &index) const;
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex()) const;
@@ -58,15 +62,26 @@ namespace GeorgesQt
void setShowDefaults( bool show );
void addParentForm(QString parentForm);
void removeParentForm(QString parentForm);
- NLGEORGES::UFormElm *getRootForm() { return m_rootElm; }
+ NLGEORGES::UFormElm *getRootForm() { return m_rootElm; }
+ CFormItem *addStruct (CFormItem *parent, NLGEORGES::CFormElmStruct *_struct, NLGEORGES::CFormDfn *parentDfn,
+ const char *name, uint structId, const char *formName, uint slot);
+
+ CFormItem *addArray(CFormItem *parent, NLGEORGES::CFormElmArray *array, NLGEORGES::CFormDfn *rootDfn,
+ const char *name, uint structId, const char *formName, uint slot);
+
+ void emitDataChanged(const QModelIndex &index)
+ {
+ Q_EMIT dataChanged(index, index);
+ }
private:
void setupModelData();
void loadFormData(NLGEORGES::UFormElm *rootElm, CFormItem *parent);
void loadFormHeader();
+ NLGEORGES::UForm* m_form;
CFormItem* m_rootItem;
- NLGEORGES::UFormElm* m_rootElm;
+ NLGEORGES::UFormElm* m_rootElm;
QList m_rootData;
QMap< QString, QStringList> m_dependencies;
QString m_comments;
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_proxy_model.cpp b/code/studio/src/plugins/georges_editor/georgesform_proxy_model.cpp
similarity index 98%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_proxy_model.cpp
rename to code/studio/src/plugins/georges_editor/georgesform_proxy_model.cpp
index 2792699b0..81179f61c 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_proxy_model.cpp
+++ b/code/studio/src/plugins/georges_editor/georgesform_proxy_model.cpp
@@ -14,15 +14,17 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see .
-#include "stdpch.h"
-#include "georgesform_proxy_model.h"
-#include "formitem.h"
-#include "georgesform_model.h"
-
// NeL includes
#include
#include
+// project includes
+#include "formitem.h"
+#include "georgesform_proxy_model.h"
+#include "georgesform_model.h"
+
+#if 0
+
namespace GeorgesQt
{
@@ -78,4 +80,5 @@ namespace GeorgesQt
}
} /* namespace GeorgesQt */
+#endif // 0
/* end of file */
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_proxy_model.h b/code/studio/src/plugins/georges_editor/georgesform_proxy_model.h
similarity index 98%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_proxy_model.h
rename to code/studio/src/plugins/georges_editor/georgesform_proxy_model.h
index cfe7fcca6..f4c968f80 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/georgesform_proxy_model.h
+++ b/code/studio/src/plugins/georges_editor/georgesform_proxy_model.h
@@ -20,6 +20,7 @@
// Qt includes
#include
+#if 0
namespace GeorgesQt
{
@@ -41,5 +42,5 @@ namespace GeorgesQt
};/* class CGeorgesFormProxyModel */
} /* namespace GeorgesQt */
-
+#endif // 0
#endif // GEORGESFORM_PROXY_MODEL_H
diff --git a/code/studio/src/plugins/georges_editor/images/array.ico b/code/studio/src/plugins/georges_editor/images/array.ico
new file mode 100644
index 000000000..923bec0bd
Binary files /dev/null and b/code/studio/src/plugins/georges_editor/images/array.ico differ
diff --git a/code/studio/src/plugins/georges_editor/images/header.ico b/code/studio/src/plugins/georges_editor/images/header.ico
new file mode 100644
index 000000000..5ebb3632a
Binary files /dev/null and b/code/studio/src/plugins/georges_editor/images/header.ico differ
diff --git a/code/studio/src/plugins/georges_editor/images/hold.ico b/code/studio/src/plugins/georges_editor/images/hold.ico
new file mode 100644
index 000000000..4b7f115f1
Binary files /dev/null and b/code/studio/src/plugins/georges_editor/images/hold.ico differ
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/images/ic_nel_georges_editor.png b/code/studio/src/plugins/georges_editor/images/ic_nel_georges_editor.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/images/ic_nel_georges_editor.png
rename to code/studio/src/plugins/georges_editor/images/ic_nel_georges_editor.png
diff --git a/code/studio/src/plugins/georges_editor/images/root.ico b/code/studio/src/plugins/georges_editor/images/root.ico
new file mode 100644
index 000000000..3fa430766
Binary files /dev/null and b/code/studio/src/plugins/georges_editor/images/root.ico differ
diff --git a/code/studio/src/plugins/georges_editor/images/struct.ico b/code/studio/src/plugins/georges_editor/images/struct.ico
new file mode 100644
index 000000000..7e2244dc3
Binary files /dev/null and b/code/studio/src/plugins/georges_editor/images/struct.ico differ
diff --git a/code/studio/src/plugins/georges_editor/images/vstruct.ico b/code/studio/src/plugins/georges_editor/images/vstruct.ico
new file mode 100644
index 000000000..a184d8a37
Binary files /dev/null and b/code/studio/src/plugins/georges_editor/images/vstruct.ico differ
diff --git a/code/studio/src/plugins/georges_editor/images/zfee51.ico b/code/studio/src/plugins/georges_editor/images/zfee51.ico
new file mode 100644
index 000000000..ad6bbb756
Binary files /dev/null and b/code/studio/src/plugins/georges_editor/images/zfee51.ico differ
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/ovqt_plugin_georges_editor.xml b/code/studio/src/plugins/georges_editor/ovqt_plugin_georges_editor.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/ovqt_plugin_georges_editor.xml
rename to code/studio/src/plugins/georges_editor/ovqt_plugin_georges_editor.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/stdpch.cpp b/code/studio/src/plugins/georges_editor/stdpch.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/stdpch.cpp
rename to code/studio/src/plugins/georges_editor/stdpch.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/stdpch.h b/code/studio/src/plugins/georges_editor/stdpch.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/georges_editor/stdpch.h
rename to code/studio/src/plugins/georges_editor/stdpch.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/CMakeLists.txt b/code/studio/src/plugins/gui_editor/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/CMakeLists.txt
rename to code/studio/src/plugins/gui_editor/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/action_editor.cpp b/code/studio/src/plugins/gui_editor/action_editor.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/action_editor.cpp
rename to code/studio/src/plugins/gui_editor/action_editor.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/action_editor.h b/code/studio/src/plugins/gui_editor/action_editor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/action_editor.h
rename to code/studio/src/plugins/gui_editor/action_editor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/action_editor.ui b/code/studio/src/plugins/gui_editor/action_editor.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/action_editor.ui
rename to code/studio/src/plugins/gui_editor/action_editor.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.cpp b/code/studio/src/plugins/gui_editor/add_widget_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.cpp
rename to code/studio/src/plugins/gui_editor/add_widget_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.h b/code/studio/src/plugins/gui_editor/add_widget_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.h
rename to code/studio/src/plugins/gui_editor/add_widget_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.ui b/code/studio/src/plugins/gui_editor/add_widget_widget.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/add_widget_widget.ui
rename to code/studio/src/plugins/gui_editor/add_widget_widget.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.cpp b/code/studio/src/plugins/gui_editor/editor_message_processor.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.cpp
rename to code/studio/src/plugins/gui_editor/editor_message_processor.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.h b/code/studio/src/plugins/gui_editor/editor_message_processor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_message_processor.h
rename to code/studio/src/plugins/gui_editor/editor_message_processor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.cpp b/code/studio/src/plugins/gui_editor/editor_selection_watcher.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.cpp
rename to code/studio/src/plugins/gui_editor/editor_selection_watcher.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.h b/code/studio/src/plugins/gui_editor/editor_selection_watcher.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/editor_selection_watcher.h
rename to code/studio/src/plugins/gui_editor/editor_selection_watcher.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_constants.h b/code/studio/src/plugins/gui_editor/gui_editor_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_constants.h
rename to code/studio/src/plugins/gui_editor/gui_editor_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_context.cpp b/code/studio/src/plugins/gui_editor/gui_editor_context.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_context.cpp
rename to code/studio/src/plugins/gui_editor/gui_editor_context.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_context.h b/code/studio/src/plugins/gui_editor/gui_editor_context.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_context.h
rename to code/studio/src/plugins/gui_editor/gui_editor_context.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_core_listener.cpp b/code/studio/src/plugins/gui_editor/gui_editor_core_listener.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_core_listener.cpp
rename to code/studio/src/plugins/gui_editor/gui_editor_core_listener.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_core_listener.h b/code/studio/src/plugins/gui_editor/gui_editor_core_listener.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_core_listener.h
rename to code/studio/src/plugins/gui_editor/gui_editor_core_listener.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_global.h b/code/studio/src/plugins/gui_editor/gui_editor_global.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_global.h
rename to code/studio/src/plugins/gui_editor/gui_editor_global.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_plugin.cpp b/code/studio/src/plugins/gui_editor/gui_editor_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_plugin.cpp
rename to code/studio/src/plugins/gui_editor/gui_editor_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_plugin.h b/code/studio/src/plugins/gui_editor/gui_editor_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_plugin.h
rename to code/studio/src/plugins/gui_editor/gui_editor_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.cpp b/code/studio/src/plugins/gui_editor/gui_editor_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.cpp
rename to code/studio/src/plugins/gui_editor/gui_editor_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.h b/code/studio/src/plugins/gui_editor/gui_editor_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.h
rename to code/studio/src/plugins/gui_editor/gui_editor_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.ui b/code/studio/src/plugins/gui_editor/gui_editor_window.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/gui_editor_window.ui
rename to code/studio/src/plugins/gui_editor/gui_editor_window.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_editor.cpp b/code/studio/src/plugins/gui_editor/link_editor.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_editor.cpp
rename to code/studio/src/plugins/gui_editor/link_editor.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_editor.h b/code/studio/src/plugins/gui_editor/link_editor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_editor.h
rename to code/studio/src/plugins/gui_editor/link_editor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_editor.ui b/code/studio/src/plugins/gui_editor/link_editor.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_editor.ui
rename to code/studio/src/plugins/gui_editor/link_editor.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_list.cpp b/code/studio/src/plugins/gui_editor/link_list.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_list.cpp
rename to code/studio/src/plugins/gui_editor/link_list.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_list.h b/code/studio/src/plugins/gui_editor/link_list.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_list.h
rename to code/studio/src/plugins/gui_editor/link_list.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_list.ui b/code/studio/src/plugins/gui_editor/link_list.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/link_list.ui
rename to code/studio/src/plugins/gui_editor/link_list.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nel3d_widget.cpp b/code/studio/src/plugins/gui_editor/nel3d_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nel3d_widget.cpp
rename to code/studio/src/plugins/gui_editor/nel3d_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nel3d_widget.h b/code/studio/src/plugins/gui_editor/nel3d_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nel3d_widget.h
rename to code/studio/src/plugins/gui_editor/nel3d_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.cpp b/code/studio/src/plugins/gui_editor/nelgui_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.cpp
rename to code/studio/src/plugins/gui_editor/nelgui_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.h b/code/studio/src/plugins/gui_editor/nelgui_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/nelgui_widget.h
rename to code/studio/src/plugins/gui_editor/nelgui_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_property_widget.cpp b/code/studio/src/plugins/gui_editor/new_property_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_property_widget.cpp
rename to code/studio/src/plugins/gui_editor/new_property_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_property_widget.h b/code/studio/src/plugins/gui_editor/new_property_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_property_widget.h
rename to code/studio/src/plugins/gui_editor/new_property_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_property_widget.ui b/code/studio/src/plugins/gui_editor/new_property_widget.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_property_widget.ui
rename to code/studio/src/plugins/gui_editor/new_property_widget.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_widget_widget.cpp b/code/studio/src/plugins/gui_editor/new_widget_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_widget_widget.cpp
rename to code/studio/src/plugins/gui_editor/new_widget_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_widget_widget.h b/code/studio/src/plugins/gui_editor/new_widget_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_widget_widget.h
rename to code/studio/src/plugins/gui_editor/new_widget_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_widget_widget.ui b/code/studio/src/plugins/gui_editor/new_widget_widget.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/new_widget_widget.ui
rename to code/studio/src/plugins/gui_editor/new_widget_widget.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/ovqt_plugin_gui_editor.xml b/code/studio/src/plugins/gui_editor/ovqt_plugin_gui_editor.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/ovqt_plugin_gui_editor.xml
rename to code/studio/src/plugins/gui_editor/ovqt_plugin_gui_editor.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_editor.cpp b/code/studio/src/plugins/gui_editor/proc_editor.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_editor.cpp
rename to code/studio/src/plugins/gui_editor/proc_editor.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_editor.h b/code/studio/src/plugins/gui_editor/proc_editor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_editor.h
rename to code/studio/src/plugins/gui_editor/proc_editor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_editor.ui b/code/studio/src/plugins/gui_editor/proc_editor.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_editor.ui
rename to code/studio/src/plugins/gui_editor/proc_editor.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_list.cpp b/code/studio/src/plugins/gui_editor/proc_list.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_list.cpp
rename to code/studio/src/plugins/gui_editor/proc_list.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_list.h b/code/studio/src/plugins/gui_editor/proc_list.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_list.h
rename to code/studio/src/plugins/gui_editor/proc_list.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_list.ui b/code/studio/src/plugins/gui_editor/proc_list.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/proc_list.ui
rename to code/studio/src/plugins/gui_editor/proc_list.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_file_parser.cpp b/code/studio/src/plugins/gui_editor/project_file_parser.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_file_parser.cpp
rename to code/studio/src/plugins/gui_editor/project_file_parser.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_file_parser.h b/code/studio/src/plugins/gui_editor/project_file_parser.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_file_parser.h
rename to code/studio/src/plugins/gui_editor/project_file_parser.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_file_serializer.cpp b/code/studio/src/plugins/gui_editor/project_file_serializer.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_file_serializer.cpp
rename to code/studio/src/plugins/gui_editor/project_file_serializer.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_file_serializer.h b/code/studio/src/plugins/gui_editor/project_file_serializer.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_file_serializer.h
rename to code/studio/src/plugins/gui_editor/project_file_serializer.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_files.h b/code/studio/src/plugins/gui_editor/project_files.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_files.h
rename to code/studio/src/plugins/gui_editor/project_files.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_files/login.xml b/code/studio/src/plugins/gui_editor/project_files/login.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_files/login.xml
rename to code/studio/src/plugins/gui_editor/project_files/login.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_window.cpp b/code/studio/src/plugins/gui_editor/project_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_window.cpp
rename to code/studio/src/plugins/gui_editor/project_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_window.h b/code/studio/src/plugins/gui_editor/project_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_window.h
rename to code/studio/src/plugins/gui_editor/project_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_window.ui b/code/studio/src/plugins/gui_editor/project_window.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/project_window.ui
rename to code/studio/src/plugins/gui_editor/project_window.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/property_browser_ctrl.cpp b/code/studio/src/plugins/gui_editor/property_browser_ctrl.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/property_browser_ctrl.cpp
rename to code/studio/src/plugins/gui_editor/property_browser_ctrl.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/property_browser_ctrl.h b/code/studio/src/plugins/gui_editor/property_browser_ctrl.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/property_browser_ctrl.h
rename to code/studio/src/plugins/gui_editor/property_browser_ctrl.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.cpp b/code/studio/src/plugins/gui_editor/widget_hierarchy.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.cpp
rename to code/studio/src/plugins/gui_editor/widget_hierarchy.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.h b/code/studio/src/plugins/gui_editor/widget_hierarchy.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.h
rename to code/studio/src/plugins/gui_editor/widget_hierarchy.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.ui b/code/studio/src/plugins/gui_editor/widget_hierarchy.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_hierarchy.ui
rename to code/studio/src/plugins/gui_editor/widget_hierarchy.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info.h b/code/studio/src/plugins/gui_editor/widget_info.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info.h
rename to code/studio/src/plugins/gui_editor/widget_info.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_serializer.cpp b/code/studio/src/plugins/gui_editor/widget_info_serializer.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_serializer.cpp
rename to code/studio/src/plugins/gui_editor/widget_info_serializer.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_serializer.h b/code/studio/src/plugins/gui_editor/widget_info_serializer.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_serializer.h
rename to code/studio/src/plugins/gui_editor/widget_info_serializer.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_tree.h b/code/studio/src/plugins/gui_editor/widget_info_tree.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_tree.h
rename to code/studio/src/plugins/gui_editor/widget_info_tree.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_tree_node.h b/code/studio/src/plugins/gui_editor/widget_info_tree_node.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_tree_node.h
rename to code/studio/src/plugins/gui_editor/widget_info_tree_node.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_tree_visitor.h b/code/studio/src/plugins/gui_editor/widget_info_tree_visitor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_info_tree_visitor.h
rename to code/studio/src/plugins/gui_editor/widget_info_tree_visitor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties.cpp b/code/studio/src/plugins/gui_editor/widget_properties.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties.cpp
rename to code/studio/src/plugins/gui_editor/widget_properties.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties.h b/code/studio/src/plugins/gui_editor/widget_properties.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties.h
rename to code/studio/src/plugins/gui_editor/widget_properties.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties.ui b/code/studio/src/plugins/gui_editor/widget_properties.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties.ui
rename to code/studio/src/plugins/gui_editor/widget_properties.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties_parser.cpp b/code/studio/src/plugins/gui_editor/widget_properties_parser.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties_parser.cpp
rename to code/studio/src/plugins/gui_editor/widget_properties_parser.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties_parser.h b/code/studio/src/plugins/gui_editor/widget_properties_parser.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_properties_parser.h
rename to code/studio/src/plugins/gui_editor/widget_properties_parser.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_serializer.cpp b/code/studio/src/plugins/gui_editor/widget_serializer.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_serializer.cpp
rename to code/studio/src/plugins/gui_editor/widget_serializer.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_serializer.h b/code/studio/src/plugins/gui_editor/widget_serializer.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widget_serializer.h
rename to code/studio/src/plugins/gui_editor/widget_serializer.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlBase.xml b/code/studio/src/plugins/gui_editor/widgets/CtrlBase.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlBase.xml
rename to code/studio/src/plugins/gui_editor/widgets/CtrlBase.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlBaseButton.xml b/code/studio/src/plugins/gui_editor/widgets/CtrlBaseButton.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlBaseButton.xml
rename to code/studio/src/plugins/gui_editor/widgets/CtrlBaseButton.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlButton.xml b/code/studio/src/plugins/gui_editor/widgets/CtrlButton.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlButton.xml
rename to code/studio/src/plugins/gui_editor/widgets/CtrlButton.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlColPick.xml b/code/studio/src/plugins/gui_editor/widgets/CtrlColPick.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlColPick.xml
rename to code/studio/src/plugins/gui_editor/widgets/CtrlColPick.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlScroll.xml b/code/studio/src/plugins/gui_editor/widgets/CtrlScroll.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlScroll.xml
rename to code/studio/src/plugins/gui_editor/widgets/CtrlScroll.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlTabButton.xml b/code/studio/src/plugins/gui_editor/widgets/CtrlTabButton.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlTabButton.xml
rename to code/studio/src/plugins/gui_editor/widgets/CtrlTabButton.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlTextButton.xml b/code/studio/src/plugins/gui_editor/widgets/CtrlTextButton.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/CtrlTextButton.xml
rename to code/studio/src/plugins/gui_editor/widgets/CtrlTextButton.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBGroupSelectNumber.xml b/code/studio/src/plugins/gui_editor/widgets/DBGroupSelectNumber.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBGroupSelectNumber.xml
rename to code/studio/src/plugins/gui_editor/widgets/DBGroupSelectNumber.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewBar.xml b/code/studio/src/plugins/gui_editor/widgets/DBViewBar.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewBar.xml
rename to code/studio/src/plugins/gui_editor/widgets/DBViewBar.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewBar3.xml b/code/studio/src/plugins/gui_editor/widgets/DBViewBar3.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewBar3.xml
rename to code/studio/src/plugins/gui_editor/widgets/DBViewBar3.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewDigit.xml b/code/studio/src/plugins/gui_editor/widgets/DBViewDigit.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewDigit.xml
rename to code/studio/src/plugins/gui_editor/widgets/DBViewDigit.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewNumber.xml b/code/studio/src/plugins/gui_editor/widgets/DBViewNumber.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewNumber.xml
rename to code/studio/src/plugins/gui_editor/widgets/DBViewNumber.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewQuantity.xml b/code/studio/src/plugins/gui_editor/widgets/DBViewQuantity.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/DBViewQuantity.xml
rename to code/studio/src/plugins/gui_editor/widgets/DBViewQuantity.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupCell.xml b/code/studio/src/plugins/gui_editor/widgets/GroupCell.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupCell.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupCell.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupContainer.xml b/code/studio/src/plugins/gui_editor/widgets/GroupContainer.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupContainer.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupContainer.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupEditBox.xml b/code/studio/src/plugins/gui_editor/widgets/GroupEditBox.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupEditBox.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupEditBox.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupFrame.xml b/code/studio/src/plugins/gui_editor/widgets/GroupFrame.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupFrame.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupFrame.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupHTML.xml b/code/studio/src/plugins/gui_editor/widgets/GroupHTML.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupHTML.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupHTML.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupHeader.xml b/code/studio/src/plugins/gui_editor/widgets/GroupHeader.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupHeader.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupHeader.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupList.xml b/code/studio/src/plugins/gui_editor/widgets/GroupList.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupList.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupList.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupMenu.xml b/code/studio/src/plugins/gui_editor/widgets/GroupMenu.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupMenu.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupMenu.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupModal.xml b/code/studio/src/plugins/gui_editor/widgets/GroupModal.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupModal.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupModal.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupParagraph.xml b/code/studio/src/plugins/gui_editor/widgets/GroupParagraph.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupParagraph.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupParagraph.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupScrollText.xml b/code/studio/src/plugins/gui_editor/widgets/GroupScrollText.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupScrollText.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupScrollText.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupTab.xml b/code/studio/src/plugins/gui_editor/widgets/GroupTab.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupTab.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupTab.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupTable.xml b/code/studio/src/plugins/gui_editor/widgets/GroupTable.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupTable.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupTable.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupTree.xml b/code/studio/src/plugins/gui_editor/widgets/GroupTree.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/GroupTree.xml
rename to code/studio/src/plugins/gui_editor/widgets/GroupTree.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/InterfaceElement.xml b/code/studio/src/plugins/gui_editor/widgets/InterfaceElement.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/InterfaceElement.xml
rename to code/studio/src/plugins/gui_editor/widgets/InterfaceElement.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/InterfaceGroup.xml b/code/studio/src/plugins/gui_editor/widgets/InterfaceGroup.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/InterfaceGroup.xml
rename to code/studio/src/plugins/gui_editor/widgets/InterfaceGroup.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/InterfaceGroupWheel.xml b/code/studio/src/plugins/gui_editor/widgets/InterfaceGroupWheel.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/InterfaceGroupWheel.xml
rename to code/studio/src/plugins/gui_editor/widgets/InterfaceGroupWheel.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/RootGroup.xml b/code/studio/src/plugins/gui_editor/widgets/RootGroup.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/RootGroup.xml
rename to code/studio/src/plugins/gui_editor/widgets/RootGroup.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewBitmap.xml b/code/studio/src/plugins/gui_editor/widgets/ViewBitmap.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewBitmap.xml
rename to code/studio/src/plugins/gui_editor/widgets/ViewBitmap.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewBitmapCombo.xml b/code/studio/src/plugins/gui_editor/widgets/ViewBitmapCombo.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewBitmapCombo.xml
rename to code/studio/src/plugins/gui_editor/widgets/ViewBitmapCombo.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewText.xml b/code/studio/src/plugins/gui_editor/widgets/ViewText.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewText.xml
rename to code/studio/src/plugins/gui_editor/widgets/ViewText.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewTextFormated.xml b/code/studio/src/plugins/gui_editor/widgets/ViewTextFormated.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewTextFormated.xml
rename to code/studio/src/plugins/gui_editor/widgets/ViewTextFormated.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewTextID.xml b/code/studio/src/plugins/gui_editor/widgets/ViewTextID.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewTextID.xml
rename to code/studio/src/plugins/gui_editor/widgets/ViewTextID.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewTextIDFormated.xml b/code/studio/src/plugins/gui_editor/widgets/ViewTextIDFormated.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/gui_editor/widgets/ViewTextIDFormated.xml
rename to code/studio/src/plugins/gui_editor/widgets/ViewTextIDFormated.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/CMakeLists.txt b/code/studio/src/plugins/landscape_editor/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/CMakeLists.txt
rename to code/studio/src/plugins/landscape_editor/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone.cpp b/code/studio/src/plugins/landscape_editor/builder_zone.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone.cpp
rename to code/studio/src/plugins/landscape_editor/builder_zone.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone.h b/code/studio/src/plugins/landscape_editor/builder_zone.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone.h
rename to code/studio/src/plugins/landscape_editor/builder_zone.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone_base.cpp b/code/studio/src/plugins/landscape_editor/builder_zone_base.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone_base.cpp
rename to code/studio/src/plugins/landscape_editor/builder_zone_base.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone_base.h b/code/studio/src/plugins/landscape_editor/builder_zone_base.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone_base.h
rename to code/studio/src/plugins/landscape_editor/builder_zone_base.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone_region.cpp b/code/studio/src/plugins/landscape_editor/builder_zone_region.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone_region.cpp
rename to code/studio/src/plugins/landscape_editor/builder_zone_region.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone_region.h b/code/studio/src/plugins/landscape_editor/builder_zone_region.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/builder_zone_region.h
rename to code/studio/src/plugins/landscape_editor/builder_zone_region.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_grid.png b/code/studio/src/plugins/landscape_editor/icons/ic_grid.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_grid.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_grid.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_landscape_item.png b/code/studio/src/plugins/landscape_editor/icons/ic_nel_landscape_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_landscape_item.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_nel_landscape_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_landscape_settings.png b/code/studio/src/plugins/landscape_editor/icons/ic_nel_landscape_settings.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_landscape_settings.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_nel_landscape_settings.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_transition_land.png b/code/studio/src/plugins/landscape_editor/icons/ic_nel_transition_land.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_transition_land.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_nel_transition_land.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_world_editor.png b/code/studio/src/plugins/landscape_editor/icons/ic_nel_world_editor.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_world_editor.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_nel_world_editor.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_zone.png b/code/studio/src/plugins/landscape_editor/icons/ic_nel_zone.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_zone.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_nel_zone.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_zonel.png b/code/studio/src/plugins/landscape_editor/icons/ic_nel_zonel.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_zonel.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_nel_zonel.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_zones.png b/code/studio/src/plugins/landscape_editor/icons/ic_nel_zones.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_nel_zones.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_nel_zones.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_snapshot.png b/code/studio/src/plugins/landscape_editor/icons/ic_snapshot.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/icons/ic_snapshot.png
rename to code/studio/src/plugins/landscape_editor/icons/ic_snapshot.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_actions.cpp b/code/studio/src/plugins/landscape_editor/landscape_actions.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_actions.cpp
rename to code/studio/src/plugins/landscape_editor/landscape_actions.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_actions.h b/code/studio/src/plugins/landscape_editor/landscape_actions.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_actions.h
rename to code/studio/src/plugins/landscape_editor/landscape_actions.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor.qrc b/code/studio/src/plugins/landscape_editor/landscape_editor.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor.qrc
rename to code/studio/src/plugins/landscape_editor/landscape_editor.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_constants.h b/code/studio/src/plugins/landscape_editor/landscape_editor_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_constants.h
rename to code/studio/src/plugins/landscape_editor/landscape_editor_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_global.h b/code/studio/src/plugins/landscape_editor/landscape_editor_global.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_global.h
rename to code/studio/src/plugins/landscape_editor/landscape_editor_global.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_plugin.cpp b/code/studio/src/plugins/landscape_editor/landscape_editor_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_plugin.cpp
rename to code/studio/src/plugins/landscape_editor/landscape_editor_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_plugin.h b/code/studio/src/plugins/landscape_editor/landscape_editor_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_plugin.h
rename to code/studio/src/plugins/landscape_editor/landscape_editor_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_window.cpp b/code/studio/src/plugins/landscape_editor/landscape_editor_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_window.cpp
rename to code/studio/src/plugins/landscape_editor/landscape_editor_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_window.h b/code/studio/src/plugins/landscape_editor/landscape_editor_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_window.h
rename to code/studio/src/plugins/landscape_editor/landscape_editor_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_window.ui b/code/studio/src/plugins/landscape_editor/landscape_editor_window.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_editor_window.ui
rename to code/studio/src/plugins/landscape_editor/landscape_editor_window.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_scene.cpp b/code/studio/src/plugins/landscape_editor/landscape_scene.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_scene.cpp
rename to code/studio/src/plugins/landscape_editor/landscape_scene.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_scene.h b/code/studio/src/plugins/landscape_editor/landscape_scene.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_scene.h
rename to code/studio/src/plugins/landscape_editor/landscape_scene.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_scene_base.cpp b/code/studio/src/plugins/landscape_editor/landscape_scene_base.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_scene_base.cpp
rename to code/studio/src/plugins/landscape_editor/landscape_scene_base.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_scene_base.h b/code/studio/src/plugins/landscape_editor/landscape_scene_base.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_scene_base.h
rename to code/studio/src/plugins/landscape_editor/landscape_scene_base.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_view.cpp b/code/studio/src/plugins/landscape_editor/landscape_view.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_view.cpp
rename to code/studio/src/plugins/landscape_editor/landscape_view.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_view.h b/code/studio/src/plugins/landscape_editor/landscape_view.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/landscape_view.h
rename to code/studio/src/plugins/landscape_editor/landscape_view.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_model.cpp b/code/studio/src/plugins/landscape_editor/list_zones_model.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_model.cpp
rename to code/studio/src/plugins/landscape_editor/list_zones_model.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_model.h b/code/studio/src/plugins/landscape_editor/list_zones_model.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_model.h
rename to code/studio/src/plugins/landscape_editor/list_zones_model.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_widget.cpp b/code/studio/src/plugins/landscape_editor/list_zones_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_widget.cpp
rename to code/studio/src/plugins/landscape_editor/list_zones_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_widget.h b/code/studio/src/plugins/landscape_editor/list_zones_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_widget.h
rename to code/studio/src/plugins/landscape_editor/list_zones_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_widget.ui b/code/studio/src/plugins/landscape_editor/list_zones_widget.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/list_zones_widget.ui
rename to code/studio/src/plugins/landscape_editor/list_zones_widget.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/ovqt_plugin_landscape_editor.xml b/code/studio/src/plugins/landscape_editor/ovqt_plugin_landscape_editor.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/ovqt_plugin_landscape_editor.xml
rename to code/studio/src/plugins/landscape_editor/ovqt_plugin_landscape_editor.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/pixmap_database.cpp b/code/studio/src/plugins/landscape_editor/pixmap_database.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/pixmap_database.cpp
rename to code/studio/src/plugins/landscape_editor/pixmap_database.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/pixmap_database.h b/code/studio/src/plugins/landscape_editor/pixmap_database.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/pixmap_database.h
rename to code/studio/src/plugins/landscape_editor/pixmap_database.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/project_settings_dialog.cpp b/code/studio/src/plugins/landscape_editor/project_settings_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/project_settings_dialog.cpp
rename to code/studio/src/plugins/landscape_editor/project_settings_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/project_settings_dialog.h b/code/studio/src/plugins/landscape_editor/project_settings_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/project_settings_dialog.h
rename to code/studio/src/plugins/landscape_editor/project_settings_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/project_settings_dialog.ui b/code/studio/src/plugins/landscape_editor/project_settings_dialog.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/project_settings_dialog.ui
rename to code/studio/src/plugins/landscape_editor/project_settings_dialog.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/shapshot_dialog.ui b/code/studio/src/plugins/landscape_editor/shapshot_dialog.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/shapshot_dialog.ui
rename to code/studio/src/plugins/landscape_editor/shapshot_dialog.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/snapshot_dialog.cpp b/code/studio/src/plugins/landscape_editor/snapshot_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/snapshot_dialog.cpp
rename to code/studio/src/plugins/landscape_editor/snapshot_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/snapshot_dialog.h b/code/studio/src/plugins/landscape_editor/snapshot_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/snapshot_dialog.h
rename to code/studio/src/plugins/landscape_editor/snapshot_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/zone_region_editor.cpp b/code/studio/src/plugins/landscape_editor/zone_region_editor.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/zone_region_editor.cpp
rename to code/studio/src/plugins/landscape_editor/zone_region_editor.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/zone_region_editor.h b/code/studio/src/plugins/landscape_editor/zone_region_editor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/landscape_editor/zone_region_editor.h
rename to code/studio/src/plugins/landscape_editor/zone_region_editor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/CMakeLists.txt b/code/studio/src/plugins/log/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/CMakeLists.txt
rename to code/studio/src/plugins/log/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_form.ui b/code/studio/src/plugins/log/log_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_form.ui
rename to code/studio/src/plugins/log/log_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_plugin.cpp b/code/studio/src/plugins/log/log_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_plugin.cpp
rename to code/studio/src/plugins/log/log_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_plugin.h b/code/studio/src/plugins/log/log_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_plugin.h
rename to code/studio/src/plugins/log/log_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_settings_page.cpp b/code/studio/src/plugins/log/log_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_settings_page.cpp
rename to code/studio/src/plugins/log/log_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_settings_page.h b/code/studio/src/plugins/log/log_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_settings_page.h
rename to code/studio/src/plugins/log/log_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_settings_page.ui b/code/studio/src/plugins/log/log_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/log_settings_page.ui
rename to code/studio/src/plugins/log/log_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/ovqt_plugin_log.xml b/code/studio/src/plugins/log/ovqt_plugin_log.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/ovqt_plugin_log.xml
rename to code/studio/src/plugins/log/ovqt_plugin_log.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/qt_displayer.cpp b/code/studio/src/plugins/log/qt_displayer.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/qt_displayer.cpp
rename to code/studio/src/plugins/log/qt_displayer.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/log/qt_displayer.h b/code/studio/src/plugins/log/qt_displayer.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/log/qt_displayer.h
rename to code/studio/src/plugins/log/qt_displayer.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/CMakeLists.txt b/code/studio/src/plugins/mission_compiler/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/CMakeLists.txt
rename to code/studio/src/plugins/mission_compiler/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/arrow-left-2.png b/code/studio/src/plugins/mission_compiler/images/arrow-left-2.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/arrow-left-2.png
rename to code/studio/src/plugins/mission_compiler/images/arrow-left-2.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/arrow-left-double-2.png b/code/studio/src/plugins/mission_compiler/images/arrow-left-double-2.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/arrow-left-double-2.png
rename to code/studio/src/plugins/mission_compiler/images/arrow-left-double-2.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/arrow-right-2.png b/code/studio/src/plugins/mission_compiler/images/arrow-right-2.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/arrow-right-2.png
rename to code/studio/src/plugins/mission_compiler/images/arrow-right-2.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/arrow-right-double-2.png b/code/studio/src/plugins/mission_compiler/images/arrow-right-double-2.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/arrow-right-double-2.png
rename to code/studio/src/plugins/mission_compiler/images/arrow-right-double-2.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/document-export-4.png b/code/studio/src/plugins/mission_compiler/images/document-export-4.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/document-export-4.png
rename to code/studio/src/plugins/mission_compiler/images/document-export-4.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_add_item.png b/code/studio/src/plugins/mission_compiler/images/ic_nel_add_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_add_item.png
rename to code/studio/src/plugins/mission_compiler/images/ic_nel_add_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_delete_item.png b/code/studio/src/plugins/mission_compiler/images/ic_nel_delete_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_delete_item.png
rename to code/studio/src/plugins/mission_compiler/images/ic_nel_delete_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_down_item.png b/code/studio/src/plugins/mission_compiler/images/ic_nel_down_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_down_item.png
rename to code/studio/src/plugins/mission_compiler/images/ic_nel_down_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_generic_settings.png b/code/studio/src/plugins/mission_compiler/images/ic_nel_generic_settings.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_generic_settings.png
rename to code/studio/src/plugins/mission_compiler/images/ic_nel_generic_settings.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_reset_all.png b/code/studio/src/plugins/mission_compiler/images/ic_nel_reset_all.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_reset_all.png
rename to code/studio/src/plugins/mission_compiler/images/ic_nel_reset_all.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_up_item.png b/code/studio/src/plugins/mission_compiler/images/ic_nel_up_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/ic_nel_up_item.png
rename to code/studio/src/plugins/mission_compiler/images/ic_nel_up_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/news-subscribe-2.png b/code/studio/src/plugins/mission_compiler/images/news-subscribe-2.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/news-subscribe-2.png
rename to code/studio/src/plugins/mission_compiler/images/news-subscribe-2.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/run-build-2.png b/code/studio/src/plugins/mission_compiler/images/run-build-2.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/images/run-build-2.png
rename to code/studio/src/plugins/mission_compiler/images/run-build-2.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler.qrc b/code/studio/src/plugins/mission_compiler/mission_compiler.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler.qrc
rename to code/studio/src/plugins/mission_compiler/mission_compiler.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_main_window.cpp b/code/studio/src/plugins/mission_compiler/mission_compiler_main_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_main_window.cpp
rename to code/studio/src/plugins/mission_compiler/mission_compiler_main_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_main_window.h b/code/studio/src/plugins/mission_compiler/mission_compiler_main_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_main_window.h
rename to code/studio/src/plugins/mission_compiler/mission_compiler_main_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_main_window.ui b/code/studio/src/plugins/mission_compiler/mission_compiler_main_window.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_main_window.ui
rename to code/studio/src/plugins/mission_compiler/mission_compiler_main_window.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_plugin.cpp b/code/studio/src/plugins/mission_compiler/mission_compiler_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_plugin.cpp
rename to code/studio/src/plugins/mission_compiler/mission_compiler_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_plugin.h b/code/studio/src/plugins/mission_compiler/mission_compiler_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_plugin.h
rename to code/studio/src/plugins/mission_compiler/mission_compiler_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_plugin_constants.h b/code/studio/src/plugins/mission_compiler/mission_compiler_plugin_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_plugin_constants.h
rename to code/studio/src/plugins/mission_compiler/mission_compiler_plugin_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_settings_page.cpp b/code/studio/src/plugins/mission_compiler/mission_compiler_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_settings_page.cpp
rename to code/studio/src/plugins/mission_compiler/mission_compiler_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_settings_page.h b/code/studio/src/plugins/mission_compiler/mission_compiler_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_settings_page.h
rename to code/studio/src/plugins/mission_compiler/mission_compiler_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_settings_page.ui b/code/studio/src/plugins/mission_compiler/mission_compiler_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/mission_compiler_settings_page.ui
rename to code/studio/src/plugins/mission_compiler/mission_compiler_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/ovqt_plugin_mission_compiler.xml b/code/studio/src/plugins/mission_compiler/ovqt_plugin_mission_compiler.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/ovqt_plugin_mission_compiler.xml
rename to code/studio/src/plugins/mission_compiler/ovqt_plugin_mission_compiler.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/server_entry_dialog.cpp b/code/studio/src/plugins/mission_compiler/server_entry_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/server_entry_dialog.cpp
rename to code/studio/src/plugins/mission_compiler/server_entry_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/server_entry_dialog.h b/code/studio/src/plugins/mission_compiler/server_entry_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/server_entry_dialog.h
rename to code/studio/src/plugins/mission_compiler/server_entry_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/server_entry_dialog.ui b/code/studio/src/plugins/mission_compiler/server_entry_dialog.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/server_entry_dialog.ui
rename to code/studio/src/plugins/mission_compiler/server_entry_dialog.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/validation_file.cpp b/code/studio/src/plugins/mission_compiler/validation_file.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/validation_file.cpp
rename to code/studio/src/plugins/mission_compiler/validation_file.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/validation_file.h b/code/studio/src/plugins/mission_compiler/validation_file.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/mission_compiler/validation_file.h
rename to code/studio/src/plugins/mission_compiler/validation_file.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/CMakeLists.txt b/code/studio/src/plugins/object_viewer/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/CMakeLists.txt
rename to code/studio/src/plugins/object_viewer/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_settings_page.cpp b/code/studio/src/plugins/object_viewer/graphics_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_settings_page.cpp
rename to code/studio/src/plugins/object_viewer/graphics_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_settings_page.h b/code/studio/src/plugins/object_viewer/graphics_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_settings_page.h
rename to code/studio/src/plugins/object_viewer/graphics_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_settings_page.ui b/code/studio/src/plugins/object_viewer/graphics_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_settings_page.ui
rename to code/studio/src/plugins/object_viewer/graphics_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_viewport.cpp b/code/studio/src/plugins/object_viewer/graphics_viewport.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_viewport.cpp
rename to code/studio/src/plugins/object_viewer/graphics_viewport.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_viewport.h b/code/studio/src/plugins/object_viewer/graphics_viewport.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/graphics_viewport.h
rename to code/studio/src/plugins/object_viewer/graphics_viewport.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_add_item.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_add_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_add_item.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_add_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_anim.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_anim.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_anim.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_anim.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_animset.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_animset.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_animset.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_animset.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_append_item.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_append_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_append_item.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_append_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_bgcolor.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_bgcolor.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_bgcolor.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_bgcolor.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_camera_3dedit.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_camera_3dedit.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_camera_3dedit.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_camera_3dedit.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_camera_add.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_camera_add.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_camera_add.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_camera_add.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_camera_del.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_camera_del.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_camera_del.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_camera_del.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_camera_fps.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_camera_fps.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_camera_fps.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_camera_fps.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_daynight.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_daynight.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_daynight.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_daynight.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_delete_item.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_delete_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_delete_item.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_delete_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_down_item.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_down_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_down_item.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_down_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_framedelay.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_framedelay.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_framedelay.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_framedelay.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_insert_item.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_insert_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_insert_item.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_insert_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_mixer.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_mixer.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_mixer.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_mixer.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_mrm_mesh.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_mrm_mesh.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_mrm_mesh.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_mrm_mesh.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_new.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_new.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_new.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_new.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_open.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_open.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_open.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_open.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_particle_system.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_particle_system.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_particle_system.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_particle_system.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_particle_system_close.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_particle_system_close.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_particle_system_close.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_particle_system_close.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_particles.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_particles.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_particles.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_particles.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_pill.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_pill.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_pill.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_pill.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_reset_all.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_reset_all.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_reset_all.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_reset_all.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_reset_camera.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_reset_camera.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_reset_camera.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_reset_camera.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_save.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_save.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_save.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_save.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_save_as.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_save_as.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_save_as.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_save_as.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_skelscale.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_skelscale.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_skelscale.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_skelscale.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_sound.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_sound.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_sound.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_sound.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_up_item.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_up_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_up_item.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_up_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_veget.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_veget.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_veget.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_veget.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_vegetset.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_vegetset.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_vegetset.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_vegetset.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_water.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_water.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_water.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_water.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_wind.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_wind.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_wind.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_wind.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_workspace_item.png b/code/studio/src/plugins/object_viewer/icons/ic_nel_workspace_item.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/ic_nel_workspace_item.png
rename to code/studio/src/plugins/object_viewer/icons/ic_nel_workspace_item.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_collision_zone_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_collision_zone_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_collision_zone_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_collision_zone_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_emitter_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_emitter_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_emitter_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_emitter_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_force_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_force_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_force_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_force_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_instance_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_instance_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_instance_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_instance_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_light_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_light_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_light_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_light_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_located_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_located_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_located_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_located_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_system_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_system_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_system_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_system_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_system_close_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_system_close_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_system_close_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_particle_system_close_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_sound_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_sound_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_sound_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_sound_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_workspace_item_24.png b/code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_workspace_item_24.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/icons/particles_system_24/ic_nel_workspace_item_24.png
rename to code/studio/src/plugins/object_viewer/icons/particles_system_24/ic_nel_workspace_item_24.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/dqynight.png b/code/studio/src/plugins/object_viewer/images/dqynight.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/dqynight.png
rename to code/studio/src/plugins/object_viewer/images/dqynight.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/ico_mrm_mesh.png b/code/studio/src/plugins/object_viewer/images/ico_mrm_mesh.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/ico_mrm_mesh.png
rename to code/studio/src/plugins/object_viewer/images/ico_mrm_mesh.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/mixer.png b/code/studio/src/plugins/object_viewer/images/mixer.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/mixer.png
rename to code/studio/src/plugins/object_viewer/images/mixer.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/nel.png b/code/studio/src/plugins/object_viewer/images/nel.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/nel.png
rename to code/studio/src/plugins/object_viewer/images/nel.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/pause.png b/code/studio/src/plugins/object_viewer/images/pause.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/pause.png
rename to code/studio/src/plugins/object_viewer/images/pause.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/play.png b/code/studio/src/plugins/object_viewer/images/play.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/play.png
rename to code/studio/src/plugins/object_viewer/images/play.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/polymode.png b/code/studio/src/plugins/object_viewer/images/polymode.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/polymode.png
rename to code/studio/src/plugins/object_viewer/images/polymode.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/pqrticles.png b/code/studio/src/plugins/object_viewer/images/pqrticles.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/pqrticles.png
rename to code/studio/src/plugins/object_viewer/images/pqrticles.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/refresh.png b/code/studio/src/plugins/object_viewer/images/refresh.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/refresh.png
rename to code/studio/src/plugins/object_viewer/images/refresh.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/rmfill.png b/code/studio/src/plugins/object_viewer/images/rmfill.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/rmfill.png
rename to code/studio/src/plugins/object_viewer/images/rmfill.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/rmline.png b/code/studio/src/plugins/object_viewer/images/rmline.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/rmline.png
rename to code/studio/src/plugins/object_viewer/images/rmline.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/rmpoints.png b/code/studio/src/plugins/object_viewer/images/rmpoints.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/rmpoints.png
rename to code/studio/src/plugins/object_viewer/images/rmpoints.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/seek-backward.png b/code/studio/src/plugins/object_viewer/images/seek-backward.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/seek-backward.png
rename to code/studio/src/plugins/object_viewer/images/seek-backward.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/seek-forward.png b/code/studio/src/plugins/object_viewer/images/seek-forward.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/seek-forward.png
rename to code/studio/src/plugins/object_viewer/images/seek-forward.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/skip-backward.png b/code/studio/src/plugins/object_viewer/images/skip-backward.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/skip-backward.png
rename to code/studio/src/plugins/object_viewer/images/skip-backward.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/skip-forward.png b/code/studio/src/plugins/object_viewer/images/skip-forward.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/skip-forward.png
rename to code/studio/src/plugins/object_viewer/images/skip-forward.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/sound.png b/code/studio/src/plugins/object_viewer/images/sound.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/sound.png
rename to code/studio/src/plugins/object_viewer/images/sound.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/stop.png b/code/studio/src/plugins/object_viewer/images/stop.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/stop.png
rename to code/studio/src/plugins/object_viewer/images/stop.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/water.png b/code/studio/src/plugins/object_viewer/images/water.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/water.png
rename to code/studio/src/plugins/object_viewer/images/water.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/wind.png b/code/studio/src/plugins/object_viewer/images/wind.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/images/wind.png
rename to code/studio/src/plugins/object_viewer/images/wind.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/main_window.cpp b/code/studio/src/plugins/object_viewer/main_window.cpp
similarity index 99%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/main_window.cpp
rename to code/studio/src/plugins/object_viewer/main_window.cpp
index 2d45f0fb3..bccf7a6b1 100644
--- a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/main_window.cpp
+++ b/code/studio/src/plugins/object_viewer/main_window.cpp
@@ -66,7 +66,7 @@ CMainWindow::CMainWindow(QWidget *parent)
_isGraphicsInitialized(false),
_isGraphicsEnabled(false),
_isSoundInitialized(false),
- _isSoundEnabled(true),
+ _isSoundEnabled(false), // MTR workaround for sheet id nonsense
_GraphicsViewport(NULL),
_lastDir("."),
_mouseMode(NL3D::U3dMouseListener::edit3d)
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/main_window.h b/code/studio/src/plugins/object_viewer/main_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/main_window.h
rename to code/studio/src/plugins/object_viewer/main_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/modules.cpp b/code/studio/src/plugins/object_viewer/modules.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/modules.cpp
rename to code/studio/src/plugins/object_viewer/modules.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/modules.h b/code/studio/src/plugins/object_viewer/modules.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/modules.h
rename to code/studio/src/plugins/object_viewer/modules.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer.cpp b/code/studio/src/plugins/object_viewer/object_viewer.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer.cpp
rename to code/studio/src/plugins/object_viewer/object_viewer.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer.h b/code/studio/src/plugins/object_viewer/object_viewer.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer.h
rename to code/studio/src/plugins/object_viewer/object_viewer.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer.qrc b/code/studio/src/plugins/object_viewer/object_viewer.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer.qrc
rename to code/studio/src/plugins/object_viewer/object_viewer.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer_constants.h b/code/studio/src/plugins/object_viewer/object_viewer_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer_constants.h
rename to code/studio/src/plugins/object_viewer/object_viewer_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer_plugin.cpp b/code/studio/src/plugins/object_viewer/object_viewer_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer_plugin.cpp
rename to code/studio/src/plugins/object_viewer/object_viewer_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer_plugin.h b/code/studio/src/plugins/object_viewer/object_viewer_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/object_viewer_plugin.h
rename to code/studio/src/plugins/object_viewer/object_viewer_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/ovqt_plugin_object_viewer.xml b/code/studio/src/plugins/object_viewer/ovqt_plugin_object_viewer.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/ovqt_plugin_object_viewer.xml
rename to code/studio/src/plugins/object_viewer/ovqt_plugin_object_viewer.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/attrib_form.ui b/code/studio/src/plugins/object_viewer/particle_system/attrib_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/attrib_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/attrib_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/attrib_widget.cpp b/code/studio/src/plugins/object_viewer/particle_system/attrib_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/attrib_widget.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/attrib_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/attrib_widget.h b/code/studio/src/plugins/object_viewer/particle_system/attrib_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/attrib_widget.h
rename to code/studio/src/plugins/object_viewer/particle_system/attrib_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/auto_lod_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/auto_lod_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/auto_lod_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/auto_lod_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/auto_lod_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/auto_lod_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/auto_lod_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/auto_lod_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/auto_lod_form.ui b/code/studio/src/plugins/object_viewer/particle_system/auto_lod_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/auto_lod_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/auto_lod_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/basic_edit_form.ui b/code/studio/src/plugins/object_viewer/particle_system/basic_edit_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/basic_edit_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/basic_edit_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/basic_edit_widget.cpp b/code/studio/src/plugins/object_viewer/particle_system/basic_edit_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/basic_edit_widget.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/basic_edit_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/basic_edit_widget.h b/code/studio/src/plugins/object_viewer/particle_system/basic_edit_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/basic_edit_widget.h
rename to code/studio/src/plugins/object_viewer/particle_system/basic_edit_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/bin_op_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/bin_op_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/bin_op_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/bin_op_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/bin_op_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/bin_op_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/bin_op_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/bin_op_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/constraint_mesh_form.ui b/code/studio/src/plugins/object_viewer/particle_system/constraint_mesh_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/constraint_mesh_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/constraint_mesh_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/constraint_mesh_widget.cpp b/code/studio/src/plugins/object_viewer/particle_system/constraint_mesh_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/constraint_mesh_widget.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/constraint_mesh_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/constraint_mesh_widget.h b/code/studio/src/plugins/object_viewer/particle_system/constraint_mesh_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/constraint_mesh_widget.h
rename to code/studio/src/plugins/object_viewer/particle_system/constraint_mesh_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/curve_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/curve_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/curve_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/curve_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/curve_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/curve_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/curve_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/curve_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/curve_form.ui b/code/studio/src/plugins/object_viewer/particle_system/curve_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/curve_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/curve_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/direction_form.ui b/code/studio/src/plugins/object_viewer/particle_system/direction_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/direction_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/direction_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/direction_widget.cpp b/code/studio/src/plugins/object_viewer/particle_system/direction_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/direction_widget.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/direction_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/direction_widget.h b/code/studio/src/plugins/object_viewer/particle_system/direction_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/direction_widget.h
rename to code/studio/src/plugins/object_viewer/particle_system/direction_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/dup_ps.cpp b/code/studio/src/plugins/object_viewer/particle_system/dup_ps.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/dup_ps.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/dup_ps.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/dup_ps.h b/code/studio/src/plugins/object_viewer/particle_system/dup_ps.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/dup_ps.h
rename to code/studio/src/plugins/object_viewer/particle_system/dup_ps.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/emitter_form.ui b/code/studio/src/plugins/object_viewer/particle_system/emitter_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/emitter_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/emitter_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/emitter_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/emitter_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/emitter_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/emitter_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/emitter_page.h b/code/studio/src/plugins/object_viewer/particle_system/emitter_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/emitter_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/emitter_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/follow_path_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/follow_path_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/follow_path_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/follow_path_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/follow_path_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/follow_path_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/follow_path_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/follow_path_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_bindable_form.ui b/code/studio/src/plugins/object_viewer/particle_system/located_bindable_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_bindable_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/located_bindable_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_bindable_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/located_bindable_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_bindable_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/located_bindable_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_bindable_page.h b/code/studio/src/plugins/object_viewer/particle_system/located_bindable_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_bindable_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/located_bindable_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_form.ui b/code/studio/src/plugins/object_viewer/particle_system/located_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/located_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/located_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/located_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_page.h b/code/studio/src/plugins/object_viewer/particle_system/located_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/located_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/located_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/mesh_form.ui b/code/studio/src/plugins/object_viewer/particle_system/mesh_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/mesh_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/mesh_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/mesh_widget.cpp b/code/studio/src/plugins/object_viewer/particle_system/mesh_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/mesh_widget.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/mesh_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/mesh_widget.h b/code/studio/src/plugins/object_viewer/particle_system/mesh_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/mesh_widget.h
rename to code/studio/src/plugins/object_viewer/particle_system/mesh_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/morph_mesh_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/morph_mesh_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/morph_mesh_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/morph_mesh_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/morph_mesh_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/morph_mesh_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/morph_mesh_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/morph_mesh_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/morph_mesh_form.ui b/code/studio/src/plugins/object_viewer/particle_system/morph_mesh_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/morph_mesh_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/morph_mesh_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/multi_tex_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/multi_tex_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/multi_tex_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/multi_tex_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/multi_tex_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/multi_tex_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/multi_tex_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/multi_tex_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/multi_tex_form.ui b/code/studio/src/plugins/object_viewer/particle_system/multi_tex_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/multi_tex_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/multi_tex_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_control_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_control_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_control_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_control_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_control_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/particle_control_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_control_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_control_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_control_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_control_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_control_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_control_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_editor.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_editor.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_editor.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_editor.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_editor.h b/code/studio/src/plugins/object_viewer/particle_system/particle_editor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_editor.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_editor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_force_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_force_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_force_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_force_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_force_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_force_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_force_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_force_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_force_page.h b/code/studio/src/plugins/object_viewer/particle_system/particle_force_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_force_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_force_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_light_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_light_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_light_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_light_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_light_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_light_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_light_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_light_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_light_page.h b/code/studio/src/plugins/object_viewer/particle_system/particle_light_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_light_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_light_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_link_skeleton_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_link_skeleton_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_link_skeleton_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_link_skeleton_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_link_skeleton_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/particle_link_skeleton_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_link_skeleton_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_link_skeleton_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_link_skeleton_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_link_skeleton_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_link_skeleton_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_link_skeleton_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_node.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_node.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_node.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_node.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_node.h b/code/studio/src/plugins/object_viewer/particle_system/particle_node.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_node.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_node.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_property_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_property_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_property_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_property_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_property_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/particle_property_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_property_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_property_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_sound_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_sound_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_sound_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_sound_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_sound_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_sound_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_sound_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_sound_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_sound_page.h b/code/studio/src/plugins/object_viewer/particle_system/particle_sound_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_sound_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_sound_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_system_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_system_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_system_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_system_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_system_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_system_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_system_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_system_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_system_page.h b/code/studio/src/plugins/object_viewer/particle_system/particle_system_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_system_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_system_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_anim_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_texture_anim_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_anim_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_texture_anim_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_anim_widget.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_texture_anim_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_anim_widget.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_texture_anim_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_anim_widget.h b/code/studio/src/plugins/object_viewer/particle_system/particle_texture_anim_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_anim_widget.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_texture_anim_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_texture_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_texture_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_widget.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_texture_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_widget.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_texture_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_widget.h b/code/studio/src/plugins/object_viewer/particle_system/particle_texture_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_texture_widget.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_texture_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_tree_model.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_tree_model.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_tree_model.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_tree_model.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_tree_model.h b/code/studio/src/plugins/object_viewer/particle_system/particle_tree_model.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_tree_model.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_tree_model.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_workspace_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_workspace_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/particle_workspace_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_workspace_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_workspace_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_workspace_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_workspace_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_workspace_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_page.h b/code/studio/src/plugins/object_viewer/particle_system/particle_workspace_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_workspace_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_workspace_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_zone_form.ui b/code/studio/src/plugins/object_viewer/particle_system/particle_zone_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_zone_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/particle_zone_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_zone_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/particle_zone_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_zone_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/particle_zone_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_zone_page.h b/code/studio/src/plugins/object_viewer/particle_system/particle_zone_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/particle_zone_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/particle_zone_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_initial_pos.cpp b/code/studio/src/plugins/object_viewer/particle_system/ps_initial_pos.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_initial_pos.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/ps_initial_pos.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_initial_pos.h b/code/studio/src/plugins/object_viewer/particle_system/ps_initial_pos.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_initial_pos.h
rename to code/studio/src/plugins/object_viewer/particle_system/ps_initial_pos.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_mover_form.ui b/code/studio/src/plugins/object_viewer/particle_system/ps_mover_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_mover_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/ps_mover_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_mover_page.cpp b/code/studio/src/plugins/object_viewer/particle_system/ps_mover_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_mover_page.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/ps_mover_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_mover_page.h b/code/studio/src/plugins/object_viewer/particle_system/ps_mover_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_mover_page.h
rename to code/studio/src/plugins/object_viewer/particle_system/ps_mover_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_wrapper.h b/code/studio/src/plugins/object_viewer/particle_system/ps_wrapper.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/ps_wrapper.h
rename to code/studio/src/plugins/object_viewer/particle_system/ps_wrapper.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_bank_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/scheme_bank_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_bank_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/scheme_bank_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_bank_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/scheme_bank_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_bank_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/scheme_bank_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_bank_form.ui b/code/studio/src/plugins/object_viewer/particle_system/scheme_bank_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_bank_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/scheme_bank_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_manager.cpp b/code/studio/src/plugins/object_viewer/particle_system/scheme_manager.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_manager.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/scheme_manager.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_manager.h b/code/studio/src/plugins/object_viewer/particle_system/scheme_manager.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/scheme_manager.h
rename to code/studio/src/plugins/object_viewer/particle_system/scheme_manager.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/spinner_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/spinner_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/spinner_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/spinner_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/spinner_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/spinner_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/spinner_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/spinner_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/tail_form.ui b/code/studio/src/plugins/object_viewer/particle_system/tail_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/tail_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/tail_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/tail_particle_widget.cpp b/code/studio/src/plugins/object_viewer/particle_system/tail_particle_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/tail_particle_widget.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/tail_particle_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/tail_particle_widget.h b/code/studio/src/plugins/object_viewer/particle_system/tail_particle_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/tail_particle_widget.h
rename to code/studio/src/plugins/object_viewer/particle_system/tail_particle_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_blender_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/value_blender_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_blender_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/value_blender_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_blender_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/value_blender_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_blender_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/value_blender_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_from_emitter_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/value_from_emitter_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_from_emitter_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/value_from_emitter_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_from_emitter_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/value_from_emitter_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_from_emitter_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/value_from_emitter_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_gradient_dialog.cpp b/code/studio/src/plugins/object_viewer/particle_system/value_gradient_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_gradient_dialog.cpp
rename to code/studio/src/plugins/object_viewer/particle_system/value_gradient_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_gradient_dialog.h b/code/studio/src/plugins/object_viewer/particle_system/value_gradient_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_gradient_dialog.h
rename to code/studio/src/plugins/object_viewer/particle_system/value_gradient_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_gradient_form.ui b/code/studio/src/plugins/object_viewer/particle_system/value_gradient_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/value_gradient_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/value_gradient_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/workspace_form.ui b/code/studio/src/plugins/object_viewer/particle_system/workspace_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/particle_system/workspace_form.ui
rename to code/studio/src/plugins/object_viewer/particle_system/workspace_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/animation_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/animation_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_dialog.h b/code/studio/src/plugins/object_viewer/scene/animation_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/animation_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_form.ui b/code/studio/src/plugins/object_viewer/scene/animation_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_form.ui
rename to code/studio/src/plugins/object_viewer/scene/animation_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_set_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/animation_set_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_set_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/animation_set_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_set_dialog.h b/code/studio/src/plugins/object_viewer/scene/animation_set_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_set_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/animation_set_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_set_form.ui b/code/studio/src/plugins/object_viewer/scene/animation_set_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/animation_set_form.ui
rename to code/studio/src/plugins/object_viewer/scene/animation_set_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/camera_control.cpp b/code/studio/src/plugins/object_viewer/scene/camera_control.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/camera_control.cpp
rename to code/studio/src/plugins/object_viewer/scene/camera_control.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/camera_control.h b/code/studio/src/plugins/object_viewer/scene/camera_control.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/camera_control.h
rename to code/studio/src/plugins/object_viewer/scene/camera_control.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/day_night_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/day_night_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/day_night_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/day_night_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/day_night_dialog.h b/code/studio/src/plugins/object_viewer/scene/day_night_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/day_night_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/day_night_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/day_night_form.ui b/code/studio/src/plugins/object_viewer/scene/day_night_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/day_night_form.ui
rename to code/studio/src/plugins/object_viewer/scene/day_night_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/entity.cpp b/code/studio/src/plugins/object_viewer/scene/entity.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/entity.cpp
rename to code/studio/src/plugins/object_viewer/scene/entity.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/entity.h b/code/studio/src/plugins/object_viewer/scene/entity.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/entity.h
rename to code/studio/src/plugins/object_viewer/scene/entity.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/global_wind_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/global_wind_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/global_wind_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/global_wind_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/global_wind_dialog.h b/code/studio/src/plugins/object_viewer/scene/global_wind_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/global_wind_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/global_wind_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/global_wind_form.ui b/code/studio/src/plugins/object_viewer/scene/global_wind_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/global_wind_form.ui
rename to code/studio/src/plugins/object_viewer/scene/global_wind_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/setup_fog_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/setup_fog_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/setup_fog_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/setup_fog_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/setup_fog_dialog.h b/code/studio/src/plugins/object_viewer/scene/setup_fog_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/setup_fog_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/setup_fog_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/setup_fog_form.ui b/code/studio/src/plugins/object_viewer/scene/setup_fog_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/setup_fog_form.ui
rename to code/studio/src/plugins/object_viewer/scene/setup_fog_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_scale_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/skeleton_scale_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_scale_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/skeleton_scale_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_scale_dialog.h b/code/studio/src/plugins/object_viewer/scene/skeleton_scale_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_scale_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/skeleton_scale_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_scale_form.ui b/code/studio/src/plugins/object_viewer/scene/skeleton_scale_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_scale_form.ui
rename to code/studio/src/plugins/object_viewer/scene/skeleton_scale_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_tree_model.cpp b/code/studio/src/plugins/object_viewer/scene/skeleton_tree_model.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_tree_model.cpp
rename to code/studio/src/plugins/object_viewer/scene/skeleton_tree_model.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_tree_model.h b/code/studio/src/plugins/object_viewer/scene/skeleton_tree_model.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/skeleton_tree_model.h
rename to code/studio/src/plugins/object_viewer/scene/skeleton_tree_model.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/slot_form.ui b/code/studio/src/plugins/object_viewer/scene/slot_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/slot_form.ui
rename to code/studio/src/plugins/object_viewer/scene/slot_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/slot_manager_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/slot_manager_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/slot_manager_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/slot_manager_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/slot_manager_dialog.h b/code/studio/src/plugins/object_viewer/scene/slot_manager_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/slot_manager_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/slot_manager_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/sun_color_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/sun_color_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/sun_color_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/sun_color_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/sun_color_dialog.h b/code/studio/src/plugins/object_viewer/scene/sun_color_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/sun_color_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/sun_color_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/sun_color_form.ui b/code/studio/src/plugins/object_viewer/scene/sun_color_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/sun_color_form.ui
rename to code/studio/src/plugins/object_viewer/scene/sun_color_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_mrm_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/tune_mrm_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_mrm_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/tune_mrm_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_mrm_dialog.h b/code/studio/src/plugins/object_viewer/scene/tune_mrm_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_mrm_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/tune_mrm_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_mrm_form.ui b/code/studio/src/plugins/object_viewer/scene/tune_mrm_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_mrm_form.ui
rename to code/studio/src/plugins/object_viewer/scene/tune_mrm_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_timer_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/tune_timer_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_timer_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/tune_timer_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_timer_dialog.h b/code/studio/src/plugins/object_viewer/scene/tune_timer_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_timer_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/tune_timer_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_timer_form.ui b/code/studio/src/plugins/object_viewer/scene/tune_timer_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/tune_timer_form.ui
rename to code/studio/src/plugins/object_viewer/scene/tune_timer_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/water_pool_dialog.cpp b/code/studio/src/plugins/object_viewer/scene/water_pool_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/water_pool_dialog.cpp
rename to code/studio/src/plugins/object_viewer/scene/water_pool_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/water_pool_dialog.h b/code/studio/src/plugins/object_viewer/scene/water_pool_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/water_pool_dialog.h
rename to code/studio/src/plugins/object_viewer/scene/water_pool_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/water_pool_form.ui b/code/studio/src/plugins/object_viewer/scene/water_pool_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/scene/water_pool_form.ui
rename to code/studio/src/plugins/object_viewer/scene/water_pool_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_settings_page.cpp b/code/studio/src/plugins/object_viewer/sound_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_settings_page.cpp
rename to code/studio/src/plugins/object_viewer/sound_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_settings_page.h b/code/studio/src/plugins/object_viewer/sound_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_settings_page.h
rename to code/studio/src/plugins/object_viewer/sound_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_settings_page.ui b/code/studio/src/plugins/object_viewer/sound_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_settings_page.ui
rename to code/studio/src/plugins/object_viewer/sound_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_system.cpp b/code/studio/src/plugins/object_viewer/sound_system.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_system.cpp
rename to code/studio/src/plugins/object_viewer/sound_system.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_system.h b/code/studio/src/plugins/object_viewer/sound_system.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/sound_system.h
rename to code/studio/src/plugins/object_viewer/sound_system.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/stdpch.cpp b/code/studio/src/plugins/object_viewer/stdpch.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/stdpch.cpp
rename to code/studio/src/plugins/object_viewer/stdpch.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/stdpch.h b/code/studio/src/plugins/object_viewer/stdpch.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/stdpch.h
rename to code/studio/src/plugins/object_viewer/stdpch.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_appearance_page.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_appearance_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_appearance_page.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_appearance_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_appearance_page.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_appearance_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_appearance_page.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_appearance_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_apperance_form.ui b/code/studio/src/plugins/object_viewer/vegetable/vegetable_apperance_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_apperance_form.ui
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_apperance_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_density_form.ui b/code/studio/src/plugins/object_viewer/vegetable/vegetable_density_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_density_form.ui
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_density_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_density_page.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_density_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_density_page.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_density_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_density_page.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_density_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_density_page.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_density_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_dialog.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_dialog.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_dialog.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_dialog.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_dialog_form.ui b/code/studio/src/plugins/object_viewer/vegetable/vegetable_dialog_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_dialog_form.ui
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_dialog_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_editor.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_editor.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_editor.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_editor.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_editor.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_editor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_editor.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_editor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_landscape_form.ui b/code/studio/src/plugins/object_viewer/vegetable/vegetable_landscape_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_landscape_form.ui
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_landscape_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_landscape_page.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_landscape_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_landscape_page.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_landscape_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_landscape_page.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_landscape_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_landscape_page.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_landscape_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_node.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_node.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_node.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_node.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_node.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_node.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_node.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_node.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_noise_value_form.ui b/code/studio/src/plugins/object_viewer/vegetable/vegetable_noise_value_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_noise_value_form.ui
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_noise_value_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_noise_value_widget.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_noise_value_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_noise_value_widget.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_noise_value_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_noise_value_widget.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_noise_value_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_noise_value_widget.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_noise_value_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_rotate_form.ui b/code/studio/src/plugins/object_viewer/vegetable/vegetable_rotate_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_rotate_form.ui
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_rotate_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_rotate_page.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_rotate_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_rotate_page.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_rotate_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_rotate_page.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_rotate_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_rotate_page.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_rotate_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_scale_form.ui b/code/studio/src/plugins/object_viewer/vegetable/vegetable_scale_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_scale_form.ui
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_scale_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_scale_page.cpp b/code/studio/src/plugins/object_viewer/vegetable/vegetable_scale_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_scale_page.cpp
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_scale_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_scale_page.h b/code/studio/src/plugins/object_viewer/vegetable/vegetable_scale_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable/vegetable_scale_page.h
rename to code/studio/src/plugins/object_viewer/vegetable/vegetable_scale_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable_settings_page.cpp b/code/studio/src/plugins/object_viewer/vegetable_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable_settings_page.cpp
rename to code/studio/src/plugins/object_viewer/vegetable_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable_settings_page.h b/code/studio/src/plugins/object_viewer/vegetable_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable_settings_page.h
rename to code/studio/src/plugins/object_viewer/vegetable_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable_settings_page.ui b/code/studio/src/plugins/object_viewer/vegetable_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/vegetable_settings_page.ui
rename to code/studio/src/plugins/object_viewer/vegetable_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/color_edit_form.ui b/code/studio/src/plugins/object_viewer/widgets/color_edit_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/color_edit_form.ui
rename to code/studio/src/plugins/object_viewer/widgets/color_edit_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/color_edit_widget.cpp b/code/studio/src/plugins/object_viewer/widgets/color_edit_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/color_edit_widget.cpp
rename to code/studio/src/plugins/object_viewer/widgets/color_edit_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/color_edit_widget.h b/code/studio/src/plugins/object_viewer/widgets/color_edit_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/color_edit_widget.h
rename to code/studio/src/plugins/object_viewer/widgets/color_edit_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/edit_range_float_form.ui b/code/studio/src/plugins/object_viewer/widgets/edit_range_float_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/edit_range_float_form.ui
rename to code/studio/src/plugins/object_viewer/widgets/edit_range_float_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/edit_range_uint_form.ui b/code/studio/src/plugins/object_viewer/widgets/edit_range_uint_form.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/edit_range_uint_form.ui
rename to code/studio/src/plugins/object_viewer/widgets/edit_range_uint_form.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/edit_range_widget.cpp b/code/studio/src/plugins/object_viewer/widgets/edit_range_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/edit_range_widget.cpp
rename to code/studio/src/plugins/object_viewer/widgets/edit_range_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/edit_range_widget.h b/code/studio/src/plugins/object_viewer/widgets/edit_range_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/edit_range_widget.h
rename to code/studio/src/plugins/object_viewer/widgets/edit_range_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/hoverpoints.cpp b/code/studio/src/plugins/object_viewer/widgets/hoverpoints.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/hoverpoints.cpp
rename to code/studio/src/plugins/object_viewer/widgets/hoverpoints.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/hoverpoints.h b/code/studio/src/plugins/object_viewer/widgets/hoverpoints.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/object_viewer/widgets/hoverpoints.h
rename to code/studio/src/plugins/object_viewer/widgets/hoverpoints.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/CMakeLists.txt b/code/studio/src/plugins/ovqt_sheet_builder/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/CMakeLists.txt
rename to code/studio/src/plugins/ovqt_sheet_builder/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_plugin_sheet_builder.xml b/code/studio/src/plugins/ovqt_sheet_builder/ovqt_plugin_sheet_builder.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_plugin_sheet_builder.xml
rename to code/studio/src/plugins/ovqt_sheet_builder/ovqt_plugin_sheet_builder.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.cpp b/code/studio/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.cpp
rename to code/studio/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.h b/code/studio/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.h
rename to code/studio/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.pro b/code/studio/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.pro
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.pro
rename to code/studio/src/plugins/ovqt_sheet_builder/ovqt_sheet_builder.pro
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilder.h b/code/studio/src/plugins/ovqt_sheet_builder/sheetbuilder.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilder.h
rename to code/studio/src/plugins/ovqt_sheet_builder/sheetbuilder.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.cpp b/code/studio/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.cpp
rename to code/studio/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.h b/code/studio/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.h
rename to code/studio/src/plugins/ovqt_sheet_builder/sheetbuilderconfgdialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.cpp b/code/studio/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.cpp
rename to code/studio/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.h b/code/studio/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.h
rename to code/studio/src/plugins/ovqt_sheet_builder/sheetbuilderdialog.h
diff --git a/code/studio/src/plugins/tile_editor/CMakeLists.txt b/code/studio/src/plugins/tile_editor/CMakeLists.txt
new file mode 100644
index 000000000..f3458c909
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/CMakeLists.txt
@@ -0,0 +1,47 @@
+INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ ${LIBXML2_INCLUDE_DIR}
+ ${QT_INCLUDES})
+
+FILE(GLOB SRC *.cpp *.h)
+SET(OVQT_EXT_SYS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_manager.h
+ ${CMAKE_CURRENT_SOURCE_DIR}/../../extension_system/iplugin_spec.h)
+
+SET(OVQT_TILE_EDITOR_PLUGIN_HDR
+ tile_model.h
+ tile_editor_main_window.h
+ tile_editor_plugin.h)
+
+SET(OVQT_TILE_EDITOR_PLUGIN_UIS
+ tile_editor_main_window.ui)
+
+SET(OVQT_PLUG_TILE_EDITOR_RCS tile_editor.qrc)
+
+SET(QT_USE_QTGUI TRUE)
+SET(QT_USE_QTOPENGL TRUE)
+
+QT4_WRAP_CPP(OVQT_TILE_EDITOR_PLUGIN_MOC_SRC ${OVQT_TILE_EDITOR_PLUGIN_HDR})
+QT4_ADD_RESOURCES( OVQT_PLUG_TILE_EDITOR_RC_SRCS ${OVQT_PLUG_TILE_EDITOR_RCS})
+QT4_WRAP_UI(OVQT_TILE_EDITOR_PLUGIN_UI_HDRS ${OVQT_TILE_EDITOR_PLUGIN_UIS})
+
+SOURCE_GROUP(QtGeneratedUiHdr FILES ${OVQT_TILE_EDITOR_PLUGIN_UI_HDRS})
+SOURCE_GROUP(QtGeneratedMocSrc FILES ${OVQT_TILE_EDITOR_PLUGIN_MOC_SRC} ${OVQT_PLUG_TILE_EDITOR_RC_SRCS})
+SOURCE_GROUP("Tile Editor Plugin" FILES ${SRC})
+SOURCE_GROUP("OVQT Extension System" FILES ${OVQT_EXT_SYS_SRC})
+
+ADD_LIBRARY(ovqt_plugin_tile_editor MODULE ${SRC} ${OVQT_TILE_EDITOR_PLUGIN_MOC_SRC} ${OVQT_PLUG_TILE_EDITOR_RC_SRCS} ${OVQT_EXT_SYS_SRC} ${OVQT_TILE_EDITOR_PLUGIN_UI_HDRS})
+
+TARGET_LINK_LIBRARIES(ovqt_plugin_tile_editor ovqt_plugin_core nelmisc ${QT_LIBRARIES})
+
+IF(WITH_STLPORT)
+ TARGET_LINK_LIBRARIES(ovqt_plugin_tile_editor ${CMAKE_THREAD_LIBS_INIT})
+ENDIF(WITH_STLPORT)
+
+NL_DEFAULT_PROPS(ovqt_plugin_tile_editor "NeL, Tools, 3D: Object Viewer Qt Plugin: Tile Editor")
+NL_ADD_RUNTIME_FLAGS(ovqt_plugin_tile_editor)
+NL_ADD_LIB_SUFFIX(ovqt_plugin_tile_editor)
+
+ADD_DEFINITIONS(${LIBXML2_DEFINITIONS} -DQT_PLUGIN -DQT_SHARED ${QT_DEFINITIONS})
+
+INSTALL(TARGETS ovqt_plugin_tile_editor LIBRARY DESTINATION lib RUNTIME DESTINATION bin ARCHIVE DESTINATION lib COMPONENT tools3d)
\ No newline at end of file
diff --git a/code/studio/src/plugins/tile_editor/images/add_tile.png b/code/studio/src/plugins/tile_editor/images/add_tile.png
new file mode 100644
index 000000000..a9de8f51d
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/add_tile.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/delete_image.png b/code/studio/src/plugins/tile_editor/images/delete_image.png
new file mode 100644
index 000000000..1bc3b4e84
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/delete_image.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/delete_tile.png b/code/studio/src/plugins/tile_editor/images/delete_tile.png
new file mode 100644
index 000000000..613c6a5f8
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/delete_tile.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/down.png b/code/studio/src/plugins/tile_editor/images/down.png
new file mode 100644
index 000000000..b0033cf64
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/down.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/empty_image.png b/code/studio/src/plugins/tile_editor/images/empty_image.png
new file mode 100644
index 000000000..9a2e358ab
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/empty_image.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/ic_nel_add_item.png b/code/studio/src/plugins/tile_editor/images/ic_nel_add_item.png
new file mode 100644
index 000000000..bde338f78
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/ic_nel_add_item.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/ic_nel_delete_item.png b/code/studio/src/plugins/tile_editor/images/ic_nel_delete_item.png
new file mode 100644
index 000000000..a5a1787d5
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/ic_nel_delete_item.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/ic_nel_new.png b/code/studio/src/plugins/tile_editor/images/ic_nel_new.png
new file mode 100644
index 000000000..d45dcb467
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/ic_nel_new.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/ic_nel_open.png b/code/studio/src/plugins/tile_editor/images/ic_nel_open.png
new file mode 100644
index 000000000..c4992affd
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/ic_nel_open.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/ic_nel_save.png b/code/studio/src/plugins/tile_editor/images/ic_nel_save.png
new file mode 100644
index 000000000..7f7d35e9a
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/ic_nel_save.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/ic_nel_save_as.png b/code/studio/src/plugins/tile_editor/images/ic_nel_save_as.png
new file mode 100644
index 000000000..1558632b9
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/ic_nel_save_as.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/left.png b/code/studio/src/plugins/tile_editor/images/left.png
new file mode 100644
index 000000000..9c94db1aa
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/left.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/nel.png b/code/studio/src/plugins/tile_editor/images/nel.png
new file mode 100644
index 000000000..d2139bb25
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/nel.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/replace_image.png b/code/studio/src/plugins/tile_editor/images/replace_image.png
new file mode 100644
index 000000000..94d9b76c8
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/replace_image.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/reset.png b/code/studio/src/plugins/tile_editor/images/reset.png
new file mode 100644
index 000000000..6693e842c
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/reset.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/right.png b/code/studio/src/plugins/tile_editor/images/right.png
new file mode 100644
index 000000000..eb51b8385
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/right.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/rotation0.png b/code/studio/src/plugins/tile_editor/images/rotation0.png
new file mode 100644
index 000000000..7434c4959
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/rotation0.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/rotation180.png b/code/studio/src/plugins/tile_editor/images/rotation180.png
new file mode 100644
index 000000000..7ce524883
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/rotation180.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/rotation270.png b/code/studio/src/plugins/tile_editor/images/rotation270.png
new file mode 100644
index 000000000..32b47a97c
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/rotation270.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/rotation90.png b/code/studio/src/plugins/tile_editor/images/rotation90.png
new file mode 100644
index 000000000..2eb11b322
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/rotation90.png differ
diff --git a/code/studio/src/plugins/tile_editor/images/up.png b/code/studio/src/plugins/tile_editor/images/up.png
new file mode 100644
index 000000000..e5145d052
Binary files /dev/null and b/code/studio/src/plugins/tile_editor/images/up.png differ
diff --git a/code/studio/src/plugins/tile_editor/ovqt_plugin_tile_editor.xml b/code/studio/src/plugins/tile_editor/ovqt_plugin_tile_editor.xml
new file mode 100644
index 000000000..0e21a2eb9
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/ovqt_plugin_tile_editor.xml
@@ -0,0 +1,10 @@
+
+ ovqt_plugin_tile_editor
+ TileEditor
+ 1.0
+ Ryzom Core
+ Tile bank editing plugin.
+
+
+
+
\ No newline at end of file
diff --git a/code/studio/src/plugins/tile_editor/tile_editor.qrc b/code/studio/src/plugins/tile_editor/tile_editor.qrc
new file mode 100644
index 000000000..55950d217
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_editor.qrc
@@ -0,0 +1,29 @@
+
+
+ images/add_tile.png
+ images/delete_image.png
+ images/delete_tile.png
+ images/replace_image.png
+
+
+ images/ic_nel_add_item.png
+ images/ic_nel_new.png
+ images/ic_nel_open.png
+ images/ic_nel_save.png
+ images/ic_nel_save_as.png
+ images/down.png
+ images/left.png
+ images/reset.png
+ images/right.png
+ images/up.png
+
+
+ images/rotation0.png
+ images/rotation90.png
+ images/rotation180.png
+ images/rotation270.png
+
+
+ images/empty_image.png
+
+
diff --git a/code/studio/src/plugins/tile_editor/tile_editor_main_window.cpp b/code/studio/src/plugins/tile_editor/tile_editor_main_window.cpp
new file mode 100644
index 000000000..d1199ebc9
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_editor_main_window.cpp
@@ -0,0 +1,297 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include "tile_editor_main_window.h"
+
+#include "nel/misc/path.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include "../core/icore.h"
+#include "../core/core_constants.h"
+#include "../core/menu_manager.h"
+
+#include "tile_model.h"
+#include "tile_item.h"
+#include "tile_item_delegate.h"
+
+TileEditorMainWindow::TileEditorMainWindow(QWidget *parent)
+ : QMainWindow(parent),
+ m_ui(new Ui::TileEditorMainWindow)
+{
+ m_ui->setupUi(this);
+ m_undoStack = new QUndoStack(this);
+
+ // Retrieve the menu manager
+ Core::ICore *core = Core::ICore::instance();
+ Core::MenuManager *menuManager = core->menuManager();
+
+ // Create tile rotation drop down toolbar menu.
+ m_rotationMenu = new QMenu(tr("Rotate Tile"), m_ui->toolBar);
+ m_rotationMenu->setIcon(QIcon(":/tileRotation/images/rotation0.png"));
+ QList rotateActions;
+ rotateActions.push_back(m_ui->actionRotateTile0);
+ rotateActions.push_back(m_ui->actionRotateTile90);
+ rotateActions.push_back(m_ui->actionRotateTile180);
+ rotateActions.push_back(m_ui->actionRotateTile270);
+ m_rotationMenu->addActions(rotateActions);
+ m_ui->toolBar->addAction(m_rotationMenu->menuAction());
+
+ // Create the tile zoom menu.
+ m_zoomMenu = new QMenu(tr("Zoom"), m_ui->toolBar);
+ m_zoomActionGroup = new QActionGroup(this);
+ m_zoomSignalMapper = new QSignalMapper(this);
+ QList zoomActions;
+ zoomActions.push_back(m_ui->actionZoom50);
+ zoomActions.push_back(m_ui->actionZoom100);
+ zoomActions.push_back(m_ui->actionZoom200);
+ m_zoomActionGroup->addAction(m_ui->actionZoom50);
+ m_zoomActionGroup->addAction(m_ui->actionZoom100);
+ m_zoomActionGroup->addAction(m_ui->actionZoom200);
+ m_zoomMenu->addActions(zoomActions);
+ m_ui->toolBar->addAction(m_zoomMenu->menuAction());
+
+ m_tileEditorMenu = new QMenu(tr("Tile Editor"), core->menuManager()->menuBar());
+ m_tileDisplayMenu = new QMenu(tr("Tile Display"), m_ui->toolBar);
+ QList displayActions;
+ displayActions.push_back(m_ui->actionTileDisplayFilename);
+ displayActions.push_back(m_ui->actionTileDisplayIndex);
+ m_ui->actionTileDisplayIndex->setChecked(true);
+ m_tileDisplayMenu->addActions(displayActions);
+ m_tileEditorMenu->addMenu(m_tileDisplayMenu);
+ core->menuManager()->menuBar()->addMenu(m_tileEditorMenu);
+
+ // Set up the list views.
+ QStringList headers;
+ headers << "Tile Set";
+ m_model = new TileModel(headers, this);
+ m_tileItemDelegate = new TileItemDelegate();
+
+ // Set up the tile set list view.
+ m_ui->tileSetLV->setModel(m_model);
+ //m_ui->tileSetLV->setRootIndex(m_model->index(0,0));
+ connect(m_ui->tileSetAddTB, SIGNAL(clicked()), this, SLOT(onTileSetAdd()));
+ connect(m_ui->tileSetLV->selectionModel(),
+ SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)),
+ this, SLOT(changeActiveTileSet(const QModelIndex &, const QModelIndex &)));
+
+ // 128x128 List View
+ //m_ui->listView128->setItemDelegate(m_tileItemDelegate);
+ m_ui->listView128->setModel(m_model);
+ m_ui->listView128->addAction(m_ui->actionAddTile);
+ m_ui->listView128->addAction(m_ui->actionDeleteTile);
+ m_ui->listView128->addAction(m_ui->actionReplaceImage);
+ m_ui->listView128->addAction(m_ui->actionDeleteImage);
+
+ // 256x256 List View
+ //m_ui->listView256->setItemDelegate(m_tileItemDelegate);
+ m_ui->listView256->setModel(m_model);
+ m_ui->listView256->addAction(m_ui->actionAddTile);
+ m_ui->listView256->addAction(m_ui->actionDeleteTile);
+ m_ui->listView256->addAction(m_ui->actionReplaceImage);
+ m_ui->listView256->addAction(m_ui->actionDeleteImage);
+
+ // Transition List View
+ //m_ui->listViewTransition->setItemDelegate(m_tileItemDelegate);
+ m_ui->listViewTransition->setModel(m_model);
+ m_ui->listViewTransition->addAction(m_ui->actionReplaceImage);
+ m_ui->listViewTransition->addAction(m_ui->actionDeleteImage);
+
+ // Displacement List View
+ //m_ui->listViewDisplacement->setItemDelegate(m_tileItemDelegate);
+ m_ui->listViewDisplacement->setModel(m_model);
+ m_ui->listViewDisplacement->addAction(m_ui->actionReplaceImage);
+ m_ui->listViewDisplacement->addAction(m_ui->actionDeleteImage);
+
+
+ // Connect context menu actions up.
+ connect(m_ui->actionAddTile, SIGNAL(triggered(bool)), this, SLOT(onActionAddTile(bool)));
+ connect(m_ui->actionDeleteTile, SIGNAL(triggered(bool)), this, SLOT(onActionDeleteTile(bool)));
+ connect(m_ui->actionReplaceImage, SIGNAL(triggered(bool)), this, SLOT(onActionReplaceImage(bool)));
+ connect(m_ui->actionDeleteImage, SIGNAL(triggered(bool)), this, SLOT(onActioneleteImage(bool)));
+
+ connect(m_ui->actionTileDisplayFilename, SIGNAL(toggled(bool)), m_model, SLOT(selectFilenameDisplay(bool)));
+ connect(m_ui->actionTileDisplayIndex, SIGNAL(toggled(bool)), m_model, SLOT(selectIndexDisplay(bool)));
+
+ //connect(m_ui->tileViewTabWidget, SIGNAL(currentChanged(int)), m_tileItemDelegate, SLOT(currentTab(int)));
+
+ // Connect the zoom buttons.
+ connect(m_ui->actionZoom50, SIGNAL(triggered()), m_zoomSignalMapper, SLOT(map()));
+ m_zoomSignalMapper->setMapping(m_ui->actionZoom50, 0);
+ connect(m_ui->actionZoom100, SIGNAL(triggered()), m_zoomSignalMapper, SLOT(map()));
+ m_zoomSignalMapper->setMapping(m_ui->actionZoom100, 1);
+ connect(m_ui->actionZoom200, SIGNAL(triggered()), m_zoomSignalMapper, SLOT(map()));
+ m_zoomSignalMapper->setMapping(m_ui->actionZoom200, 2);
+ connect(m_zoomSignalMapper, SIGNAL(mapped(int)), this, SLOT(onZoomFactor(int)));
+}
+
+TileEditorMainWindow::~TileEditorMainWindow()
+{
+ delete m_ui;
+ delete m_undoStack;
+ delete m_rotationMenu;
+
+ delete m_tileDisplayMenu;
+ delete m_tileEditorMenu;
+
+ delete m_zoomMenu;
+ delete m_zoomActionGroup;
+ delete m_zoomSignalMapper;
+}
+
+void TileEditorMainWindow::onZoomFactor(int level)
+{
+ int tile128Scaled=TileModel::TILE_128_BASE_SIZE;
+ int tile256Scaled=TileModel::TILE_256_BASE_SIZE;
+ int tileTransScaled=TileModel::TILE_TRANSITION_BASE_SIZE;
+ int tileDispScaled=TileModel::TILE_DISPLACE_BASE_SIZE;
+ switch(level)
+ {
+ // Zoom Level 50%
+ case 0:
+ nlinfo("zooming to 50%");
+ TileModel::CurrentZoomFactor = TileModel::TileZoom50;
+ tile128Scaled /= 2;
+ tile256Scaled /= 2;
+ tileTransScaled /= 2;
+ tileDispScaled /= 2;
+ break;
+ case 1:
+ nlinfo("zooming to 100%");
+ TileModel::CurrentZoomFactor = TileModel::TileZoom100;
+ break;
+ case 2:
+ nlinfo("zooming to 200%");
+ TileModel::CurrentZoomFactor = TileModel::TileZoom200;
+ tile128Scaled *= 2;
+ tile256Scaled *= 2;
+ tileTransScaled *= 2;
+ tileDispScaled *= 2;
+ break;
+ default:
+ nlwarning("Invalid Time Zoom Factor passed.");
+ break;
+ };
+
+ nlinfo("resizing transition view. base size: %d factor %d to: %d", TileModel::TILE_TRANSITION_BASE_SIZE, level, tileTransScaled);
+
+ m_ui->listView128->setIconSize(QSize(tile128Scaled, tile128Scaled));
+ m_ui->listView128->setCurrentIndex(m_ui->listView128->model()->index(0, 0, m_ui->listView128->rootIndex()));
+ m_ui->listView256->setIconSize(QSize(tile256Scaled, tile256Scaled));
+ m_ui->listView256->setCurrentIndex(m_ui->listView256->model()->index(0, 0, m_ui->listView256->rootIndex()));
+ m_ui->listViewTransition->setIconSize(QSize(tileTransScaled, tileTransScaled));
+ m_ui->listViewTransition->setCurrentIndex(m_ui->listViewTransition->model()->index(0, 0, m_ui->listViewTransition->rootIndex()));
+ m_ui->listViewDisplacement->setIconSize(QSize(tileDispScaled, tileDispScaled));
+ m_ui->listViewDisplacement->setCurrentIndex(m_ui->listViewDisplacement->model()->index(0, 0, m_ui->listViewDisplacement->rootIndex()));
+ m_ui->listViewTransition->repaint();
+}
+
+void TileEditorMainWindow::onActionAddTile(bool triggered)
+{
+ onActionAddTile(m_ui->tileViewTabWidget->currentIndex());
+}
+
+void TileEditorMainWindow::onActionDeleteTile(bool triggered)
+{
+}
+
+void TileEditorMainWindow::onActionReplaceImage(bool triggered)
+{
+}
+
+void TileEditorMainWindow::onActionDeleteImage(bool triggered)
+{
+}
+
+void TileEditorMainWindow::onTileSetAdd()
+{
+ bool ok;
+ QString text = QInputDialog::getText(this, tr("Add Tile Set"), tr("Enter Tile Set name:"), QLineEdit::Normal, "", &ok);
+ if (ok && !text.isEmpty())
+ {
+ //if (ui.tileSetListWidget->findItems(text, Qt::MatchExactly).count() > 0)
+ //{
+ // QMessageBox::information( this, tr("Error Adding Tile Set"), tr("This name already exists") );
+ //}
+ //else
+ //{
+
+ //QModelIndex index = m_ui->tileSetLV->selectionModel()->currentIndex();
+ TileModel *model = static_cast(m_ui->tileSetLV->model());
+
+ //if(index.isValid())
+ //{
+ // if(!model->insertRow(index.row()+1, index.parent()))
+ // return;
+
+ // //updateActions()
+
+ // for(int column=0; columncolumnCount(index.parent()); column++)
+ // {
+ // QModelIndex child = model->index(index.row()+1, column, index.parent());
+ // model->setData(child, QVariant(text), Qt::EditRole);
+ // }
+ //}
+ //else
+ //{
+
+
+ // Create and append the new tile set to the model.
+ TileSetNode *tileSet = model->createTileSetNode(text);
+
+ // Retrieve how many rows there currently are and set the current index using that.
+ m_ui->tileSetLV->reset();
+ uint32 rows = model->rowCount();
+ m_ui->tileSetLV->setCurrentIndex(model->index(rows-1, 0));
+ }
+}
+
+void TileEditorMainWindow::onActionAddTile(int tabId)
+{
+ QFileDialog::Options options;
+ QString selectedFilter;
+ QStringList fileNames = QFileDialog::getOpenFileNames(this, "Choose Tile Texture", "." , "Images (*.png);;All Files (*.*)", &selectedFilter, options);
+}
+
+void TileEditorMainWindow::changeActiveTileSet(const QModelIndex &newIndex, const QModelIndex &oldIndex)
+{
+ TileModel *model = static_cast(m_ui->tileSetLV->model());
+
+ QModelIndex tile128Idx = model->index(0, 0, newIndex);
+ QModelIndex tile256Idx = model->index(1, 0, newIndex);
+ QModelIndex tileTransIdx = model->index(2, 0, newIndex);
+ QModelIndex tileDispIdx = model->index(3, 0, newIndex);
+
+ m_ui->listView128->setRootIndex(tile128Idx);
+ m_ui->listView128->setCurrentIndex(m_ui->listView128->model()->index(0, 0, m_ui->listView128->rootIndex()));
+ m_ui->listView256->setRootIndex(tile256Idx);
+ m_ui->listView256->setCurrentIndex(m_ui->listView256->model()->index(0, 0, m_ui->listView256->rootIndex()));
+ m_ui->listViewTransition->setRootIndex(tileTransIdx);
+ m_ui->listViewTransition->setCurrentIndex(m_ui->listViewTransition->model()->index(0, 0, m_ui->listViewTransition->rootIndex()));
+ m_ui->listViewDisplacement->setRootIndex(tileDispIdx);
+ m_ui->listViewDisplacement->setCurrentIndex(m_ui->listViewDisplacement->model()->index(0, 0, m_ui->listViewDisplacement->rootIndex()));
+
+ //nlinfo("number of rows in displacement: %d", tileDispIdx.model()->rowCount(tileDispIdx));
+
+ //m_ui->listView128->reset();
+ //m_ui->listView256->reset();
+ //m_ui->listViewTransition->reset();
+ //m_ui->listViewDisplacement->reset();
+}
diff --git a/code/studio/src/plugins/tile_editor/tile_editor_main_window.h b/code/studio/src/plugins/tile_editor/tile_editor_main_window.h
new file mode 100644
index 000000000..ae3520465
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_editor_main_window.h
@@ -0,0 +1,72 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef TILE_EDITOR_MAIN_WINDOW_H
+#define TILE_EDITOR_MAIN_WINDOW_H
+
+#include "ui_tile_editor_main_window.h"
+
+#include "nel/misc/types_nl.h"
+#include "nel/misc/sheet_id.h"
+
+#include
+#include
+
+namespace Ui {
+ class TileEditorMainWindow;
+}
+
+class TileModel;
+class TileItemDelegate;
+
+class TileEditorMainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ explicit TileEditorMainWindow(QWidget *parent = 0);
+ ~TileEditorMainWindow();
+
+ QUndoStack *getUndoStack() { return m_undoStack; }
+
+public Q_SLOTS:
+ void onActionAddTile(bool triggered);
+ void onActionDeleteTile(bool triggered);
+ void onActionReplaceImage(bool triggered);
+ void onActionDeleteImage(bool triggered);
+ void onTileSetAdd();
+ void changeActiveTileSet(const QModelIndex &newIndex, const QModelIndex &oldIndex);
+ void onZoomFactor(int level);
+
+private:
+ void onActionAddTile(int tabId);
+
+ Ui::TileEditorMainWindow *m_ui;
+ QUndoStack *m_undoStack;
+ QMenu *m_rotationMenu;
+
+ QMenu *m_tileDisplayMenu;
+ QMenu *m_tileEditorMenu;
+
+ QMenu *m_zoomMenu;
+ QActionGroup *m_zoomActionGroup;
+ QSignalMapper *m_zoomSignalMapper;
+
+ TileModel *m_model;
+ TileItemDelegate *m_tileItemDelegate;
+};
+
+#endif // TILE_EDITOR_MAIN_WINDOW_H
diff --git a/code/studio/src/plugins/tile_editor/tile_editor_main_window.ui b/code/studio/src/plugins/tile_editor/tile_editor_main_window.ui
new file mode 100644
index 000000000..66a086179
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_editor_main_window.ui
@@ -0,0 +1,795 @@
+
+
+ TileEditorMainWindow
+
+
+
+ 0
+ 0
+ 800
+ 600
+
+
+
+ MainWindow
+
+
+
+ -
+
+
+ 2
+
+
+
+ 128x128
+
+
+
-
+
+
+ Qt::ActionsContextMenu
+
+
+
+ 128
+ 128
+
+
+
+ QListView::LeftToRight
+
+
+ true
+
+
+ QListView::IconMode
+
+
+ true
+
+
+
+ -
+
+
+ Edit Channel
+
+
+
-
+
+
+ Diffuse
+
+
+ true
+
+
+
+ -
+
+
+ Additive
+
+
+
+
+
+
+
+
+
+
+ 256x256
+
+
+ -
+
+
+ Qt::ActionsContextMenu
+
+
+
+ 256
+ 256
+
+
+
+ QListView::LeftToRight
+
+
+ true
+
+
+ QListView::IconMode
+
+
+ true
+
+
+
+ -
+
+
+ Edit Channel
+
+
+
-
+
+
+ Diffuse
+
+
+ true
+
+
+ true
+
+
+
+ -
+
+
+ Additive
+
+
+
+
+
+
+
+
+
+
+ Transition
+
+
+ -
+
+
+ Qt::ActionsContextMenu
+
+
+
+ 64
+ 64
+
+
+
+ QListView::Static
+
+
+ QListView::LeftToRight
+
+
+ true
+
+
+ QListView::Adjust
+
+
+ QListView::SinglePass
+
+
+ QListView::IconMode
+
+
+ true
+
+
+
+ -
+
+
+ Edit Channel
+
+
+
-
+
+
+ Diffuse
+
+
+ true
+
+
+
+ -
+
+
+ Additive
+
+
+
+ -
+
+
+ Alpha
+
+
+
+
+
+
+
+
+
+
+ Displacement
+
+
+ -
+
+
+ Qt::ActionsContextMenu
+
+
+
+ 32
+ 32
+
+
+
+ QListView::Static
+
+
+ QListView::LeftToRight
+
+
+ true
+
+
+ QListView::Fixed
+
+
+ QListView::IconMode
+
+
+ false
+
+
+
+
+
+
+
+ Tile Set Details
+
+
+ -
+
+
+ Qt::LeftToRight
+
+
+ Oriented
+
+
+
+ -
+
+
+ -
+
+
+ Surface Data:
+
+
+
+ -
+
+
+ Vegetation Set:
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+ ...
+
+
+
+ -
+
+
+
+
+
+
+ :/newPrefix/reset.png:/newPrefix/reset.png
+
+
+
+
+
+
+
+
+
+
+
+
+ Tile Editor Tool Bar
+
+
+ TopToolBarArea
+
+
+ false
+
+
+
+
+
+
+
+
+ Tile Bank
+
+
+ 1
+
+
+
+ -
+
+
+ Lands
+
+
+
-
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/movementIcons/images/ic_nel_add_item.png:/movementIcons/images/ic_nel_add_item.png
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/movementIcons/images/reset.png:/movementIcons/images/reset.png
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/movementIcons/images/ic_nel_open.png:/movementIcons/images/ic_nel_open.png
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+
+
+
+ -
+
+
+ Tile Sets
+
+
+
-
+
+
-
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/movementIcons/images/up.png:/movementIcons/images/up.png
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/movementIcons/images/down.png:/movementIcons/images/down.png
+
+
+
+ -
+
+
+ Qt::Vertical
+
+
+
+ 20
+ 40
+
+
+
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/movementIcons/images/ic_nel_add_item.png:/movementIcons/images/ic_nel_add_item.png
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/movementIcons/images/reset.png:/movementIcons/images/reset.png
+
+
+
+ -
+
+
+ ...
+
+
+
+ :/movementIcons/images/ic_nel_open.png:/movementIcons/images/ic_nel_open.png
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+
+
+ -
+
+
-
+
+
+ ...
+
+
+
+ -
+
+
+ ...
+
+
+
+
+
+ -
+
+
+ Tile Bank Texture Path
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+ :/movementIcons/images/ic_nel_open.png:/movementIcons/images/ic_nel_open.png
+
+
+ Open Tile Bank
+
+
+ Open Tile Bank
+
+
+
+
+
+ :/tileRotation/images/rotation0.png:/tileRotation/images/rotation0.png
+
+
+ 0
+
+
+ Rotate Tile 0 Degrees
+
+
+
+
+
+ :/movementIcons/images/ic_nel_save.png:/movementIcons/images/ic_nel_save.png
+
+
+ Save Tile Bank
+
+
+ Save Tile Bank
+
+
+
+
+
+ :/movementIcons/images/ic_nel_save_as.png:/movementIcons/images/ic_nel_save_as.png
+
+
+ Save Tile Bank As...
+
+
+ Save Tile Bank As...
+
+
+
+
+
+ :/tileRotation/images/rotation90.png:/tileRotation/images/rotation90.png
+
+
+ 90
+
+
+ Rotate Tile 90 Degrees
+
+
+
+
+
+ :/tileRotation/images/rotation180.png:/tileRotation/images/rotation180.png
+
+
+ 180
+
+
+ Rotate Tile180 Degrees
+
+
+
+
+
+ :/tileRotation/images/rotation270.png:/tileRotation/images/rotation270.png
+
+
+ 270
+
+
+ Rotate Tile 270 Degrees
+
+
+
+
+ Batch Load
+
+
+ Batch Load
+
+
+
+
+ Import Border
+
+
+ Import Border
+
+
+
+
+ Export Border
+
+
+ Export Border
+
+
+
+
+ true
+
+
+ true
+
+
+ Index
+
+
+ Display Tile Index
+
+
+
+
+ true
+
+
+ true
+
+
+ Filename
+
+
+ Display Tile Filename
+
+
+
+
+
+ :/tileTools/images/add_tile.png:/tileTools/images/add_tile.png
+
+
+ Add Tile
+
+
+ Add Tile
+
+
+
+
+
+ :/tileTools/images/delete_tile.png:/tileTools/images/delete_tile.png
+
+
+ Delete Tile
+
+
+ Delete Tile
+
+
+
+
+
+ :/tileTools/images/replace_image.png:/tileTools/images/replace_image.png
+
+
+ Replace Image
+
+
+ Replace Image
+
+
+
+
+
+ :/tileTools/images/delete_image.png:/tileTools/images/delete_image.png
+
+
+ Delete Image
+
+
+ Delete Image
+
+
+
+
+ true
+
+
+ Zoom 50%
+
+
+
+
+ true
+
+
+ true
+
+
+ Zoom 100%
+
+
+
+
+ true
+
+
+ Zoom 200%
+
+
+
+
+
+
+
+
+
diff --git a/code/studio/src/plugins/tile_editor/tile_editor_plugin.cpp b/code/studio/src/plugins/tile_editor/tile_editor_plugin.cpp
new file mode 100644
index 000000000..ac12766b8
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_editor_plugin.cpp
@@ -0,0 +1,75 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+// Project includes
+#include "tile_editor_plugin.h"
+#include "tile_editor_main_window.h"
+#include "../core/icore.h"
+#include "../core/menu_manager.h"
+#include "../core/core_constants.h"
+
+// Qt includes
+#include
+#include
+#include
+#include
+#include
+#include
+
+// NeL includes
+#include "nel/misc/debug.h"
+
+using namespace TileEditorPluginQt;
+
+TileEditorPlugin::~TileEditorPlugin()
+{
+ Q_FOREACH(QObject *obj, m_autoReleaseObjects)
+ {
+ m_plugMan->removeObject(obj);
+ }
+ qDeleteAll(m_autoReleaseObjects);
+ m_autoReleaseObjects.clear();
+}
+
+bool TileEditorPlugin::initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString)
+{
+ Q_UNUSED(errorString);
+ m_plugMan = pluginManager;
+ addAutoReleasedObject(new TileEditorContext());
+ return true;
+}
+
+void TileEditorPlugin::extensionsInitialized()
+{
+}
+
+void TileEditorPlugin::setNelContext(NLMISC::INelContext *nelContext)
+{
+#ifdef NL_OS_WINDOWS
+ // Ensure that a context doesn't exist yet.
+ // This only applies to platforms without PIC, e.g. Windows.
+ nlassert(!NLMISC::INelContext::isContextInitialised());
+#endif // NL_OS_WINDOWS
+ m_LibContext = new NLMISC::CLibraryContext(*nelContext);
+}
+
+void TileEditorPlugin::addAutoReleasedObject(QObject *obj)
+{
+ m_plugMan->addObject(obj);
+ m_autoReleaseObjects.prepend(obj);
+}
+
+Q_EXPORT_PLUGIN(TileEditorPlugin)
diff --git a/code/studio/src/plugins/tile_editor/tile_editor_plugin.h b/code/studio/src/plugins/tile_editor/tile_editor_plugin.h
new file mode 100644
index 000000000..cb7be7fc1
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_editor_plugin.h
@@ -0,0 +1,109 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef TILE_EDITOR_PLUGIN_H
+#define TILE_EDITOR_PLUGIN_H
+
+#include "../../extension_system/iplugin.h"
+#include "../core/icontext.h"
+
+#include "nel/misc/app_context.h"
+
+#include "tile_editor_main_window.h"
+
+#include
+
+namespace NLMISC
+{
+class CLibraryContext;
+}
+
+namespace TileEditorPluginQt
+{
+
+class TileEditorPlugin : public QObject, public ExtensionSystem::IPlugin
+{
+ Q_OBJECT
+ Q_INTERFACES(ExtensionSystem::IPlugin)
+public:
+
+ ~TileEditorPlugin();
+
+ bool initialize(ExtensionSystem::IPluginManager *pluginManager, QString *errorString);
+ void extensionsInitialized();
+ void setNelContext(NLMISC::INelContext *nelContext);
+
+ void addAutoReleasedObject(QObject *obj);
+
+protected:
+ NLMISC::CLibraryContext *m_LibContext;
+
+private:
+ ExtensionSystem::IPluginManager *m_plugMan;
+ QList m_autoReleaseObjects;
+
+};
+
+class TileEditorContext: public Core::IContext
+{
+ Q_OBJECT
+public:
+ TileEditorContext(QObject *parent = 0) : IContext(parent)
+ {
+ m_tileEditorMainWindow = new TileEditorMainWindow();
+ }
+
+ virtual ~TileEditorContext()
+ {
+ m_tileEditorMainWindow = NULL;
+ }
+
+ virtual QString id() const
+ {
+ return QLatin1String("TileEditor");
+ }
+
+ virtual QString trName() const
+ {
+ return tr("Tile Editor");
+ }
+
+ virtual QIcon icon() const
+ {
+ return QIcon(":/tileRotation/images/rotation0.png");
+ }
+
+ virtual QUndoStack *undoStack()
+ {
+ return m_tileEditorMainWindow->getUndoStack();
+ }
+
+ virtual void open()
+ {
+ }
+
+ virtual QWidget *widget()
+ {
+ return m_tileEditorMainWindow;
+ }
+
+private:
+ TileEditorMainWindow *m_tileEditorMainWindow;
+};
+
+} // namespace TileEditorPluginQt
+
+#endif // TILE_EDITOR_PLUGIN_H
diff --git a/code/studio/src/plugins/tile_editor/tile_item.cpp b/code/studio/src/plugins/tile_editor/tile_item.cpp
new file mode 100644
index 000000000..9d9418561
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_item.cpp
@@ -0,0 +1,292 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include
+
+#include "tile_item.h"
+
+//#include "tile_widget.h"
+
+#include
+
+Node::Node() : m_parentItem(0)
+{
+}
+
+Node::Node(const QVector &data, Node *parent)
+{
+ m_parentItem = parent;
+ m_itemData = data;
+}
+
+Node::~Node()
+{
+ qDeleteAll(m_childItems);
+}
+
+void Node::appendChild(Node *item)
+{
+ m_childItems.append(item);
+}
+
+Node *Node::child(int row)
+{
+ //nlinfo("row %d and size %d", row, childItems.size());
+ return m_childItems.value(row);
+}
+
+int Node::childCount() const
+{
+ return m_childItems.count();
+}
+
+int Node::childNumber() const
+{
+ if(m_parentItem)
+ return m_parentItem->m_childItems.indexOf(const_cast(this));
+ return 0;
+}
+
+bool Node::insertChildren(int position, int count, int columns)
+{
+ if(position<0 || position>m_childItems.size())
+ return false;
+
+ for(int row = 0; row < count; row++)
+ {
+ QVector data(columns);
+ Node *item = new Node(data, this);
+ m_childItems.insert(position, item);
+ }
+
+ return true;
+}
+
+bool Node::removeChildren(int position, int count)
+{
+ if(position<0 || position+count>m_childItems.size())
+ return false;
+
+ for(int row=0; row m_itemData.size())
+ return false;
+
+ for(int column=0; columninsertColumns(position, columns);
+
+ return true;
+}
+
+int Node::row() const
+{
+ if(m_parentItem)
+ return m_parentItem->m_childItems.indexOf(const_cast(this));
+
+ return 0;
+}
+
+int Node::columnCount() const
+{
+ return m_itemData.count();
+}
+
+QVariant Node::data(int column, int role) const
+{
+ if(role == Qt::DisplayRole ||
+ role == TileModel::TileFilenameIndexRole ||
+ role == TileModel::TileFilenameRole ||
+ role == TileModel::TileIndexRole)
+ return m_itemData.value(column);
+ return QVariant();
+}
+
+bool Node::setData(int column, const QVariant &value)
+{
+ if(column < 0 || column >= m_itemData.size())
+ return false;
+
+ m_itemData[column] = value;
+ return true;
+}
+
+Node *Node::parent()
+{
+ return m_parentItem;
+}
+
+void Node::setParent(Node *parent)
+{
+ m_parentItem = parent;
+}
+
+void Node::appendRow(const QList &items)
+{
+ Q_FOREACH(Node *item, items)
+ appendRow(item);
+}
+
+void Node::appendRow(Node *item)
+{
+ item->setParent(this);
+ m_childItems.append(item);
+}
+
+///////////////////////////////////////////////////
+
+TileSetNode::TileSetNode(QString tileSetName, Node *parent) : m_tileSetName(tileSetName)
+{
+ m_parentItem = parent;
+}
+
+TileSetNode::~TileSetNode()
+{
+ qDeleteAll(m_childItems);
+}
+
+QVariant TileSetNode::data(int column, int role) const
+{
+ if(role == Qt::DisplayRole ||
+ role == TileModel::TileFilenameIndexRole ||
+ role == TileModel::TileFilenameRole ||
+ role == TileModel::TileIndexRole)
+ return QVariant(m_tileSetName);
+ return QVariant();
+}
+
+int TileSetNode::columnCount() const
+{
+ return 1;
+}
+
+///////////////////////////////////////////////////
+
+TileTypeNode::TileTypeNode(TileModel::TNodeTileType type, Node *parent) : m_nodeTileType(type)
+{
+ m_parentItem = parent;
+}
+
+TileTypeNode::~TileTypeNode()
+{
+ qDeleteAll(m_childItems);
+}
+
+QVariant TileTypeNode::data(int column, int role) const
+{
+ if(role == Qt::DisplayRole ||
+ role == TileModel::TileFilenameIndexRole ||
+ role == TileModel::TileFilenameRole ||
+ role == TileModel::TileIndexRole)
+ return QVariant(TileModel::getTileTypeName(m_nodeTileType));
+ return QVariant();
+
+}
+
+int TileTypeNode::columnCount() const
+{
+ return 1;
+}
+
+TileModel::TNodeTileType TileTypeNode::getTileType()
+{
+ return m_nodeTileType;
+}
+
+
+
+
+///////////////////////////////////////////////////
+
+TileItemNode::TileItemNode(int tileId, TileModel::TTileChannel channel, QString filename, Node *parent) : m_tileId(tileId)
+{
+ m_tileFilename[channel] = filename;
+ m_parentItem = parent;
+ //nlinfo("dispalying tile %d - %s", m_tileId, m_tileFilename[TileModel::TileDiffuse].toAscii().data());
+}
+
+TileItemNode::~TileItemNode()
+{
+ qDeleteAll(m_childItems);
+}
+
+void TileItemNode::setTileFilename(TileModel::TTileChannel channel, QString filename)
+{
+ m_tileFilename[channel] = filename;
+}
+
+QVariant TileItemNode::data(int column, int role) const
+{
+ // find some way to know which file/bitmap to display
+ QString tileFilename = m_tileFilename[TileModel::TileDiffuse];
+
+ if(role == TileModel::TilePixmapRole || role == Qt::DecorationRole)
+ {
+ TileTypeNode *parent = dynamic_cast(m_parentItem);
+ if(parent == NULL)
+ return QVariant();
+
+ // Retrieve the target tile size.
+ uint32 tileSize = TileModel::getTileTypeSize(parent->getTileType());
+
+ if(tileFilename.isEmpty() || tileFilename == "empty")
+ tileFilename = ":/placeHolder/images/empty_image.png";
+
+ QPixmap pixmap;// = new QPixmap();
+ if(!pixmap.load(tileFilename))
+ nlinfo("failed to load %s", tileFilename.toAscii().data());
+
+ if(TileModel::CurrentZoomFactor == TileModel::TileZoom200)
+ tileSize *= 2;
+ else if(TileModel::CurrentZoomFactor == TileModel::TileZoom50)
+ tileSize /= 2;
+
+ pixmap.scaled(tileSize, tileSize);
+
+ return pixmap;
+ }
+ else if(role == Qt::DisplayRole)
+ {
+ return QVariant(tileFilename);
+ }
+ else if(role == TileModel::TileFilenameRole)
+ {
+ return QVariant(tileFilename);
+ }
+ else if(role == TileModel::TileIndexRole)
+ {
+ return QVariant("("+QString::number(m_tileId)+")");
+ }
+ else if(role == TileModel::TileFilenameIndexRole)
+ {
+ return QVariant(tileFilename + " ("+QString::number(m_tileId)+")");
+ }
+
+ return QVariant();
+}
+
+int TileItemNode::columnCount() const
+{
+ return 1;
+}
\ No newline at end of file
diff --git a/code/studio/src/plugins/tile_editor/tile_item.h b/code/studio/src/plugins/tile_editor/tile_item.h
new file mode 100644
index 000000000..f89b20ab7
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_item.h
@@ -0,0 +1,103 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef TILE_ITEM_H
+#define TILE_ITEM_H
+
+#include "nel/misc/types_nl.h"
+
+#include
+#include
+
+#include "tile_model.h"
+
+class TileWidget;
+
+class Node
+{
+public:
+ Node();
+ Node(const QVector &data, Node *parent=0);
+ virtual ~Node();
+
+ void appendChild(Node *child);
+
+ Node *child(int row);
+ int childCount() const;
+ int childNumber() const;
+ virtual int columnCount() const;
+ bool setData(int column, const QVariant &value);
+ virtual QVariant data(int column, int role) const;
+
+ bool insertChildren(int position, int count, int columns);
+ bool removeChildren(int position, int count);
+ bool insertColumns(int position, int columns);
+
+ int row() const;
+ Node *parent();
+ void setParent(Node *parent);
+
+ void appendRow(const QList &items);
+ void appendRow(Node *item);
+
+protected:
+ QList m_childItems;
+ QVector m_itemData;
+ Node *m_parentItem;
+};
+
+class TileSetNode : public Node
+{
+public:
+ TileSetNode(QString tileSetName, Node *parent=0);
+ virtual ~TileSetNode();
+ QVariant data(int column, int role) const;
+ int columnCount() const;
+
+ const QString &getTileSetName();
+private:
+ QString m_tileSetName;
+};
+
+class TileTypeNode : public Node
+{
+public:
+
+ TileTypeNode(TileModel::TNodeTileType type, Node *parent=0);
+ virtual ~TileTypeNode();
+ QVariant data(int column, int role) const;
+ int columnCount() const;
+
+ TileModel::TNodeTileType getTileType();
+private:
+ TileModel::TNodeTileType m_nodeTileType;
+};
+
+class TileItemNode : public Node
+{
+public:
+ TileItemNode(int tileId, TileModel::TTileChannel channel, QString filename, Node *parent=0);
+ virtual ~TileItemNode();
+ QVariant data(int column, int role) const;
+ int columnCount() const;
+ void setTileFilename(TileModel::TTileChannel channel, QString filename);
+private:
+ int m_tileId;
+ QMap m_tileFilename;
+ QMap m_tileWidget;
+};
+
+#endif // TILE_ITEM_H
diff --git a/code/studio/src/plugins/tile_editor/tile_item_delegate.cpp b/code/studio/src/plugins/tile_editor/tile_item_delegate.cpp
new file mode 100644
index 000000000..43751d612
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_item_delegate.cpp
@@ -0,0 +1,122 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include
+
+#include
+
+#include "tile_item_delegate.h"
+
+#include "tile_model.h"
+
+TileItemDelegate::TileItemDelegate()
+{
+ m_zoomFactor = ZoomNormal;
+ m_imageHint = 128;
+}
+
+TileItemDelegate::~TileItemDelegate()
+{
+}
+
+void TileItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+ QStyledItemDelegate::paint(painter,option,index);
+
+ painter->save();
+
+ QFont font = QApplication::font();
+
+ //font.setBold(true);
+ //SubFont.setWeight(SubFont.weight()-2);
+ QFontMetrics fm(font);
+
+ QPixmap tile = qvariant_cast(index.data(TileModel::TilePixmapRole));
+ QString tileFileText = qvariant_cast(index.data(TileModel::TileFilenameRole));
+ QString tileIdText = qvariant_cast(index.data(TileModel::TileIndexRole));
+
+ QSize tileSize = tile.size();
+
+ //QRect headerRect = option.rect;
+ QRect rect(option.rect);
+ //QRect tileRect(option.rect);
+ int textHeight = fm.height();
+ int iconPosModX = PIXMAP_MARGIN + (tile.width() / 2);
+ int iconPosModY = (option.rect.height() - tile.height()) / 2;
+
+ painter->drawPixmap(rect.adjusted(iconPosModX, iconPosModY, iconPosModX, iconPosModY).topLeft(), tile);
+
+
+
+ //tileRect.setRight(tileSize.width()+30);
+ //tileRect.setTop(tileRect.top()+5);
+ //headerRect.setLeft(tileRect.right());
+ //subheaderRect.setLeft(tileRect.right());
+ //headerRect.setTop(headerRect.top()+5);
+ //headerRect.setBottom(headerRect.top()+fm.height());
+
+ //subheaderRect.setTop(headerRect.bottom()+2);
+
+ //painter->drawPixmap(targetrect, pixmap, sourcerect)
+
+ //painter->drawPixmap(QPoint(iconRect.right()/2,iconRect.top()/2),icon.pixmap(iconsize.width(),iconsize.height()));
+ //painter->drawPixmap(QPoint(tileRect.left()+tileSize.width()/2+2,tileRect.top()+tileSize.height()/2+3),tile);
+
+ //painter->setFont(font);
+ //painter->drawText(headerRect,headerText);
+
+
+ //painter->setFont(SubFont);
+ //painter->drawText(subheaderRect.left(),subheaderRect.top()+17,subText);
+
+ painter->restore();
+}
+
+QSize TileItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index ) const
+{
+ QPixmap tile = qvariant_cast(index.data(TileModel::TilePixmapRole));
+ QSize tileSize = tile.size();
+ QFont font = QApplication::font();
+ QFontMetrics fm(font);
+
+ return(QSize(tileSize.width()+(2*PIXMAP_MARGIN), tileSize.height()+fm.height()+(2*PIXMAP_MARGIN)));
+}
+
+TileItemDelegate::TZoomFactor TileItemDelegate::getZoomFactor()
+{
+ return m_zoomFactor;
+}
+
+void TileItemDelegate::setZoomFactor(TileItemDelegate::TZoomFactor zoomFactor)
+{
+ m_zoomFactor = zoomFactor;
+}
+
+// SLOTS
+
+void TileItemDelegate::currentTab(int index)
+{
+ if(index == 1)
+ {
+ nlinfo("switching delegate to 1 or 256");
+ m_imageHint = 256;
+ }
+ else
+ {
+ nlinfo("switching delegate to 0,2,3 or 128");
+ m_imageHint = 128;
+ }
+}
\ No newline at end of file
diff --git a/code/studio/src/plugins/tile_editor/tile_item_delegate.h b/code/studio/src/plugins/tile_editor/tile_item_delegate.h
new file mode 100644
index 000000000..90c831fb8
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_item_delegate.h
@@ -0,0 +1,55 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+#ifndef TILE_ITEM_DELEGATE_H
+#define TILE_ITEM_DELEGATE_H
+
+#include
+#include
+#include
+
+#include
+
+class TileItemDelegate : public QStyledItemDelegate
+ {
+ public:
+
+ enum TZoomFactor
+ {
+ ZoomSmall = 0,
+ ZoomNormal = 1,
+ ZoomLarge = 2
+ };
+
+ static const int PIXMAP_MARGIN = 5;
+
+ TileItemDelegate();
+ virtual ~TileItemDelegate();
+
+ void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
+ QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index ) const;
+
+ TZoomFactor getZoomFactor();
+ void setZoomFactor(TZoomFactor zoomFactor);
+
+public Q_SLOTS:
+ void currentTab(int index);
+
+ private:
+ TZoomFactor m_zoomFactor;
+ int m_imageHint;
+ };
+
+#endif // TILE_ITEM_DELEGATE_H
diff --git a/code/studio/src/plugins/tile_editor/tile_model.cpp b/code/studio/src/plugins/tile_editor/tile_model.cpp
new file mode 100644
index 000000000..c167dbd44
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_model.cpp
@@ -0,0 +1,230 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include "tile_model.h"
+#include "tile_item.h"
+
+#include
+
+#include
+
+// Initialize the static members
+TileModel::TTileZoomFactor TileModel::CurrentZoomFactor;
+
+TileModel::TileModel(const QStringList &headers, QObject *parent) : QAbstractItemModel(parent)
+{
+ QVector rootData;
+ Q_FOREACH(QString header, headers)
+ rootData << header;
+
+ rootItem = new Node(rootData);
+
+ TileModel::CurrentZoomFactor = TileModel::TileZoom100;
+ m_indexDisplay = true;
+ m_fileDisplay = true;
+}
+
+TileModel::~TileModel()
+{
+ delete rootItem;
+}
+
+Node *TileModel::getItem(const QModelIndex &index) const
+{
+ if(index.isValid())
+ {
+ Node *item = static_cast(index.internalPointer());
+ if(item) return item;
+ }
+ return rootItem;
+}
+
+QModelIndex TileModel::index(int row, int column, const QModelIndex &parent) const
+{
+ if(parent.isValid() && parent.column() != 0)
+ return QModelIndex();
+
+ Node *parentItem = getItem(parent);
+
+ Node *childItem = parentItem->child(row);
+ if(childItem)
+ return createIndex(row, column, childItem);
+ else
+ return QModelIndex();
+}
+
+QModelIndex TileModel::parent(const QModelIndex &index) const
+{
+ if(!index.isValid())
+ return QModelIndex();
+
+ Node *childItem = getItem(index);
+ Node *parentItem = childItem->parent();
+
+ if(parentItem == rootItem)
+ return QModelIndex();
+
+ return createIndex(parentItem->childNumber(), 0, parentItem);
+}
+
+int TileModel::rowCount(const QModelIndex &parent) const
+{
+ Node *parentItem = getItem(parent);
+ return parentItem->childCount();
+}
+
+int TileModel::columnCount(const QModelIndex &parent) const
+{
+ Node *parentItem = getItem(parent);
+ return parentItem->columnCount();
+}
+
+QVariant TileModel::data(const QModelIndex &index, int role) const
+{
+ if(!index.isValid())
+ return QVariant();
+
+ Node *item = static_cast(index.internalPointer());
+
+ // Translate the display role to the settings-specific role.
+
+ if(role == Qt::DisplayRole)
+ {
+ if(m_indexDisplay && m_fileDisplay)
+ role = TileFilenameIndexRole;
+ else if(m_fileDisplay)
+ role = TileFilenameRole;
+ else if(m_indexDisplay)
+ role = TileIndexRole;
+ }
+ return item->data(index.column(), role);
+}
+
+Qt::ItemFlags TileModel::flags(const QModelIndex &index) const
+{
+ if(!index.isValid())
+ return Qt::ItemIsEnabled;
+
+ return Qt::ItemIsEnabled|Qt::ItemIsSelectable;
+}
+
+QVariant TileModel::headerData(int section, Qt::Orientation orientation, int role) const
+{
+ if(orientation == Qt::Horizontal && role == Qt::DisplayRole)
+ return rootItem->data(section,role);
+
+ return QVariant();
+}
+
+void TileModel::appendRow(const QList &items)
+{
+ rootItem->appendRow(items);
+}
+
+
+void TileModel::appendRow(Node *item)
+{
+ rootItem->appendRow(item);
+}
+
+TileSetNode *TileModel::createTileSetNode(QString tileSetName)
+{
+ // Create the new tile set.
+ TileSetNode *tileSet = new TileSetNode(tileSetName);
+
+ // child for 128x128 tiles
+ TileTypeNode *tile128= new TileTypeNode(Tile128);
+ tileSet->appendRow(tile128);
+
+ // child for 256x256 tiles
+ TileTypeNode *tile256= new TileTypeNode(Tile256);
+ tileSet->appendRow(tile256);
+
+ // child for transition tiles.
+ TileTypeNode *tileTrans= new TileTypeNode(TileTransition);
+ tileSet->appendRow(tileTrans);
+
+ // Add the default transition tiles.
+ // TODO tie this to CTileSet::count from NeL
+ for(int transPos=0; transPos<48; transPos++)
+ {
+ TileItemNode *transTile= new TileItemNode(transPos, TileDiffuse, QString("empty"));
+ tileTrans->appendRow(transTile);
+ }
+
+ // child for displacement tiles
+ TileTypeNode *tileDisp= new TileTypeNode(TileDisplacement);
+ tileSet->appendRow(tileDisp);
+
+ // Add the default displacement tiles.
+ // TODO tie this to CTileSet::CountDisplace from NeL
+ for(int dispPos=0; dispPos<16; dispPos++)
+ {
+ TileItemNode *dispTile= new TileItemNode(dispPos, TileDiffuse, QString("empty"));
+ tileDisp->appendRow(dispTile);
+ }
+
+ // Append them in the correct order to the tile set.
+ this->appendRow(tileSet);
+
+ return tileSet;
+}
+
+const char *TileModel::getTileTypeName(TileModel::TNodeTileType type)
+{
+ switch(type)
+ {
+ case Tile128:
+ return "128";
+ case Tile256:
+ return "256";
+ case TileTransition:
+ return "Transition";
+ case TileDisplacement:
+ return "Displacement";
+ default:
+ break;
+ }
+ return "UNKNOWN";
+}
+
+uint32 TileModel::getTileTypeSize(TileModel::TNodeTileType type)
+{
+ switch(type)
+ {
+ case Tile128:
+ return 128;
+ case Tile256:
+ return 256;
+ case TileTransition:
+ return 64;
+ case TileDisplacement:
+ return 32;
+ default:
+ break;
+ }
+ return 0;
+}
+
+void TileModel::selectFilenameDisplay(bool selected)
+{
+ m_fileDisplay = selected;
+}
+
+void TileModel::selectIndexDisplay(bool selected)
+{
+ m_indexDisplay = selected;
+}
\ No newline at end of file
diff --git a/code/studio/src/plugins/tile_editor/tile_model.h b/code/studio/src/plugins/tile_editor/tile_model.h
new file mode 100644
index 000000000..bd7d808fb
--- /dev/null
+++ b/code/studio/src/plugins/tile_editor/tile_model.h
@@ -0,0 +1,106 @@
+// Object Viewer Qt - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program 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 Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#ifndef TILE_MODEL_H
+#define TILE_MODEL_H
+
+#include "nel/misc/types_nl.h"
+
+#include
+
+class Node;
+class TileSetNode;
+
+class TileModel : public QAbstractItemModel
+{
+ Q_OBJECT
+
+public:
+ enum TTileChannel
+ {
+ TileDiffuse = 0,
+ TileAdditive = 1,
+ TileAlpha = 2,
+ };
+
+ enum TNodeTileType
+ {
+ Tile128 = 0,
+ Tile256 = 1,
+ TileTransition = 2,
+ TileDisplacement = 3
+ };
+
+ enum TTileItemRole
+ {
+ TilePixmapRole = Qt::UserRole+1,
+ TileFilenameRole = Qt::UserRole+2,
+ TileIndexRole = Qt::UserRole+3,
+ TileFilenameIndexRole = Qt::UserRole+4
+ };
+
+ enum TTileZoomFactor
+ {
+ TileZoom50 = 0,
+ TileZoom100 = 1,
+ TileZoom200 = 2
+ };
+
+ static const int TILE_DISPLACE_BASE_SIZE = 32;
+ static const int TILE_TRANSITION_BASE_SIZE = 64;
+ static const int TILE_128_BASE_SIZE = 128;
+ static const int TILE_256_BASE_SIZE = 256;
+
+
+ TileModel(const QStringList &headers, QObject *parent);
+ ~TileModel();
+
+ QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+ Qt::ItemFlags flags(const QModelIndex &index) const;
+ QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const;
+ QModelIndex index(int row, int column, const QModelIndex &parent= QModelIndex()) const;
+ QModelIndex parent(const QModelIndex &index) const;
+ int rowCount(const QModelIndex &parent = QModelIndex()) const;
+ int columnCount(const QModelIndex &parent = QModelIndex()) const;
+
+ // Tile Model specific functions
+ void appendRow(const QList &items);
+ void appendRow(Node *item);
+
+ TileSetNode *createTileSetNode(QString tileSetName);
+
+ static const char *getTileTypeName(TNodeTileType type);
+ static uint32 getTileTypeSize(TileModel::TNodeTileType type);
+
+ static TTileZoomFactor CurrentZoomFactor;
+
+public Q_SLOTS:
+ void selectFilenameDisplay(bool selected);
+ void selectIndexDisplay(bool selected);
+
+private:
+ Node *getItem(const QModelIndex &index) const;
+
+ bool m_fileDisplay;
+ bool m_indexDisplay;
+ //TTileZoomFactor m_tileZoomFactor;
+
+ //QList m_tiles;
+ //int m_activeEditChannel;
+ Node *rootItem;
+};
+
+#endif // TILE_MODEL_H
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/CMakeLists.txt b/code/studio/src/plugins/translation_manager/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/CMakeLists.txt
rename to code/studio/src/plugins/translation_manager/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/README b/code/studio/src/plugins/translation_manager/README
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/README
rename to code/studio/src/plugins/translation_manager/README
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.cpp b/code/studio/src/plugins/translation_manager/editor_phrase.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.cpp
rename to code/studio/src/plugins/translation_manager/editor_phrase.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.h b/code/studio/src/plugins/translation_manager/editor_phrase.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_phrase.h
rename to code/studio/src/plugins/translation_manager/editor_phrase.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_worksheet.cpp b/code/studio/src/plugins/translation_manager/editor_worksheet.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_worksheet.cpp
rename to code/studio/src/plugins/translation_manager/editor_worksheet.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_worksheet.h b/code/studio/src/plugins/translation_manager/editor_worksheet.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/editor_worksheet.h
rename to code/studio/src/plugins/translation_manager/editor_worksheet.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/extract_bot_names.cpp b/code/studio/src/plugins/translation_manager/extract_bot_names.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/extract_bot_names.cpp
rename to code/studio/src/plugins/translation_manager/extract_bot_names.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/extract_bot_names.h b/code/studio/src/plugins/translation_manager/extract_bot_names.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/extract_bot_names.h
rename to code/studio/src/plugins/translation_manager/extract_bot_names.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/extract_new_sheet_names.cpp b/code/studio/src/plugins/translation_manager/extract_new_sheet_names.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/extract_new_sheet_names.cpp
rename to code/studio/src/plugins/translation_manager/extract_new_sheet_names.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/extract_new_sheet_names.h b/code/studio/src/plugins/translation_manager/extract_new_sheet_names.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/extract_new_sheet_names.h
rename to code/studio/src/plugins/translation_manager/extract_new_sheet_names.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ftp_selection.cpp b/code/studio/src/plugins/translation_manager/ftp_selection.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ftp_selection.cpp
rename to code/studio/src/plugins/translation_manager/ftp_selection.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ftp_selection.h b/code/studio/src/plugins/translation_manager/ftp_selection.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ftp_selection.h
rename to code/studio/src/plugins/translation_manager/ftp_selection.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ftp_selection.qrc b/code/studio/src/plugins/translation_manager/ftp_selection.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ftp_selection.qrc
rename to code/studio/src/plugins/translation_manager/ftp_selection.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ftp_selection.ui b/code/studio/src/plugins/translation_manager/ftp_selection.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ftp_selection.ui
rename to code/studio/src/plugins/translation_manager/ftp_selection.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/images/cdtoparent.png b/code/studio/src/plugins/translation_manager/images/cdtoparent.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/images/cdtoparent.png
rename to code/studio/src/plugins/translation_manager/images/cdtoparent.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/images/dir.png b/code/studio/src/plugins/translation_manager/images/dir.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/images/dir.png
rename to code/studio/src/plugins/translation_manager/images/dir.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/images/file.png b/code/studio/src/plugins/translation_manager/images/file.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/images/file.png
rename to code/studio/src/plugins/translation_manager/images/file.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ovqt_plugin_translation_manager.xml b/code/studio/src/plugins/translation_manager/ovqt_plugin_translation_manager.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/ovqt_plugin_translation_manager.xml
rename to code/studio/src/plugins/translation_manager/ovqt_plugin_translation_manager.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/source_selection.cpp b/code/studio/src/plugins/translation_manager/source_selection.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/source_selection.cpp
rename to code/studio/src/plugins/translation_manager/source_selection.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/source_selection.h b/code/studio/src/plugins/translation_manager/source_selection.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/source_selection.h
rename to code/studio/src/plugins/translation_manager/source_selection.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/source_selection.ui b/code/studio/src/plugins/translation_manager/source_selection.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/source_selection.ui
rename to code/studio/src/plugins/translation_manager/source_selection.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_constants.h b/code/studio/src/plugins/translation_manager/translation_manager_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_constants.h
rename to code/studio/src/plugins/translation_manager/translation_manager_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_editor.h b/code/studio/src/plugins/translation_manager/translation_manager_editor.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_editor.h
rename to code/studio/src/plugins/translation_manager/translation_manager_editor.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.cpp b/code/studio/src/plugins/translation_manager/translation_manager_main_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.cpp
rename to code/studio/src/plugins/translation_manager/translation_manager_main_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.h b/code/studio/src/plugins/translation_manager/translation_manager_main_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.h
rename to code/studio/src/plugins/translation_manager/translation_manager_main_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.ui b/code/studio/src/plugins/translation_manager/translation_manager_main_window.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_main_window.ui
rename to code/studio/src/plugins/translation_manager/translation_manager_main_window.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_plugin.cpp b/code/studio/src/plugins/translation_manager/translation_manager_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_plugin.cpp
rename to code/studio/src/plugins/translation_manager/translation_manager_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_plugin.h b/code/studio/src/plugins/translation_manager/translation_manager_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_plugin.h
rename to code/studio/src/plugins/translation_manager/translation_manager_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_settings_page.cpp b/code/studio/src/plugins/translation_manager/translation_manager_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_settings_page.cpp
rename to code/studio/src/plugins/translation_manager/translation_manager_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_settings_page.h b/code/studio/src/plugins/translation_manager/translation_manager_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_settings_page.h
rename to code/studio/src/plugins/translation_manager/translation_manager_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_settings_page.ui b/code/studio/src/plugins/translation_manager/translation_manager_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/translation_manager/translation_manager_settings_page.ui
rename to code/studio/src/plugins/translation_manager/translation_manager_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/CMakeLists.txt b/code/studio/src/plugins/world_editor/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/CMakeLists.txt
rename to code/studio/src/plugins/world_editor/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_move.png b/code/studio/src/plugins/world_editor/icons/ic_nel_move.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_move.png
rename to code/studio/src/plugins/world_editor/icons/ic_nel_move.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_rotate.png b/code/studio/src/plugins/world_editor/icons/ic_nel_rotate.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_rotate.png
rename to code/studio/src/plugins/world_editor/icons/ic_nel_rotate.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_scale.png b/code/studio/src/plugins/world_editor/icons/ic_nel_scale.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_scale.png
rename to code/studio/src/plugins/world_editor/icons/ic_nel_scale.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_select.png b/code/studio/src/plugins/world_editor/icons/ic_nel_select.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_select.png
rename to code/studio/src/plugins/world_editor/icons/ic_nel_select.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_turn.png b/code/studio/src/plugins/world_editor/icons/ic_nel_turn.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_turn.png
rename to code/studio/src/plugins/world_editor/icons/ic_nel_turn.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_world_editor.png b/code/studio/src/plugins/world_editor/icons/ic_nel_world_editor.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/icons/ic_nel_world_editor.png
rename to code/studio/src/plugins/world_editor/icons/ic_nel_world_editor.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/ovqt_plugin_world_editor.xml b/code/studio/src/plugins/world_editor/ovqt_plugin_world_editor.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/ovqt_plugin_world_editor.xml
rename to code/studio/src/plugins/world_editor/ovqt_plugin_world_editor.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitive_item.cpp b/code/studio/src/plugins/world_editor/primitive_item.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitive_item.cpp
rename to code/studio/src/plugins/world_editor/primitive_item.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitive_item.h b/code/studio/src/plugins/world_editor/primitive_item.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitive_item.h
rename to code/studio/src/plugins/world_editor/primitive_item.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitives_model.cpp b/code/studio/src/plugins/world_editor/primitives_model.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitives_model.cpp
rename to code/studio/src/plugins/world_editor/primitives_model.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitives_model.h b/code/studio/src/plugins/world_editor/primitives_model.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitives_model.h
rename to code/studio/src/plugins/world_editor/primitives_model.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitives_view.cpp b/code/studio/src/plugins/world_editor/primitives_view.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitives_view.cpp
rename to code/studio/src/plugins/world_editor/primitives_view.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitives_view.h b/code/studio/src/plugins/world_editor/primitives_view.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/primitives_view.h
rename to code/studio/src/plugins/world_editor/primitives_view.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/project_settings_dialog.cpp b/code/studio/src/plugins/world_editor/project_settings_dialog.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/project_settings_dialog.cpp
rename to code/studio/src/plugins/world_editor/project_settings_dialog.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/project_settings_dialog.h b/code/studio/src/plugins/world_editor/project_settings_dialog.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/project_settings_dialog.h
rename to code/studio/src/plugins/world_editor/project_settings_dialog.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/project_settings_dialog.ui b/code/studio/src/plugins/world_editor/project_settings_dialog.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/project_settings_dialog.ui
rename to code/studio/src/plugins/world_editor/project_settings_dialog.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/property_editor_widget.cpp b/code/studio/src/plugins/world_editor/property_editor_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/property_editor_widget.cpp
rename to code/studio/src/plugins/world_editor/property_editor_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/property_editor_widget.h b/code/studio/src/plugins/world_editor/property_editor_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/property_editor_widget.h
rename to code/studio/src/plugins/world_editor/property_editor_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/property_editor_widget.ui b/code/studio/src/plugins/world_editor/property_editor_widget.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/property_editor_widget.ui
rename to code/studio/src/plugins/world_editor/property_editor_widget.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor.qrc b/code/studio/src/plugins/world_editor/world_editor.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor.qrc
rename to code/studio/src/plugins/world_editor/world_editor.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_actions.cpp b/code/studio/src/plugins/world_editor/world_editor_actions.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_actions.cpp
rename to code/studio/src/plugins/world_editor/world_editor_actions.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_actions.h b/code/studio/src/plugins/world_editor/world_editor_actions.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_actions.h
rename to code/studio/src/plugins/world_editor/world_editor_actions.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_constants.h b/code/studio/src/plugins/world_editor/world_editor_constants.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_constants.h
rename to code/studio/src/plugins/world_editor/world_editor_constants.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_global.h b/code/studio/src/plugins/world_editor/world_editor_global.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_global.h
rename to code/studio/src/plugins/world_editor/world_editor_global.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_misc.cpp b/code/studio/src/plugins/world_editor/world_editor_misc.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_misc.cpp
rename to code/studio/src/plugins/world_editor/world_editor_misc.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_misc.h b/code/studio/src/plugins/world_editor/world_editor_misc.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_misc.h
rename to code/studio/src/plugins/world_editor/world_editor_misc.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_plugin.cpp b/code/studio/src/plugins/world_editor/world_editor_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_plugin.cpp
rename to code/studio/src/plugins/world_editor/world_editor_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_plugin.h b/code/studio/src/plugins/world_editor/world_editor_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_plugin.h
rename to code/studio/src/plugins/world_editor/world_editor_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_scene.cpp b/code/studio/src/plugins/world_editor/world_editor_scene.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_scene.cpp
rename to code/studio/src/plugins/world_editor/world_editor_scene.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_scene.h b/code/studio/src/plugins/world_editor/world_editor_scene.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_scene.h
rename to code/studio/src/plugins/world_editor/world_editor_scene.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_scene_item.cpp b/code/studio/src/plugins/world_editor/world_editor_scene_item.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_scene_item.cpp
rename to code/studio/src/plugins/world_editor/world_editor_scene_item.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_scene_item.h b/code/studio/src/plugins/world_editor/world_editor_scene_item.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_scene_item.h
rename to code/studio/src/plugins/world_editor/world_editor_scene_item.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_settings_page.cpp b/code/studio/src/plugins/world_editor/world_editor_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_settings_page.cpp
rename to code/studio/src/plugins/world_editor/world_editor_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_settings_page.h b/code/studio/src/plugins/world_editor/world_editor_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_settings_page.h
rename to code/studio/src/plugins/world_editor/world_editor_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_settings_page.ui b/code/studio/src/plugins/world_editor/world_editor_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_settings_page.ui
rename to code/studio/src/plugins/world_editor/world_editor_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_window.cpp b/code/studio/src/plugins/world_editor/world_editor_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_window.cpp
rename to code/studio/src/plugins/world_editor/world_editor_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_window.h b/code/studio/src/plugins/world_editor/world_editor_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_window.h
rename to code/studio/src/plugins/world_editor/world_editor_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_window.ui b/code/studio/src/plugins/world_editor/world_editor_window.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/world_editor/world_editor_window.ui
rename to code/studio/src/plugins/world_editor/world_editor_window.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/CMakeLists.txt b/code/studio/src/plugins/zone_painter/CMakeLists.txt
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/CMakeLists.txt
rename to code/studio/src/plugins/zone_painter/CMakeLists.txt
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/color-fill.png b/code/studio/src/plugins/zone_painter/images/color-fill.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/color-fill.png
rename to code/studio/src/plugins/zone_painter/images/color-fill.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/color-picker-black.png b/code/studio/src/plugins/zone_painter/images/color-picker-black.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/color-picker-black.png
rename to code/studio/src/plugins/zone_painter/images/color-picker-black.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/colorize.png b/code/studio/src/plugins/zone_painter/images/colorize.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/colorize.png
rename to code/studio/src/plugins/zone_painter/images/colorize.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/draw-brush.png b/code/studio/src/plugins/zone_painter/images/draw-brush.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/draw-brush.png
rename to code/studio/src/plugins/zone_painter/images/draw-brush.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/go-down-7.png b/code/studio/src/plugins/zone_painter/images/go-down-7.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/go-down-7.png
rename to code/studio/src/plugins/zone_painter/images/go-down-7.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/go-jump-4.png b/code/studio/src/plugins/zone_painter/images/go-jump-4.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/go-jump-4.png
rename to code/studio/src/plugins/zone_painter/images/go-jump-4.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/lock-6.png b/code/studio/src/plugins/zone_painter/images/lock-6.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/lock-6.png
rename to code/studio/src/plugins/zone_painter/images/lock-6.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/lock-silver.png b/code/studio/src/plugins/zone_painter/images/lock-silver.png
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/images/lock-silver.png
rename to code/studio/src/plugins/zone_painter/images/lock-silver.png
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/ovqt_plugin_zone_painter.xml b/code/studio/src/plugins/zone_painter/ovqt_plugin_zone_painter.xml
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/ovqt_plugin_zone_painter.xml
rename to code/studio/src/plugins/zone_painter/ovqt_plugin_zone_painter.xml
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/painter_dock_widget.cpp b/code/studio/src/plugins/zone_painter/painter_dock_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/painter_dock_widget.cpp
rename to code/studio/src/plugins/zone_painter/painter_dock_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/painter_dock_widget.h b/code/studio/src/plugins/zone_painter/painter_dock_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/painter_dock_widget.h
rename to code/studio/src/plugins/zone_painter/painter_dock_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/painter_dock_widget.ui b/code/studio/src/plugins/zone_painter/painter_dock_widget.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/painter_dock_widget.ui
rename to code/studio/src/plugins/zone_painter/painter_dock_widget.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/qnel_widget.cpp b/code/studio/src/plugins/zone_painter/qnel_widget.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/qnel_widget.cpp
rename to code/studio/src/plugins/zone_painter/qnel_widget.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/qnel_widget.h b/code/studio/src/plugins/zone_painter/qnel_widget.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/qnel_widget.h
rename to code/studio/src/plugins/zone_painter/qnel_widget.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter.qrc b/code/studio/src/plugins/zone_painter/zone_painter.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter.qrc
rename to code/studio/src/plugins/zone_painter/zone_painter.qrc
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_main_window.cpp b/code/studio/src/plugins/zone_painter/zone_painter_main_window.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_main_window.cpp
rename to code/studio/src/plugins/zone_painter/zone_painter_main_window.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_main_window.h b/code/studio/src/plugins/zone_painter/zone_painter_main_window.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_main_window.h
rename to code/studio/src/plugins/zone_painter/zone_painter_main_window.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_main_window.ui b/code/studio/src/plugins/zone_painter/zone_painter_main_window.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_main_window.ui
rename to code/studio/src/plugins/zone_painter/zone_painter_main_window.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_model.cpp b/code/studio/src/plugins/zone_painter/zone_painter_model.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_model.cpp
rename to code/studio/src/plugins/zone_painter/zone_painter_model.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_model.h b/code/studio/src/plugins/zone_painter/zone_painter_model.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_model.h
rename to code/studio/src/plugins/zone_painter/zone_painter_model.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_plugin.cpp b/code/studio/src/plugins/zone_painter/zone_painter_plugin.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_plugin.cpp
rename to code/studio/src/plugins/zone_painter/zone_painter_plugin.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_plugin.h b/code/studio/src/plugins/zone_painter/zone_painter_plugin.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_plugin.h
rename to code/studio/src/plugins/zone_painter/zone_painter_plugin.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_settings_page.cpp b/code/studio/src/plugins/zone_painter/zone_painter_settings_page.cpp
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_settings_page.cpp
rename to code/studio/src/plugins/zone_painter/zone_painter_settings_page.cpp
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_settings_page.h b/code/studio/src/plugins/zone_painter/zone_painter_settings_page.h
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_settings_page.h
rename to code/studio/src/plugins/zone_painter/zone_painter_settings_page.h
diff --git a/code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_settings_page.ui b/code/studio/src/plugins/zone_painter/zone_painter_settings_page.ui
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/plugins/zone_painter/zone_painter_settings_page.ui
rename to code/studio/src/plugins/zone_painter/zone_painter_settings_page.ui
diff --git a/code/nel/tools/3d/object_viewer_qt/src/translations/object_viewer_qt_de.ts b/code/studio/src/translations/object_viewer_qt_de.ts
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/translations/object_viewer_qt_de.ts
rename to code/studio/src/translations/object_viewer_qt_de.ts
diff --git a/code/nel/tools/3d/object_viewer_qt/src/translations/object_viewer_qt_en.ts b/code/studio/src/translations/object_viewer_qt_en.ts
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/translations/object_viewer_qt_en.ts
rename to code/studio/src/translations/object_viewer_qt_en.ts
diff --git a/code/nel/tools/3d/object_viewer_qt/src/translations/object_viewer_qt_fr.ts b/code/studio/src/translations/object_viewer_qt_fr.ts
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/translations/object_viewer_qt_fr.ts
rename to code/studio/src/translations/object_viewer_qt_fr.ts
diff --git a/code/nel/tools/3d/object_viewer_qt/src/translations/object_viewer_qt_ru.ts b/code/studio/src/translations/object_viewer_qt_ru.ts
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/translations/object_viewer_qt_ru.ts
rename to code/studio/src/translations/object_viewer_qt_ru.ts
diff --git a/code/nel/tools/3d/object_viewer_qt/src/translations/translations.qrc b/code/studio/src/translations/translations.qrc
similarity index 100%
rename from code/nel/tools/3d/object_viewer_qt/src/translations/translations.qrc
rename to code/studio/src/translations/translations.qrc