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

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

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

On Wednesday 27 August 2003 10:52, Peter Simonsson wrote:
> 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...
And with a working patch this time :(
- -- 
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/TMfPjR6JKcrOq3sRArJrAKC9V9PRE2xHdSRou99YUQDMlVq7ygCfUuGS
DzRt0bRtGmNAXCdYCcOo8c0=
=38SH
-----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	27 Aug 2003 08:48:20 -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	27 Aug 2003 08:48:20 -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	27 Aug 2003 08:48:21 -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	27 Aug 2003 08:48:21 -0000
@@ -139,6 +139,7 @@ public:
     // returns which resize handles are valid
     virtual int resizeHandlePositions();
 
+    virtual void disconnectFromTargets();
 };
 
 



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


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

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