Loading common/class_undoredo_container.cpp +21 −22 Original line number Diff line number Diff line Loading @@ -33,11 +33,10 @@ ITEM_PICKER::ITEM_PICKER( EDA_ITEM* aItem, UNDO_REDO_T aUndoRedoStatus ) { m_UndoRedoStatus = aUndoRedoStatus; m_PickedItem = aItem; m_PickedItemType = TYPE_NOT_INIT; m_PickerFlags = 0; m_Link = NULL; m_undoRedoStatus = aUndoRedoStatus; SetItem( aItem ); m_pickerFlags = 0; m_link = NULL; } Loading Loading @@ -75,7 +74,7 @@ bool PICKED_ITEMS_LIST::ContainsItem( EDA_ITEM* aItem ) const { for( size_t i = 0; i < m_ItemsList.size(); i++ ) { if( m_ItemsList[ i ].m_PickedItem == aItem ) if( m_ItemsList[ i ].GetItem() == aItem ) return true; } Loading @@ -97,9 +96,9 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems() while( GetCount() > 0 ) { ITEM_PICKER wrapper = PopItem(); if( wrapper.m_PickedItem == NULL ) // No more item in list. if( wrapper.GetItem() == NULL ) // No more item in list. break; switch( wrapper.m_UndoRedoStatus ) switch( wrapper.GetStatus() ) { case UR_UNSPECIFIED: if( show_error_message ) Loading @@ -112,7 +111,7 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems() { // Specific to eeschema: a linked list of wires is stored. The wrapper picks only // the first item (head of list), and is owner of all picked items. EDA_ITEM* item = wrapper.m_PickedItem; EDA_ITEM* item = wrapper.GetItem(); while( item ) { Loading @@ -135,7 +134,7 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems() case UR_CHANGED: case UR_EXCHANGE_T: delete wrapper.m_Link; // the picker is owner of this item delete wrapper.GetLink(); // the picker is owner of this item break; case UR_DELETED: // the picker is owner of this item Loading @@ -146,12 +145,12 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems() * copy of the current module when changed), * and the picker is owner of this item */ delete wrapper.m_PickedItem; delete wrapper.GetItem(); break; default: wxFAIL_MSG( wxString::Format( wxT( "Cannot clear unknown undo/redo command %d" ), wrapper.m_UndoRedoStatus ) ); wrapper.GetStatus() ) ); break; } } Loading @@ -172,7 +171,7 @@ ITEM_PICKER PICKED_ITEMS_LIST::GetItemWrapper( unsigned int aIdx ) EDA_ITEM* PICKED_ITEMS_LIST::GetPickedItem( unsigned int aIdx ) { if( aIdx < m_ItemsList.size() ) return m_ItemsList[aIdx].m_PickedItem; return m_ItemsList[aIdx].GetItem(); else return NULL; } Loading @@ -181,7 +180,7 @@ EDA_ITEM* PICKED_ITEMS_LIST::GetPickedItem( unsigned int aIdx ) EDA_ITEM* PICKED_ITEMS_LIST::GetPickedItemLink( unsigned int aIdx ) { if( aIdx < m_ItemsList.size() ) return m_ItemsList[aIdx].m_Link; return m_ItemsList[aIdx].GetLink(); else return NULL; } Loading @@ -190,7 +189,7 @@ EDA_ITEM* PICKED_ITEMS_LIST::GetPickedItemLink( unsigned int aIdx ) UNDO_REDO_T PICKED_ITEMS_LIST::GetPickedItemStatus( unsigned int aIdx ) { if( aIdx < m_ItemsList.size() ) return m_ItemsList[aIdx].m_UndoRedoStatus; return m_ItemsList[aIdx].GetStatus(); else return UR_UNSPECIFIED; } Loading @@ -199,7 +198,7 @@ UNDO_REDO_T PICKED_ITEMS_LIST::GetPickedItemStatus( unsigned int aIdx ) int PICKED_ITEMS_LIST::GetPickerFlags( unsigned aIdx ) { if( aIdx < m_ItemsList.size() ) return m_ItemsList[aIdx].m_PickerFlags; return m_ItemsList[aIdx].GetFlags(); else return 0; } Loading @@ -209,7 +208,7 @@ bool PICKED_ITEMS_LIST::SetPickedItem( EDA_ITEM* aItem, unsigned aIdx ) { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_PickedItem = aItem; m_ItemsList[aIdx].SetItem( aItem ); return true; } else Loading @@ -221,7 +220,7 @@ bool PICKED_ITEMS_LIST::SetPickedItemLink( EDA_ITEM* aLink, unsigned aIdx ) { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_Link = aLink; m_ItemsList[aIdx].SetLink( aLink ); return true; } else Loading @@ -233,8 +232,8 @@ bool PICKED_ITEMS_LIST::SetPickedItem( EDA_ITEM* aItem, UNDO_REDO_T aStatus, uns { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_PickedItem = aItem; m_ItemsList[aIdx].m_UndoRedoStatus = aStatus; m_ItemsList[aIdx].SetItem( aItem ); m_ItemsList[aIdx].SetStatus( aStatus ); return true; } else Loading @@ -246,7 +245,7 @@ bool PICKED_ITEMS_LIST::SetPickedItemStatus( UNDO_REDO_T aStatus, unsigned aIdx { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_UndoRedoStatus = aStatus; m_ItemsList[aIdx].SetStatus( aStatus ); return true; } else Loading @@ -258,7 +257,7 @@ bool PICKED_ITEMS_LIST::SetPickerFlags( int aFlags, unsigned aIdx ) { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_PickerFlags = aFlags; m_ItemsList[aIdx].SetFlags( aFlags ); return true; } else Loading eeschema/edit_label.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -263,12 +263,12 @@ void SCH_EDIT_FRAME::OnConvertTextType( wxCommandEvent& aEvent ) } // Prepare undo command for delete old text picker.m_UndoRedoStatus = UR_DELETED; picker.SetStatus( UR_DELETED ); picker.SetLink( NULL ); pickList.PushItem( picker ); // Prepare undo command for new text picker.m_UndoRedoStatus = UR_NEW; picker.SetStatus( UR_NEW ); picker.SetItem(newtext); pickList.PushItem( picker ); Loading eeschema/libedit_undo_redo.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ void LIB_EDIT_FRAME::GetComponentFromRedoList( wxCommandEvent& event ) lastcmd = GetScreen()->PopCommandFromRedoList(); wrapper = lastcmd->PopItem(); m_component = (LIB_COMPONENT*) wrapper.m_PickedItem; m_component = (LIB_COMPONENT*) wrapper.GetItem(); if( m_component == NULL ) return; Loading Loading @@ -84,7 +84,7 @@ void LIB_EDIT_FRAME::GetComponentFromUndoList( wxCommandEvent& event ) lastcmd = GetScreen()->PopCommandFromUndoList(); wrapper = lastcmd->PopItem(); m_component = (LIB_COMPONENT*) wrapper.m_PickedItem; m_component = (LIB_COMPONENT*) wrapper.GetItem(); if( m_component == NULL ) return; Loading eeschema/sch_screen.cpp +1 −3 Original line number Diff line number Diff line Loading @@ -872,7 +872,6 @@ void SCH_SCREEN::addConnectedItemsToBlock( const wxPoint& position ) for( item = GetDrawItems(); item != NULL; item = item->Next() ) { picker.SetItem( item ); picker.SetItemType( item->Type() ); if( !item->IsConnectable() || !item->IsConnected( position ) || (item->GetFlags() & SKIP_STRUCT) ) Loading Loading @@ -901,7 +900,7 @@ void SCH_SCREEN::addConnectedItemsToBlock( const wxPoint& position ) if( addinlist ) { picker.m_PickerFlags = item->GetFlags(); picker.SetFlags( item->GetFlags() ); m_BlockLocate.m_ItemsSelection.PushItem( picker ); } } Loading @@ -922,7 +921,6 @@ int SCH_SCREEN::UpdatePickList() if( item->HitTest( area ) ) { picker.SetItem( item ); picker.SetItemType( item->Type() ); m_BlockLocate.PushItem( picker ); } } Loading eeschema/schematic_undo_redo.cpp +4 −10 Original line number Diff line number Diff line Loading @@ -121,24 +121,18 @@ void SCH_EDIT_FRAME::SaveCopyInUndoList( SCH_ITEM* aItem, if( aItem == NULL && ( aCommandType != UR_WIRE_IMAGE ) ) return; SCH_ITEM* CopyOfItem; PICKED_ITEMS_LIST* commandToUndo = new PICKED_ITEMS_LIST(); commandToUndo->m_TransformPoint = aTransformPoint; ITEM_PICKER itemWrapper( aItem, aCommandType ); if( aItem ) { itemWrapper.m_PickedItemType = aItem->Type(); itemWrapper.m_PickerFlags = aItem->GetFlags(); } itemWrapper.SetFlags( aItem->GetFlags() ); switch( aCommandType ) { case UR_CHANGED: /* Create a copy of item */ CopyOfItem = DuplicateStruct( aItem, true ); itemWrapper.m_Link = CopyOfItem; if( CopyOfItem ) itemWrapper.SetLink( DuplicateStruct( aItem, true ) ); commandToUndo->PushItem( itemWrapper ); break; Loading Loading
common/class_undoredo_container.cpp +21 −22 Original line number Diff line number Diff line Loading @@ -33,11 +33,10 @@ ITEM_PICKER::ITEM_PICKER( EDA_ITEM* aItem, UNDO_REDO_T aUndoRedoStatus ) { m_UndoRedoStatus = aUndoRedoStatus; m_PickedItem = aItem; m_PickedItemType = TYPE_NOT_INIT; m_PickerFlags = 0; m_Link = NULL; m_undoRedoStatus = aUndoRedoStatus; SetItem( aItem ); m_pickerFlags = 0; m_link = NULL; } Loading Loading @@ -75,7 +74,7 @@ bool PICKED_ITEMS_LIST::ContainsItem( EDA_ITEM* aItem ) const { for( size_t i = 0; i < m_ItemsList.size(); i++ ) { if( m_ItemsList[ i ].m_PickedItem == aItem ) if( m_ItemsList[ i ].GetItem() == aItem ) return true; } Loading @@ -97,9 +96,9 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems() while( GetCount() > 0 ) { ITEM_PICKER wrapper = PopItem(); if( wrapper.m_PickedItem == NULL ) // No more item in list. if( wrapper.GetItem() == NULL ) // No more item in list. break; switch( wrapper.m_UndoRedoStatus ) switch( wrapper.GetStatus() ) { case UR_UNSPECIFIED: if( show_error_message ) Loading @@ -112,7 +111,7 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems() { // Specific to eeschema: a linked list of wires is stored. The wrapper picks only // the first item (head of list), and is owner of all picked items. EDA_ITEM* item = wrapper.m_PickedItem; EDA_ITEM* item = wrapper.GetItem(); while( item ) { Loading @@ -135,7 +134,7 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems() case UR_CHANGED: case UR_EXCHANGE_T: delete wrapper.m_Link; // the picker is owner of this item delete wrapper.GetLink(); // the picker is owner of this item break; case UR_DELETED: // the picker is owner of this item Loading @@ -146,12 +145,12 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems() * copy of the current module when changed), * and the picker is owner of this item */ delete wrapper.m_PickedItem; delete wrapper.GetItem(); break; default: wxFAIL_MSG( wxString::Format( wxT( "Cannot clear unknown undo/redo command %d" ), wrapper.m_UndoRedoStatus ) ); wrapper.GetStatus() ) ); break; } } Loading @@ -172,7 +171,7 @@ ITEM_PICKER PICKED_ITEMS_LIST::GetItemWrapper( unsigned int aIdx ) EDA_ITEM* PICKED_ITEMS_LIST::GetPickedItem( unsigned int aIdx ) { if( aIdx < m_ItemsList.size() ) return m_ItemsList[aIdx].m_PickedItem; return m_ItemsList[aIdx].GetItem(); else return NULL; } Loading @@ -181,7 +180,7 @@ EDA_ITEM* PICKED_ITEMS_LIST::GetPickedItem( unsigned int aIdx ) EDA_ITEM* PICKED_ITEMS_LIST::GetPickedItemLink( unsigned int aIdx ) { if( aIdx < m_ItemsList.size() ) return m_ItemsList[aIdx].m_Link; return m_ItemsList[aIdx].GetLink(); else return NULL; } Loading @@ -190,7 +189,7 @@ EDA_ITEM* PICKED_ITEMS_LIST::GetPickedItemLink( unsigned int aIdx ) UNDO_REDO_T PICKED_ITEMS_LIST::GetPickedItemStatus( unsigned int aIdx ) { if( aIdx < m_ItemsList.size() ) return m_ItemsList[aIdx].m_UndoRedoStatus; return m_ItemsList[aIdx].GetStatus(); else return UR_UNSPECIFIED; } Loading @@ -199,7 +198,7 @@ UNDO_REDO_T PICKED_ITEMS_LIST::GetPickedItemStatus( unsigned int aIdx ) int PICKED_ITEMS_LIST::GetPickerFlags( unsigned aIdx ) { if( aIdx < m_ItemsList.size() ) return m_ItemsList[aIdx].m_PickerFlags; return m_ItemsList[aIdx].GetFlags(); else return 0; } Loading @@ -209,7 +208,7 @@ bool PICKED_ITEMS_LIST::SetPickedItem( EDA_ITEM* aItem, unsigned aIdx ) { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_PickedItem = aItem; m_ItemsList[aIdx].SetItem( aItem ); return true; } else Loading @@ -221,7 +220,7 @@ bool PICKED_ITEMS_LIST::SetPickedItemLink( EDA_ITEM* aLink, unsigned aIdx ) { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_Link = aLink; m_ItemsList[aIdx].SetLink( aLink ); return true; } else Loading @@ -233,8 +232,8 @@ bool PICKED_ITEMS_LIST::SetPickedItem( EDA_ITEM* aItem, UNDO_REDO_T aStatus, uns { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_PickedItem = aItem; m_ItemsList[aIdx].m_UndoRedoStatus = aStatus; m_ItemsList[aIdx].SetItem( aItem ); m_ItemsList[aIdx].SetStatus( aStatus ); return true; } else Loading @@ -246,7 +245,7 @@ bool PICKED_ITEMS_LIST::SetPickedItemStatus( UNDO_REDO_T aStatus, unsigned aIdx { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_UndoRedoStatus = aStatus; m_ItemsList[aIdx].SetStatus( aStatus ); return true; } else Loading @@ -258,7 +257,7 @@ bool PICKED_ITEMS_LIST::SetPickerFlags( int aFlags, unsigned aIdx ) { if( aIdx < m_ItemsList.size() ) { m_ItemsList[aIdx].m_PickerFlags = aFlags; m_ItemsList[aIdx].SetFlags( aFlags ); return true; } else Loading
eeschema/edit_label.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -263,12 +263,12 @@ void SCH_EDIT_FRAME::OnConvertTextType( wxCommandEvent& aEvent ) } // Prepare undo command for delete old text picker.m_UndoRedoStatus = UR_DELETED; picker.SetStatus( UR_DELETED ); picker.SetLink( NULL ); pickList.PushItem( picker ); // Prepare undo command for new text picker.m_UndoRedoStatus = UR_NEW; picker.SetStatus( UR_NEW ); picker.SetItem(newtext); pickList.PushItem( picker ); Loading
eeschema/libedit_undo_redo.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -48,7 +48,7 @@ void LIB_EDIT_FRAME::GetComponentFromRedoList( wxCommandEvent& event ) lastcmd = GetScreen()->PopCommandFromRedoList(); wrapper = lastcmd->PopItem(); m_component = (LIB_COMPONENT*) wrapper.m_PickedItem; m_component = (LIB_COMPONENT*) wrapper.GetItem(); if( m_component == NULL ) return; Loading Loading @@ -84,7 +84,7 @@ void LIB_EDIT_FRAME::GetComponentFromUndoList( wxCommandEvent& event ) lastcmd = GetScreen()->PopCommandFromUndoList(); wrapper = lastcmd->PopItem(); m_component = (LIB_COMPONENT*) wrapper.m_PickedItem; m_component = (LIB_COMPONENT*) wrapper.GetItem(); if( m_component == NULL ) return; Loading
eeschema/sch_screen.cpp +1 −3 Original line number Diff line number Diff line Loading @@ -872,7 +872,6 @@ void SCH_SCREEN::addConnectedItemsToBlock( const wxPoint& position ) for( item = GetDrawItems(); item != NULL; item = item->Next() ) { picker.SetItem( item ); picker.SetItemType( item->Type() ); if( !item->IsConnectable() || !item->IsConnected( position ) || (item->GetFlags() & SKIP_STRUCT) ) Loading Loading @@ -901,7 +900,7 @@ void SCH_SCREEN::addConnectedItemsToBlock( const wxPoint& position ) if( addinlist ) { picker.m_PickerFlags = item->GetFlags(); picker.SetFlags( item->GetFlags() ); m_BlockLocate.m_ItemsSelection.PushItem( picker ); } } Loading @@ -922,7 +921,6 @@ int SCH_SCREEN::UpdatePickList() if( item->HitTest( area ) ) { picker.SetItem( item ); picker.SetItemType( item->Type() ); m_BlockLocate.PushItem( picker ); } } Loading
eeschema/schematic_undo_redo.cpp +4 −10 Original line number Diff line number Diff line Loading @@ -121,24 +121,18 @@ void SCH_EDIT_FRAME::SaveCopyInUndoList( SCH_ITEM* aItem, if( aItem == NULL && ( aCommandType != UR_WIRE_IMAGE ) ) return; SCH_ITEM* CopyOfItem; PICKED_ITEMS_LIST* commandToUndo = new PICKED_ITEMS_LIST(); commandToUndo->m_TransformPoint = aTransformPoint; ITEM_PICKER itemWrapper( aItem, aCommandType ); if( aItem ) { itemWrapper.m_PickedItemType = aItem->Type(); itemWrapper.m_PickerFlags = aItem->GetFlags(); } itemWrapper.SetFlags( aItem->GetFlags() ); switch( aCommandType ) { case UR_CHANGED: /* Create a copy of item */ CopyOfItem = DuplicateStruct( aItem, true ); itemWrapper.m_Link = CopyOfItem; if( CopyOfItem ) itemWrapper.SetLink( DuplicateStruct( aItem, true ) ); commandToUndo->PushItem( itemWrapper ); break; Loading