[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