From d1a3741af12d76d4b522af78993233140b8c74e0 Mon Sep 17 00:00:00 2001 From: "David A. Cuadrado" Date: Thu, 27 Dec 2007 20:01:56 -0500 Subject: [PATCH] XDBMS: Replace objects properly Fixed Member and Project classes --- src/dashserver/project/commandprocessor.cpp | 140 ++++++++++++++++++++++++++++ src/dashserver/project/member.cpp | 23 +++-- src/dashserver/project/member.h | 1 + src/dashserver/project/project.cpp | 9 +- src/dashserver/project/projectmanager.cpp | 10 +- src/dashserver/xdbms/object.cpp | 5 +- 6 files changed, 171 insertions(+), 17 deletions(-) diff --git a/src/dashserver/project/commandprocessor.cpp b/src/dashserver/project/commandprocessor.cpp index 4582f2d..3b957d4 100644 --- a/src/dashserver/project/commandprocessor.cpp +++ b/src/dashserver/project/commandprocessor.cpp @@ -56,6 +56,146 @@ bool CommandProcessor::aboutToExecute(const QString &pkgname) return true; } + + // LIBRARY + if( pkgname == "addlibraryfolder" ) + { + } + else if( pkgname == "addlibraryobject" ) + { + } + else if( pkgname == "modifysymbol" ) + { + } + else if( pkgname == "renamelibraryobject" ) + { + } + + + // OBJECT AND ITEM + if( pkgname == "additemfilter" ) + { + } + else if( pkgname == "addobject" ) + { + } + else if( pkgname == "addtweening" ) + { + } + else if( pkgname == "bringforwardsitem" ) + { + } + else if( pkgname == "bringtofrontitem" ) + { + } + else if( pkgname == "changelayervisibility" ) + { + } + else if( pkgname == "changetextfont" ) + { + } + else if( pkgname == "changetext" ) + { + } + else if( pkgname == "changetextwidth" ) + { + } + else if( pkgname == "convertitem" ) + { + } + else if( pkgname == "editnodesitem" ) + { + } + else if( pkgname == "changeitembrush" ) + { + } + else if( pkgname == "changeitempen" ) + { + } + else if( pkgname == "groupitem" ) + { + } + else if( pkgname == "modifyfilter" ) + { + } + else if( pkgname == "modifyitem" ) + { + } + else if( pkgname == "removelibraryobject" ) + { + } + else if( pkgname == "removeobject" ) + { + } + else if( pkgname == "sendbackwardsitem" ) + { + } + else if( pkgname == "sendtobackitem" ) + { + } + else if( pkgname == "ungroupitem" ) + { + } + + + // FRAME + if( pkgname == "changeframevisibility" ) + { + } + else if( pkgname == "expandframe" ) + { + } + else if( pkgname == "insertframe" ) + { + } + else if( pkgname == "lockframe" ) + { + } + else if( pkgname == "moveframe" ) + { + } + else if( pkgname == "removeframe" ) + { + } + else if( pkgname == "renameframe" ) + { + } + + // LAYER + if( pkgname == "insertlayer" ) + { + } + else if( pkgname == "locklayer" ) + { + } + else if( pkgname == "movelayer" ) + { + } + else if( pkgname == "removelayer" ) + { + } + else if( pkgname == "renamelayer" ) + { + } + + + // SCENE + if( pkgname == "insertscene" ) + { + } + else if( pkgname == "movescene" ) + { + } + else if( pkgname == "removescene" ) + { + } + else if( pkgname == "renamescene" ) + { + } + + + + return true; } diff --git a/src/dashserver/project/member.cpp b/src/dashserver/project/member.cpp index 5c694ab..798d5b3 100644 --- a/src/dashserver/project/member.cpp +++ b/src/dashserver/project/member.cpp @@ -117,16 +117,14 @@ void Member::addPermission(Users::Permission *perm) { QString module = perm->name(); - if( !d->permissions.contains(module) ) + if( d->permissions.contains(module) ) { - d->permissions[module] = perm; - add(perm); - } - else - { - delete perm; - perm = 0; + d->permissions.remove(module); + remove(perm); } + + d->permissions[module] = perm; + add(perm); } QHash Member::permissions() const @@ -163,10 +161,17 @@ bool Member::canWriteOn(int part) const void Member::afterLoad() { -// qDebug("AFTER LOAD!"); d->loadPermissions(); } +void Member::aboutToSave() +{ + if( ! d->initialized ) + { + d->loadPermissions(); + } +} + } } diff --git a/src/dashserver/project/member.h b/src/dashserver/project/member.h index a46f1af..57fb0ff 100644 --- a/src/dashserver/project/member.h +++ b/src/dashserver/project/member.h @@ -55,6 +55,7 @@ class DASHSERVER_EXPORT Member : public XDBMS::Object bool canWriteOn(int part) const; void afterLoad(); + void aboutToSave(); private: diff --git a/src/dashserver/project/project.cpp b/src/dashserver/project/project.cpp index 9fcd337..c9aa332 100644 --- a/src/dashserver/project/project.cpp +++ b/src/dashserver/project/project.cpp @@ -247,11 +247,14 @@ QString Project::fileName() const void Project::addMember(Member *member) { - if( !d->members.contains(member->id()) ) + if( d->members.contains(member->id()) ) { - d->members[member->id()] = member; - add(member); + d->members.remove(member->id()); + remove(member); } + + d->members[member->id()] = member; + add(member); } QString Project::partName(int part) diff --git a/src/dashserver/project/projectmanager.cpp b/src/dashserver/project/projectmanager.cpp index 6ddf250..0172609 100644 --- a/src/dashserver/project/projectmanager.cpp +++ b/src/dashserver/project/projectmanager.cpp @@ -194,21 +194,23 @@ void Manager::handlePackage(DashServer::Package* const pkg) Member *mem = new Member(); mem->setUser(member.login); mem->setJob(member.job); -// D_SHOW_VAR(member.job); + D_SHOW_VAR(member.login); QList permissions = member.profile.permissions(); + + foreach(Dash::Network::Permission permission, permissions) { Users::Permission *perm = new Users::Permission(); - /*D_SHOW_VAR(permission.name()); - D_SHOW_VAR(permission.read()); - D_SHOW_VAR(permission.write())*/; + perm->setId(permission.name()); perm->setName(permission.name()); perm->setRead(permission.read()); perm->setWrite(permission.write()); mem->addPermission(perm); } + + D_SHOW_VAR(mem->objects().size()); project->addMember(mem); } diff --git a/src/dashserver/xdbms/object.cpp b/src/dashserver/xdbms/object.cpp index 2caa7c2..1518ccd 100644 --- a/src/dashserver/xdbms/object.cpp +++ b/src/dashserver/xdbms/object.cpp @@ -127,7 +127,10 @@ void Object::add(Object *object) void Object::remove(Object *object) { - d->objects.remove(object->id()); + if( d->objects.contains(object->id()) ) + { + delete d->objects.take(object->id()); + } } QString Object::value(const QString &property) const -- 2.11.4.GIT