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

List:       kde-commits
Subject:    [rocs] /: Cleanup communication between Document and GraphScene.
From:       Andreas Cord-Landwehr <cola () uni-paderborn ! de>
Date:       2012-09-30 19:03:31
Message-ID: 20120930190331.3DA75A60A6 () git ! kde ! org
[Download RAW message or body]

Git commit 4dffca2e2de3a5a10bce8131ac9bf76e771ba838 by Andreas Cord-Landwehr.
Committed on 30/09/2012 at 17:35.
Pushed by cordlandwehr into branch 'master'.

Cleanup communication between Document and GraphScene.

M  +9    -7    RocsCore/DataStructure.cpp
M  +87   -88   RocsCore/Document.cpp
M  +0    -1    VisualEditor/Scene/GraphScene.h

http://commits.kde.org/rocs/4dffca2e2de3a5a10bce8131ac9bf76e771ba838

diff --git a/RocsCore/DataStructure.cpp b/RocsCore/DataStructure.cpp
index b076af2..151727f 100644
--- a/RocsCore/DataStructure.cpp
+++ b/RocsCore/DataStructure.cpp
@@ -447,13 +447,15 @@ void DataStructure::remove(DataPtr n)
     bool bottom = false;
     bool right = false;
 
-//FIXME give signals instead of modifying
-//     if (doc != 0) {
-//         if (n->x() < doc->left() + 2 * GraphScene::kBORDER)      left = true;
-//         if (n->x() > doc->right() - 2 * GraphScene::kBORDER)     right = true;
-//         if (n->y() < doc->top() + 2 * GraphScene::kBORDER)       top = true;
-//         if (n->y() > doc->bottom() - 2 * GraphScene::kBORDER)    bottom = true;
-//     }
+    qreal xCenter = (doc->left() + doc->right() )/2;
+    qreal yCenter = (doc->top() + doc->bottom() )/2;
+
+    if (doc != 0) {
+        if (n->x() < xCenter)      left = true;
+        if (n->x() > xCenter)     right = true;
+        if (n->y() < yCenter)       top = true;
+        if (n->y() > yCenter)    bottom = true;
+    }
 
     // find data among all types and delete it
     //TODO improved performance: use type information to access list
diff --git a/RocsCore/Document.cpp b/RocsCore/Document.cpp
index 8a5ad80..efcaa85 100644
--- a/RocsCore/Document.cpp
+++ b/RocsCore/Document.cpp
@@ -46,6 +46,8 @@ class DocumentPrivate
 public:
     DocumentPrivate() {}
 
+    enum borderSize { SceneBorder = 50 };
+
     QString _lastSavedDocumentPath;
     QString _name;
     qreal _left;
@@ -359,7 +361,6 @@ QRectF Document::size()
 
 bool Document::isPointAtDocument(qreal x, qreal y)  const
 {
-
     if (x < d->_left)      return false;
     if (x > d->_right)     return false;
     if (y < d->_top)       return false;
@@ -392,97 +393,95 @@ void Document::changeMinimalSize(qreal width, qreal height)
 
 void Document::resizeDocumentIncrease()
 {
-//FIXME
-//     int elements = dataStructures().size();
-//     for (int i = 0; i < elements; i++) {
-//         bool resizeDocument = false;
-//         foreach(DataPtr n,  dataStructures().at(i)->dataList()) {
-//             if (n->x() < d->_left + GraphScene::kBORDER) {
-//                 setLeft(d->_left - GraphScene::kBORDER);
-//                 resizeDocument = true;
-//             }
-//             if (n->x() > d->_right - GraphScene::kBORDER) {
-//                 setRight(d->_right + GraphScene::kBORDER);
-//                 resizeDocument = true;
-//             }
-//             if (n->y() < d->_top + GraphScene::kBORDER) {
-//                 setTop(d->_top - GraphScene::kBORDER);
-//                 resizeDocument = true;
-//             }
-//             if (n->y() > d->_bottom - GraphScene::kBORDER) {
-//                 setBottom(d->_bottom + GraphScene::kBORDER);
-//                 resizeDocument = true;
-//             }
-//         }
-//         if (resizeDocument) {
-//             emit resized();
-//         }
-//     }
+    int elements = dataStructures().size();
+    for (int i = 0; i < elements; i++) {
+        bool resizeDocument = false;
+        foreach(DataPtr n,  dataStructures().at(i)->dataList()) {
+            if (n->x() < d->_left + DocumentPrivate::SceneBorder) {
+                setLeft(d->_left - DocumentPrivate::SceneBorder);
+                resizeDocument = true;
+            }
+            if (n->x() > d->_right - DocumentPrivate::SceneBorder) {
+                setRight(d->_right + DocumentPrivate::SceneBorder);
+                resizeDocument = true;
+            }
+            if (n->y() < d->_top + DocumentPrivate::SceneBorder) {
+                setTop(d->_top - DocumentPrivate::SceneBorder);
+                resizeDocument = true;
+            }
+            if (n->y() > d->_bottom - DocumentPrivate::SceneBorder) {
+                setBottom(d->_bottom + DocumentPrivate::SceneBorder);
+                resizeDocument = true;
+            }
+        }
+        if (resizeDocument) {
+            emit resized();
+        }
+    }
 }
 
 void Document::resizeDocumentBorder(Document::Border orientation)
 {
-//FIXME
-//     bool empty = true;
-//     int elements = dataStructures().size();
-//
-//     // scans doubled border of specified size: if empty or not
-//     for (int i = 0; i < elements; i++) {
-//         foreach(DataPtr n,  dataStructures().at(i)->dataList()) {
-//             switch (orientation) {
-//             case BorderLeft: {
-//                 if (n != 0 && n->x() < d->_left + GraphScene::kBORDER * 2) empty = false;
-//                 break;
-//             }
-//             case BorderRight: {
-//                 if (n != 0 && n->x() > d->_right - GraphScene::kBORDER * 2) empty = false;
-//                 break;
-//             }
-//             case BorderTop: {
-//                 if (n != 0 && n->y() < d->_top + GraphScene::kBORDER * 2) empty = false;
-//                 break;
-//             }
-//             case BorderBottom: {
-//                 if (n != 0 && n->y() > d->_bottom - GraphScene::kBORDER * 2) empty = false;
-//                 break;
-//             }
-//             }
-//         }
-//     }
-//
-//     //TODO connect to graphvisualeditor-size
-//     if (empty == true) {
-//         switch (orientation) {
-//         case BorderLeft: {
-//             if (d->_right - d->_left < GraphScene::kBORDER * 4)
-//                 return;
-//             setLeft(d->_left + GraphScene::kBORDER);
-//             emit resized();
-//             break;
-//         }
-//         case BorderRight: {
-//             if (d->_right - d->_left < GraphScene::kBORDER * 4)
-//                 return;
-//             setRight(d->_right - GraphScene::kBORDER);
-//             emit resized();
-//             break;
-//         }
-//         case BorderTop: {
-//             if (d->_bottom - d->_top < GraphScene::kBORDER * 4)
-//                 return;
-//             setTop(d->_top + GraphScene::kBORDER);
-//             emit resized();
-//             break;
-//         }
-//         case BorderBottom: {
-//             if (d->_bottom - d->_top < GraphScene::kBORDER * 4)
-//                 return;
-//             setBottom(d->_bottom - GraphScene::kBORDER);
-//             emit resized();
-//             break;
-//         }
-//         }
-//     }
+    bool empty = true;
+    int elements = dataStructures().size();
+
+    // scans doubled border of specified size: if empty or not
+    for (int i = 0; i < elements; i++) {
+        foreach(DataPtr n,  dataStructures().at(i)->dataList()) {
+            switch (orientation) {
+            case BorderLeft: {
+                if (n != 0 && n->x() < d->_left + DocumentPrivate::SceneBorder * 2) empty = false;
+                break;
+            }
+            case BorderRight: {
+                if (n != 0 && n->x() > d->_right - DocumentPrivate::SceneBorder * 2) empty = false;
+                break;
+            }
+            case BorderTop: {
+                if (n != 0 && n->y() < d->_top + DocumentPrivate::SceneBorder * 2) empty = false;
+                break;
+            }
+            case BorderBottom: {
+                if (n != 0 && n->y() > d->_bottom - DocumentPrivate::SceneBorder * 2) empty = false;
+                break;
+            }
+            }
+        }
+    }
+
+    //TODO connect to graphvisualeditor-size
+    if (empty == true) {
+        switch (orientation) {
+        case BorderLeft: {
+            if (d->_right - d->_left < DocumentPrivate::SceneBorder * 4)
+                return;
+            setLeft(d->_left + DocumentPrivate::SceneBorder);
+            emit resized();
+            break;
+        }
+        case BorderRight: {
+            if (d->_right - d->_left < DocumentPrivate::SceneBorder * 4)
+                return;
+            setRight(d->_right - DocumentPrivate::SceneBorder);
+            emit resized();
+            break;
+        }
+        case BorderTop: {
+            if (d->_bottom - d->_top < DocumentPrivate::SceneBorder * 4)
+                return;
+            setTop(d->_top + DocumentPrivate::SceneBorder);
+            emit resized();
+            break;
+        }
+        case BorderBottom: {
+            if (d->_bottom - d->_top < DocumentPrivate::SceneBorder * 4)
+                return;
+            setBottom(d->_bottom - DocumentPrivate::SceneBorder);
+            emit resized();
+            break;
+        }
+        }
+    }
 }
 
 bool Document::isPointAtDocument(QPointF point)  const
diff --git a/VisualEditor/Scene/GraphScene.h b/VisualEditor/Scene/GraphScene.h
index eb53dcc..eb6604f 100644
--- a/VisualEditor/Scene/GraphScene.h
+++ b/VisualEditor/Scene/GraphScene.h
@@ -44,7 +44,6 @@ class VISUALEDITOR_EXPORT GraphScene : public QGraphicsScene
     Q_OBJECT
 public:
     GraphScene(QObject *parent = 0);
-    enum borderSize { kBORDER = 50 };
     void updateMinSize(qreal minWidth, qreal minHeight);
     void setAction(QAction *action);
     void updateGraph(DataStructurePtr g);

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

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