diff options
author | Mike Krüger <mkrueger@xamarin.com> | 2011-10-26 15:57:32 +0400 |
---|---|---|
committer | Mike Krüger <mkrueger@xamarin.com> | 2011-10-26 15:57:32 +0400 |
commit | 5ba64e4f967e49c0ddc96179fe919a0837463e27 (patch) | |
tree | 284278e01c75bd78f6054e39ae5bead0bc7f7cb2 /main/src/addins/MonoDevelop.MacDev | |
parent | 6cf6e34954b32247d8970a0712e1a12cebe4b52d (diff) | |
parent | 21ad778ec4c166c9e06218ccc173a547c2c0f6ec (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')
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 |