[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/kivio
From: Peter Simonsson <psn () linux ! se>
Date: 2005-12-03 10:19:24
Message-ID: 1133605164.629011.14405.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 485186 by psn:
Make it posible to undo the target tool
M +18 -0 kiviopart/kivio_command.cc
M +14 -0 kiviopart/kivio_command.h
M +1 -0 kiviopart/kiviosdk/kivio_connector_target.h
M +16 -0 kiviopart/kiviosdk/kivio_sml_stencil.cpp
M +1 -0 kiviopart/kiviosdk/kivio_sml_stencil.h
M +1 -0 kiviopart/kiviosdk/kivio_stencil.h
M +4 -3 plugins/kiviotargettool/kiviotargettool.cpp
--- trunk/koffice/kivio/kiviopart/kivio_command.cc #485185:485186
@@ -661,3 +661,21 @@
m_page->doc()->updateProtectPanelCheckBox();
}
+KivioAddConnectorTargetCommand::KivioAddConnectorTargetCommand(const QString& name, KivioPage* \
page, + KivioStencil* stencil, const KoPoint& targetPoint) : KNamedCommand(name)
+{
+ m_page = page;
+ m_stencil = stencil;
+ m_targetPoint = targetPoint;
+}
+void KivioAddConnectorTargetCommand::execute()
+{
+ m_stencil->addConnectorTarget(m_targetPoint);
+ m_page->doc()->updateView(m_page);
+}
+
+void KivioAddConnectorTargetCommand::unexecute()
+{
+ m_stencil->removeConnectorTarget(m_targetPoint);
+ m_page->doc()->updateView(m_page);
+}
--- trunk/koffice/kivio/kiviopart/kivio_command.h #485185:485186
@@ -397,6 +397,20 @@
bool m_bValue;
};
+class KivioAddConnectorTargetCommand : public KNamedCommand
+{
+ public:
+ KivioAddConnectorTargetCommand(const QString& name, KivioPage* page,
+ KivioStencil* stencil, const KoPoint& targetPoint);
+ virtual void execute();
+ virtual void unexecute();
+
+ protected:
+ KivioPage* m_page;
+ KivioStencil* m_stencil;
+ KoPoint m_targetPoint;
+};
+
#endif
--- trunk/koffice/kivio/kiviopart/kiviosdk/kivio_connector_target.h #485185:485186
@@ -50,6 +50,7 @@
inline float x() { return m_position.x(); }
inline float y() { return m_position.y(); }
+ inline KoPoint position() { return m_position; }
void setId( int id );
inline int id() { return m_id; }
--- trunk/koffice/kivio/kiviopart/kiviosdk/kivio_sml_stencil.cpp #485185:485186
@@ -2093,6 +2093,22 @@
m_pConnectorTargets->append(target);
}
+void KivioSMLStencil::removeConnectorTarget(const KoPoint& pos)
+{
+ KivioConnectorTarget* target = m_pConnectorTargets->first();
+
+ while(target)
+ {
+ if(target->position() == pos)
+ {
+ m_pConnectorTargets->remove(target);
+ return;
+ }
+
+ target = m_pConnectorTargets->next();
+ }
+}
+
bool KivioSMLStencil::hasTextBox() const
{
KivioShape* pShape = m_pShapeList->first();
--- trunk/koffice/kivio/kiviopart/kiviosdk/kivio_sml_stencil.h #485185:485186
@@ -161,6 +161,7 @@
virtual QString text(const QString& name);
virtual void addConnectorTarget(const KoPoint&);
+ virtual void removeConnectorTarget(const KoPoint&);
virtual bool hasTextBox() const;
};
--- trunk/koffice/kivio/kiviopart/kiviosdk/kivio_stencil.h #485185:485186
@@ -273,6 +273,7 @@
virtual KoPoint pinPoint() const { return m_pinPoint; }
virtual void addConnectorTarget(const KoPoint&) {}
+ virtual void removeConnectorTarget(const KoPoint&) {}
virtual bool isInRect(const KoRect& rect);
--- trunk/koffice/kivio/plugins/kiviotargettool/kiviotargettool.cpp #485185:485186
@@ -29,6 +29,7 @@
#include "kivio_doc.h"
#include "mousetoolaction.h"
#include "kivio_pluginmanager.h"
+#include "kivio_command.h"
namespace Kivio {
TargetTool::TargetTool(KivioView* parent) : MouseTool(parent, "Add Target Mouse Tool")
@@ -71,9 +72,9 @@
void TargetTool::applyToolAction(KivioStencil* stencil, const KoPoint& pos)
{
- //TODO Add undo support!
- stencil->addConnectorTarget(pos);
- view()->doc()->updateView(view()->activePage());
+ KivioAddConnectorTargetCommand* command = new KivioAddConnectorTargetCommand(i18n("Add \
Connector Target"), view()->activePage(), stencil, pos); + command->execute();
+ view()->doc()->addCommand(command);
}
void TargetTool::mousePress(QMouseEvent* e)
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic