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"));
406 for (
int i = 0 ; i < objs.size() ; ++i)
408 (objs[i])->setParent(groupItem);
409 ids.push_back((objs[i])->
id());
412 emit objectsGrouped(ids);
425 if ( group && group->
isGroup())
428 for (
int i=group->
childCount()-1; i >= 0; --i){
435 emit deleteObject( group->
id() );
440 emit log(
LOGERR, tr(
"Cannot Ungroup. Object with id %1 is not a group").arg(_id));
442 emit log(
LOGERR, tr(
"Unable to get Object with id %1 for ungrouping").arg(_id) );
458 QAction* action =
dynamic_cast< QAction*
> ( sender() );
460 if ( action != 0 && action->data().isValid() )
461 type = (
DataType) action->data().toUInt();
480 QAction* action =
dynamic_cast< QAction*
> ( sender() );
482 if ( action != 0 && action->data().isValid() )
483 type = (
DataType) action->data().toUInt();
502 QAction* action =
dynamic_cast< QAction*
> ( sender() );
504 if ( action != 0 && action->data().isValid() )
505 type = (
DataType) action->data().toUInt();
524 QAction* action =
dynamic_cast< QAction*
> ( sender() );
526 if ( action != 0 && action->data().isValid() )
527 type = (
DataType) action->data().toUInt();
543 if ( ! OpenFlipper::Options::gui())
549 QAction* action =
dynamic_cast< QAction*
> ( sender() );
551 if ( action != 0 && action->data().isValid() )
552 type = (
DataType) action->data().toUInt();
569 if ( ! OpenFlipper::Options::gui())
575 QAction* action =
dynamic_cast< QAction*
> ( sender() );
577 if ( action != 0 && action->data().isValid() )
578 type = (
DataType) action->data().toUInt();
596 list.push_back( o_it->id() );
611 list.push_back( o_it->id() );
624 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()));
636 unsigned int count = 0;
684 emit log(
LOGERR, tr(
" Object with id %1 is not a group").arg(_groupId));
687 emit log(
LOGERR, tr(
"Unable to get Object with id %1").arg(_objectId) );
689 emit log(
LOGERR, tr(
"Unable to get Group with id %1").arg(_groupId) );
709 result.push_back(group->
child(i)->
id());
BaseObject *& objectRoot()
Get the root of the object structure.
virtual void hide()
Sets the whole Scenegraph subtree of this node to invisible.
int getObject(QString _name)
Get the id of an object by its name.
DLLEXPORT std::vector< TypeInfo >::const_iterator typesBegin()
Get iterator pointing to the first element in the types list.
bool getObject(int _identifier, BSplineCurveObject *&_object)
const QStringList SOURCE_OBJECTS("source")
Iterable object range.
void hideObject(int objectId)
Hide the given Object.
const QStringList TARGET_OBJECTS("target")
Iterable object range.
int childCount() const
get the number of children
const DataType DATA_UNKNOWN(0)
None of the other Objects.
void setSource(int objectId, bool _source)
set the given Object as source
void printObjectInfoToLog()
Print information about all open objects to the console.
bool unGroupObject(int _id)
IdList getTargetObjects(DataType _type)
Get all target objects of given type.
void showAll()
Shows all objects.
virtual void show()
Sets the whole Scenegraph subtree of this node to visible.
DLLEXPORT std::vector< TypeInfo >::const_iterator typesEnd()
Get iterator pointing to the last element in the types list.
const QStringList ALL_OBJECTS
Iterable object range.
void clearAllSource()
remove source selection from all objects
BaseObject * parent()
Get the parent item ( 0 if rootitem )
void setParent(BaseObject *_parent)
Set the parent pointer.
DataType dataType(int objectId)
Get the DataType of a given object.
void setObjectName(int objectId, QString _name)
set the name of the given object
void setAllSource()
Makes all available objects source.
void setAllTarget()
Makes all available objects target.
virtual void setName(QString _name)
path to the file from which the object is loaded ( defaults to "." )
void clearAllTarget()
Unselect all objects.
const DataType DATA_ALL(UINT_MAX)
Identifier for all available objects.
const DataType DATA_GROUP(1)
Items used for Grouping.
BaseObject * child(int row)
return a child
bool addObjectToGroup(int _objectId, int _groupId)
add an object to an existing group
bool isGroup() const
Check if object is a group.
std::vector< int > IdList
Standard Type for id Lists used for scripting.
QString name() const
Return the name of this type as text.
QString getObjectName(int objectId)
Get the Objects name from the id.
int addEmptyGroup(QString _groupName="", int _parentGroupId=0)
Create new empty group.
IdList getSourceObjects(DataType _type)
Get all source objects of given type.
Core Data Iterator used to iterate over all objects (Including groups)
void setTarget(int objectId, bool _target)
set the given Object as target
void objectDelete(int objectId)
Delete the given object.
IdList getGroupElements(int _groupId)
Get all elements of the given group.
const UpdateType UPDATE_ALL(UpdateTypeSet(1))
Identifier for all updates.
BaseObject * childExists(int _objectId)
Check if the element exists in the subtree of this element.
int groupObjects(IdList _objectIDs, QString _groupName="")
Group given Objects together.
void hideAll()
Hides all objects.
unsigned int groupCount() const
Returns the number of groups.
DLLEXPORT ObjectIterator objectsEnd()
Return Iterator to Object End.
virtual void setName(QString _name)
path to the file from which the object is loaded ( defaults to "." )
QStringList availableDataTypeNames() const
Returns a list of all available DataTypes.
void showObject(int objectId)
Show the given Object.