Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2011-10-26 15:57:32 +0400
committerMike Krüger <mkrueger@xamarin.com>2011-10-26 15:57:32 +0400
commit5ba64e4f967e49c0ddc96179fe919a0837463e27 (patch)
tree284278e01c75bd78f6054e39ae5bead0bc7f7cb2 /main/src/addins/MonoDevelop.MacDev
parent6cf6e34954b32247d8970a0712e1a12cebe4b52d (diff)
parent21ad778ec4c166c9e06218ccc173a547c2c0f6ec (diff)
Merge branch 'master' into newresolver
Conflicts: main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/CSharpTextEditorCompletion.cs main/src/addins/CSharpBinding/MonoDevelop.CSharp.Completion/MemberCompletionData.cs main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectInfoService.cs
Diffstat (limited to 'main/src/addins/MonoDevelop.MacDev')
-rw-r--r--main/src/addins/MonoDevelop.MacDev/MacBuildUtilities.cs7
-rw-r--r--main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs71
-rw-r--r--main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectInfoService.cs10
-rw-r--r--main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeProjectTracker.cs5
4 files changed, 53 insertions, 40 deletions
diff --git a/main/src/addins/MonoDevelop.MacDev/MacBuildUtilities.cs b/main/src/addins/MonoDevelop.MacDev/MacBuildUtilities.cs
index a60d6147e3..afcc436c37 100644
--- a/main/src/addins/MonoDevelop.MacDev/MacBuildUtilities.cs
+++ b/main/src/addins/MonoDevelop.MacDev/MacBuildUtilities.cs
@@ -189,7 +189,12 @@ namespace MonoDevelop.MacDev
public bool NeedsBuilding ()
{
- return !File.Exists (Output) || File.GetLastWriteTime (Input) > File.GetLastWriteTime (Output);
+ var output = new FileInfo (Output);
+ if (!output.Exists)
+ return true;
+
+ var input = new FileInfo (Input);
+ return input.LastWriteTimeUtc > output.LastWriteTimeUtc;
}
public void EnsureOutputDirectory ()
diff --git a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs
index 475e409c41..a86e687d72 100644
--- a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs
+++ b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs
@@ -36,6 +36,8 @@ using Gtk;
using MonoDevelop.Projects;
using MonoDevelop.Ide.Projects;
using MonoDevelop.Ide;
+using System.Collections.Generic;
+using System.Linq;
namespace MonoDevelop.MacDev.PlistEditor
{
@@ -69,6 +71,10 @@ namespace MonoDevelop.MacDev.PlistEditor
}
}
+ public List<string> SupportedFormats {
+ get; private set;
+ }
+
/// <summary>
/// Project virtual path of the selected file.
/// </summary>
@@ -99,44 +105,40 @@ namespace MonoDevelop.MacDev.PlistEditor
ShowAll ();
Gtk.Drag.DestSet (this, DestDefaults.Drop, targetEntryTypes, DragAction.Link);
+ SupportedFormats = new List<string> { "png" };
}
-
- public bool CheckImageSize (Pixbuf pb)
- {
- return CheckImageSize (pb.Width, pb.Height);
- }
-
- public bool CheckImageSize (int width, int height)
- {
- if (AcceptedSize.Width > 0) {
- if (width != AcceptedSize.Width || height != AcceptedSize.Height) {
- MessageService.ShowError (GettextCatalog.GetString ("Wrong picture size"),
- GettextCatalog.GetString (
- "Only pictures with size {0}x{1} are accepted. Picture was {2}x{3}.",
- AcceptedSize.Width, AcceptedSize.Height, width, height));
- return false;
- }
- }
- return true;
- }
-
+
public bool CheckImage (FilePath path)
{
- Pixbuf pb;
+ int width, height;
+ string errorTitle = null;
+ string errorMessage = null;
- try {
- pb = new Pixbuf (path);
- } catch (Exception e) {
- LoggingService.LogError ("Error loading pixbuf for image chooser,", e);
- MessageService.ShowError (
- GettextCatalog.GetString ("Cannot load image"),
- GettextCatalog.GetString ("The selected file could not be loaded as an image.")
- );
+ using (var type = Pixbuf.GetFileInfo (path, out width, out height)) {
+ if (type == null) {
+ errorTitle = GettextCatalog.GetString ("Invalid file selected");
+ errorMessage = GettextCatalog.GetString ("Selected file was not a valid image.");
+ } else if (type.IsDisabled) {
+ errorTitle = GettextCatalog.GetString ("Unsupported image selected");
+ errorMessage = GettextCatalog.GetString ("Support for loading images of type '{0}' has not been enabled.", type.Name);
+ } else if (AcceptedSize != Size.Empty && AcceptedSize != new Size (width, height)) {
+ errorTitle = GettextCatalog.GetString ("Incorrect image dimensions");
+ errorMessage = GettextCatalog.GetString (
+ "Only images with size {0}x{1} are allowed. Picture was {2}x{3}.",
+ AcceptedSize.Width, AcceptedSize.Height, width, height);
+
+ } else if (!SupportedFormats.Contains (type.Name)) {
+ var formats = string.Join (", ", SupportedFormats.Select (f => "'" + f + "'"));
+ errorTitle = GettextCatalog.GetString ("Invalid image selected");
+ errorMessage = GettextCatalog.GetString ("An image of type '{0}' has been selected but you must select an image of type '{1}'.", formats);
+ } else {
+ return true;
+ }
+
+ LoggingService.LogError ("{0}: {1}", errorTitle, errorMessage);
+ MessageService.ShowError (errorTitle, errorMessage);
return false;
}
-
- using (pb)
- return CheckImageSize (pb);
}
protected override void OnClicked ()
@@ -144,7 +146,10 @@ namespace MonoDevelop.MacDev.PlistEditor
base.OnClicked ();
if (project == null)
return;
- var dialog = new ProjectFileSelectorDialog (project, null, "*.png");
+
+ var formats = string.Join ("|", SupportedFormats.Select (f => "*." + f));
+ var dialog = new ProjectFileSelectorDialog (project, "All Images", formats);
+
try {
if (AcceptedSize.IsEmpty)
dialog.Title = GettextCatalog.GetString ("Select icon...");
diff --git a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectInfoService.cs b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectInfoService.cs
index 22456bc7ec..f9cfd11690 100644
--- a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectInfoService.cs
+++ b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectInfoService.cs
@@ -207,8 +207,16 @@ namespace MonoDevelop.MacDev.ObjCIntegration
name = posArgs[0].ConstantValue as string;
if (string.IsNullOrEmpty (name))
name = prop.Name;
+
+ // HACK: Work around bug #1586 in the least obtrusive way possible. Strip out any outlet
+ // with the name 'view' on subclasses of MonoTouch.UIKit.UIViewController to avoid
+ // conflicts with the view property mapped there
+ if (name == "view")
+ if (type.GetAllBaseTypeDefinitions (dom).Any (p => p.FullName == "MonoTouch.UIKit.UIViewController"))
+ continue;
+
var ol = new IBOutlet (name, prop.Name, null, prop.ReturnType.Resolve (dom).FullName);
- if (MonoDevelop.DesignerSupport.CodeBehind.IsDesignerFile (prop.DeclaringTypeDefinition.Region.FileName))
+ if (MonoDevelop.DesignerSupport.CodeBehind.IsDesignerFile (prop.DeclaringType.CompilationUnit.FileName))
ol.IsDesigner = true;
info.Outlets.Add (ol);
break;
diff --git a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeProjectTracker.cs b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeProjectTracker.cs
index 0c3cd8fb0a..02c06f5294 100644
--- a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeProjectTracker.cs
+++ b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeProjectTracker.cs
@@ -190,11 +190,6 @@ namespace MonoDevelop.MacDev.XcodeSyncing
return pf.BuildAction == BuildAction.InterfaceDefinition;
}
- static bool IsContent (ProjectFile pf)
- {
- return pf.BuildAction == BuildAction.Content;
- }
-
bool IncludeInSyncedProject (ProjectFile pf)
{
return pf.BuildAction == BuildAction.Content