karbon
vshapecmd.cc00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "vcomposite.h"
00023 #include "vdocument.h"
00024 #include "vselection.h"
00025 #include "vshapecmd.h"
00026
00027
00028 VShapeCmd::VShapeCmd( VDocument* doc, const QString& name, VPath* shape, const QString& icon )
00029 : VCommand( doc, name, icon ), m_shape( shape )
00030 {
00031 }
00032
00033 void
00034 VShapeCmd::execute()
00035 {
00036 if( !m_shape )
00037 return;
00038
00039 if( m_shape->state() == VObject::deleted )
00040 {
00041 document()->selection()->clear();
00042 m_shape->setState( VObject::normal );
00043 document()->selection()->append( m_shape );
00044 }
00045 else
00046 {
00047 m_shape->setState( VObject::normal );
00048 m_shape->setFill( *( document()->selection()->fill() ) );
00049 m_shape->setStroke( *( document()->selection()->stroke() ) );
00050
00051
00052 document()->append( m_shape );
00053 document()->selection()->clear();
00054 document()->selection()->append( m_shape );
00055 }
00056
00057 setSuccess( true );
00058 }
00059
00060 void
00061 VShapeCmd::unexecute()
00062 {
00063 if( !m_shape )
00064 return;
00065
00066 document()->selection()->take( *m_shape );
00067 m_shape->setState( VObject::deleted );
00068
00069 setSuccess( false );
00070 }
00071
|