Author: mkrueger
Date: 2007-10-18 07:02:39 -0400 (Thu, 18 Oct 2007)
New Revision: 87744

Modified:
   trunk/monodevelop/Core/src/MonoDevelop.Projects.Gui/ChangeLog
   
trunk/monodevelop/Core/src/MonoDevelop.Projects.Gui/MonoDevelop.Projects.Gui.Completion/MethodParameterDataProvider.cs
Log:
* MonoDevelop.Projects.Gui.Completion/MethodParameterDataProvider.cs:
  fixed "Bug 325509 - Inaccessible methods displayed in
  autocomplete".

Modified: trunk/monodevelop/Core/src/MonoDevelop.Projects.Gui/ChangeLog
===================================================================
--- trunk/monodevelop/Core/src/MonoDevelop.Projects.Gui/ChangeLog       
2007-10-18 11:02:23 UTC (rev 87743)
+++ trunk/monodevelop/Core/src/MonoDevelop.Projects.Gui/ChangeLog       
2007-10-18 11:02:39 UTC (rev 87744)
@@ -1,3 +1,8 @@
+2007-10-18  Mike Krüger <[EMAIL PROTECTED]> 
+
+       * MonoDevelop.Projects.Gui.Completion/MethodParameterDataProvider.cs: 
fixed
+         "Bug 325509 - Inaccessible methods displayed in autocomplete".
+
 2007-10-16  Mike Krüger <[EMAIL PROTECTED]> 
 
        * MonoDevelop.Projects.Gui.Completion/CodeCompletionDataProvider.cs: 
Fixed

Modified: 
trunk/monodevelop/Core/src/MonoDevelop.Projects.Gui/MonoDevelop.Projects.Gui.Completion/MethodParameterDataProvider.cs
===================================================================
--- 
trunk/monodevelop/Core/src/MonoDevelop.Projects.Gui/MonoDevelop.Projects.Gui.Completion/MethodParameterDataProvider.cs
      2007-10-18 11:02:23 UTC (rev 87743)
+++ 
trunk/monodevelop/Core/src/MonoDevelop.Projects.Gui/MonoDevelop.Projects.Gui.Completion/MethodParameterDataProvider.cs
      2007-10-18 11:02:39 UTC (rev 87744)
@@ -9,33 +9,55 @@
        
        public abstract class MethodParameterDataProvider: 
IParameterDataProvider
        {
+               [Flags]
+               public enum Scope 
+               {
+                       Public,
+                       Private,
+                       Internal,
+                       Protected,
+                       All = Public | Private | Internal | Protected
+               }
                IMethod[] listMethods;
                string methodName;
                
-               public MethodParameterDataProvider (IClass cls, string 
methodName)
+               public MethodParameterDataProvider (IClass cls, string 
methodName, Scope scope)
                {
                        this.methodName = methodName;
                        
                        ArrayList methods = new ArrayList ();
                        foreach (IMethod met in cls.Methods) {
-                               if (met.Name == methodName)
+                               if (met.Name == methodName && ShouldAdd (met, 
scope)) 
                                        methods.Add (met);
                        }
                        Init (methods);
                }
+               public MethodParameterDataProvider (IClass cls, string 
methodName) : this (cls, methodName, Scope.All)
+               {
+               }
                
-               public MethodParameterDataProvider (IClass cls)
+               public MethodParameterDataProvider (IClass cls, Scope scope)
                {
                        // Look for constructors
                        
                        ArrayList methods = new ArrayList ();
                        foreach (IMethod met in cls.Methods) {
-                               if (met.IsConstructor)
+                               if (met.IsConstructor && ShouldAdd (met, scope))
                                        methods.Add (met);
                        }
                        Init (methods);
                }
+               public MethodParameterDataProvider (IClass cls) : this (cls, 
Scope.All)
+               {
+               }
                
+               bool ShouldAdd (IMethod met, Scope scope)
+               {
+                       return !((scope & Scope.Internal) != Scope.Internal && 
met.IsInternal ||
+                                (scope & Scope.Private) != Scope.Private && 
met.IsPrivate ||
+                                    (scope & Scope.Protected) != 
Scope.Protected && met.IsProtected);
+               }
+               
                void Init (ArrayList methods)
                {
                        // Sort the array of methods, so overloads with less 
parameters are shown first

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to