From: Rudolf Polzer Date: Sun, 28 Mar 2010 17:32:53 +0000 (+0200) Subject: Merge branch 'osxnetradiant' X-Git-Tag: xonotic-v0.5.0~277 X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fnetradiant.git;a=commitdiff_plain;h=d40c79f30c4029daa1f92e07b728518911a98d5e;hp=--cc Merge branch 'osxnetradiant' Conflicts: contrib/bobtoolz/DPatch.cpp contrib/bobtoolz/bobToolz-GTK.cpp contrib/bobtoolz/funchandlers-GTK.cpp install-dylibs.sh setup/data/osx/NetRadiant.app/Contents/MacOS/netradiant.sh --- d40c79f30c4029daa1f92e07b728518911a98d5e diff --cc contrib/bobtoolz/funchandlers-GTK.cpp index 5e7b25ce,8f26d714..2e4fce17 --- a/contrib/bobtoolz/funchandlers-GTK.cpp +++ b/contrib/bobtoolz/funchandlers-GTK.cpp @@@ -507,64 -537,68 +537,126 @@@ 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); + globalErrorStream() << "bobToolz SplitPatchCols: Invalid number of patches selected, choose 1 only.\n"; + return; + } + + scene::Instance& instance = GlobalSelectionSystem().ultimateSelected(); + + if( !Node_isPatch(instance.path().top()) ) { + //DoMessageBox("No patch selected, select ONLY one patch", "Error", eMB_OK); + globalErrorStream() << "bobToolz SplitPatchCols: No patch selected, select ONLY 1 patch.\n"; + 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); + globalErrorStream() << "bobToolz SplitPatchRows: Invalid number of patches selected, choose 1 only.\n"; + return; + } + + scene::Instance& instance = GlobalSelectionSystem().ultimateSelected(); + + if( !Node_isPatch(instance.path().top()) ) { + //DoMessageBox("No patch selected, select ONLY one patch", "Error", eMB_OK); + globalErrorStream() << "bobToolz SplitPatchRows: No patch selected, select ONLY 1 patch.\n"; + 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 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];