From 03d3dfccad69babc6060bb5bee223c149fcf2edb Mon Sep 17 00:00:00 2001 From: Garux Date: Thu, 21 Oct 2021 19:55:37 +0300 Subject: [PATCH] add feedback from bobToolz::patch operations fails --- contrib/bobtoolz/DPatch.cpp | 29 +++++++++------------------ contrib/bobtoolz/funchandlers-GTK.cpp | 16 +++++++-------- 2 files changed, 17 insertions(+), 28 deletions(-) diff --git a/contrib/bobtoolz/DPatch.cpp b/contrib/bobtoolz/DPatch.cpp index 76a85db4..817fbaa8 100644 --- a/contrib/bobtoolz/DPatch.cpp +++ b/contrib/bobtoolz/DPatch.cpp @@ -444,7 +444,7 @@ std::list DPatch::SplitCols(){ } } else { - //globalErrorStream() << "bobToolz SplitPatchRows: Patch has not enough rows for splitting.\n"; + globalWarningStream() << "bobToolz SplitPatchCols: Patch has not enough columns for splitting.\n"; patchList.push_back( *this ); } return patchList; @@ -476,6 +476,7 @@ std::list DPatch::SplitRows(){ } else { + globalWarningStream() << "bobToolz SplitPatchRows: Patch has not enough rows for splitting.\n"; patchList.push_back( *this ); } return patchList; @@ -486,30 +487,20 @@ std::list DPatch::Split(){ if ( height >= 5 ) { std::list patchColList = SplitCols(); - for ( std::list::iterator patchesCol = patchColList.begin(); patchesCol != patchColList.end(); patchesCol++ ) - { - if( width >= 5 ){ - std::list patchRowList = ( *patchesCol ).SplitRows(); - for ( std::list::iterator patchesRow = patchRowList.begin(); patchesRow != patchRowList.end(); patchesRow++ ) - { - patchList.push_front( *patchesRow ); - } - } - else{ - patchList.push_front( *patchesCol ); - } + if( width >= 5 ){ + for( auto&& patchesCol : patchColList ) + patchList.splice( patchList.cend(), patchesCol.SplitRows() ); + } + else{ + patchList.swap( patchColList ); } } else if ( width >= 5 ) { - std::list patchRowList = SplitRows(); - for ( std::list::iterator patchesRow = patchRowList.begin(); patchesRow != patchRowList.end(); patchesRow++ ) - { - patchList.push_front( *patchesRow ); - } + patchList = SplitRows(); } else { - //globalErrorStream() << "bobToolz SplitPatchRows: Patch has not enough rows for splitting.\n"; + globalWarningStream() << "bobToolz SplitPatch: Patch has not enough rows and columns for splitting.\n"; patchList.push_back( *this ); } return patchList; diff --git a/contrib/bobtoolz/funchandlers-GTK.cpp b/contrib/bobtoolz/funchandlers-GTK.cpp index 1340b887..e5ec0d8e 100644 --- a/contrib/bobtoolz/funchandlers-GTK.cpp +++ b/contrib/bobtoolz/funchandlers-GTK.cpp @@ -473,6 +473,7 @@ void DoMergePatches(){ delete newPatch;*/ if ( !newPatch ) { + globalErrorStream() << "bobToolz.mergePatch: Merge result would exceed max patch rows.\n"; } else { @@ -519,9 +520,8 @@ void DoSplitPatch() { patch.LoadFromPatch( instance ); - std::list patchList = patch.Split(); - for ( std::list::iterator patches = patchList.begin(); patches != patchList.end(); patches++ ) { - ( *patches ).BuildInRadiant( instance.path().parent().get_pointer() ); + for ( auto&& p : patch.Split() ) { + p.BuildInRadiant( instance.path().parent().get_pointer() ); } Path_deleteTop( instance.path() ); @@ -549,9 +549,8 @@ void DoSplitPatchCols() { patch.LoadFromPatch( instance ); - std::list patchList = patch.SplitCols(); - for ( std::list::iterator patches = patchList.begin(); patches != patchList.end(); patches++ ) { - ( *patches ).BuildInRadiant( instance.path().parent().get_pointer() ); + for ( auto&& p : patch.SplitCols() ) { + p.BuildInRadiant( instance.path().parent().get_pointer() ); } Path_deleteTop( instance.path() ); @@ -579,9 +578,8 @@ void DoSplitPatchRows() { patch.LoadFromPatch( instance ); - std::list patchList = patch.SplitRows(); - for ( std::list::iterator patches = patchList.begin(); patches != patchList.end(); patches++ ) { - ( *patches ).BuildInRadiant( instance.path().parent().get_pointer() ); + for ( auto&& p : patch.SplitRows() ) { + p.BuildInRadiant( instance.path().parent().get_pointer() ); } Path_deleteTop( instance.path() );