53 #include "DataControlPlugin.hh"
60 emit setSlotDescription(
"getSourceObjects(DataType)",tr(
"Returns the IdList of all source objects with given DataType."),
61 QStringList(tr(
"Datatype")), QStringList(tr(
"Datatype of the objects")));
63 emit setSlotDescription(
"getTargetObjects(DataType)",tr(
"Returns the IdList of all target objects with given DataType."),
64 QStringList(tr(
"Datatype")), QStringList(tr(
"Datatype of the objects")));
66 emit setSlotDescription(
"getObject(QString)",tr(
"Returns the id of an object with given name."),
67 QStringList(tr(
"Name")), QStringList(tr(
"Name of an object")));
69 emit setSlotDescription(
"getObjectName(int)",tr(
"Returns the name of an object with given id."),
70 QStringList(tr(
"objectId")), QStringList(tr(
"ID of an object")));
72 emit setSlotDescription(
"dataType(int)",tr(
"Returns the DataType of the object with the given id."),
73 QStringList(tr(
"objectId")), QStringList(tr(
"ID of an object")));
75 emit setSlotDescription(
"hideObject(int)",tr(
"Hide object with the given id."),
76 QStringList(tr(
"objectId")), QStringList(tr(
"ID of an object")));
78 emit setSlotDescription(
"showObject(int)",tr(
"Show object with the given id."),
79 QStringList(tr(
"objectId")), QStringList(tr(
"ID of an object")));
81 emit setSlotDescription(
"setTarget(int,bool)",tr(
"Set given object as target."),
82 QString(tr(
"ObjectId,Target")).split(
","),
83 QString(tr(
"id of the object, set object as target?")).split(
","));
85 emit setSlotDescription(
"setSource(int,bool)",tr(
"Set given object as source."),
86 QString(tr(
"ObjectId,Source")).split(
","),
87 QString(tr(
"id of the object, set object as source?")).split(
","));
89 emit setSlotDescription(
"setObjectName(int,QString)",tr(
"Set name of given object."),
90 QString(tr(
"ObjectId,name")).split(
","),
91 QString(tr(
"id of the object, the new name")).split(
","));
93 emit setSlotDescription(
"addEmptyGroup(QString)", tr(
"Create new empty group."),
94 QStringList(tr(
"GroupName")),
95 QStringList(tr(
"Name of the new group.")));
97 emit setSlotDescription(
"addEmptyGroup(QString,int)", tr(
"Create new empty group."),
98 QString(tr(
"GroupName,Parent")).split(
","),
99 QString(tr(
"Name of the new group., Parent of the new group, or -1, if there is no parent.")).split(
","));
101 emit setSlotDescription(
"groupObjects(IdList,QString)",tr(
"Group given Objects together."),
102 QString(tr(
"objectIds,groupName")).split(
","),
103 QString(tr(
"List of objects that should be grouped., Name of the group.")).split(
","));
105 emit setSlotDescription(
"groupObjects(IdList)",tr(
"Group given Objects together."),
106 QStringList(tr(
"objectIds")), QStringList(tr(
"List of objects that should be grouped.")));
108 emit setSlotDescription(
"groupCount()",tr(
"Returns the number of group objects."),
109 QStringList(tr(
"")), QStringList(tr(
"")));
111 emit setSlotDescription(
"unGroupObject(int)",tr(
"Remove the given object from its group and append to root node."),
112 QStringList(tr(
"ObjectId")), QStringList(tr(
"Object to be removed from group.")));
114 emit setSlotDescription(
"objectDelete(int)",tr(
"Delete an object"),
115 QStringList(tr(
"objectId")), QStringList(tr(
"Delete the given object.")));
117 emit setSlotDescription(
"getGroupElements(int)",tr(
"Get elements of a group"),
118 QStringList(tr(
"groupId")), QStringList(tr(
"Id of the group.")));
120 emit setSlotDescription(
"copyObject(int)",tr(
"Create a copy of an object"),
121 QStringList(tr(
"objectId")), QStringList(tr(
"Object to copy.")));
123 emit setSlotDescription(
"setAllTarget()",tr(
"Set All objects as targets"),
124 QStringList(), QStringList());
126 emit setSlotDescription(
"setAllSource()",tr(
"Set All objects as source"),
127 QStringList(), QStringList());
129 emit setSlotDescription(
"clearAllTarget()",tr(
"Clear targets"),
130 QStringList(), QStringList());
132 emit setSlotDescription(
"clearAllSource()",tr(
"Clear sources"),
133 QStringList(), QStringList());
135 emit setSlotDescription(
"showAll()",tr(
"Show all objects"),
136 QStringList(), QStringList());
138 emit setSlotDescription(
"hideAll()",tr(
"Hide all objects"),
139 QStringList(), QStringList());
141 emit setSlotDescription(
"availableDataTypeNames()",tr(
"Returns a QStringList of all available DataType names."),
142 QStringList(tr(
"")), QStringList(tr(
"")));
144 emit setSlotDescription(
"printObjectInfoToLog()",tr(
"Print info about all objects to log"),
145 QStringList(), QStringList());
147 emit setSlotDescription(
"addObjectToGroup(int,int)",tr(
"Add an Object to an existing group"),
148 QStringList(tr(
"objectId,groupId").split(
",")),
149 QStringList(tr(
"ID of an object.,ID of an group where the object has to be added.").split(
",")));
179 int DataControlPlugin::copyObject(
int objectId ) {
183 emit copyObject( objectId, newObject );
200 emit log(
LOGERR,tr(
"getObjectName : unable to get object") );
201 return QString(tr(
"Unknown Object"));
203 return object->name() ;
215 return object->dataType();
229 if ( ! OpenFlipper::Options::gui())
251 object->
target( _target );
267 object->
source( _source );
304 emit deleteObject(objectId);
316 if ( ! OpenFlipper::Options::gui())
340 parentGroupObject = parent;
342 emit log(
LOGWARN, tr(
"Parent object %1 is not a group, creating a new toplevel group").arg(_parentGroupId));
344 }
else if (_parentGroupId != 0 ) {
345 emit log(
LOGWARN, tr(
"Cannot get parent object %1, creating a new toplevel group").arg(_parentGroupId));
350 if (_groupName ==
"") {
351 groupObject->
setName(tr(
"New group ") + QString::number(groupObject->
id()));
353 groupObject->
setName(_groupName);
356 emit emptyObjectAdded(groupObject->
id());
358 return groupObject->
id();
369 QVector< BaseObject* > objs;
372 for (uint i=0; i < _objectIDs.size(); i++){
379 if (objs.size() == 0){
380 emit log(tr(
"No objects to group."));
387 for (
int i = 1 ; i < objs.size() ; ++i){
388 if ( parent != (objs[i])->
parent() ){
389 emit log(tr(
"Cannot group Objects with different parents"));
405 for (
int i = 0 ; i < objs.size() ; ++i) {
406 (objs[i])->setParent(groupItem);
419 if ( group && group->
isGroup())
422 for (
int i=group->
childCount()-1; i >= 0; --i){
429 emit deleteObject( group->
id() );
434 emit log(
LOGERR, tr(
"Cannot Ungroup. Object with id %1 is not a group").arg(_id));
436 emit log(
LOGERR, tr(
"Unable to get Object with id %1 for ungrouping").arg(_id) );
452 QAction* action =
dynamic_cast< QAction*
> ( sender() );
454 if ( action != 0 && action->data().isValid() )
455 type = (
DataType) action->data().toUInt();
474 QAction* action =
dynamic_cast< QAction*
> ( sender() );
476 if ( action != 0 && action->data().isValid() )
477 type = (
DataType) action->data().toUInt();
496 QAction* action =
dynamic_cast< QAction*
> ( sender() );
498 if ( action != 0 && action->data().isValid() )
499 type = (
DataType) action->data().toUInt();
518 QAction* action =
dynamic_cast< QAction*
> ( sender() );
520 if ( action != 0 && action->data().isValid() )
521 type = (
DataType) action->data().toUInt();
537 if ( ! OpenFlipper::Options::gui())
543 QAction* action =
dynamic_cast< QAction*
> ( sender() );
545 if ( action != 0 && action->data().isValid() )
546 type = (
DataType) action->data().toUInt();
563 if ( ! OpenFlipper::Options::gui())
569 QAction* action =
dynamic_cast< QAction*
> ( sender() );
571 if ( action != 0 && action->data().isValid() )
572 type = (
DataType) action->data().toUInt();
590 list.push_back( o_it->id() );
605 list.push_back( o_it->id() );
618 emit log(
LOGINFO, tr(
"Object \"%1\" with ID %2 of type %3 ").arg(o_it->name()).arg(o_it->id()).arg(o_it->dataType().name()));
630 unsigned int count = 0;
678 emit log(
LOGERR, tr(
" Object with id %1 is not a group").arg(_groupId));
681 emit log(
LOGERR, tr(
"Unable to get Object with id %1").arg(_objectId) );
683 emit log(
LOGERR, tr(
"Unable to get Group with id %1").arg(_groupId) );
703 result.push_back(group->
child(i)->
id());
const QStringList ALL_OBJECTS
Iterable object range.
BaseObject * parent()
Get the parent item ( 0 if rootitem )
DataType dataType(int objectId)
Get the DataType of a given object.
void printObjectInfoToLog()
Print information about all open objects to the console.
void setAllSource()
Makes all available objects source.
int groupObjects(IdList _objectIDs, QString _groupName="")
Group given Objects together.
const DataType DATA_UNKNOWN(0)
None of the other Objects.
bool getObject(int _identifier, BSplineCurveObject *&_object)
const DataType DATA_GROUP(1)
Items used for Grouping.
const QStringList SOURCE_OBJECTS("source")
Iterable object range.
int getObject(QString _name)
Get the id of an object by its name.
virtual void setName(QString _name)
path to the file from which the object is loaded ( defaults to "." )
IdList getGroupElements(int _groupId)
Get all elements of the given group.
void clearAllSource()
remove source selection from all objects
virtual void show()
Sets the whole Scenegraph subtree of this node to visible.
bool isGroup() const
Check if object is a group.
virtual void hide()
Sets the whole Scenegraph subtree of this node to invisible.
const QStringList TARGET_OBJECTS("target")
Iterable object range.
unsigned int groupCount() const
Returns the number of groups.
void showAll()
Shows all objects.
QStringList availableDataTypeNames() const
Returns a list of all available DataTypes.
std::vector< int > IdList
Standard Type for id Lists used for scripting.
DLLEXPORT ObjectIterator objectsEnd()
Return Iterator to Object End.
void setParent(BaseObject *_parent)
Set the parent pointer.
bool addObjectToGroup(int _objectId, int _groupId)
add an object to an existing group
BaseObject * childExists(int _objectId)
Check if the element exists in the subtree of this element.
BaseObject *& objectRoot()
Get the root of the object structure.
void showObject(int objectId)
Show the given Object.
int addEmptyGroup(QString _groupName="", int _parentGroupId=0)
Create new empty group.
const DataType DATA_ALL(UINT_MAX)
Identifier for all available objects.
void hideAll()
Hides all objects.
IdList getTargetObjects(DataType _type)
Get all target objects of given type.
void hideObject(int objectId)
Hide the given Object.
void setTarget(int objectId, bool _target)
set the given Object as target
DLLEXPORT std::vector< TypeInfo >::const_iterator typesBegin()
Get iterator pointing to the first element in the types list.
QString getObjectName(int objectId)
Get the Objects name from the id.
void setAllTarget()
Makes all available objects target.
void setSource(int objectId, bool _source)
set the given Object as source
int childCount() const
get the number of children
Core Data Iterator used to iterate over all objects (Including groups)
virtual void setName(QString _name)
path to the file from which the object is loaded ( defaults to "." )
void clearAllTarget()
Unselect all objects.
BaseObject * child(int row)
return a child
QString name() const
Return the name of this type as text.
void objectDelete(int objectId)
Delete the given object.
DLLEXPORT std::vector< TypeInfo >::const_iterator typesEnd()
Get iterator pointing to the last element in the types list.
void setObjectName(int objectId, QString _name)
set the name of the given object
IdList getSourceObjects(DataType _type)
Get all source objects of given type.
bool unGroupObject(int _id)