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

List:       koffice-devel
Subject:    [PATCH] Fix for bug 63001
From:       Peter Simonsson <psn () linux ! se>
Date:       2003-08-27 8:48:21
[Download RAW message or body]

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi!
Sorry if this is a duplicate, but I haven't seen my mail from yesterday arrive 
yet so...
This patch fixes deletion of connected connectors, see bug 63001.
I'll commit tomorrow if nobody objects...

- -- 
LLaP
Peter Simonsson

Kivio (KOffice Flowcharting Application) - http://www.koffice.org/kivio/
Kexi - http://www.koffice.org/kexi/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/TMWyjR6JKcrOq3sRAgKUAJ9dfiFgs0AScWi0jd2zCfOES7i1VgCfdMGT
0neRoWMGPbkgqzMa5VqbBsM=
=8Dx6
-----END PGP SIGNATURE-----

[" " (text/plain)]

LLaP
Peter Simonsson

Kivio (KOffice Flowcharting Application) - http://www.koffice.org/kivio/
Kexi - http://www.koffice.org/kexi/

["kivio.diff" (text/x-diff)]

Index: kiviopart/kivio_command.cc
===================================================================
RCS file: /home/kde/koffice/kivio/kiviopart/kivio_command.cc,v
retrieving revision 1.25
diff -u -p -r1.25 kivio_command.cc

_______________________________________________
koffice-devel mailing list
koffice-devel@mail.kde.org
http://mail.kde.org/mailman/listinfo/koffice-devel

[Attachment #6 (--Boundary-00=_QK7S/Vnklrh6sMU)]
Index: kiviopart/kivio_page.cpp
===================================================================
RCS file: /home/kde/koffice/kivio/kiviopart/kivio_page.cpp,v
retrieving revision 1.53
diff -u -p -r1.53 kivio_page.cpp
--- kiviopart/kivio_page.cpp	22 Jul 2003 20:51:12 -0000	1.53
+++ kiviopart/kivio_page.cpp	26 Aug 2003 12:54:08 -0000
@@ -64,6 +64,7 @@
 #include "kivio_point.h"
 #include "kivio_ps_printer.h"
 #include "kivio_stencil.h"
+#include "kivio_1d_stencil.h"
 #include "KIvioPageIface.h"
 #include "kivio_command.h"
 #include "kivioglobal.h"
@@ -635,34 +636,14 @@ void KivioPage::deleteSelectedStencils()
     bool createMacro = false;
     while( pStencil )
     {
-        /*
-         * The following code is commented out because selections can only take
-         * place on the current layer.
-         */
-        // Now iterate through the layers attempting to delete the current stencil.  \
                If
-        // true is returned, that means that the delete was successful and we can \
                stop
-        // looking through layers.
-        /*
-        KivioLayer* pLayer = m_lstLayers.first();
-        while( pLayer )
-        {
-            if( pLayer->removeStencil( pStencil )==true )
-            {
-                break;
-            }
-
-            pLayer = m_lstLayers.next();
-        }
-        */
-/*
-        if( m_pCurLayer->removeStencil( pStencil ) == false )
-        {
-	   kdDebug(43000) << "KivioPage::deleteSelectedStencils() - Failed to locate a \
                selected stencil in the current layer" << endl;
-        }
-*/
         KivioRemoveStencilCommand *cmd =new KivioRemoveStencilCommand(i18n("Remove \
Stencil"), this,  m_pCurLayer , pStencil );  createMacro = true;
         macro->addCommand( cmd);
+
+        if(pStencil->type() == kstConnector) {
+            static_cast<Kivio1DStencil*>(pStencil)->disconnectFromTargets();
+        }
+
         pStencil = m_lstSelection.take();
     }
     if ( createMacro )
Index: kiviopart/kiviosdk/kivio_1d_stencil.cpp
===================================================================
RCS file: /home/kde/koffice/kivio/kiviopart/kiviosdk/kivio_1d_stencil.cpp,v
retrieving revision 1.17
diff -u -p -r1.17 kivio_1d_stencil.cpp
--- kiviopart/kiviosdk/kivio_1d_stencil.cpp	22 Jul 2003 20:51:13 -0000	1.17
+++ kiviopart/kiviosdk/kivio_1d_stencil.cpp	26 Aug 2003 12:54:08 -0000
@@ -948,3 +948,15 @@ bool Kivio1DStencil::connected()

   return false;
 }
+
+void Kivio1DStencil::disconnectFromTargets()
+{
+  KivioConnectorPoint *p;
+  p = m_pConnectorPoints->first();
+
+  while( p )
+  {
+    p->disconnect(true);
+    p = m_pConnectorPoints->next();
+  }
+}
Index: kiviopart/kiviosdk/kivio_1d_stencil.h
===================================================================
RCS file: /home/kde/koffice/kivio/kiviopart/kiviosdk/kivio_1d_stencil.h,v
retrieving revision 1.7
diff -u -p -r1.7 kivio_1d_stencil.h
--- kiviopart/kiviosdk/kivio_1d_stencil.h	30 Jun 2003 22:13:09 -0000	1.7
+++ kiviopart/kiviosdk/kivio_1d_stencil.h	26 Aug 2003 12:54:08 -0000
@@ -139,6 +139,7 @@ public:
     // returns which resize handles are valid
     virtual int resizeHandlePositions();
 
