[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [rocs] src: Remove broken addPointer(String, String) method.
From:       Andreas Cord-Landwehr <cola () uni-paderborn ! de>
Date:       2012-09-21 16:26:53
Message-ID: 20120921162653.57032A6094 () git ! kde ! org
[Download RAW message or body]

Git commit d780a498bdecdd78edeadea5838f73d873511a40 by Andreas Cord-Landwehr.
Committed on 21/09/2012 at 10:39.
Pushed by cordlandwehr into branch 'master'.

Remove broken addPointer(String, String) method.

The data structure does not guarantee that each name is unique.

M  +0    -36   src/Core/DataStructure.cpp
M  +1    -5    src/Core/DataStructure.h
M  +9    -4    src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.cpp
M  +1    -78   src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.h
M  +6    -2    src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.cpp
M  +2    -1    src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.h
M  +10   -10   src/Tests/TestPlugins.cpp

http://commits.kde.org/rocs/d780a498bdecdd78edeadea5838f73d873511a40

diff --git a/src/Core/DataStructure.cpp b/src/Core/DataStructure.cpp
index 286a58c..5195ec2 100644
--- a/src/Core/DataStructure.cpp
+++ b/src/Core/DataStructure.cpp
@@ -35,9 +35,7 @@
 #include <boost/shared_ptr.hpp>
 
 #include <QColor>
-
 #include <KDebug>
-#include <DataItem.h>
 
 class DataStructurePrivate
 {
@@ -64,8 +62,6 @@ public:
 
     QPointF _relativeCenter;
     QString _name;
-    QColor _dataDefaultColor;
-    bool _automate;
     Document *_document;
     bool _readOnly;
 
@@ -96,7 +92,6 @@ void DataStructure::setQpointer(DataStructurePtr q)
 
 void DataStructure::initialize()
 {
-    d->_automate = false;
     d->_readOnly = false;
     updateRelativeCenter();
     d->_identifierCount = 1;
@@ -137,7 +132,6 @@ void DataStructure::importStructure(DataStructurePtr other)
 
 //FIXME implement import for types
 //     d->_pointerDefaultColor     = other->pointerDefaultColor();
-//     d->_dataDefaultColor        = other->dataDefaultColor();
 //     d->_dataNamesVisible        = other->d->_dataNamesVisible;
 //     d->_dataValuesVisible       = other->d->_dataValuesVisible;
 //     d->_pointerNamesVisible     = other->d->_pointerNamesVisible;
@@ -478,36 +472,6 @@ PointerPtr DataStructure::addPointer(DataPtr from, DataPtr to, \
int pointerType)  return addPointer(pointer, pointerType);
 }
 
-PointerPtr DataStructure::addPointer(const QString& name_from, const QString& \
                name_to, int pointerType)
-{
-//FIXME reimplement by ids
-// using of strings allows uncontrollable behavior
-    if (d->_readOnly) {
-        return PointerPtr();
-    }
-    DataPtr from, to;
-
-    QString tmpName;
-
-    foreach(const DataList& dataType, d->_dataTypeLists) {
-        foreach(DataPtr n, dataType) {
-            tmpName = n->name();
-
-            if (tmpName == name_from) {
-                from = n;
-            }
-            if (tmpName == name_to) {
-                to = n;
-            }
-            if (to && from) {
-                break;
-            }
-        }
-    }
-
-    return addPointer(from, to, pointerType);
-}
-
 DataPtr DataStructure::getData(int uniqueIdentifier)
 {
     foreach(const DataList& dataType, d->_dataTypeLists) {
diff --git a/src/Core/DataStructure.h b/src/Core/DataStructure.h
index e10719f..10ace45 100644
--- a/src/Core/DataStructure.h
+++ b/src/Core/DataStructure.h
@@ -30,7 +30,6 @@
 #include <klocalizedstring.h>
 
 #include <boost/shared_ptr.hpp>
-#include <boost/weak_ptr.hpp>
 
 #include "Rocs_Typedefs.h"
 #include "rocslib_export.h"
@@ -62,7 +61,7 @@ public:
     QPointF relativeCenter() const;
     Document *document() const;
 
-    void setReadOnly(bool r) ;
+    void setReadOnly(bool r);
     bool readOnly() const ;
 
     QScriptValue scriptValue() const;
@@ -117,8 +116,6 @@ public:
      */
     bool isPointerVisible(int pointerType) const;
 
-    const QString& iconPackage() const;
-
     const QString& name() const;
 
     /**
@@ -200,7 +197,6 @@ public slots:
     virtual GroupPtr addGroup(const QString& name);
     virtual DataList addDataList(QList< QPair<QString, QPointF> > dataList, int \
                dataType = 0);
     virtual DataPtr addData(QString name, QPointF point, int dataType = 0);
-    virtual PointerPtr addPointer(const QString& name_from, const QString& name_to, \
int pointerType = 0);  
     void addDynamicProperty(const QString& property, QVariant value = QVariant(0));
     void removeDynamicProperty(const QString& property);
diff --git a/src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.cpp \
b/src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.cpp index 3810a5b..2ef94dc 100644
--- a/src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.cpp
+++ b/src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.cpp
@@ -75,11 +75,16 @@ void gotValue(const std::string& Value)
     if (Value.empty()) {
         return; //end of the list.
     } else {
-        phelper->setAtribute(QString::fromStdString(lastKey), \
QString::fromStdString(Value)); +        \
phelper->setAttribute(QString::fromStdString(lastKey), \
QString::fromStdString(Value));  //     if (lastInserted){
-//       if (lastKey == "id"){
-//         lastInserted->setProperty("name", Value.c_str());
-//       }
+    if (!lastInserted) {
+        kError() << "Cannot specify data node value: internal error";
+        return;
+    }
+    if (lastKey == "id" && lastInserted){
+        lastInserted->setProperty("name", Value.c_str());
+        phelper->dataMap.insert(QString::fromStdString(Value), phelper->actualNode);
+    }
 //       lastInserted->setProperty(lastKey.c_str(), Value.c_str());
 //     }else{
 //       kDebug() << "ignoring keyvalue: "<< lastKey.c_str() << Value.c_str();
diff --git a/src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.h \
b/src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.h index 0a2579a..5a92e49 100644
--- a/src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.h
+++ b/src/LoadSave/Plugins/gmlFileFormat/GmlGrammar.h
@@ -46,7 +46,6 @@ void gotValue(const std::string &Value);
 
 void beginList();
 
-
 void endList();
 
 void t();
@@ -79,84 +78,8 @@ struct roman : boost::spirit::qi::grammar<Iterator, unsigned()> {
 boost::spirit::qi::rule<Iterator, unsigned()> start;
 boost::spirit::qi::rule<Iterator> List, KeyValue ;
 boost::spirit::qi::rule<Iterator, std::string()> Key, Value, String, Sign;
-boost::spirit::qi::rule<Iterator> WhiteSpace/*, Comments*/;
+boost::spirit::qi::rule<Iterator> WhiteSpace;
 };
 }
-// // #include "dotrenderop.h"
-//
-// #include <boost/throw_exception.hpp>
-// #include <boost/spirit/include/classic_core.hpp>
-// #include <boost/spirit/include/classic_distinct.hpp>
-// #include <boost/spirit/include/classic_loops.hpp>
-//
-// #include <QPoint>
-// #include <QColor>
-// #include <QPair>
-// #include <QVector>
-//
-// #include <map>
-// #include <list>
-// #include <string>
-// #include <sstream>
-/*
-class GraphDocument;
-
-bool parse(const std::string& str, GraphDocument* gd);
-
-void gotid(char const* first, char const* last);
-void dump(char const* first, char const* last);
-void strict(char const* first, char const* last);
-void undigraph(char const* first, char const* last);
-void digraph(char const* first, char const* last);
-void graphid(char const* first, char const* last);
-void attrid(char const* first, char const* last);
-void subgraphid(char const* first, char const* last);
-void valid(char const* first, char const* last);
-void addattr(char const* first, char const* last);
-void pushAttrListC(char const c);
-void popAttrListC(char const c);
-void pushAttrList(char const* first, char const* last);
-void popAttrList(char const* first, char const* last);
-void createsubgraph(char const);
-void createnode(char const* first, char const* last);
-void setgraphattributes(char const* first, char const* last);
-void setsubgraphattributes(char const* first, char const* last);
-void setnodeattributes(char const* first, char const* last);
-void setattributedlist(char const* first, char const* last);
-void checkedgeop(char const* first, char const* last);
-void edgebound(char const* first, char const* last);
-void createedges(char const* first, char const* last);
-void incrz(char const);
-void decrz(char const);
-void finalactions(char const* first, char const* last);
-
-bool parse_point(char const* str, QPoint& p);
-bool parse_real(char const* str, double& d);
-bool parse_integers(char const* str, std::vector<int>& v);
-bool parse_spline(char const* str, QVector< QPair< float, float > >& points);
-void init_op();
-void valid_op(char const* first, char const* last);
-bool parse_renderop(const std::string& str, DotRenderOpVec& arenderopvec);
-bool parse_numeric_color(char const* str, QColor& c);
-
-struct DotGrammar : public boost::spirit::classic::grammar<DotGrammar>
-{
-  template <typename ScannerT>
-  struct definition
-  {
-    definition(DotGrammar const& self);
-
-    boost::spirit::classic::rule<ScannerT> graph, ID, tag, stmt_list, stmt, \
                attr_stmt,
-    attr_list, a_list, edge_stmt, edgeop,
-    edgeRHS, node_stmt, node_id,
-    port, subgraph, compass_pt;
-
-    boost::spirit::classic::rule<ScannerT> const& start() const
-    {
-      return graph;
-    }
-  };
-
-};*/
 
 #endif
diff --git a/src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.cpp \
b/src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.cpp index ae6fe94..00f6356 \
                100644
--- a/src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.cpp
+++ b/src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.cpp
@@ -100,7 +100,7 @@ const QString GmlGraphParsingHelper::processKey(const QString& \
key)  }
 
 
-void GmlGraphParsingHelper::setAtribute(const QString& key, const QString& value)
+void GmlGraphParsingHelper::setAttribute(const QString& key, const QString& value)
 {
     kDebug() << "Setting attibute " << key;
     switch (_actualState) {
@@ -182,7 +182,11 @@ void GmlGraphParsingHelper::createEdge()
     if (!edgeSource.isEmpty() && !edgeTarget.isEmpty()) {
         kDebug() << "Creating a edge";
         _actualState = edge;
-        actualEdge = actualGraph->addPointer(edgeSource, edgeTarget);
+        if (!dataMap.contains(edgeSource) || !dataMap.contains(edgeTarget)) {
+            kError() << "No edge created: end points were not created";
+            return;
+        }
+        actualEdge = actualGraph->addPointer(dataMap[edgeSource], \
dataMap[edgeTarget]);  edgeSource.clear();;
         edgeTarget.clear();
         while (! _edgeProperties.isEmpty()) {
diff --git a/src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.h \
b/src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.h index ec66e7c..503c342 \
                100644
--- a/src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.h
+++ b/src/LoadSave/Plugins/gmlFileFormat/GmlGraphParsingHelper.h
@@ -45,7 +45,7 @@ struct GmlGraphParsingHelper {
     void endList();
     void startList(const QString& key);
 
-    void setAtribute(const QString& key, const QString& value);
+    void setAttribute(const QString& key, const QString& value);
     const QString processKey(const QString& key);
     QString edgeSource;
     QString edgeTarget;
@@ -58,6 +58,7 @@ struct GmlGraphParsingHelper {
     Document* gd;
     QStringList _properties;
     QHash<QString, QString> _edgeProperties;
+    QMap<QString, DataPtr> dataMap; // for mapping data element ids
 };
 }
 
diff --git a/src/Tests/TestPlugins.cpp b/src/Tests/TestPlugins.cpp
index 0c771c0..7abd107 100644
--- a/src/Tests/TestPlugins.cpp
+++ b/src/Tests/TestPlugins.cpp
@@ -93,11 +93,11 @@ void TestPlugins::convertGraphToLinkedList()
 //     connect(DSPluginManager::instance(), SIGNAL(changingDS(QString)), &doc, \
SLOT(convertToDS(QString)));  //Create a simple graph
     DataStructurePtr tree = doc.addDataStructure("Graph1");
-    tree->addData("node1");
-    tree->addData("node2");
-    tree->addData("node3");
-    tree->addPointer("node1", "node2");
-    tree->addPointer("node1", "node3");
+    DataPtr a = tree->addData("node1");
+    DataPtr b = tree->addData("node2");
+    DataPtr c = tree->addData("node3");
+    tree->addPointer(a, b);
+    tree->addPointer(a, c);
 
     //Change plugin.
     DataStructurePluginManager::self()->setDataStructurePlugin(plList->internalName());
 @@ -124,11 +124,11 @@ void TestPlugins::convertGraphToRootedTree()
     //     connect(DSPluginManager::instance(), SIGNAL(changingDS(QString)), &doc, \
SLOT(convertToDS(QString)));  //Create a simple graph
     DataStructurePtr tree = doc.addDataStructure("Graph1");
-    tree->addData("node1");
-    tree->addData("node2");
-    tree->addData("node3");
-    tree->addPointer("node1", "node2");
-    tree->addPointer("node1", "node3");
+    DataPtr a = tree->addData("node1");
+    DataPtr b = tree->addData("node2");
+    DataPtr c = tree->addData("node3");
+    tree->addPointer(a, b);
+    tree->addPointer(a, c);
 
     //Change plugin.
     DataStructurePluginManager::self()->setDataStructurePlugin(plTree->internalName());



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic