X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=contrib%2Fbobtoolz%2Ffunchandlers-GTK.cpp;fp=contrib%2Fbobtoolz%2Ffunchandlers-GTK.cpp;h=5e7b25ce1d65379ff1fae15a65dd7f44cad3c0c1;hb=71562074b6b78aa5edaf908b24b00c75fcc5fe78;hp=5d1f16a910c749b058816a74152ed53b8861ed69;hpb=f2516c981f887040ef545c9d821392f9f26c6d19;p=xonotic%2Fnetradiant.git diff --git a/contrib/bobtoolz/funchandlers-GTK.cpp b/contrib/bobtoolz/funchandlers-GTK.cpp index 5d1f16a9..5e7b25ce 100644 --- a/contrib/bobtoolz/funchandlers-GTK.cpp +++ b/contrib/bobtoolz/funchandlers-GTK.cpp @@ -499,7 +499,7 @@ void DoSplitPatch() { patch.LoadFromPatch(instance); - std::list patchList = patch.Split( true, true ); + std::list patchList = patch.Split(); for(std::list::iterator patches = patchList.begin(); patches != patchList.end(); patches++) { (*patches).BuildInRadiant(); } @@ -507,6 +507,64 @@ void DoSplitPatch() { Path_deleteTop(instance.path()); } +void DoSplitPatchCols() { + UndoableCommand undo("bobToolz.splitPatchCols"); + + DPatch patch; + + // ensure we have something selected + if( GlobalSelectionSystem().countSelected() != 1 ) + { + DoMessageBox("Invalid number of patches selected, choose 1 only", "Error", eMB_OK); + return; + } + + scene::Instance& instance = GlobalSelectionSystem().ultimateSelected(); + + if( !Node_isPatch(instance.path().top()) ) { + DoMessageBox("You must select ONLY patches", "Error", eMB_OK); + return; + } + + patch.LoadFromPatch(instance); + + std::list patchList = patch.SplitCols(); + for(std::list::iterator patches = patchList.begin(); patches != patchList.end(); patches++) { + (*patches).BuildInRadiant(); + } + + Path_deleteTop(instance.path()); +} + +void DoSplitPatchRows() { + UndoableCommand undo("bobToolz.splitPatchRows"); + + DPatch patch; + + // ensure we have something selected + if( GlobalSelectionSystem().countSelected() != 1 ) + { + DoMessageBox("Invalid number of patches selected, choose 1 only", "Error", eMB_OK); + return; + } + + scene::Instance& instance = GlobalSelectionSystem().ultimateSelected(); + + if( !Node_isPatch(instance.path().top()) ) { + DoMessageBox("You must select ONLY patches", "Error", eMB_OK); + return; + } + + patch.LoadFromPatch(instance); + + std::list patchList = patch.SplitRows(); + for(std::list::iterator patches = patchList.begin(); patches != patchList.end(); patches++) { + (*patches).BuildInRadiant(); + } + + Path_deleteTop(instance.path()); +} + void DoVisAnalyse() { char filename[1024];