+    virtual void disconnectFromTargets();
 };
 
 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi!
This patch fixes deletion of connected connectors, see bug 63001.
I'll commit tomorrow if nobody objects...
- -- 
LLaP
Peter Simonsson

Kivio (KOffice Flowcharting Application) - http://www.koffice.org/kivio/
Kexi - http://www.koffice.org/kexi/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/S7KRjR6JKcrOq3sRAhuAAKDjqUv56yWkSxIQkawJo3Te9xQ/kwCdGL8p
gn02YJlhwzZ3+cxOusBGySY=
=/Vee
-----END PGP SIGNATURE-----

["kivio.diff" (text/x-diff)]

Index: kiviopart/kivio_command.cc
===================================================================
RCS file: /home/kde/koffice/kivio/kiviopart/kivio_command.cc,v
retrieving revision 1.25
diff -u -p -r1.25 kivio_command.cc
--- kiviopart/kivio_command.cc	30 Jun 2003 10:08:57 -0000	1.25
+++ kiviopart/kivio_command.cc	26 Aug 2003 12:54:06 -0000
@@ -136,6 +136,7 @@ void KivioAddStencilCommand::execute()
     m_layer->insertStencil( m_stencil );
     m_page->doc()->updateView(m_page);
     m_stencil->unselect();
+    m_stencil->searchForConnections(m_page, 4.0); //FIXME: The threshold should \
probably be zoomed....  m_page->doc()->slotSelectionChanged();
 }
 
Index: kiviopart/kivio_page.cpp
===================================================================
RCS file: /home/kde/koffice/kivio/kiviopart/kivio_page.cpp,v
retrieving revision 1.53
diff -u -p -r1.53 kivio_page.cpp
--- kiviopart/kivio_page.cpp	22 Jul 2003 20:51:12 -0000	1.53
+++ kiviopart/kivio_page.cpp	26 Aug 2003 12:54:08 -0000
@@ -64,6 +64,7 @@
 #include "kivio_point.h"
 #include "kivio_ps_printer.h"
 #include "kivio_stencil.h"
+#include "kivio_1d_stencil.h"
 #include "KIvioPageIface.h"
 #include "kivio_command.h"
 #include "kivioglobal.h"
@@ -635,34 +636,14 @@ void KivioPage::deleteSelectedStencils()
     bool createMacro = false;
     while( pStencil )
     {
-        /*
-         * The following code is commented out because selections can only take
-         * place on the current layer.
-         */
-        // Now iterate through the layers attempting to delete the current stencil.  \
                If
-        // true is returned, that means that the delete was successful and we can \
                stop
-        // looking through layers.
-        /*
-        KivioLayer* pLayer = m_lstLayers.first();
-        while( pLayer )
-        {
-            if( pLayer->removeStencil( pStencil )==true )
-            {
-                break;
-            }
-
-            pLayer = m_lstLayers.next();
-        }
-        */
-/*
-        if( m_pCurLayer->removeStencil( pStencil ) == false )
-        {
-	   kdDebug(43000) << "KivioPage::deleteSelectedStencils() - Failed to locate a \
                selected stencil in the current layer" << endl;
-        }
-*/
         KivioRemoveStencilCommand *cmd =new KivioRemoveStencilCommand(i18n("Remove \
Stencil"), this,  m_pCurLayer , pStencil );  createMacro = true;
         macro->addCommand( cmd);
+
+        if(pStencil->type() == kstConnector) {
+            static_cast<Kivio1DStencil*>(pStencil)->disconnectFromTargets();
+        }
+
         pStencil = m_lstSelection.take();
     }
     if ( createMacro )
Index: kiviopart/kiviosdk/kivio_1d_stencil.cpp
===================================================================
RCS file: /home/kde/koffice/kivio/kiviopart/kiviosdk/kivio_1d_stencil.cpp,v
retrieving revision 1.17
diff -u -p -r1.17 kivio_1d_stencil.cpp
--- kiviopart/kiviosdk/kivio_1d_stencil.cpp	22 Jul 2003 20:51:13 -0000	1.17
+++ kiviopart/kiviosdk/kivio_1d_stencil.cpp	26 Aug 2003 12:54:08 -0000
@@ -948,3 +948,15 @@ bool Kivio1DStencil::connected()
 
   return false;
 }
+
+void Kivio1DStencil::disconnectFromTargets()
+{
+  KivioConnectorPoint *p;
+  p = m_pConnectorPoints->first();
+
+  while( p )
+  {
+    p->disconnect(true);
+    p = m_pConnectorPoints->next();
+  }
+}
Index: kiviopart/kiviosdk/kivio_1d_stencil.h
===================================================================
RCS file: /home/kde/koffice/kivio/kiviopart/kiviosdk/kivio_1d_stencil.h,v
retrieving revision 1.7
diff -u -p -r1.7 kivio_1d_stencil.h
--- kiviopart/kiviosdk/kivio_1d_stencil.h	30 Jun 2003 22:13:09 -0000	1.7
+++ kiviopart/kiviosdk/kivio_1d_stencil.h	26 Aug 2003 12:54:08 -0000
@@ -139,6 +139,7 @@ public:
     // returns which resize handles are valid
     virtual int resizeHandlePositions();
 
+    virtual void disconnectFromTargets();
 };
 
 



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

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