From 0a986b486a4caef57c4b3548c6822929b46c711d Mon Sep 17 00:00:00 2001 From: Eusebiu Marcu Date: Mon, 13 Dec 2010 23:29:16 +0200 Subject: [PATCH] Collapse all in project browser pad and class browser pad --- data/resources/StringResources.resx | 3 +++ .../image/BitmapResources/BitmapResources.res | 1 + .../ProjectBrowserIcons/Toolbar.Collapse.png | Bin 0 -> 1420 bytes .../Project/ICSharpCode.SharpDevelop.addin | 10 ++++++++++ .../Src/Gui/Pads/ClassBrowser/ClassBrowser.cs | 10 ++++++++++ .../ClassBrowserToolbarCommands.cs | 11 +++++++++++ .../Commands/ToolbarCommands.cs | 8 ++++++++ .../ProjectBrowser/ProjectBrowserControl.cs | 17 +++++++++++++++++ .../Resources/BitmapResources.resources | Bin 654336 -> 655255 bytes 9 files changed, 60 insertions(+) create mode 100644 data/resources/image/BitmapResources/ProjectBrowserIcons/Toolbar.Collapse.png diff --git a/data/resources/StringResources.resx b/data/resources/StringResources.resx index b1eec43930..f60e37e8a8 100644 --- a/data/resources/StringResources.resx +++ b/data/resources/StringResources.resx @@ -3583,6 +3583,9 @@ You can also choose to store the setting in the .user-file instead of the projec Yes to All + + Collapse all nodes + File or directory name is already in use, choose a different one. diff --git a/data/resources/image/BitmapResources/BitmapResources.res b/data/resources/image/BitmapResources/BitmapResources.res index 76615e2224..0301ff5694 100644 --- a/data/resources/image/BitmapResources/BitmapResources.res +++ b/data/resources/image/BitmapResources/BitmapResources.res @@ -29,6 +29,7 @@ ProjectBrowser.MissingSolution = ProjectBrowserIcons\MissingSolution.png ProjectBrowser.Solution = ProjectBrowserIcons\Solution.png ProjectBrowser.Toolbar.Refresh = ProjectBrowserIcons\Toolbar.Refresh.png ProjectBrowser.Toolbar.ShowHiddenFiles = ProjectBrowserIcons\Toolbar.ShowHiddenFiles.png +ProjectBrowser.Toolbar.Collapse = ProjectBrowserIcons\Toolbar.Collapse.png ProjectBrowser.SolutionFolder.Closed = ProjectBrowserIcons\SolutionFolder.Closed.png ProjectBrowser.SolutionFolder.Open = ProjectBrowserIcons\SolutionFolder.Open.png ProjectBrowser.SolutionFolder.CreateNew = ProjectBrowserIcons\SolutionFolder.CreateNew.png diff --git a/data/resources/image/BitmapResources/ProjectBrowserIcons/Toolbar.Collapse.png b/data/resources/image/BitmapResources/ProjectBrowserIcons/Toolbar.Collapse.png new file mode 100644 index 0000000000000000000000000000000000000000..7bbd6e713a525e3d9a18268ec71763e2255763e3 GIT binary patch literal 1420 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NSs56Z83KGlT!G@Ip2=ojDF(?W3{y@RrJOX)IAxx3+9v0WQ^7gsqI2%07d*-? z`c_`@uf7~ycO|6$YGm`ZsFv&T?KcxTZl!eJPVK#uHSuot#C!Qu?-x$HpEmV#_RP;^ zGar`EepEg0NzMGn1#`cYF8orx^h^DUuQOKcXk7fPecAJliY2BVn>-S#XuXdm zw@+TWd;Z$}bGN^ozw_nFtw%TSKDluB%cZ+tFWvik<^Go|_rBhH@bv0~uh$=az4_?t zt;gSPKlyg&>9>1Nzu$fK?cTHRkDtDH@$%)XSFavC|Nh{`w}&sjKY8{2*_-dr-~4#- z_WR3s-(SA{@#@`=*YAJ6{qW=M$Di*%{do83=f}@KK79K5>C4YAUw?l621LKU|M>ai z$1h+Qj)EZ?0(*Ft6#(-ILrIWd@c)qw7=pjEs{*5uv%n*=n1O*?2!t6g-L3lr6l5>) z^mS#w!Xw4WA&@$OzX2#DS>hT|5}cn_Ql40p$`Fv4nOCCc=Nh6=W~^tbXLg}^Z4^+^ zMNb#U5RKsEAN_0+CRatCEKxb)(!%niVu!_zNJ*15Ykj_!ly2D?GG(er>XJx_D_5VS zsvdQ1W&K&X)6(+B49Sqqn~g392|r3!Qa*H;>CB7 + + @@ -768,6 +773,11 @@ label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowOtherMembers.Label}" class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowOtherMembers"/> + + diff --git a/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowser.cs b/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowser.cs index eb96ad05d9..377a658c46 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowser.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowser.cs @@ -172,6 +172,16 @@ namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser UpdateToolbars(); } + public void CollapseAll() + { + if (this.classBrowserTreeView == null) return; + if (this.classBrowserTreeView.Nodes == null || this.classBrowserTreeView.Nodes.Count == 0) return; + + foreach(TreeNode node in this.classBrowserTreeView.Nodes) { + node.Collapse(false); + } + } + void ClassBrowserTreeViewAfterSelect(object sender, TreeViewEventArgs e) { if (navigateBack) { diff --git a/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowserToolbarCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowserToolbarCommands.cs index 461f957913..a3566b259c 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowserToolbarCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ClassBrowser/ClassBrowserToolbarCommands.cs @@ -34,6 +34,17 @@ namespace ICSharpCode.SharpDevelop.Gui.ClassBrowser } } + public class ClassBrowserCollapseAll : AbstractMenuCommand + { + public override bool IsEnabled { + get { return true; } + } + public override void Run() + { + ClassBrowserPad.Instance.CollapseAll(); + } + } + #region Class browser filter public class SelectClassBrowserFilter : AbstractMenuCommand { diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ToolbarCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ToolbarCommands.cs index d9165e8ca6..5ae1990234 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ToolbarCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/ToolbarCommands.cs @@ -37,4 +37,12 @@ namespace ICSharpCode.SharpDevelop.Project.Commands ProjectBrowserPad.Instance.ProjectBrowserControl.RefreshView(); } } + + public class CollapseAllProjectBrowser : AbstractMenuCommand + { + public override void Run() + { + ProjectBrowserPad.Instance.ProjectBrowserControl.ExpandOrCollapseAll(false); + } + } } diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs index fabe7e2119..e04274091a 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs @@ -485,5 +485,22 @@ namespace ICSharpCode.SharpDevelop.Project this.ResumeLayout(false); } #endregion + + public void ExpandOrCollapseAll(bool expand) + { + if (this.treeView == null) return; + if (this.treeView.Nodes == null || this.treeView.Nodes.Count == 0) return; + + foreach(TreeNode node in this.treeView.Nodes) { + if (expand) { + node.ExpandAll(); + } + else { + node.Collapse(false); + } + } + + this.treeView.Nodes[0].Expand(); + } } } diff --git a/src/Main/StartUp/Project/Resources/BitmapResources.resources b/src/Main/StartUp/Project/Resources/BitmapResources.resources index 8740ee3c610027ed60ab5f99d07d39640c16b656..6c2cf3bb24dabec0247416ae25a76af6710377db 100644 GIT binary patch delta 1845 zcmZWo3s6+&89jU13-_`tZ&;9(<&8p6KtK?YC>Z1=%0nd>1QDYyEW0dHq@$n)CBB0E z3bBbn8c3oM&@4!FET9Q!V+543sPTbGjR`a&#ik{ev>#5KW}3P4?VbOe^Plhg&dx3W zmv`-dysPTP0SUkX*uY#**`4m}mP!|_+hJ>XgHJG;X7d{G&I(|w5%69Z&}|I79|hQC zv0ixPsJAXoU+g)NC#g zn+{aZ1WMU{Gbb-4-K|>$Bu}NB1H^{_d8B$wZ{H=r9!H>mHT%MBo}&}d5(~1H0^iao zSKWXz8W4mM(XfjIpiqD4!rwmQsyVxz49yX|V8kU;*vfCTvM|B(gAr)MJ(XY5#W zp)0pp!LAi5f-V5g2RU({Of!;xw(&yum zC(F~%xJv*hh+FT=i3WhUpgBq3g#WNMEE=htL)8r_3JNO%5s$4Ssh7K?1{ZS z?_cu5&?4KGJF}IIZuXQGRES^!Zyw#*R=m5dSVF~78MU_+OItZp9bm1KjNd6eP-|5s zI<+6zBJHaA4NCj$+V&gN`7PeT@Bh)=8RvN_V=9yOjPpWOVr|hU;?mkGe!MtvK=bMS?Wic)!$!~Rm$#u_e%Zp zJ$5G-`6i#PtT0~Okk##y){ts+uW`o;bz17}6Mt%mje5MXncZy24;<7uKZ;k*aa_oo z^lEzbz0W%8uKc63?vl4o=g~J2?$~=TPXE&@)x8&_mzsM*huv?!~_Jen>J5GEQ@b9Ich1csQ5BIbM9KO<*`jcwr(+S(s znA~%tUlhr&6qTx#suQPgMO3JVGVAXh`)6^D^Jw6QyQ<%H*!N9`^~1|Aza3Ru6RLIX z>d)Wv}sx9z(mKUWhXcMb!E^e zp8IoS-93+gKJJq|eF?;Y5QxD=D*S_>hl0Oi~k8 zt;4#;gP8#zXRP;jIjHuCG59=ay*SXm_o~$!=^nL%@-JT>ixKty4{>rZ!B7@v=)aHp zx^i!uGsb^B=fC%Ma{9A;leHsmx8f{3Y@IvD=Ej`*vb#{f{m1F8Z?nL0-C4V=$r`ReWoH`^VPt+15#e$5qQ+{$?Um)J3;1 J6vfWJ{}(!Ea0atDj=f^g)ycVB~Yf#B;|rMBJSnf3*4li zOafhNLwz>bGL`0!EL%nVfi3IW9Q|V%X_{=hu$eVkmaJOTmOZec?d;jv_kBOl=bZO> zhwo+g{*}G&E$yNL2mr0*8%P?BOhk?Cl^YBxlMTSZEx=0#;BYB05e*!z1SWUT9W|`H zNiEtdijjWQGIN71z-BLy$Mwl};JFmwJq@TU18!{qzRd$teZZ5n(pahVQ@3%4T+8`5 zO&OOcP4tJcFs`o=2v~tk{=~;_;6*AmJ>>nDsa+EIz8a`x^NUb|E@ocB`lmN271iE-_3xT zr*O6&SjVz=5&%6P2xkNBEW8#2^fduLZ37IOfG1So5N$Q5ITM)vtrqxvE&qH8;N1!w z$OTGhzj;Z<6nl?625jOXN4S6eYW6X8hu`_@fY+RK(fqKu+C)}MGLK@p#iPWL&yuOU zPyLq4yt~{}!j2EQ(s`UubM~wU9x3PXnSdfbODwyux6rI5%XyCH^}#B>fkGe@55)1M z^*VsTv6a?XB}p>s5X#JgMPQT zJVX(HsWiW#qK-yeQ%MhGQAN91^dDlTR{T0bBY_fe<0wr9$|c@bkw+`^rF2g>%Aem= zQMQoUI$ZMfsESn!=~PF&xOAE#9r@B7Swv!Wm+(zcfxbrE`kHjTP<(lXj_al3$P`WM zxgzH}nSvfUa8rewtU(veTZU)ogTN zT=fVe05{e^=cgS#sDlq(Xhti}TQoQpfl6Lz;pJ!1fo=vyZ8ROSi?(>03#Aw3CTd7r zM60liT^$H97Hj|Ch8O<(8&OVrywfh{QZ(d{tt**&JLBa?E)A&*>9Adu2QxHeEu_g# zo7|YQnEvUs3AdXpUD?u5%x7REk!reB5%JLe?ld};e9H54tR zPaO_y2_&kRaO b!Tq@B#2LvI%@s3#;*7elW_-6rOPc);Y-LYJ