karbon
vlayercmd.cc00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "vlayer.h"
00022 #include "vlayercmd.h"
00023 #include "vdocument.h"
00024
00025 VLayerCmd::VLayerCmd( VDocument* doc, const QString& name, VLayer* layer, VLayerCmdType order )
00026 : VCommand( doc, name, "14_layers" ), m_layer( layer ), m_cmdType( order )
00027 {
00028 if( order == addLayer )
00029 {
00030 layer->setState( VObject::deleted );
00031 document()->insertLayer( layer );
00032 }
00033
00034 m_oldState = layer->state();
00035 }
00036
00037 void
00038 VLayerCmd::execute()
00039 {
00040 switch( m_cmdType )
00041 {
00042 case addLayer:
00043 m_layer->setState( VObject::normal );
00044 break;
00045
00046 case deleteLayer:
00047 m_layer->setState( VObject::deleted );
00048 break;
00049
00050 case raiseLayer:
00051 document()->raiseLayer( m_layer );
00052 break;
00053
00054 case lowerLayer:
00055 document()->lowerLayer( m_layer );
00056 break;
00057 }
00058
00059 setSuccess( true );
00060 }
00061
00062 void
00063 VLayerCmd::unexecute()
00064 {
00065 switch ( m_cmdType )
00066 {
00067 case addLayer:
00068 m_layer->setState( VObject::deleted );
00069 break;
00070
00071 case deleteLayer:
00072 m_layer->setState( m_oldState );
00073 break;
00074
00075 case raiseLayer:
00076 document()->lowerLayer( m_layer );
00077 break;
00078
00079 case lowerLayer:
00080 document()->raiseLayer( m_layer );
00081 break;
00082 }
00083
00084 setSuccess( false );
00085 }
00086
|