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:
-rw-r--r--.gitignore2
-rw-r--r--extras/AspNetEdit/Makefile1
-rw-r--r--extras/BooBinding/Makefile1
-rw-r--r--extras/GeckoWebBrowser/Makefile1
-rw-r--r--extras/JavaBinding/Makefile1
-rw-r--r--extras/MonoDevelop.AddinAuthoring/Makefile1
-rw-r--r--extras/MonoDevelop.Database/MonoDevelop.Database.Designer/MonoDevelop.Database.Designer.addin.xml2
-rw-r--r--extras/MonoDevelop.Database/MonoDevelop.Database.Query/MonoDevelop.Database.Query.addin.xml1
-rw-r--r--extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Firebird/MonoDevelop.Database.Sql.Firebird.addin.xml2
-rw-r--r--extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Odbc/MonoDevelop.Database.Sql.Odbc.addin.xml2
-rw-r--r--extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Oracle/MonoDevelop.Database.Sql.Oracle.addin.xml2
-rw-r--r--extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Sybase/MonoDevelop.Database.Sql.Sybase.addin.xml2
-rw-r--r--extras/MonoDevelop.Debugger.Gdb/Makefile1
-rw-r--r--extras/MonoDevelop.Debugger.Mdb/Makefile1
-rw-r--r--extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs2
-rw-r--r--extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapBuddy/MonoDevelop.Profiling.HeapBuddy.addin.xml6
-rw-r--r--extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapShot/MonoDevelop.Profiling.HeapShot.addin.xml6
-rw-r--r--extras/MonoDevelop.Profiling/MonoDevelop.Profiling/MonoDevelop.Profiling.addin.xml8
-rw-r--r--extras/PyBinding/Makefile1
-rw-r--r--extras/PyBinding/PyBinding/Makefile2
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs5
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs12
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs2
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.Runtime/IPythonRuntime.cs6
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.Runtime/IronPythonRuntime.cs96
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.Runtime/Python25Runtime.cs11
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.Runtime/Python26Runtime.cs11
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.Runtime/Python27Runtime.cs11
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.addin.xml1
-rw-r--r--extras/PyBinding/PyBinding/PyBinding.csproj4
-rw-r--r--extras/PyBinding/PyBinding/PyBinding/IronPythonExecutionHandler.cs51
-rw-r--r--extras/PyBinding/PyBinding/PyBinding/PythonExecutionHandler.cs22
-rw-r--r--extras/PyBinding/PyBinding/PyBinding/PythonHelper.cs9
-rw-r--r--extras/PyBinding/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs173
-rw-r--r--extras/PyBinding/PyBinding/gtk-gui/gui.stetic102
-rw-r--r--extras/WebKitWebBrowser/Makefile1
-rw-r--r--main/Main.sln15
-rw-r--r--main/build/MacOSX/release-info1
-rw-r--r--main/contrib/Mono.Cecil/Mono.Cecil.Mdb.csproj4
-rw-r--r--main/contrib/Mono.Cecil/Mono.Cecil.csproj1
-rw-r--r--main/contrib/Mono.Debugger.Soft/Locale.cs51
-rw-r--r--main/contrib/Mono.Debugger.Soft/Makefile.am1
-rw-r--r--main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj4
-rw-r--r--main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/Connection.cs18
-rw-r--r--main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/StringMirror.cs23
-rw-r--r--main/contrib/Mono.Debugger.Soft/mono-git-revision2
-rw-r--r--main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.addin.xml4
-rw-r--r--main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.csproj1
-rw-r--r--main/src/addins/CBinding/CBinding.csproj1
-rw-r--r--main/src/addins/CSharpBinding/CSharpBinding.csproj1
-rw-r--r--main/src/addins/ChangeLogAddIn/ChangeLogAddIn.addin.xml4
-rw-r--r--main/src/addins/ChangeLogAddIn/ChangeLogAddIn.csproj1
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux.csproj1
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.csproj1
-rw-r--r--main/src/addins/ILAsmBinding/ILAsmBinding.addin.xml2
-rw-r--r--main/src/addins/MacPlatform/MacPlatform.cs13
-rw-r--r--main/src/addins/MacPlatform/MacPlatform.csproj1
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.csproj3
-rw-r--r--main/src/addins/MonoDevelop.Autotools/MonoDevelop.Autotools.csproj1
-rw-r--r--main/src/addins/MonoDevelop.Autotools/templates/make-dist.targets1
-rw-r--r--main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.addin.xml14
-rw-r--r--main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.csproj3
-rw-r--r--main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerAdaptor.cs26
-rw-r--r--main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerSession.cs4
-rw-r--r--main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/VariableValueReference.cs9
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs6
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs6
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs1
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs61
-rw-r--r--main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj1
-rw-r--r--main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.csproj3
-rw-r--r--main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.csproj1
-rw-r--r--main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.csproj1
-rw-r--r--main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor.csproj3
-rw-r--r--main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs4
-rw-r--r--main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight.addin.xml2
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj1
-rw-r--r--main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj1
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj3
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs11
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs6
-rw-r--r--main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.csproj1
-rw-r--r--main/src/addins/MonoDevelop.XmlEditor/MonoDevelop.XmlEditor.addin.xml35
-rw-r--r--main/src/addins/NUnit/MonoDevelop.NUnit.csproj1
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix.addin.xml6
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/LibSvnClient.cs16
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs21
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml8
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs5
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs8
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/PublishCommand.cs4
-rw-r--r--main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml2
-rw-r--r--main/src/addins/WindowsPlatform/WindowsPlatform.csproj3
-rw-r--r--main/src/addins/prj2make-sharp-lib/prj2make-sharp-lib.csproj1
-rw-r--r--main/src/core/Mono.Debugging/Mono.Debugging.Client/EvaluationOptions.cs7
-rw-r--r--main/src/core/Mono.Debugging/Mono.Debugging.Client/ObjectValue.cs5
-rw-r--r--main/src/core/Mono.Debugging/Mono.Debugging.Client/StackFrame.cs4
-rw-r--r--main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ExpressionEvaluator.cs3
-rw-r--r--main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs16
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor.csproj1
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs65
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditor.cs63
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs40
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorData.cs9
-rw-r--r--main/src/core/MonoDevelop.Core/Makefile.am1
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/DefaultFileSystemExtension.cs5
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/FileSystemExtension.cs5
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs45
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.ProgressMonitoring/ConsoleProgressMonitor.cs4
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core/BrandingService.cs5
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs13
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs7
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AutoTestSession.cs25
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/ReferencesFinder.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs42
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeCommandHandler.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/IEditableTextBuffer.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/AboutMonoDevelopTabPage.cs137
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs73
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DockItemToolbarLoader.cs21
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/HiddenTextEditorViewContent.cs3
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs22
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectDialog.cs14
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj1
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs77
-rw-r--r--main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj1
-rw-r--r--main/tests/UnitTests/MonoDevelop.CSharpBinding/TestViewContent.cs3
-rw-r--r--main/tests/UserInterfaceTests/Main.cs4
-rw-r--r--main/tests/UserInterfaceTests/MonoDevelop.UserInterfaceTests/IdeApi.cs2
-rw-r--r--main/tests/UserInterfaceTests/UserInterfaceTests.csproj64
-rwxr-xr-xversion-checks2
136 files changed, 1280 insertions, 537 deletions
diff --git a/.gitignore b/.gitignore
index e9ef5a9a19..7b4468d186 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,7 @@ autom4te.cache/
*.dmg
*.app
*.user
+*.tar.gz
# Autogenerated stuff
/local-config/
@@ -181,6 +182,7 @@ autom4te.cache/
#resharper
*_Resharper.*
+*.Resharper
#dotCover
*.dotCover
diff --git a/extras/AspNetEdit/Makefile b/extras/AspNetEdit/Makefile
index 296306ab79..7cf839226c 100644
--- a/extras/AspNetEdit/Makefile
+++ b/extras/AspNetEdit/Makefile
@@ -57,7 +57,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook distsir=$$distdir
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/extras/BooBinding/Makefile b/extras/BooBinding/Makefile
index d2c7c130d4..5d33855081 100644
--- a/extras/BooBinding/Makefile
+++ b/extras/BooBinding/Makefile
@@ -57,7 +57,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook "distsir=$$distdir"
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/extras/GeckoWebBrowser/Makefile b/extras/GeckoWebBrowser/Makefile
index faf1c84c2e..1de7bf9dc3 100644
--- a/extras/GeckoWebBrowser/Makefile
+++ b/extras/GeckoWebBrowser/Makefile
@@ -57,7 +57,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook distsir=$$distdir
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/extras/JavaBinding/Makefile b/extras/JavaBinding/Makefile
index 5343478e03..d9576ce63e 100644
--- a/extras/JavaBinding/Makefile
+++ b/extras/JavaBinding/Makefile
@@ -57,7 +57,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook distsir=$$distdir
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/extras/MonoDevelop.AddinAuthoring/Makefile b/extras/MonoDevelop.AddinAuthoring/Makefile
index 78bf4bab86..bc4decbc5f 100644
--- a/extras/MonoDevelop.AddinAuthoring/Makefile
+++ b/extras/MonoDevelop.AddinAuthoring/Makefile
@@ -57,7 +57,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook distsir=$$distdir
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/extras/MonoDevelop.Database/MonoDevelop.Database.Designer/MonoDevelop.Database.Designer.addin.xml b/extras/MonoDevelop.Database/MonoDevelop.Database.Designer/MonoDevelop.Database.Designer.addin.xml
index eb714d33c0..2c35614d3b 100644
--- a/extras/MonoDevelop.Database/MonoDevelop.Database.Designer/MonoDevelop.Database.Designer.addin.xml
+++ b/extras/MonoDevelop.Database/MonoDevelop.Database.Designer/MonoDevelop.Database.Designer.addin.xml
@@ -20,4 +20,4 @@
<Addin id="Database.Sql" version="2.9.1"/>
</Dependencies>
-</Addin> \ No newline at end of file
+</Addin>
diff --git a/extras/MonoDevelop.Database/MonoDevelop.Database.Query/MonoDevelop.Database.Query.addin.xml b/extras/MonoDevelop.Database/MonoDevelop.Database.Query/MonoDevelop.Database.Query.addin.xml
index 7ae1aa8ebd..6379f0f0e3 100644
--- a/extras/MonoDevelop.Database/MonoDevelop.Database.Query/MonoDevelop.Database.Query.addin.xml
+++ b/extras/MonoDevelop.Database/MonoDevelop.Database.Query/MonoDevelop.Database.Query.addin.xml
@@ -19,7 +19,6 @@
<Addin id="Ide" version="2.9.1"/>
<Addin id="Database.Sql" version="2.9.1"/>
<Addin id="Database.Components" version="2.9.1"/>
-
</Dependencies>
<ExtensionPoint path = "/MonoDevelop/Database/ToolBar/SqlQueryView">
diff --git a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Firebird/MonoDevelop.Database.Sql.Firebird.addin.xml b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Firebird/MonoDevelop.Database.Sql.Firebird.addin.xml
index df0b56cdff..ebbba63fb8 100644
--- a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Firebird/MonoDevelop.Database.Sql.Firebird.addin.xml
+++ b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Firebird/MonoDevelop.Database.Sql.Firebird.addin.xml
@@ -21,4 +21,4 @@
<Extension path = "/Mono/Data/Sql">
<Class id = "Firebird" class = "MonoDevelop.Database.Sql.FirebirdDbFactory"/>
</Extension>
-</Addin> \ No newline at end of file
+</Addin>
diff --git a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Odbc/MonoDevelop.Database.Sql.Odbc.addin.xml b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Odbc/MonoDevelop.Database.Sql.Odbc.addin.xml
index 4f41904612..d4bc7a1964 100644
--- a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Odbc/MonoDevelop.Database.Sql.Odbc.addin.xml
+++ b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Odbc/MonoDevelop.Database.Sql.Odbc.addin.xml
@@ -25,4 +25,4 @@
<Extension path = "/MonoDevelop/Database/Sql">
<DatabaseFactory id = "Odbc" class = "MonoDevelop.Database.Sql.Odbc.OdbcDbFactory" />
</Extension>
-</Addin> \ No newline at end of file
+</Addin>
diff --git a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Oracle/MonoDevelop.Database.Sql.Oracle.addin.xml b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Oracle/MonoDevelop.Database.Sql.Oracle.addin.xml
index 3d24dc77a5..25450669ba 100644
--- a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Oracle/MonoDevelop.Database.Sql.Oracle.addin.xml
+++ b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Oracle/MonoDevelop.Database.Sql.Oracle.addin.xml
@@ -25,4 +25,4 @@
<Extension path = "/MonoDevelop/Database/Sql">
<DatabaseFactory id = "Oracle" class = "MonoDevelop.Database.Sql.Oracle.OracleDbFactory" />
</Extension>
-</Addin> \ No newline at end of file
+</Addin>
diff --git a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Sybase/MonoDevelop.Database.Sql.Sybase.addin.xml b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Sybase/MonoDevelop.Database.Sql.Sybase.addin.xml
index 89795d614d..1b1e25e8be 100644
--- a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Sybase/MonoDevelop.Database.Sql.Sybase.addin.xml
+++ b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql.Sybase/MonoDevelop.Database.Sql.Sybase.addin.xml
@@ -21,4 +21,4 @@
<Extension path = "/Mono/Data/Sql">
<Class id = "Sybase" class = "MonoDevelop.Database.Sql.SybaseDbFactory"/>
</Extension>
-</Addin> \ No newline at end of file
+</Addin>
diff --git a/extras/MonoDevelop.Debugger.Gdb/Makefile b/extras/MonoDevelop.Debugger.Gdb/Makefile
index 670757c56e..7731166148 100644
--- a/extras/MonoDevelop.Debugger.Gdb/Makefile
+++ b/extras/MonoDevelop.Debugger.Gdb/Makefile
@@ -58,7 +58,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook "distsir=$$distdir"
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/extras/MonoDevelop.Debugger.Mdb/Makefile b/extras/MonoDevelop.Debugger.Mdb/Makefile
index 91a9968507..c1fcd3a8eb 100644
--- a/extras/MonoDevelop.Debugger.Mdb/Makefile
+++ b/extras/MonoDevelop.Debugger.Mdb/Makefile
@@ -56,7 +56,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook "distsir=$$distdir"
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs
index ca4be568d4..29c85fc7f1 100644
--- a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs
+++ b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs
@@ -1126,7 +1126,7 @@ namespace MonoDevelop.Debugger.Win32
try {
if (thread.ActiveFrame == null)
return string.Empty;
- EvaluationOptions ops = Options.EvaluationOptions;
+ EvaluationOptions ops = Options.EvaluationOptions.Clone ();
ops.AllowTargetInvoke = true;
CorEvaluationContext ctx = new CorEvaluationContext (this, new CorBacktrace (thread, this), 0, ops);
ctx.Thread = thread;
diff --git a/extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapBuddy/MonoDevelop.Profiling.HeapBuddy.addin.xml b/extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapBuddy/MonoDevelop.Profiling.HeapBuddy.addin.xml
index 992d2eb5bb..a9864b9fda 100644
--- a/extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapBuddy/MonoDevelop.Profiling.HeapBuddy.addin.xml
+++ b/extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapBuddy/MonoDevelop.Profiling.HeapBuddy.addin.xml
@@ -38,8 +38,8 @@
<ExtensionNodeSet id="MonoDevelop.Components.Commands.ItemSet"/>
</ExtensionPoint>
- <Extension path = "/MonoDevelop/Profiling/Profilers">
- <Profiler class="MonoDevelop.Profiling.HeapBuddy.HeapBuddyProfiler" />
+ <Extension path = "/MonoDevelop/Profiling/Profilers">
+ <Profiler class="MonoDevelop.Profiling.HeapBuddy.HeapBuddyProfiler" />
</Extension>
<Extension path = "/MonoDevelop/Ide/Pads/MonoDevelop.Profiling.ProfilingPad">
@@ -54,4 +54,4 @@
<SeparatorItem id = "DeleteSeparator" />
<CommandItem id = "MonoDevelop.Ide.Commands.EditCommands.Delete" />
</Extension>
-</Addin> \ No newline at end of file
+</Addin>
diff --git a/extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapShot/MonoDevelop.Profiling.HeapShot.addin.xml b/extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapShot/MonoDevelop.Profiling.HeapShot.addin.xml
index d4246c1b7a..b7ecc98478 100644
--- a/extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapShot/MonoDevelop.Profiling.HeapShot.addin.xml
+++ b/extras/MonoDevelop.Profiling/MonoDevelop.Profiling.HeapShot/MonoDevelop.Profiling.HeapShot.addin.xml
@@ -23,8 +23,8 @@
<ExtensionNodeSet id="MonoDevelop.Components.Commands.ItemSet"/>
</ExtensionPoint>
- <Extension path = "/MonoDevelop/Profiling/Profilers">
- <Profiler class="MonoDevelop.Profiling.HeapShot.HeapShotProfiler" />
+ <Extension path = "/MonoDevelop/Profiling/Profilers">
+ <Profiler class="MonoDevelop.Profiling.HeapShot.HeapShotProfiler" />
</Extension>
<Extension path = "/MonoDevelop/Profiling/FileFilters">
@@ -40,4 +40,4 @@
<SeparatorItem id = "DeleteSeparator" />
<CommandItem id = "MonoDevelop.Ide.Commands.EditCommands.Delete" />
</Extension>
-</Addin> \ No newline at end of file
+</Addin>
diff --git a/extras/MonoDevelop.Profiling/MonoDevelop.Profiling/MonoDevelop.Profiling.addin.xml b/extras/MonoDevelop.Profiling/MonoDevelop.Profiling/MonoDevelop.Profiling.addin.xml
index 9db91490f2..2f2f02cd9c 100644
--- a/extras/MonoDevelop.Profiling/MonoDevelop.Profiling/MonoDevelop.Profiling.addin.xml
+++ b/extras/MonoDevelop.Profiling/MonoDevelop.Profiling/MonoDevelop.Profiling.addin.xml
@@ -37,12 +37,12 @@
<ExtensionNode name="FileFilter" type="MonoDevelop.Ide.Codons.FileFilterCodon"/>
</ExtensionPoint>
- <Extension path = "/MonoDevelop/Core/StockIcons">
- <StockIcon stockid = "md-prof-filter" resource = "Icons.16x16.Profiling.Filter.png" />
+ <Extension path = "/MonoDevelop/Core/StockIcons">
+ <StockIcon stockid = "md-prof-filter" resource = "Icons.16x16.Profiling.Filter.png" />
<StockIcon stockid = "md-prof-snapshot" resource = "Icons.16x16.Profiling.Snapshot.png" />
- <StockIcon stockid = "md-prof-gc" resource = "Icons.16x16.Profiling.GC.png" />
+ <StockIcon stockid = "md-prof-gc" resource = "Icons.16x16.Profiling.GC.png" />
<StockIcon stockid = "md-prof-history" resource = "Icons.16x16.Profiling.History.png" />
- <StockIcon stockid = "md-prof-summary" resource = "Icons.16x16.Profiling.Summary.png" />
+ <StockIcon stockid = "md-prof-summary" resource = "Icons.16x16.Profiling.Summary.png" />
</Extension>
<Extension path = "/MonoDevelop/Ide/WorkbenchContexts">
diff --git a/extras/PyBinding/Makefile b/extras/PyBinding/Makefile
index 18396363f0..32d56f11de 100644
--- a/extras/PyBinding/Makefile
+++ b/extras/PyBinding/Makefile
@@ -56,7 +56,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook "distsir=$$distdir"
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/extras/PyBinding/PyBinding/Makefile b/extras/PyBinding/PyBinding/Makefile
index 31c563a9b0..f2f98f2fc8 100644
--- a/extras/PyBinding/PyBinding/Makefile
+++ b/extras/PyBinding/PyBinding/Makefile
@@ -88,9 +88,11 @@ FILES = \
PyBinding.Parser/PythonResolver.cs \
PyBinding.Runtime/AbstractPythonRuntime.cs \
PyBinding.Runtime/IPythonRuntime.cs \
+ PyBinding.Runtime/IronPythonRuntime.cs \
PyBinding.Runtime/Python25Runtime.cs \
PyBinding.Runtime/Python26Runtime.cs \
PyBinding.Runtime/Python27Runtime.cs \
+ PyBinding/IronPythonExecutionHandler.cs \
PyBinding/PythonConfiguration.cs \
PyBinding/PythonExecutionCommand.cs \
PyBinding/PythonExecutionHandler.cs \
diff --git a/extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs b/extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs
index deb787bf18..88258c98b5 100644
--- a/extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs
+++ b/extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsPanel.cs
@@ -53,9 +53,12 @@ namespace PyBinding.Gui
{
PythonConfiguration config = CurrentConfiguration as PythonConfiguration;
+ var runtime = widget.Runtime;
+ runtime.Path = widget.RuntimePath;
+
+ config.Runtime = runtime;
config.Module = widget.DefaultModule;
config.Optimize = widget.Optimize;
- config.Runtime = widget.Runtime;
config.PythonOptions = widget.PythonOptions;
var paths = new List<string> (widget.PythonPaths);
diff --git a/extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs b/extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs
index 5739f1261c..06fda7b544 100644
--- a/extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs
+++ b/extras/PyBinding/PyBinding/PyBinding.Gui/PythonOptionsWidget.cs
@@ -60,6 +60,11 @@ namespace PyBinding.Gui
m_RuntimeListStore.AppendValues ("Python 2.5", typeof (Python25Runtime));
m_RuntimeListStore.AppendValues ("Python 2.6", typeof (Python26Runtime));
m_RuntimeListStore.AppendValues ("Python 2.7", typeof (Python27Runtime));
+ m_RuntimeListStore.AppendValues ("IronPython", typeof (IronPythonRuntime));
+
+ m_RuntimeCombo.Changed += delegate {
+ m_RuntimeFileEntry.Path = String.Empty;
+ };
}
public string DefaultModule {
@@ -131,12 +136,19 @@ namespace PyBinding.Gui
Type t = this.m_RuntimeListStore.GetValue (iter, 1) as Type;
if (t == value.GetType ()) {
this.m_RuntimeCombo.SetActiveIter (iter);
+ this.m_RuntimeFileEntry.Path = value.Path;
break;
}
} while (m_RuntimeListStore.IterNext (ref iter));
}
}
}
+
+ public string RuntimePath {
+ get {
+ return m_RuntimeFileEntry.Path;
+ }
+ }
protected virtual void AddPath_Clicked (object sender, System.EventArgs e)
{
diff --git a/extras/PyBinding/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs b/extras/PyBinding/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs
index aabc0d3ab7..417748f03c 100644
--- a/extras/PyBinding/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs
+++ b/extras/PyBinding/PyBinding/PyBinding.Runtime/AbstractPythonRuntime.cs
@@ -28,6 +28,7 @@ using System.Text;
using MonoDevelop.Core;
using MonoDevelop.Core.Serialization;
+using MonoDevelop.Core.Execution;
using MonoDevelop.Projects;
using PyBinding;
@@ -66,6 +67,7 @@ namespace PyBinding.Runtime
public abstract object Clone ();
public abstract string[] GetArguments (PythonConfiguration config);
+ public abstract IExecutionHandler GetExecutionHandler ();
protected virtual string Resolve (string commandName)
{
diff --git a/extras/PyBinding/PyBinding/PyBinding.Runtime/IPythonRuntime.cs b/extras/PyBinding/PyBinding/PyBinding.Runtime/IPythonRuntime.cs
index 3c1696d1c1..7a93c7b31b 100644
--- a/extras/PyBinding/PyBinding/PyBinding.Runtime/IPythonRuntime.cs
+++ b/extras/PyBinding/PyBinding/PyBinding.Runtime/IPythonRuntime.cs
@@ -21,6 +21,7 @@
// THE SOFTWARE.
using System;
+using MonoDevelop.Core.Execution;
using PyBinding.Compiler;
@@ -59,6 +60,11 @@ namespace PyBinding.Runtime
}
/// <summary>
+ /// Gets the associated execution handler for this specific runtime.
+ /// </summary>
+ IExecutionHandler GetExecutionHandler ();
+
+ /// <summary>
/// Builds a list of arguments to pass to the runtime for running
/// a project with the passed configuration.
/// </summary>
diff --git a/extras/PyBinding/PyBinding/PyBinding.Runtime/IronPythonRuntime.cs b/extras/PyBinding/PyBinding/PyBinding.Runtime/IronPythonRuntime.cs
new file mode 100644
index 0000000000..cc937b1928
--- /dev/null
+++ b/extras/PyBinding/PyBinding/PyBinding.Runtime/IronPythonRuntime.cs
@@ -0,0 +1,96 @@
+// IronPythonRuntime.cs
+//
+// Copyright (c) 2011 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+using System;
+using System.Collections.Generic;
+using MonoDevelop.Core;
+using MonoDevelop.Core.Execution;
+using MonoDevelop.Core.Serialization;
+using MonoDevelop.Projects;
+
+using PyBinding.Compiler;
+
+namespace PyBinding.Runtime
+{
+ public class IronPythonRuntime : AbstractPythonRuntime
+ {
+ static readonly string RuntimeName = "IronPython";
+
+ [ItemProperty ("path")]
+ string path = String.Empty;
+
+ public override IPythonCompiler Compiler {
+ get {
+ return null;
+ }
+ }
+
+ public override string Name {
+ get {
+ return RuntimeName;
+ }
+ }
+
+ public override string Path {
+ get {
+ if (String.IsNullOrEmpty (path))
+ path = Resolve ("ipy.exe");
+
+ return path;
+ }
+ set {
+ path = value;
+ }
+ }
+
+ public override object Clone ()
+ {
+ return new IronPythonRuntime () {
+ Path = path
+ };
+ }
+
+ IExecutionHandler handler;
+
+ public override IExecutionHandler GetExecutionHandler ()
+ {
+ if (handler == null)
+ handler = new IronPythonExecutionHandler ();
+
+ return handler;
+ }
+
+
+ public override string[] GetArguments (PythonConfiguration config)
+ {
+ var args = new List<string> ();
+
+ if (!String.IsNullOrEmpty (config.Module))
+ args.Add (System.IO.Path.ChangeExtension (config.Module, "py"));
+
+ if (!String.IsNullOrEmpty (config.CommandLineParameters))
+ args.Add (config.CommandLineParameters);
+
+ return args.ToArray ();
+ }
+ }
+}
+
diff --git a/extras/PyBinding/PyBinding/PyBinding.Runtime/Python25Runtime.cs b/extras/PyBinding/PyBinding/PyBinding.Runtime/Python25Runtime.cs
index 2235a0d838..0813ef9722 100644
--- a/extras/PyBinding/PyBinding/PyBinding.Runtime/Python25Runtime.cs
+++ b/extras/PyBinding/PyBinding/PyBinding.Runtime/Python25Runtime.cs
@@ -25,6 +25,7 @@ using System.Collections.Generic;
using System.IO;
using MonoDevelop.Core;
+using MonoDevelop.Core.Execution;
using MonoDevelop.Projects;
using MonoDevelop.Core.Serialization;
using MonoDevelop.Projects.CodeGeneration;
@@ -81,6 +82,16 @@ namespace PyBinding.Runtime
};
}
+ IExecutionHandler handler;
+
+ public override IExecutionHandler GetExecutionHandler ()
+ {
+ if (handler == null)
+ handler = new CPythonExecutionHandler ();
+
+ return handler;
+ }
+
public override string[] GetArguments (PythonConfiguration config)
{
List<string> args = new List<string> ();
diff --git a/extras/PyBinding/PyBinding/PyBinding.Runtime/Python26Runtime.cs b/extras/PyBinding/PyBinding/PyBinding.Runtime/Python26Runtime.cs
index 346718bb83..f044fb4fa5 100644
--- a/extras/PyBinding/PyBinding/PyBinding.Runtime/Python26Runtime.cs
+++ b/extras/PyBinding/PyBinding/PyBinding.Runtime/Python26Runtime.cs
@@ -25,6 +25,7 @@ using System.Collections.Generic;
using System.IO;
using MonoDevelop.Core;
+using MonoDevelop.Core.Execution;
using MonoDevelop.Projects;
using MonoDevelop.Core.Serialization;
using MonoDevelop.Projects.CodeGeneration;
@@ -81,6 +82,16 @@ namespace PyBinding.Runtime
Path = this.Path
};
}
+
+ IExecutionHandler handler;
+
+ public override IExecutionHandler GetExecutionHandler ()
+ {
+ if (handler == null)
+ handler = new CPythonExecutionHandler ();
+
+ return handler;
+ }
public override string[] GetArguments (PythonConfiguration config)
{
diff --git a/extras/PyBinding/PyBinding/PyBinding.Runtime/Python27Runtime.cs b/extras/PyBinding/PyBinding/PyBinding.Runtime/Python27Runtime.cs
index 27260a34e7..860aed7120 100644
--- a/extras/PyBinding/PyBinding/PyBinding.Runtime/Python27Runtime.cs
+++ b/extras/PyBinding/PyBinding/PyBinding.Runtime/Python27Runtime.cs
@@ -26,6 +26,7 @@ using System.Collections.Generic;
using System.IO;
using MonoDevelop.Core;
+using MonoDevelop.Core.Execution;
using MonoDevelop.Projects;
using MonoDevelop.Core.Serialization;
using MonoDevelop.Projects.CodeGeneration;
@@ -82,6 +83,16 @@ namespace PyBinding.Runtime
Path = this.Path
};
}
+
+ IExecutionHandler handler;
+
+ public override IExecutionHandler GetExecutionHandler ()
+ {
+ if (handler == null)
+ handler = new CPythonExecutionHandler ();
+
+ return handler;
+ }
public override string[] GetArguments (PythonConfiguration config)
{
diff --git a/extras/PyBinding/PyBinding/PyBinding.addin.xml b/extras/PyBinding/PyBinding/PyBinding.addin.xml
index e2f846118e..e54d186fa1 100644
--- a/extras/PyBinding/PyBinding/PyBinding.addin.xml
+++ b/extras/PyBinding/PyBinding/PyBinding.addin.xml
@@ -99,6 +99,7 @@
<DataType class = "PyBinding.Runtime.Python25Runtime"/>
<DataType class = "PyBinding.Runtime.Python26Runtime"/>
<DataType class = "PyBinding.Runtime.Python27Runtime"/>
+ <DataType class = "PyBinding.Runtime.IronPythonRuntime"/>
<DataType class = "PyBinding.Compiler.Python25Compiler"/>
</Extension>
diff --git a/extras/PyBinding/PyBinding/PyBinding.csproj b/extras/PyBinding/PyBinding/PyBinding.csproj
index 95d5ee4570..364fc4382e 100644
--- a/extras/PyBinding/PyBinding/PyBinding.csproj
+++ b/extras/PyBinding/PyBinding/PyBinding.csproj
@@ -183,6 +183,8 @@
<Compile Include="PyBinding.Parser\PythonResolver.cs" />
<Compile Include="PyBinding.Parser\PythonExpressionFinder.cs" />
<Compile Include="PyBinding.Runtime\Python27Runtime.cs" />
+ <Compile Include="PyBinding.Runtime\IronPythonRuntime.cs" />
+ <Compile Include="PyBinding\IronPythonExecutionHandler.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\EmptyPyProject.xpt.xml">
@@ -245,4 +247,4 @@
</Properties>
</MonoDevelop>
</ProjectExtensions>
-</Project> \ No newline at end of file
+</Project>
diff --git a/extras/PyBinding/PyBinding/PyBinding/IronPythonExecutionHandler.cs b/extras/PyBinding/PyBinding/PyBinding/IronPythonExecutionHandler.cs
new file mode 100644
index 0000000000..2d066bc59c
--- /dev/null
+++ b/extras/PyBinding/PyBinding/PyBinding/IronPythonExecutionHandler.cs
@@ -0,0 +1,51 @@
+// IronPythonExecutionHandler.cs
+//
+// Copyright (c) 2011 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.IO;
+using MonoDevelop.Core;
+using MonoDevelop.Core.Execution;
+
+using PyBinding.Runtime;
+
+namespace PyBinding
+{
+ public class IronPythonExecutionHandler : IExecutionHandler
+ {
+ public bool CanExecute (ExecutionCommand command)
+ {
+ return command is PythonExecutionCommand;
+ }
+
+ public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console)
+ {
+ var config = ((PythonExecutionCommand)command).Configuration;
+ var runtime = (IronPythonRuntime)config.Runtime;
+
+ var args = runtime.GetArguments (config);
+ string dir = Path.GetFullPath (config.ParentItem.BaseDirectory);
+
+ var cmd = new DotNetExecutionCommand (runtime.Path, String.Join (" ", args), dir, config.EnvironmentVariables);
+ return cmd.TargetRuntime.GetExecutionHandler ().Execute (cmd, console);
+ }
+ }
+}
diff --git a/extras/PyBinding/PyBinding/PyBinding/PythonExecutionHandler.cs b/extras/PyBinding/PyBinding/PyBinding/PythonExecutionHandler.cs
index e9a4b9ce06..dd718f880b 100644
--- a/extras/PyBinding/PyBinding/PyBinding/PythonExecutionHandler.cs
+++ b/extras/PyBinding/PyBinding/PyBinding/PythonExecutionHandler.cs
@@ -30,7 +30,23 @@ using MonoDevelop.Core.Execution;
namespace PyBinding
{
- public class PythonExecutionHandler: NativePlatformExecutionHandler
+ public class PythonExecutionHandler: IExecutionHandler
+ {
+ public bool CanExecute (ExecutionCommand command)
+ {
+ return command is PythonExecutionCommand;
+ }
+
+ public IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console)
+ {
+ var config = ((PythonExecutionCommand)command).Configuration;
+ return config.Runtime.GetExecutionHandler ().Execute (command, console);
+ }
+
+ }
+
+ // This is our default handler (used by Python2.5/2.6/2.7)
+ public class CPythonExecutionHandler : NativePlatformExecutionHandler
{
public override bool CanExecute (ExecutionCommand command)
{
@@ -38,11 +54,11 @@ namespace PyBinding
}
public override IProcessAsyncOperation Execute (ExecutionCommand command, IConsole console)
- {
+ {
PythonExecutionCommand cmd = (PythonExecutionCommand) command;
string[] args = cmd.Configuration.Runtime.GetArguments (cmd.Configuration);
- string dir = Path.GetFullPath (cmd.Configuration.OutputDirectory);
+ string dir = Path.GetFullPath (cmd.Configuration.OutputDirectory);
NativeExecutionCommand ncmd = new NativeExecutionCommand (cmd.Configuration.Runtime.Path, string.Join (" ", args), dir, cmd.Configuration.EnvironmentVariables);
return base.Execute (ncmd, console);
diff --git a/extras/PyBinding/PyBinding/PyBinding/PythonHelper.cs b/extras/PyBinding/PyBinding/PyBinding/PythonHelper.cs
index 194755229c..7fb3cb575d 100644
--- a/extras/PyBinding/PyBinding/PyBinding/PythonHelper.cs
+++ b/extras/PyBinding/PyBinding/PyBinding/PythonHelper.cs
@@ -129,6 +129,13 @@ namespace PyBinding
}
catch {}
+ try {
+ return new IronPythonRuntime () {
+ Path = Which ("ipy.exe")
+ };
+ }
+ catch {}
+
// look for "python" and what version it is
return null;
@@ -145,4 +152,4 @@ namespace PyBinding
throw new FileNotFoundException ("Could not locate python executable");
}
}
-} \ No newline at end of file
+}
diff --git a/extras/PyBinding/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs b/extras/PyBinding/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs
index b50687ed13..ac6a20136c 100644
--- a/extras/PyBinding/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs
+++ b/extras/PyBinding/PyBinding/gtk-gui/PyBinding.Gui.PythonOptionsWidget.cs
@@ -5,41 +5,26 @@ namespace PyBinding.Gui
public partial class PythonOptionsWidget
{
private global::Gtk.VBox vbox1;
-
private global::Gtk.Label label1;
-
private global::Gtk.Alignment alignment1;
-
private global::Gtk.Table table1;
-
+ private global::Gtk.Label label2;
private global::Gtk.Label label4;
-
private global::Gtk.Label label5;
-
private global::Gtk.Entry m_ModuleEntry;
-
private global::Gtk.CheckButton m_OptimizeCheckBox;
-
private global::Gtk.Entry m_PythonOptions;
-
private global::Gtk.ComboBox m_RuntimeCombo;
-
+ private global::MonoDevelop.Components.FileEntry m_RuntimeFileEntry;
private global::Gtk.Label label3;
-
private global::Gtk.Alignment alignment2;
-
private global::Gtk.HBox hbox1;
-
private global::Gtk.ScrolledWindow scrolledwindow1;
-
private global::Gtk.TreeView m_PathsTreeView;
-
private global::Gtk.VBox vbox2;
-
private global::Gtk.Button m_AddPathButton;
-
private global::Gtk.Button m_RemovePathButton;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
@@ -53,45 +38,55 @@ namespace PyBinding.Gui
// Container child vbox1.Gtk.Box+BoxChild
this.label1 = new global::Gtk.Label ();
this.label1.Name = "label1";
- this.label1.Xalign = 0f;
+ this.label1.Xalign = 0F;
this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("<span weight=\"bold\">Runtime</span>");
this.label1.UseMarkup = true;
this.vbox1.Add (this.label1);
- global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.label1]));
+ global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.label1]));
w1.Position = 0;
w1.Expand = false;
w1.Fill = false;
// Container child vbox1.Gtk.Box+BoxChild
- this.alignment1 = new global::Gtk.Alignment (0.5f, 0.5f, 1f, 1f);
+ this.alignment1 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F);
this.alignment1.Name = "alignment1";
this.alignment1.LeftPadding = ((uint)(12));
// Container child alignment1.Gtk.Container+ContainerChild
- this.table1 = new global::Gtk.Table (((uint)(5)), ((uint)(2)), false);
+ this.table1 = new global::Gtk.Table (((uint)(6)), ((uint)(2)), false);
this.table1.Name = "table1";
this.table1.RowSpacing = ((uint)(6));
this.table1.ColumnSpacing = ((uint)(6));
// Container child table1.Gtk.Table+TableChild
+ this.label2 = new global::Gtk.Label ();
+ this.label2.Name = "label2";
+ this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("Runtime location:");
+ this.table1.Add (this.label2);
+ global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1 [this.label2]));
+ w2.TopAttach = ((uint)(1));
+ w2.BottomAttach = ((uint)(2));
+ w2.XOptions = ((global::Gtk.AttachOptions)(4));
+ w2.YOptions = ((global::Gtk.AttachOptions)(4));
+ // Container child table1.Gtk.Table+TableChild
this.label4 = new global::Gtk.Label ();
this.label4.Name = "label4";
this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("Python _Options:");
this.label4.UseUnderline = true;
this.table1.Add (this.label4);
- global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.table1[this.label4]));
- w2.TopAttach = ((uint)(1));
- w2.BottomAttach = ((uint)(2));
- w2.XOptions = ((global::Gtk.AttachOptions)(4));
- w2.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1 [this.label4]));
+ w3.TopAttach = ((uint)(2));
+ w3.BottomAttach = ((uint)(3));
+ w3.XOptions = ((global::Gtk.AttachOptions)(4));
+ w3.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.label5 = new global::Gtk.Label ();
this.label5.Name = "label5";
this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("Default _Module:");
this.label5.UseUnderline = true;
this.table1.Add (this.label5);
- global::Gtk.Table.TableChild w3 = ((global::Gtk.Table.TableChild)(this.table1[this.label5]));
- w3.TopAttach = ((uint)(2));
- w3.BottomAttach = ((uint)(3));
- w3.XOptions = ((global::Gtk.AttachOptions)(4));
- w3.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1 [this.label5]));
+ w4.TopAttach = ((uint)(3));
+ w4.BottomAttach = ((uint)(4));
+ w4.XOptions = ((global::Gtk.AttachOptions)(4));
+ w4.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.m_ModuleEntry = new global::Gtk.Entry ();
this.m_ModuleEntry.CanFocus = true;
@@ -99,12 +94,12 @@ namespace PyBinding.Gui
this.m_ModuleEntry.IsEditable = true;
this.m_ModuleEntry.InvisibleChar = '●';
this.table1.Add (this.m_ModuleEntry);
- global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.table1[this.m_ModuleEntry]));
- w4.TopAttach = ((uint)(2));
- w4.BottomAttach = ((uint)(3));
- w4.LeftAttach = ((uint)(1));
- w4.RightAttach = ((uint)(2));
- w4.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_ModuleEntry]));
+ w5.TopAttach = ((uint)(3));
+ w5.BottomAttach = ((uint)(4));
+ w5.LeftAttach = ((uint)(1));
+ w5.RightAttach = ((uint)(2));
+ w5.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.m_OptimizeCheckBox = new global::Gtk.CheckButton ();
this.m_OptimizeCheckBox.CanFocus = true;
@@ -113,11 +108,11 @@ namespace PyBinding.Gui
this.m_OptimizeCheckBox.DrawIndicator = true;
this.m_OptimizeCheckBox.UseUnderline = true;
this.table1.Add (this.m_OptimizeCheckBox);
- global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.table1[this.m_OptimizeCheckBox]));
- w5.TopAttach = ((uint)(3));
- w5.BottomAttach = ((uint)(4));
- w5.RightAttach = ((uint)(2));
- w5.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_OptimizeCheckBox]));
+ w6.TopAttach = ((uint)(4));
+ w6.BottomAttach = ((uint)(5));
+ w6.RightAttach = ((uint)(2));
+ w6.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.m_PythonOptions = new global::Gtk.Entry ();
this.m_PythonOptions.CanFocus = true;
@@ -125,39 +120,50 @@ namespace PyBinding.Gui
this.m_PythonOptions.IsEditable = true;
this.m_PythonOptions.InvisibleChar = '●';
this.table1.Add (this.m_PythonOptions);
- global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.table1[this.m_PythonOptions]));
- w6.TopAttach = ((uint)(1));
- w6.BottomAttach = ((uint)(2));
- w6.LeftAttach = ((uint)(1));
- w6.RightAttach = ((uint)(2));
- w6.XOptions = ((global::Gtk.AttachOptions)(4));
- w6.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_PythonOptions]));
+ w7.TopAttach = ((uint)(2));
+ w7.BottomAttach = ((uint)(3));
+ w7.LeftAttach = ((uint)(1));
+ w7.RightAttach = ((uint)(2));
+ w7.XOptions = ((global::Gtk.AttachOptions)(4));
+ w7.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.m_RuntimeCombo = global::Gtk.ComboBox.NewText ();
this.m_RuntimeCombo.Name = "m_RuntimeCombo";
this.table1.Add (this.m_RuntimeCombo);
- global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.table1[this.m_RuntimeCombo]));
- w7.RightAttach = ((uint)(2));
- w7.XOptions = ((global::Gtk.AttachOptions)(4));
- w7.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_RuntimeCombo]));
+ w8.RightAttach = ((uint)(2));
+ w8.XOptions = ((global::Gtk.AttachOptions)(4));
+ w8.YOptions = ((global::Gtk.AttachOptions)(4));
+ // Container child table1.Gtk.Table+TableChild
+ this.m_RuntimeFileEntry = new global::MonoDevelop.Components.FileEntry ();
+ this.m_RuntimeFileEntry.Name = "m_RuntimeFileEntry";
+ this.table1.Add (this.m_RuntimeFileEntry);
+ global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.table1 [this.m_RuntimeFileEntry]));
+ w9.TopAttach = ((uint)(1));
+ w9.BottomAttach = ((uint)(2));
+ w9.LeftAttach = ((uint)(1));
+ w9.RightAttach = ((uint)(2));
+ w9.XOptions = ((global::Gtk.AttachOptions)(4));
+ w9.YOptions = ((global::Gtk.AttachOptions)(4));
this.alignment1.Add (this.table1);
this.vbox1.Add (this.alignment1);
- global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.alignment1]));
- w9.Position = 1;
- w9.Expand = false;
+ global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.alignment1]));
+ w11.Position = 1;
+ w11.Expand = false;
// Container child vbox1.Gtk.Box+BoxChild
this.label3 = new global::Gtk.Label ();
this.label3.Name = "label3";
- this.label3.Xalign = 0f;
+ this.label3.Xalign = 0F;
this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("<span weight=\"bold\">Module Paths</span>");
this.label3.UseMarkup = true;
this.vbox1.Add (this.label3);
- global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.label3]));
- w10.Position = 2;
- w10.Expand = false;
- w10.Fill = false;
+ global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.label3]));
+ w12.Position = 2;
+ w12.Expand = false;
+ w12.Fill = false;
// Container child vbox1.Gtk.Box+BoxChild
- this.alignment2 = new global::Gtk.Alignment (0.5f, 0.5f, 1f, 1f);
+ this.alignment2 = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F);
this.alignment2.Name = "alignment2";
this.alignment2.LeftPadding = ((uint)(12));
// Container child alignment2.Gtk.Container+ContainerChild
@@ -170,17 +176,17 @@ namespace PyBinding.Gui
this.scrolledwindow1.Name = "scrolledwindow1";
this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1));
// Container child scrolledwindow1.Gtk.Container+ContainerChild
- global::Gtk.Viewport w11 = new global::Gtk.Viewport ();
- w11.ShadowType = ((global::Gtk.ShadowType)(0));
+ global::Gtk.Viewport w13 = new global::Gtk.Viewport ();
+ w13.ShadowType = ((global::Gtk.ShadowType)(0));
// Container child GtkViewport.Gtk.Container+ContainerChild
this.m_PathsTreeView = new global::Gtk.TreeView ();
this.m_PathsTreeView.CanFocus = true;
this.m_PathsTreeView.Name = "m_PathsTreeView";
- w11.Add (this.m_PathsTreeView);
- this.scrolledwindow1.Add (w11);
+ w13.Add (this.m_PathsTreeView);
+ this.scrolledwindow1.Add (w13);
this.hbox1.Add (this.scrolledwindow1);
- global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.scrolledwindow1]));
- w14.Position = 0;
+ global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.scrolledwindow1]));
+ w16.Position = 0;
// Container child hbox1.Gtk.Box+BoxChild
this.vbox2 = new global::Gtk.VBox ();
this.vbox2.Name = "vbox2";
@@ -193,10 +199,10 @@ namespace PyBinding.Gui
this.m_AddPathButton.UseUnderline = true;
this.m_AddPathButton.Label = "gtk-add";
this.vbox2.Add (this.m_AddPathButton);
- global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.m_AddPathButton]));
- w15.Position = 0;
- w15.Expand = false;
- w15.Fill = false;
+ global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.m_AddPathButton]));
+ w17.Position = 0;
+ w17.Expand = false;
+ w17.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.m_RemovePathButton = new global::Gtk.Button ();
this.m_RemovePathButton.Sensitive = false;
@@ -206,23 +212,24 @@ namespace PyBinding.Gui
this.m_RemovePathButton.UseUnderline = true;
this.m_RemovePathButton.Label = "gtk-remove";
this.vbox2.Add (this.m_RemovePathButton);
- global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2[this.m_RemovePathButton]));
- w16.Position = 1;
- w16.Expand = false;
- w16.Fill = false;
+ global::Gtk.Box.BoxChild w18 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.m_RemovePathButton]));
+ w18.Position = 1;
+ w18.Expand = false;
+ w18.Fill = false;
this.hbox1.Add (this.vbox2);
- global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.hbox1[this.vbox2]));
- w17.Position = 1;
- w17.Expand = false;
- w17.Fill = false;
+ global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.vbox2]));
+ w19.Position = 1;
+ w19.Expand = false;
+ w19.Fill = false;
this.alignment2.Add (this.hbox1);
this.vbox1.Add (this.alignment2);
- global::Gtk.Box.BoxChild w19 = ((global::Gtk.Box.BoxChild)(this.vbox1[this.alignment2]));
- w19.Position = 3;
+ global::Gtk.Box.BoxChild w21 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.alignment2]));
+ w21.Position = 3;
this.Add (this.vbox1);
if ((this.Child != null)) {
this.Child.ShowAll ();
}
+ this.label2.MnemonicWidget = this.alignment2;
this.label4.MnemonicWidget = this.m_PythonOptions;
this.label5.MnemonicWidget = this.m_ModuleEntry;
this.Show ();
diff --git a/extras/PyBinding/PyBinding/gtk-gui/gui.stetic b/extras/PyBinding/PyBinding/gtk-gui/gui.stetic
index d849edb1b8..36ebd72825 100644
--- a/extras/PyBinding/PyBinding/gtk-gui/gui.stetic
+++ b/extras/PyBinding/PyBinding/gtk-gui/gui.stetic
@@ -6,28 +6,24 @@
</configuration>
<import>
<widget-library name="Mono.TextEditor, Version=1.0.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Gettext, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Ide, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Projects.Gui, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Components, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.GtkCore, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Core.Gui, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Autotools, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.SourceEditor2, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Debugger, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Refactoring, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.VersionControl, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.NUnit, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.XmlEditor, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.AspNet, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Deployment, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Deployment.Linux, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.DesignerSupport, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.VBNetBinding, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.CBinding, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.CSharpBinding, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Moonlight, Version=2.2.0.0, Culture=neutral" />
- <widget-library name="MonoDevelop.Debugger.Soft, Version=2.2.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.Gettext, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.Ide, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.GtkCore, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.SourceEditor2, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.Debugger, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.Refactoring, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.VersionControl, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.NUnit, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.XmlEditor, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.AspNet, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.Deployment, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.Deployment.Linux, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.DesignerSupport, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.VBNetBinding, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.CBinding, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.CSharpBinding, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.Moonlight, Version=2.6.0.0, Culture=neutral" />
+ <widget-library name="MonoDevelop.Debugger.Soft, Version=2.6.0.0, Culture=neutral" />
<widget-library name="../../build/PyBinding.dll" internal="true" />
</import>
<widget class="Gtk.Bin" id="PyBinding.Gui.PythonOptionsWidget" design-size="491 382">
@@ -57,7 +53,7 @@
<child>
<widget class="Gtk.Table" id="table1">
<property name="MemberName" />
- <property name="NRows">5</property>
+ <property name="NRows">6</property>
<property name="NColumns">2</property>
<property name="RowSpacing">6</property>
<property name="ColumnSpacing">6</property>
@@ -68,6 +64,26 @@
<placeholder />
</child>
<child>
+ <widget class="Gtk.Label" id="label2">
+ <property name="MemberName" />
+ <property name="LabelProp" translatable="yes">Runtime location:</property>
+ <property name="MnemonicWidget">alignment2</property>
+ </widget>
+ <packing>
+ <property name="TopAttach">1</property>
+ <property name="BottomAttach">2</property>
+ <property name="AutoSize">True</property>
+ <property name="XOptions">Fill</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">False</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
+ <child>
<widget class="Gtk.Label" id="label4">
<property name="MemberName" />
<property name="LabelProp" translatable="yes">Python _Options:</property>
@@ -75,8 +91,8 @@
<property name="MnemonicWidget">m_PythonOptions</property>
</widget>
<packing>
- <property name="TopAttach">1</property>
- <property name="BottomAttach">2</property>
+ <property name="TopAttach">2</property>
+ <property name="BottomAttach">3</property>
<property name="AutoSize">True</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
@@ -96,8 +112,8 @@
<property name="MnemonicWidget">m_ModuleEntry</property>
</widget>
<packing>
- <property name="TopAttach">2</property>
- <property name="BottomAttach">3</property>
+ <property name="TopAttach">3</property>
+ <property name="BottomAttach">4</property>
<property name="AutoSize">False</property>
<property name="XOptions">Fill</property>
<property name="YOptions">Fill</property>
@@ -117,8 +133,8 @@
<property name="InvisibleChar">●</property>
</widget>
<packing>
- <property name="TopAttach">2</property>
- <property name="BottomAttach">3</property>
+ <property name="TopAttach">3</property>
+ <property name="BottomAttach">4</property>
<property name="LeftAttach">1</property>
<property name="RightAttach">2</property>
<property name="AutoSize">False</property>
@@ -141,8 +157,8 @@
<property name="UseUnderline">True</property>
</widget>
<packing>
- <property name="TopAttach">3</property>
- <property name="BottomAttach">4</property>
+ <property name="TopAttach">4</property>
+ <property name="BottomAttach">5</property>
<property name="RightAttach">2</property>
<property name="AutoSize">False</property>
<property name="YOptions">Fill</property>
@@ -162,8 +178,8 @@
<property name="InvisibleChar">●</property>
</widget>
<packing>
- <property name="TopAttach">1</property>
- <property name="BottomAttach">2</property>
+ <property name="TopAttach">2</property>
+ <property name="BottomAttach">3</property>
<property name="LeftAttach">1</property>
<property name="RightAttach">2</property>
<property name="AutoSize">True</property>
@@ -196,6 +212,26 @@
<property name="YShrink">False</property>
</packing>
</child>
+ <child>
+ <widget class="MonoDevelop.Components.FileEntry" id="m_RuntimeFileEntry">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="TopAttach">1</property>
+ <property name="BottomAttach">2</property>
+ <property name="LeftAttach">1</property>
+ <property name="RightAttach">2</property>
+ <property name="AutoSize">True</property>
+ <property name="XOptions">Fill</property>
+ <property name="YOptions">Fill</property>
+ <property name="XExpand">False</property>
+ <property name="XFill">True</property>
+ <property name="XShrink">False</property>
+ <property name="YExpand">False</property>
+ <property name="YFill">True</property>
+ <property name="YShrink">False</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
diff --git a/extras/WebKitWebBrowser/Makefile b/extras/WebKitWebBrowser/Makefile
index b17cc863e9..f60f1c4e1a 100644
--- a/extras/WebKitWebBrowser/Makefile
+++ b/extras/WebKitWebBrowser/Makefile
@@ -57,7 +57,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook distsir=$$distdir
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/main/Main.sln b/main/Main.sln
index 16e64876f1..27c5e248ac 100644
--- a/main/Main.sln
+++ b/main/Main.sln
@@ -195,6 +195,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{78C10DAE
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "tests\UnitTests\UnitTests.csproj", "{1497D0A8-AFF1-4938-BC22-BE79B358BA5B}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UserInterfaceTests", "tests\UserInterfaceTests\UserInterfaceTests.csproj", "{07F55155-51A8-4072-9F80-FA473666F086}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -228,6 +230,18 @@ Global
{07CC7654-27D6-421D-A64C-0FFA40456FA2}.DebugWin32|x86.Build.0 = Debug|Any CPU
{07CC7654-27D6-421D-A64C-0FFA40456FA2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{07CC7654-27D6-421D-A64C-0FFA40456FA2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.Debug|x86.Build.0 = Debug|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.DebugMac|Any CPU.Build.0 = Debug|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.DebugWin32|x86.ActiveCfg = Debug|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.DebugWin32|x86.Build.0 = Debug|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.Release|Any CPU.Build.0 = Release|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.Release|x86.ActiveCfg = Release|Any CPU
+ {07F55155-51A8-4072-9F80-FA473666F086}.Release|x86.Build.0 = Release|Any CPU
{0AF16AF1-0876-413E-9803-08BD33C19E00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0AF16AF1-0876-413E-9803-08BD33C19E00}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0AF16AF1-0876-413E-9803-08BD33C19E00}.DebugMac|Any CPU.ActiveCfg = Debug|Any CPU
@@ -899,6 +913,7 @@ Global
{D90DF5C6-0ABE-4E13-930D-C3AE95FBE5C4} = {5D3F7E65-E55B-45CA-A83B-D1E10040281E}
{E414CD46-33C8-4CE1-986F-B601F941EBB9} = {5D3F7E65-E55B-45CA-A83B-D1E10040281E}
{1497D0A8-AFF1-4938-BC22-BE79B358BA5B} = {78C10DAE-D3D7-44FC-93DF-831D8D54ECF9}
+ {07F55155-51A8-4072-9F80-FA473666F086} = {78C10DAE-D3D7-44FC-93DF-831D8D54ECF9}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
StartupItem = src\core\MonoDevelop.Startup\MonoDevelop.Startup.csproj
diff --git a/main/build/MacOSX/release-info b/main/build/MacOSX/release-info
index 7d1ddcf456..889c8bf7f0 100644
--- a/main/build/MacOSX/release-info
+++ b/main/build/MacOSX/release-info
@@ -1 +1,2 @@
20901000
+
diff --git a/main/contrib/Mono.Cecil/Mono.Cecil.Mdb.csproj b/main/contrib/Mono.Cecil/Mono.Cecil.Mdb.csproj
index 657762bb75..2cd015d91e 100644
--- a/main/contrib/Mono.Cecil/Mono.Cecil.Mdb.csproj
+++ b/main/contrib/Mono.Cecil/Mono.Cecil.Mdb.csproj
@@ -42,10 +42,6 @@
<Content Include="Mono.Cecil.Mdb\Mono.Cecil.Mdb.dll.sources" />
</ItemGroup>
<ItemGroup>
- <None Include="Mono.CompilerServices.SymbolWriter\ChangeLog" />
- <None Include="ChangeLog" />
- </ItemGroup>
- <ItemGroup>
<Compile Include="Mono.Cecil.Mdb\Mono.Cecil.Mdb\AssemblyInfo.cs" />
<Compile Include="Mono.Cecil.Mdb\Mono.Cecil.Mdb\MdbReader.cs" />
<Compile Include="Mono.Cecil.Mdb\Mono.Cecil.Mdb\MdbWriter.cs" />
diff --git a/main/contrib/Mono.Cecil/Mono.Cecil.csproj b/main/contrib/Mono.Cecil/Mono.Cecil.csproj
index 574f375bae..92327813ec 100644
--- a/main/contrib/Mono.Cecil/Mono.Cecil.csproj
+++ b/main/contrib/Mono.Cecil/Mono.Cecil.csproj
@@ -38,7 +38,6 @@
<DefineConstants>NET_3_5</DefineConstants>
</PropertyGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="cecil.snk" />
</ItemGroup>
<ItemGroup>
diff --git a/main/contrib/Mono.Debugger.Soft/Locale.cs b/main/contrib/Mono.Debugger.Soft/Locale.cs
new file mode 100644
index 0000000000..7293ab2daf
--- /dev/null
+++ b/main/contrib/Mono.Debugger.Soft/Locale.cs
@@ -0,0 +1,51 @@
+//
+// Locale.cs
+//
+// Author:
+// Miguel de Icaza (miguel@ximian.com)
+// Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//
+// (C) 2001 - 2003 Ximian, Inc (http://www.ximian.com)
+//
+
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+
+internal sealed class Locale {
+
+ private Locale ()
+ {
+ }
+
+ public static string GetText (string msg)
+ {
+ return msg;
+ }
+
+ public static string GetText (string fmt, params object [] args)
+ {
+ return String.Format (fmt, args);
+ }
+}
diff --git a/main/contrib/Mono.Debugger.Soft/Makefile.am b/main/contrib/Mono.Debugger.Soft/Makefile.am
index e32fc147c2..67fb3f2e59 100644
--- a/main/contrib/Mono.Debugger.Soft/Makefile.am
+++ b/main/contrib/Mono.Debugger.Soft/Makefile.am
@@ -10,6 +10,7 @@ DEPS = ../../build/bin/Mono.Cecil.dll
SIGNING_KEY=$(srcdir)/mono.snk
FILES = \
+ Locale.cs \
Mono.Debugger.Soft/AbsentInformationException.cs \
Mono.Debugger.Soft/AppDomainCreateEvent.cs \
Mono.Debugger.Soft/AppDomainMirror.cs \
diff --git a/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj b/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj
index 1a84d282d1..9cf873e765 100644
--- a/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj
+++ b/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj
@@ -105,9 +105,9 @@
<Compile Include="Mono.Debugger.Soft\VMMismatchException.cs" />
<Compile Include="Mono.Debugger.Soft\VMStartEvent.cs" />
<Compile Include="Mono.Debugger.Soft\AssemblyLoadEventRequest.cs" />
+ <Compile Include="Locale.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="Mono.Debugger.Soft\ChangeLog" />
<None Include="Makefile.am" />
<None Include="mono-git-revision" />
</ItemGroup>
@@ -136,4 +136,4 @@
</Properties>
</MonoDevelop>
</ProjectExtensions>
-</Project> \ No newline at end of file
+</Project>
diff --git a/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/Connection.cs b/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/Connection.cs
index c8b3132f1a..c4ee6a5be7 100644
--- a/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/Connection.cs
+++ b/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/Connection.cs
@@ -353,7 +353,7 @@ namespace Mono.Debugger.Soft
* with newer runtimes, and vice versa.
*/
internal const int MAJOR_VERSION = 2;
- internal const int MINOR_VERSION = 9;
+ internal const int MINOR_VERSION = 10;
enum WPSuspendPolicy {
NONE = 0,
@@ -515,7 +515,9 @@ namespace Mono.Debugger.Soft
}
enum CmdStringRef {
- GET_VALUE = 1
+ GET_VALUE = 1,
+ GET_LENGTH = 2,
+ GET_CHARS = 3
}
enum CmdObjectRef {
@@ -2055,6 +2057,18 @@ namespace Mono.Debugger.Soft
return SendReceive (CommandSet.STRING_REF, (int)CmdStringRef.GET_VALUE, new PacketWriter ().WriteId (id)).ReadString ();
}
+ internal int String_GetLength (long id) {
+ return (int)SendReceive (CommandSet.STRING_REF, (int)CmdStringRef.GET_LENGTH, new PacketWriter ().WriteId (id)).ReadLong ();
+ }
+
+ internal char[] String_GetChars (long id, int index, int length) {
+ var r = SendReceive (CommandSet.STRING_REF, (int)CmdStringRef.GET_CHARS, new PacketWriter ().WriteId (id).WriteLong (index).WriteLong (length));
+ var res = new char [length];
+ for (int i = 0; i < length; ++i)
+ res [i] = (char)r.ReadShort ();
+ return res;
+ }
+
/*
* OBJECTS
*/
diff --git a/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/StringMirror.cs b/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/StringMirror.cs
index e2e65f68d6..dea12b5eb8 100644
--- a/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/StringMirror.cs
+++ b/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft/StringMirror.cs
@@ -5,10 +5,14 @@ namespace Mono.Debugger.Soft
{
public class StringMirror : ObjectMirror {
+ int length;
+
internal StringMirror (VirtualMachine vm, long id) : base (vm, id) {
+ length = -1;
}
internal StringMirror (VirtualMachine vm, long id, TypeMirror type, AppDomainMirror domain) : base (vm, id, type, domain) {
+ length = -1;
}
public string Value {
@@ -16,5 +20,24 @@ namespace Mono.Debugger.Soft
return vm.conn.String_GetValue (id);
}
}
+
+ // Since protocol version 2.10
+ public int Length {
+ get {
+ if (length == -1)
+ length = vm.conn.String_GetLength (id);
+ return length;
+ }
+ }
+
+ // Since protocol version 2.10
+ public char[] GetChars (int index, int length) {
+ // re-ordered to avoid possible integer overflow
+ if (index > Length - length)
+ throw new ArgumentException (Locale.GetText (
+ "index and length do not specify a valid range in string."));
+
+ return vm.conn.String_GetChars (id, index, length);
+ }
}
}
diff --git a/main/contrib/Mono.Debugger.Soft/mono-git-revision b/main/contrib/Mono.Debugger.Soft/mono-git-revision
index 2b5372ba57..be0287ce5f 100644
--- a/main/contrib/Mono.Debugger.Soft/mono-git-revision
+++ b/main/contrib/Mono.Debugger.Soft/mono-git-revision
@@ -1 +1 @@
-4d71a7c9776b7cd56db9285dfdeb795cc0f6607c
+f42ba4a168e7cb9b9486b8a96c53752e4467be8a
diff --git a/main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.addin.xml b/main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.addin.xml
index 0fe7394b94..44062bc6e7 100644
--- a/main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.addin.xml
+++ b/main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.addin.xml
@@ -8,8 +8,8 @@
category = "Web Development"
version = "2.9.1">
- <Runtime>
- <Import file="Schemas/xhtml1-strict.xsd" />
+ <Runtime>
+ <Import file="Schemas/xhtml1-strict.xsd" />
<Import file="Schemas/xhtml1-transitional.xsd" />
<Import file="Schemas/xhtml1-frameset.xsd" />
</Runtime>
diff --git a/main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.csproj b/main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.csproj
index deb3461c84..17a7cc1180 100644
--- a/main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.csproj
+++ b/main/src/addins/AspNet/MonoDevelop.AspNet/MonoDevelop.AspNet.csproj
@@ -306,7 +306,6 @@
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
<Content Include="Schemas\xhtml1-frameset.xsd">
diff --git a/main/src/addins/CBinding/CBinding.csproj b/main/src/addins/CBinding/CBinding.csproj
index b3715c94fa..b35dae9837 100644
--- a/main/src/addins/CBinding/CBinding.csproj
+++ b/main/src/addins/CBinding/CBinding.csproj
@@ -106,7 +106,6 @@
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="ChangeLog" />
<None Include="README" />
</ItemGroup>
<ItemGroup>
diff --git a/main/src/addins/CSharpBinding/CSharpBinding.csproj b/main/src/addins/CSharpBinding/CSharpBinding.csproj
index 9c71dd7841..c07f8d0108 100644
--- a/main/src/addins/CSharpBinding/CSharpBinding.csproj
+++ b/main/src/addins/CSharpBinding/CSharpBinding.csproj
@@ -253,7 +253,6 @@
<Compile Include="MonoDevelop.CSharp.Inspection\Inspectors\RedundantNamespaceUsageInspector.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Makefile.am" />
<None Include="MonoDevelop.CSharp.Refactoring\CSharpRefactorer.cs" />
<None Include="MonoDevelop.CSharp.Completion\NRefactoryTemplateParameterDataProvider.cs" />
diff --git a/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.addin.xml b/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.addin.xml
index 7ae13a21c3..16a6a695c5 100644
--- a/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.addin.xml
+++ b/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.addin.xml
@@ -18,10 +18,10 @@
<Addin id="VersionControl" version="2.9.1"/>
</Dependencies>
- <Extension path = "/MonoDevelop/VersionControl/CommitDialogExtensions">
+ <Extension path = "/MonoDevelop/VersionControl/CommitDialogExtensions">
<Class class="MonoDevelop.ChangeLogAddIn.CommitDialogExtensionWidget" />
</Extension>
-
+
<Extension path = "/MonoDevelop/Ide/Commands">
<Command id = "MonoDevelop.ChangeLogAddIn.ChangeLogCommands.InsertEntry"
defaultHandler = "MonoDevelop.ChangeLogAddIn.InsertEntryHandler"
diff --git a/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.csproj b/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.csproj
index 7639620092..726fce627f 100644
--- a/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.csproj
+++ b/main/src/addins/ChangeLogAddIn/ChangeLogAddIn.csproj
@@ -106,7 +106,6 @@
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="ChangeLog" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux.csproj b/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux.csproj
index 367ef95fe1..40cc4ccb3e 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux.csproj
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment.Linux/MonoDevelop.Deployment.Linux.csproj
@@ -111,7 +111,6 @@
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="ChangeLog" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.csproj b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.csproj
index 0a6974f104..88b304adb0 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.csproj
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/MonoDevelop.Deployment.csproj
@@ -78,7 +78,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Makefile.am" />
</ItemGroup>
<ItemGroup>
diff --git a/main/src/addins/ILAsmBinding/ILAsmBinding.addin.xml b/main/src/addins/ILAsmBinding/ILAsmBinding.addin.xml
index 987c22bb70..bdc6fe66f3 100644
--- a/main/src/addins/ILAsmBinding/ILAsmBinding.addin.xml
+++ b/main/src/addins/ILAsmBinding/ILAsmBinding.addin.xml
@@ -42,4 +42,4 @@
<DotNetProject language="IL" extension="ilproj" guid="{B4EC64DC-6D44-11DD-AAB0-C9A155D89593}"/>
</Extension>
-</Addin> \ No newline at end of file
+</Addin>
diff --git a/main/src/addins/MacPlatform/MacPlatform.cs b/main/src/addins/MacPlatform/MacPlatform.cs
index d10679e6f6..21e8ee50db 100644
--- a/main/src/addins/MacPlatform/MacPlatform.cs
+++ b/main/src/addins/MacPlatform/MacPlatform.cs
@@ -460,17 +460,16 @@ end tell", directory.ToString ().Replace ("\"", "\\\"")));
public override Gdk.Rectangle GetUsableMonitorGeometry (Gdk.Screen screen, int monitor_id)
{
- Gdk.Rectangle geometry = screen.GetMonitorGeometry (0);
+ Gdk.Rectangle ygeometry = screen.GetMonitorGeometry (monitor_id);
+ Gdk.Rectangle xgeometry = screen.GetMonitorGeometry (0);
NSScreen monitor = NSScreen.Screens[monitor_id];
RectangleF visible = monitor.VisibleFrame;
RectangleF frame = monitor.Frame;
// Note: Frame and VisibleFrame rectangles are relative to monitor 0, but we need absolute
// coordinates.
- visible.X += geometry.X;
- visible.Y += geometry.Y;
- frame.X += geometry.X;
- frame.Y += geometry.Y;
+ visible.X += xgeometry.X;
+ frame.X += xgeometry.X;
// VisibleFrame.Y is the height of the Dock if it is at the bottom of the screen, so in order
// to get the menu height, we just figure out the difference between the visibleFrame height
@@ -485,10 +484,10 @@ end tell", directory.ToString ().Replace ("\"", "\\\"")));
float menubarHeight = (frame.Height - visible.Height) - dockHeight;
height = frame.Height - menubarHeight - dockHeight;
- y = menubarHeight;
+ y = ygeometry.Y + menubarHeight;
} else {
height = frame.Height;
- y = frame.Y;
+ y = ygeometry.Y;
}
// Takes care of the possibility of the Dock being positioned on the left or right edge of the screen.
diff --git a/main/src/addins/MacPlatform/MacPlatform.csproj b/main/src/addins/MacPlatform/MacPlatform.csproj
index 0cd83b3172..313dc5e896 100644
--- a/main/src/addins/MacPlatform/MacPlatform.csproj
+++ b/main/src/addins/MacPlatform/MacPlatform.csproj
@@ -89,7 +89,6 @@
<Compile Include="MacInterop\AppleEvents\Native.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Makefile.am" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.csproj b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.csproj
index a3aec31d19..d1260bc692 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.csproj
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser.csproj
@@ -150,9 +150,6 @@
<LogicalName>MonoDevelop.AssemblyBrowser.addin.xml</LogicalName>
</EmbeddedResource>
</ItemGroup>
- <ItemGroup>
- <None Include="ChangeLog" />
- </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<MonoDevelop>
diff --git a/main/src/addins/MonoDevelop.Autotools/MonoDevelop.Autotools.csproj b/main/src/addins/MonoDevelop.Autotools/MonoDevelop.Autotools.csproj
index abc8e1a2e6..b7924c87dc 100644
--- a/main/src/addins/MonoDevelop.Autotools/MonoDevelop.Autotools.csproj
+++ b/main/src/addins/MonoDevelop.Autotools/MonoDevelop.Autotools.csproj
@@ -120,7 +120,6 @@
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="ChangeLog" />
</ItemGroup>
<ItemGroup>
<Content Include="templates\Makefile.am.project.template">
diff --git a/main/src/addins/MonoDevelop.Autotools/templates/make-dist.targets b/main/src/addins/MonoDevelop.Autotools/templates/make-dist.targets
index fbb040155b..316ca728a6 100644
--- a/main/src/addins/MonoDevelop.Autotools/templates/make-dist.targets
+++ b/main/src/addins/MonoDevelop.Autotools/templates/make-dist.targets
@@ -11,7 +11,6 @@ dist: $(CONFIG_MAKE)
esac \
done
(make dist-local distdir=$(PACKAGE)-$(VERSION))
- make
make post-dist-hook "distsir=$$distdir"
tar czvf $(PACKAGE)-$(VERSION).tar.gz $(PACKAGE)-$(VERSION)
rm -rf $(PACKAGE)-$(VERSION)
diff --git a/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.addin.xml b/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.addin.xml
index f0cd4e5d0e..c50ef7a5ed 100644
--- a/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.addin.xml
+++ b/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.addin.xml
@@ -18,23 +18,23 @@
<Addin id="Ide" version="2.9.1"/>
</Dependencies>
- <Extension path = "/MonoDevelop/Ide/Commands">
+ <Extension path = "/MonoDevelop/Ide/Commands">
<Command id = "MonoDevelop.CodeMetrics.Commands.ShowMetrics"
defaultHandler = "MonoDevelop.CodeMetrics.ShowMetricsHandler"
- _label = "_Code Metrics" />
+ _label = "_Code Metrics" />
</Extension>
<Extension path = "/MonoDevelop/Ide/MainMenu/Project">
<CommandItem id = "MonoDevelop.CodeMetrics.Commands.ShowMetrics" insertbefore="OptionsSeparator"/>
</Extension>
- <Extension path = "/MonoDevelop/Ide/Pads/ProjectPad">
- <NodeBuilder id = "CodeMetricsNodeExtension" class = "MonoDevelop.CodeMetrics.CodeMetricsNodeExtension"/>
- </Extension>
+ <Extension path = "/MonoDevelop/Ide/Pads/ProjectPad">
+ <NodeBuilder id = "CodeMetricsNodeExtension" class = "MonoDevelop.CodeMetrics.CodeMetricsNodeExtension"/>
+ </Extension>
<Extension path = "/MonoDevelop/Ide/ContextMenu/ProjectPad/Tools">
- <Condition id="ItemType" value="Solution|SolutionFolder|Project|ProjectFile|MonoDevelop.Ide.Gui.Pads.ProjectPad.ProjectFolder">
+ <Condition id="ItemType" value="Solution|SolutionFolder|Project|ProjectFile|MonoDevelop.Ide.Gui.Pads.ProjectPad.ProjectFolder">
<CommandItem id = "MonoDevelop.CodeMetrics.Commands.ShowMetrics" insertafter="FindInFilesSeparator" insertbefore="CombineOptionsSeparator"/>
- </Condition>
+ </Condition>
</Extension>
</Addin>
diff --git a/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.csproj b/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.csproj
index e1ede6519d..9b97729e77 100644
--- a/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.csproj
+++ b/main/src/addins/MonoDevelop.CodeMetrics/MonoDevelop.CodeMetrics.csproj
@@ -132,9 +132,6 @@
<Compile Include="MonoDevelop.CodeMetrics\IProperties.cs" />
<Compile Include="MonoDevelop.CodeMetrics\AssociationBetweenClasses.cs" />
</ItemGroup>
- <ItemGroup>
- <None Include="ChangeLog" />
- </ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<MonoDevelop>
diff --git a/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerAdaptor.cs b/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerAdaptor.cs
index 3febf3ebac..b734f3d0f7 100644
--- a/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerAdaptor.cs
+++ b/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerAdaptor.cs
@@ -1032,9 +1032,29 @@ namespace Mono.Debugging.Soft
public override object TargetObjectToObject (EvaluationContext gctx, object obj)
{
- if (obj is StringMirror)
- return ((StringMirror)obj).Value;
- else if (obj is PrimitiveValue)
+ if (obj is StringMirror) {
+ StringMirror mirror = (StringMirror) obj;
+ string str;
+
+ if (gctx.Options.EllipsizeStrings) {
+ if (mirror.VirtualMachine.Version.AtLeast (2, 10)) {
+ int length = mirror.Length;
+
+ if (length > gctx.Options.EllipsizedLength)
+ str = new string (mirror.GetChars (0, gctx.Options.EllipsizedLength)) + EvaluationOptions.Ellipsis;
+ else
+ str = mirror.Value;
+ } else {
+ str = mirror.Value;
+ if (str.Length > gctx.Options.EllipsizedLength)
+ str = str.Substring (0, gctx.Options.EllipsizedLength) + EvaluationOptions.Ellipsis;
+ }
+ } else {
+ str = mirror.Value;
+ }
+
+ return str;
+ } else if (obj is PrimitiveValue)
return ((PrimitiveValue)obj).Value;
else if ((obj is StructMirror) && ((StructMirror)obj).Type.IsPrimitive) {
// Boxed primitive
diff --git a/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerSession.cs b/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerSession.cs
index a15bfd771c..e67fbaee8f 100644
--- a/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerSession.cs
+++ b/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerSession.cs
@@ -1115,8 +1115,6 @@ namespace Mono.Debugging.Soft
var t = ((TypeLoadEvent)e).Type;
string typeName = t.FullName;
-
- Console.WriteLine (typeName);
if (types.ContainsKey (typeName)) {
if (typeName != "System.Exception" && typeName != "<Module>")
@@ -1319,7 +1317,7 @@ namespace Mono.Debugging.Soft
MDB.StackFrame[] frames = thread.GetFrames ();
if (frames.Length == 0)
return string.Empty;
- EvaluationOptions ops = Options.EvaluationOptions;
+ EvaluationOptions ops = Options.EvaluationOptions.Clone ();
ops.AllowTargetInvoke = true;
var ctx = new SoftEvaluationContext (this, frames[0], ops);
ValueReference val = ctx.Evaluator.Evaluate (ctx, exp);
diff --git a/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/VariableValueReference.cs b/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/VariableValueReference.cs
index 29b3f45f9e..eee0e7a825 100644
--- a/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/VariableValueReference.cs
+++ b/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/VariableValueReference.cs
@@ -64,7 +64,14 @@ namespace Mono.Debugging.Soft
public override object Value {
get {
SoftEvaluationContext ctx = (SoftEvaluationContext) Context;
- return ctx.Frame.GetValue (variable);
+ try {
+ return ctx.Frame.GetValue (variable);
+ } catch (AbsentInformationException) {
+ if (((SoftDebuggerSession) ctx.Session).IsExternalCode (ctx.Frame))
+ throw new EvaluatorException ("Value not available");
+
+ throw;
+ }
}
set {
SoftEvaluationContext ctx = (SoftEvaluationContext) Context;
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs
index d141da976f..95c50b7bd1 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebugCommands.cs
@@ -35,6 +35,7 @@ using MonoDevelop.Ide.Gui;
using MonoDevelop.Components.Commands;
using MonoDevelop.Projects;
using MonoDevelop.Ide;
+using System.Linq;
namespace MonoDevelop.Debugger
{
@@ -348,7 +349,7 @@ namespace MonoDevelop.Debugger
protected override void Update (CommandInfo info)
{
- info.Enabled = !DebuggingService.Breakpoints.IsReadOnly;
+ info.Enabled = !DebuggingService.Breakpoints.IsReadOnly && DebuggingService.Breakpoints.Count > 0;
info.Visible = DebuggingService.IsFeatureSupported (DebuggerFeatures.Breakpoints);
}
}
@@ -435,7 +436,8 @@ namespace MonoDevelop.Debugger
protected override void Update (CommandInfo info)
{
- info.Enabled = !DebuggingService.Breakpoints.IsReadOnly;
+ info.Enabled = !DebuggingService.Breakpoints.IsReadOnly
+ && DebuggingService.Breakpoints.Any (b => b.Enabled);
info.Visible = DebuggingService.IsFeatureSupported (DebuggerFeatures.Breakpoints);
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
index 75d2653ae1..eb3d63c0f7 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
@@ -584,8 +584,6 @@ namespace MonoDevelop.Debugger
static void OnTargetEvent (object sender, TargetEventArgs args)
{
try {
- Console.WriteLine ("OnTargetEvent, type - {0}", args.Type);
-
switch (args.Type) {
case TargetEventType.TargetExited:
Cleanup ();
@@ -603,8 +601,8 @@ namespace MonoDevelop.Debugger
default:
break;
}
- } catch (Exception e) {
- Console.WriteLine ("OnTargetEvent, {0}", e.ToString ());
+ } catch (Exception ex) {
+ LoggingService.LogError ("Error handling debugger target event", ex);
}
}
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
index de3fdd0ba2..0abdafa6cc 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ImmediatePad.cs
@@ -72,6 +72,7 @@ namespace MonoDevelop.Debugger
ops.AllowMethodEvaluation = true;
ops.AllowTargetInvoke = true;
ops.EvaluationTimeout = 20000;
+ ops.EllipsizeStrings = false;
var ff = DebuggingService.CurrentFrame;
string tt = e.Text;
ValidationResult vres = ff.ValidateExpression (tt, ops);
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs
index c0a0c5f2eb..70df7dfc34 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/ObjectValueTreeView.cs
@@ -48,7 +48,7 @@ namespace MonoDevelop.Debugger
List<string> valueNames = new List<string> ();
Dictionary<string,string> oldValues = new Dictionary<string,string> ();
List<ObjectValue> values = new List<ObjectValue> ();
- Dictionary<ObjectValue,TreeIter> nodes = new Dictionary<ObjectValue, TreeIter> ();
+ Dictionary<ObjectValue,TreeRowReference> nodes = new Dictionary<ObjectValue, TreeRowReference> ();
Dictionary<string,ObjectValue> cachedValues = new Dictionary<string,ObjectValue> ();
TreeStore store;
TreeViewState state;
@@ -497,9 +497,10 @@ namespace MonoDevelop.Debugger
if (!store.IterParent (out parent, it))
parent = TreeIter.Zero;
- EvaluationOptions ops = frame.DebuggerSession.Options.EvaluationOptions;
+ EvaluationOptions ops = frame.DebuggerSession.Options.EvaluationOptions.Clone ();
ops.AllowMethodEvaluation = true;
ops.AllowTargetInvoke = true;
+ ops.EllipsizeStrings = false;
string oldName = val.Name;
val.Refresh (ops);
@@ -527,7 +528,7 @@ namespace MonoDevelop.Debugger
void RegisterValue (ObjectValue val, TreeIter it)
{
if (val.IsEvaluating) {
- nodes [val] = it;
+ nodes [val] = new TreeRowReference (store, store.GetPath (it));
val.ValueChanged += OnValueUpdated;
}
}
@@ -578,7 +579,14 @@ namespace MonoDevelop.Debugger
bool FindValue (ObjectValue val, out TreeIter it)
{
- return nodes.TryGetValue (val, out it);
+ TreeRowReference row;
+
+ if (!nodes.TryGetValue (val, out row)) {
+ it = TreeIter.Zero;
+ return false;
+ }
+
+ return store.GetIter (out it, row.Path);
}
public void ResetChangeTracking ()
@@ -747,23 +755,22 @@ namespace MonoDevelop.Debugger
{
if (!allowExpanding)
return true;
- bool expanded = (bool) store.GetValue (iter, ExpandedCol);
- if (!expanded) {
- store.SetValue (iter, ExpandedCol, true);
- TreeIter it;
- store.IterChildren (out it, iter);
- store.Remove (ref it);
- ObjectValue val = (ObjectValue) store.GetValue (iter, ObjectCol);
- foreach (ObjectValue cval in val.GetAllChildren ())
- AppendValue (iter, null, cval);
- return base.OnTestExpandRow (iter, path);
+
+ if (GetRowExpanded (path))
+ return true;
+
+ TreeIter parent;
+ if (store.IterParent (out parent, iter)) {
+ if (!GetRowExpanded (store.GetPath (parent)))
+ return true;
}
- else
- return false;
+
+ return base.OnTestExpandRow (iter, path);
}
protected override void OnRowCollapsed (TreeIter iter, TreePath path)
{
+ store.SetValue (iter, ExpandedCol, false);
base.OnRowCollapsed (iter, path);
if (compact)
ColumnsAutosize ();
@@ -771,7 +778,27 @@ namespace MonoDevelop.Debugger
protected override void OnRowExpanded (TreeIter iter, TreePath path)
{
+ store.SetValue (iter, ExpandedCol, true);
+ TreeIter it;
+
+ if (store.IterChildren (out it, iter)) {
+ ObjectValue val = (ObjectValue) store.GetValue (it, ObjectCol);
+ if (val == null) {
+ val = (ObjectValue) store.GetValue (iter, ObjectCol);
+ bool first = true;
+
+ foreach (ObjectValue cval in val.GetAllChildren ()) {
+ SetValues (iter, it, null, cval);
+ RegisterValue (cval, it);
+ it = store.InsertNodeAfter (it);
+ }
+
+ store.Remove (ref it);
+ }
+ }
+
base.OnRowExpanded (iter, path);
+
if (compact)
ColumnsAutosize ();
}
@@ -1121,7 +1148,7 @@ namespace MonoDevelop.Debugger
TreePath[] sel = Selection.GetSelectedRows ();
if (store.GetIter (out it, sel[0])) {
ObjectValue val = (ObjectValue) store.GetValue (it, ObjectCol);
- if (val.Name == DebuggingService.DebuggerSession.EvaluationOptions.CurrentExceptionTag)
+ if (val != null && val.Name == DebuggingService.DebuggerSession.EvaluationOptions.CurrentExceptionTag)
DebuggingService.ShowExceptionCaughtDialog ();
}
}
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj
index 7b23db8fb8..1bef603669 100644
--- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj
+++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj
@@ -170,7 +170,6 @@
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="ChangeLog" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
diff --git a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.csproj b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.csproj
index 978046f9f3..18704fb18a 100644
--- a/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.csproj
+++ b/main/src/addins/MonoDevelop.DocFood/MonoDevelop.DocFood.csproj
@@ -134,7 +134,4 @@
<Private>False</Private>
</ProjectReference>
</ItemGroup>
- <ItemGroup>
- <None Include="ChangeLog" />
- </ItemGroup>
</Project>
diff --git a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.csproj b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.csproj
index 8d5d329b97..2ec1a61bd5 100644
--- a/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.csproj
+++ b/main/src/addins/MonoDevelop.Gettext/MonoDevelop.Gettext.csproj
@@ -187,7 +187,6 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Makefile.am" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.csproj b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.csproj
index 193630ae70..0b4f1978c7 100644
--- a/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.csproj
+++ b/main/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.csproj
@@ -110,7 +110,6 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Makefile.am" />
<None Include="icons\window.png" />
<None Include="icons\dialog.png" />
diff --git a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor.csproj b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor.csproj
index 48da72ec0a..098403877d 100644
--- a/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor.csproj
+++ b/main/src/addins/MonoDevelop.HexEditor/MonoDevelop.HexEditor.csproj
@@ -168,7 +168,4 @@
</Properties>
</MonoDevelop>
</ProjectExtensions>
- <ItemGroup>
- <None Include="ChangeLog" />
- </ItemGroup>
</Project>
diff --git a/main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs b/main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs
index 0eef51b439..9a8b57066e 100644
--- a/main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs
+++ b/main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs
@@ -70,9 +70,9 @@ namespace MonoDevelop.MacDev
public override void Launch (params string[] files)
{
if (!AppleSdkSettings.IsXcode42)
- throw new UserException ("XCode 4.2 is required to open file {0}", files [0]);
+ throw new UserException (string.Format ("XCode 4.2 is required to open file {0}", files [0]));
project.XcodeProjectTracker.OpenDocument (files[0]);
}
}
-} \ No newline at end of file
+}
diff --git a/main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight.addin.xml b/main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight.addin.xml
index 3d6846e404..ea6e8deb27 100644
--- a/main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight.addin.xml
+++ b/main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight.addin.xml
@@ -16,7 +16,7 @@
<Addin id="AspNet" version="2.9.1" />
</Dependencies>
- <Runtime>
+ <Runtime>
<Import file="Templates/Silverlight.js" />
</Runtime>
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj
index 7a2dfe6b8d..84c128b071 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring.csproj
@@ -195,7 +195,6 @@
</MonoDevelop>
</ProjectExtensions>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="MonoDevelop.AnalysisCore\README.txt" />
<None Include="MonoDevelop.AnalysisCore\TODO.txt" />
<None Include="MonoDevelop.Refactoring.IntroduceConstant\IntroduceConstantRefactoring.cs" />
diff --git a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
index 1f5f11fe52..e7c4f3f754 100644
--- a/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
+++ b/main/src/addins/MonoDevelop.RegexToolkit/MonoDevelop.RegexToolkit.csproj
@@ -99,7 +99,6 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Makefile.am" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj
index 147143cd6c..44428ae167 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor.csproj
@@ -108,9 +108,6 @@
<Reference Include="Mono.Cairo" />
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
- </ItemGroup>
- <ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="gtk-gui\generated.cs" />
<Compile Include="MonoDevelop.SourceEditor\EditActions.cs" />
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
index 96cba481f4..14a01de960 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorView.cs
@@ -363,6 +363,9 @@ namespace MonoDevelop.SourceEditor
{
if (!widget.EnsureCorrectEolMarker (fileName, encoding))
return;
+ if (widget.HasMessageBar)
+ return;
+
if (!string.IsNullOrEmpty (ContentName))
AutoSave.RemoveAutoSaveFile (ContentName);
@@ -515,7 +518,7 @@ namespace MonoDevelop.SourceEditor
UpdateExecutionLocation ();
UpdateBreakpoints ();
UpdatePinnedWatches ();
- this.IsDirty = false;
+ this.IsDirty = !didLoadCleanly;
UpdateTasks (null, null);
widget.TextEditor.VAdjustment.Changed += HandleTextEditorVAdjustmentChanged;
if (didLoadCleanly)
@@ -1106,13 +1109,17 @@ namespace MonoDevelop.SourceEditor
public void SetCaretTo (int line, int column)
{
this.Document.RunWhenLoaded (() => widget.TextEditor.SetCaretTo (line, column, true));
-
}
public void SetCaretTo (int line, int column, bool highlight)
{
this.Document.RunWhenLoaded (() => widget.TextEditor.SetCaretTo (line, column, highlight));
}
+
+ public void SetCaretTo (int line, int column, bool highlight, bool centerCaret)
+ {
+ this.Document.RunWhenLoaded (() => widget.TextEditor.SetCaretTo (line, column, highlight, centerCaret));
+ }
public void Redo()
{
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
index e66e6e9cfc..76070d54ee 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/SourceEditorWidget.cs
@@ -129,6 +129,10 @@ namespace MonoDevelop.SourceEditor
}
#endregion
+ public bool HasMessageBar {
+ get { return messageBar != null; }
+ }
+
Gtk.VBox vbox = new Gtk.VBox ();
public Gtk.VBox Vbox {
get { return this.vbox; }
@@ -763,6 +767,7 @@ namespace MonoDevelop.SourceEditor
messageBar.ActionArea.Add (b2);
}
+ view.IsDirty = true;
view.WarnOverwrite = true;
vbox.PackStart (messageBar, false, false, CHILD_PADDING);
vbox.ReorderChild (messageBar, 0);
@@ -896,6 +901,7 @@ namespace MonoDevelop.SourceEditor
messageBar.ActionArea.Add (b2);
}
+ view.IsDirty = true;
view.WarnOverwrite = true;
vbox.PackStart (messageBar, false, false, CHILD_PADDING);
vbox.ReorderChild (messageBar, 0);
diff --git a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.csproj b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.csproj
index 868f29ffec..e9616a228d 100644
--- a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.csproj
+++ b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.csproj
@@ -127,7 +127,6 @@
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="TODO" />
</ItemGroup>
<ItemGroup>
diff --git a/main/src/addins/MonoDevelop.XmlEditor/MonoDevelop.XmlEditor.addin.xml b/main/src/addins/MonoDevelop.XmlEditor/MonoDevelop.XmlEditor.addin.xml
index 471fec3135..86c6a8a816 100644
--- a/main/src/addins/MonoDevelop.XmlEditor/MonoDevelop.XmlEditor.addin.xml
+++ b/main/src/addins/MonoDevelop.XmlEditor/MonoDevelop.XmlEditor.addin.xml
@@ -1,21 +1,22 @@
<Addin name = "XML Editor"
id = "XmlEditor"
namespace = "MonoDevelop"
- author = "Matt Ward, Michael Hutchinson"
- copyright = "MIT X11"
- url = "http://md-xed.sourceforge.net"
- description = "XML Editor"
+ author = "Matt Ward, Michael Hutchinson"
+ copyright = "MIT X11"
+ url = "http://md-xed.sourceforge.net"
+ description = "XML Editor"
category = "IDE extensions"
version = "2.9.1">
- <Runtime>
- <Import assembly="MonoDevelop.XmlEditor.dll" />
- <Import file="schemas/appconfig.xsd" />
- <Import file="schemas/MonoDevelopAddIn.xsd" />
- <Import file="schemas/readme.txt" />
- <Import file="schemas/XMLSchema.xsd" />
- <Import file="schemas/W3C-License.html" />
- <Import file="schemas/xslt.xsd" />
- <Import file="schemas/manifest.xsd" />
+
+ <Runtime>
+ <Import assembly="MonoDevelop.XmlEditor.dll" />
+ <Import file="schemas/appconfig.xsd" />
+ <Import file="schemas/MonoDevelopAddIn.xsd" />
+ <Import file="schemas/readme.txt" />
+ <Import file="schemas/XMLSchema.xsd" />
+ <Import file="schemas/W3C-License.html" />
+ <Import file="schemas/xslt.xsd" />
+ <Import file="schemas/manifest.xsd" />
<Import file="schemas/nant.xsd" />
</Runtime>
@@ -32,7 +33,7 @@
<ExtensionPoint path = "/MonoDevelop/XmlEditor/XmlSchemas">
<ExtensionNode name = "Schema" type = "MonoDevelop.XmlEditor.XmlSchemaNode" />
- </ExtensionPoint>
+ </ExtensionPoint>
<!-- Additional file extensions that will be opened in the XML editor -->
<Extension path = "/MonoDevelop/XmlEditor/XmlFileAssociations">
@@ -89,7 +90,7 @@
description = "Jumps to the schema definition"/>
</Category>
</Extension>
-
+
<!-- XML menu -->
<Extension path = "/MonoDevelop/Ide/MainMenu/Tools">
<ItemSet id = "XmlMenu" insertafter = "AddinManagerSeparator" _label = "_XML" >
@@ -133,7 +134,7 @@
<Extension path = "/MonoDevelop/TypeSystem/Parser">
<Parser class = "MonoDevelop.XmlEditor.XmlDocumentParser" mimeType = "application/xml" id = "XmlParser"/>
</Extension>
-
+
<Extension path = "/MonoDevelop/Ide/CodeFormatters">
<Formatter mimeType="text/xml" class="MonoDevelop.Xml.Formatting.XmlFormatter" />
<Formatter mimeType="application/xml" class="MonoDevelop.Xml.Formatting.XmlFormatter" />
@@ -153,4 +154,4 @@
<!-- 2.6+ -->
<Migration sourceVersion="2.6+" kind="UserData" path="XmlSchemas" isDirectory="true" />
</Extension>
-</Addin>
+</Addin>
diff --git a/main/src/addins/NUnit/MonoDevelop.NUnit.csproj b/main/src/addins/NUnit/MonoDevelop.NUnit.csproj
index 3007f114e4..0c627c8d3d 100644
--- a/main/src/addins/NUnit/MonoDevelop.NUnit.csproj
+++ b/main/src/addins/NUnit/MonoDevelop.NUnit.csproj
@@ -195,7 +195,6 @@
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="ChangeLog" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix.addin.xml b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix.addin.xml
index aa1ca5962f..89fe6a2420 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix.addin.xml
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix.addin.xml
@@ -1,5 +1,5 @@
<Addin id = "VersionControl.Subversion.Unix"
- namespace = "MonoDevelop"
+ namespace = "MonoDevelop"
name = "Subversion support"
author = "Joshua Tauberer, Lluis Sanchez"
copyright = "LGPL"
@@ -13,8 +13,8 @@
<Addin id="Ide" version="2.9.1"/>
<Addin id="VersionControl" version="2.9.1"/>
<Addin id="VersionControl.Subversion" version="2.9.1"/>
- </Dependencies>
-
+ </Dependencies>
+
<Extension path = "/MonoDevelop/VersionControl/VersionControlSystems">
<Condition id="Platform" value="!windows">
<Class class = "MonoDevelop.VersionControl.Subversion.Unix.SvnClient" />
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/LibSvnClient.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/LibSvnClient.cs
index c158995d0f..1df07ab2d8 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/LibSvnClient.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/LibSvnClient.cs
@@ -61,6 +61,8 @@ namespace MonoDevelop.VersionControl.Subversion.Unix {
int descend, int get_all, int update, int no_ignore,
IntPtr ctx, IntPtr pool);
+ public abstract IntPtr client_root_url_from_path (ref IntPtr url, string path_or_url, IntPtr ctx, IntPtr pool);
+
public abstract IntPtr client_log (IntPtr apr_array_header_t_targets,
ref Rev rev_start, ref Rev rev_end,
int discover_changed_paths,
@@ -585,6 +587,13 @@ namespace MonoDevelop.VersionControl.Subversion.Unix {
public class LibSvnClient0 : LibSvnClient {
private const string svnclientlib = "libsvn_client-1.so.0";
+ [DllImport(svnclientlib)] static extern IntPtr svn_client_root_url_from_path (ref IntPtr url, string path_or_url, IntPtr ctx, IntPtr pool);
+
+ public override IntPtr client_root_url_from_path (ref IntPtr url, string path_or_url, IntPtr ctx, IntPtr pool)
+ {
+ return svn_client_root_url_from_path (ref url, path_or_url, ctx, pool);
+ }
+
public override void config_ensure (string config_dir, IntPtr pool)
{
svn_config_ensure (config_dir, pool);
@@ -960,6 +969,13 @@ namespace MonoDevelop.VersionControl.Subversion.Unix {
public class LibSvnClient1 : LibSvnClient {
private const string svnclientlib = "libsvn_client-1.so.1";
+ [DllImport(svnclientlib)] static extern IntPtr svn_client_root_url_from_path (ref IntPtr url, string path_or_url, IntPtr ctx, IntPtr pool);
+
+ public override IntPtr client_root_url_from_path (ref IntPtr url, string path_or_url, IntPtr ctx, IntPtr pool)
+ {
+ return svn_client_root_url_from_path (ref url, path_or_url, ctx, pool);
+ }
+
public override void config_ensure (string config_dir, IntPtr pool)
{
svn_config_ensure (config_dir, pool);
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs
index f168a3c555..e3ebc0550d 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion.Unix/MonoDevelop.VersionControl.Subversion.Unix/SvnClient.cs
@@ -420,7 +420,7 @@ namespace MonoDevelop.VersionControl.Subversion.Unix
strptr = Marshal.StringToHGlobalAnsi (pathorurl);
Marshal.WriteIntPtr (first, strptr);
- LogCollector collector = new LogCollector (ret);
+ LogCollector collector = new LogCollector ((SubversionRepository)repo, ret);
CheckError (svn.client_log (array, ref revisionStart, ref revisionEnd, 1, 0,
new LibSvnClient.svn_log_message_receiver_t (collector.Func),
@@ -880,9 +880,7 @@ namespace MonoDevelop.VersionControl.Subversion.Unix
string npath1 = NormalizePath (path1, localpool);
string npath2 = NormalizePath (path2, localpool);
CheckError (svn.client_diff (options, npath1, ref revision1, npath2, ref revision2, (recursive ? 1 : 0), 0, 1, outfile, errfile, ctx, localpool));
- using (StreamReader sr = new StreamReader (fout)) {
- return sr.ReadToEnd ();
- }
+ return MonoDevelop.Projects.Text.TextFile.ReadFile (fout).Text;
} else {
throw new Exception ("Could not get diff information");
}
@@ -949,7 +947,7 @@ namespace MonoDevelop.VersionControl.Subversion.Unix
return IntPtr.Zero;
}
- private void CheckError (IntPtr error)
+ internal static void CheckError (IntPtr error)
{
if (error == IntPtr.Zero)
return;
@@ -970,7 +968,7 @@ namespace MonoDevelop.VersionControl.Subversion.Unix
throw new SubversionException (msg);
}
- string GetErrorMessage (LibSvnClient.svn_error_t error)
+ static string GetErrorMessage (LibSvnClient.svn_error_t error)
{
if (error.message != null)
return error.message;
@@ -1246,8 +1244,9 @@ namespace MonoDevelop.VersionControl.Subversion.Unix
static readonly DateTime Epoch = new DateTime (1970, 1, 1);
List<SvnRevision> logs;
+ SubversionRepository repo;
- public LogCollector (List<SvnRevision> logs) { this.logs = logs; }
+ public LogCollector (SubversionRepository repo, List<SvnRevision> logs) { this.repo = repo; this.logs = logs; }
public IntPtr Func (IntPtr baton, IntPtr apr_hash_changed_paths, int revision, IntPtr author, IntPtr date, IntPtr message, IntPtr pool)
{
@@ -1280,7 +1279,13 @@ namespace MonoDevelop.VersionControl.Subversion.Unix
case 'R': ac = RevisionAction.Replace; break;
default: ac = RevisionAction.Modify; break; // should be an 'M'
}
- items.Add (new RevisionPath (name, ac, ""));
+
+ IntPtr result = IntPtr.Zero;
+ SvnClient.CheckError (svn.client_root_url_from_path (ref result, repo.RootPath, IntPtr.Zero, pool));
+ if (result == IntPtr.Zero) // Should never happen
+ items.Add (new RevisionPath (name, ac, ""));
+ else
+ items.Add (new RevisionPath (Marshal.PtrToStringAnsi (result) + "/" + name, ac, ""));
}
SvnRevision ent = new SvnRevision (null, revision, Epoch.AddTicks (time * 10), Marshal.PtrToStringAnsi (author), smessage, items.ToArray ());
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml
index bdca4c7e49..7f7f6dc895 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion.addin.xml
@@ -1,5 +1,5 @@
<Addin id = "VersionControl.Subversion"
- namespace = "MonoDevelop"
+ namespace = "MonoDevelop"
name = "Subversion core engine"
author = "Joshua Tauberer"
copyright = "LGPL"
@@ -13,9 +13,9 @@
<Addin id="Core" version="2.9.1"/>
<Addin id="Ide" version="2.9.1"/>
<Addin id="VersionControl" version="2.9.1"/>
- </Dependencies>
-
- <Extension path = "/MonoDevelop/Ide/Commands/VersionControl">
+ </Dependencies>
+
+ <Extension path = "/MonoDevelop/Ide/Commands/VersionControl">
<Command id = "MonoDevelop.VersionControl.Subversion.Commands.Resolve"
_label = "Resolve"
description = "Resolve conflicts on working copy files or directories."/>
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs
index 0e4cfe6b4a..d0993809ad 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl.Subversion/MonoDevelop.VersionControl.Subversion/SubversionRepository.cs
@@ -66,7 +66,10 @@ namespace MonoDevelop.VersionControl.Subversion
public override string GetBaseText (FilePath sourcefile)
{
- return File.ReadAllText (Svn.GetPathToBaseText (sourcefile));
+ // The base file will not exist if the file has just been
+ // added to svn and not committed
+ var baseFile = Svn.GetPathToBaseText (sourcefile);
+ return File.Exists (baseFile) ? File.ReadAllText (baseFile) : "";
}
public string GetPathToBaseText (FilePath sourcefile)
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs
index 01d5dc51c5..281698aa98 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl.Views/LogWidget.cs
@@ -346,15 +346,11 @@ namespace MonoDevelop.VersionControl.Views
}
} else {
- string prevRevisionText;
+ string prevRevisionText = "";
try {
prevRevisionText = info.Repository.GetTextAtRevision (path, prevRev);
} catch (Exception e) {
- Application.Invoke (delegate {
- LoggingService.LogError ("Error while getting revision text", e);
- MessageService.ShowError ("Error while getting revision text.", "The file may not be part of the working copy.");
- });
- return;
+ // The file did not exist at this point in time, so just treat it as empty
}
var originalDocument = new Mono.TextEditor.Document (prevRevisionText);
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/PublishCommand.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/PublishCommand.cs
index 1c4ca36487..e5ae38e71f 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/PublishCommand.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/PublishCommand.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Linq;
using MonoDevelop.Projects;
using MonoDevelop.Core;
@@ -56,8 +57,9 @@ namespace MonoDevelop.VersionControl
static void GetFiles (List<FilePath> files, IWorkspaceObject entry)
{
+ // Ensure that we strip out all linked files from outside of the solution/projects path.
if (entry is IWorkspaceFileObject)
- files.AddRange (((IWorkspaceFileObject)entry).GetItemFiles (true));
+ files.AddRange (((IWorkspaceFileObject)entry).GetItemFiles (true).Where (file => file.IsChildPathOf (entry.BaseDirectory)));
}
public static bool CanPublish (Repository vc, string path, bool isDir) {
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml b/main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml
index 8f0980bdcc..e815c9997c 100644
--- a/main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml
+++ b/main/src/addins/WindowsPlatform/WindowsPlatform.addin.xml
@@ -15,7 +15,7 @@
<Dependencies>
<Addin id="Core" version="2.9.1"/>
<Addin id="Ide" version="2.9.1"/>
- </Dependencies>
+ </Dependencies>
<Extension path = "/MonoDevelop/Core/PlatformService">
<Class class = "MonoDevelop.Platform.WindowsPlatform"/>
diff --git a/main/src/addins/WindowsPlatform/WindowsPlatform.csproj b/main/src/addins/WindowsPlatform/WindowsPlatform.csproj
index 4448034a4b..6d5d358058 100644
--- a/main/src/addins/WindowsPlatform/WindowsPlatform.csproj
+++ b/main/src/addins/WindowsPlatform/WindowsPlatform.csproj
@@ -97,9 +97,6 @@
<Compile Include="JumpList.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
- </ItemGroup>
- <ItemGroup>
<EmbeddedResource Include="Dialogs\CustomAddFilesDialog.resx">
<DependentUpon>CustomAddFilesDialog.cs</DependentUpon>
<SubType>Designer</SubType>
diff --git a/main/src/addins/prj2make-sharp-lib/prj2make-sharp-lib.csproj b/main/src/addins/prj2make-sharp-lib/prj2make-sharp-lib.csproj
index 3203ff0142..7aa904a7a6 100644
--- a/main/src/addins/prj2make-sharp-lib/prj2make-sharp-lib.csproj
+++ b/main/src/addins/prj2make-sharp-lib/prj2make-sharp-lib.csproj
@@ -110,7 +110,6 @@
</ItemGroup>
<ItemGroup>
<None Include="Makefile.am" />
- <None Include="ChangeLog" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
diff --git a/main/src/core/Mono.Debugging/Mono.Debugging.Client/EvaluationOptions.cs b/main/src/core/Mono.Debugging/Mono.Debugging.Client/EvaluationOptions.cs
index f69b38967d..383c14f7ae 100644
--- a/main/src/core/Mono.Debugging/Mono.Debugging.Client/EvaluationOptions.cs
+++ b/main/src/core/Mono.Debugging/Mono.Debugging.Client/EvaluationOptions.cs
@@ -34,6 +34,8 @@ namespace Mono.Debugging.Client
bool allowMethodEvaluation;
bool allowToStringCalls;
+ public static readonly char Ellipsis = '…';
+
public static EvaluationOptions DefaultOptions {
get {
EvaluationOptions ops = new EvaluationOptions ();
@@ -50,6 +52,8 @@ namespace Mono.Debugging.Client
ops.UseExternalTypeResolver = true;
ops.IntegerDisplayFormat = IntegerDisplayFormat.Decimal;
ops.CurrentExceptionTag = "$exception";
+ ops.EllipsizeStrings = true;
+ ops.EllipsizedLength = 100;
return ops;
}
}
@@ -59,6 +63,9 @@ namespace Mono.Debugging.Client
return (EvaluationOptions) MemberwiseClone ();
}
+ public bool EllipsizeStrings { get; set; }
+ public int EllipsizedLength { get; set; }
+
public int EvaluationTimeout { get; set; }
public int MemberEvaluationTimeout { get; set; }
public bool AllowTargetInvoke { get; set; }
diff --git a/main/src/core/Mono.Debugging/Mono.Debugging.Client/ObjectValue.cs b/main/src/core/Mono.Debugging/Mono.Debugging.Client/ObjectValue.cs
index d02262e534..df3f881901 100644
--- a/main/src/core/Mono.Debugging/Mono.Debugging.Client/ObjectValue.cs
+++ b/main/src/core/Mono.Debugging/Mono.Debugging.Client/ObjectValue.cs
@@ -284,7 +284,10 @@ namespace Mono.Debugging.Client
/// </remarks>
public object GetRawValue ()
{
- return GetRawValue (parentFrame.DebuggerSession.EvaluationOptions);
+ EvaluationOptions ops = parentFrame.DebuggerSession.EvaluationOptions.Clone ();
+ ops.EllipsizeStrings = false;
+
+ return GetRawValue (ops);
}
/// <summary>
diff --git a/main/src/core/Mono.Debugging/Mono.Debugging.Client/StackFrame.cs b/main/src/core/Mono.Debugging/Mono.Debugging.Client/StackFrame.cs
index f10073d758..138390435b 100644
--- a/main/src/core/Mono.Debugging/Mono.Debugging.Client/StackFrame.cs
+++ b/main/src/core/Mono.Debugging/Mono.Debugging.Client/StackFrame.cs
@@ -192,7 +192,7 @@ namespace Mono.Debugging.Client
public ObjectValue[] GetExpressionValues (string[] expressions, bool evaluateMethods)
{
- EvaluationOptions options = session.EvaluationOptions;
+ EvaluationOptions options = session.EvaluationOptions.Clone ();
options.AllowMethodEvaluation = evaluateMethods;
return GetExpressionValues (expressions, options);
}
@@ -218,7 +218,7 @@ namespace Mono.Debugging.Client
public ObjectValue GetExpressionValue (string expression, bool evaluateMethods)
{
- EvaluationOptions options = session.EvaluationOptions;
+ EvaluationOptions options = session.EvaluationOptions.Clone ();
options.AllowMethodEvaluation = evaluateMethods;
return GetExpressionValue (expression, options);
}
diff --git a/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ExpressionEvaluator.cs b/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ExpressionEvaluator.cs
index 1578003d22..f1afd8e082 100644
--- a/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ExpressionEvaluator.cs
+++ b/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ExpressionEvaluator.cs
@@ -71,6 +71,9 @@ namespace Mono.Debugging.Evaluation
object res = ctx.Adapter.TargetObjectToObject (ctx, obj);
if (res == null)
return null;
+
+ if (res is EvaluationResult)
+ return ((EvaluationResult) res).DisplayValue;
else
return res.ToString ();
}
diff --git a/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs b/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs
index 5291d57b7c..a980486a4a 100644
--- a/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs
+++ b/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs
@@ -928,10 +928,20 @@ namespace Mono.Debugging.Evaluation
string mem = exp.Substring (i, j - i).Trim ();
if (mem.Length == 0)
return exp;
-
- ValueReference member = GetMember (ctx, null, GetValueType (ctx, obj), obj, mem);
+
+ string[] props = mem.Split (new char[] { '.' });
+ ValueReference member = null;
+ object val = obj;
+
+ for (int k = 0; k < props.Length; k++) {
+ member = GetMember (ctx, null, GetValueType (ctx, val), val, props[k]);
+ if (member == null)
+ break;
+
+ val = member.Value;
+ }
+
if (member != null) {
- object val = member.Value;
sb.Append (ctx.Evaluator.TargetObjectToString (ctx, val));
} else {
sb.Append ("{Unknown member '" + mem + "'}");
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor.csproj b/main/src/core/Mono.Texteditor/Mono.TextEditor.csproj
index fe2117135c..c4f1f35a22 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor.csproj
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor.csproj
@@ -184,7 +184,6 @@
<Compile Include="Mono.TextEditor\Annotatable.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Mono.TextEditor.dll.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs
index 892902ce5e..a24754014b 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs
@@ -126,7 +126,8 @@ namespace Mono.TextEditor
{
IntPtr array = objc_msgSend_IntPtr (cls_NSScreen, sel_screens);
IntPtr iter = objc_msgSend_IntPtr (array, sel_objectEnumerator);
- Gdk.Rectangle geometry = screen.GetMonitorGeometry (0);
+ Gdk.Rectangle ygeometry = screen.GetMonitorGeometry (monitor);
+ Gdk.Rectangle xgeometry = screen.GetMonitorGeometry (0);
RectangleF visible, frame;
IntPtr scrn;
int i = 0;
@@ -142,10 +143,8 @@ namespace Mono.TextEditor
// Note: Frame and VisibleFrame rectangles are relative to monitor 0, but we need absolute
// coordinates.
- visible.X += geometry.X;
- visible.Y += geometry.Y;
- frame.X += geometry.X;
- frame.Y += geometry.Y;
+ visible.X += xgeometry.X;
+ frame.X += xgeometry.X;
// VisibleFrame.Y is the height of the Dock if it is at the bottom of the screen, so in order
// to get the menu height, we just figure out the difference between the visibleFrame height
@@ -160,10 +159,10 @@ namespace Mono.TextEditor
float menubarHeight = (frame.Height - visible.Height) - dockHeight;
height = frame.Height - menubarHeight - dockHeight;
- y = menubarHeight;
+ y = ygeometry.Y + menubarHeight;
} else {
height = frame.Height;
- y = frame.Y;
+ y = ygeometry.Y;
}
// Takes care of the possibility of the Dock being positioned on the left or right edge of the screen.
@@ -227,10 +226,13 @@ namespace Mono.TextEditor
return true;
if (Platform.IsMac) {
- if (evt.Button == 1 &&
+ if (!oldMacKeyHacks &&
+ evt.Button == 1 &&
(evt.State & Gdk.ModifierType.ControlMask) != 0 &&
(evt.State & (Gdk.ModifierType.Button2Mask | Gdk.ModifierType.Button3Mask)) == 0)
- return true;
+ {
+ return true;
+ }
}
return false;
@@ -329,6 +331,7 @@ namespace Mono.TextEditor
y -= y_over;
}
}
+
y = System.Math.Max (geometry.Top, System.Math.Min (y, geometry.Bottom - request.Height));
x = System.Math.Max (geometry.Left, System.Math.Min (x, geometry.Right - request.Width));
@@ -382,7 +385,7 @@ namespace Mono.TextEditor
extern static bool gdk_quartz_set_fix_modifiers (bool fix);
static Gdk.Keymap keymap = Gdk.Keymap.Default;
- static Dictionary<long,MappedKeys> mappedKeys = new Dictionary<long,MappedKeys> ();
+ static Dictionary<ulong,MappedKeys> mappedKeys = new Dictionary<ulong,MappedKeys> ();
/// <summary>Map raw GTK key input to work around platform bugs and decompose accelerator keys</summary>
/// <param name='evt'>The raw key event</param>
@@ -393,7 +396,10 @@ namespace Mono.TextEditor
out KeyboardShortcut[] accels)
{
//this uniquely identifies the raw key
- long id = (((long)evt.State)) | (((long)evt.HardwareKeycode) << 32) | ((long)evt.Group << 48);
+ ulong id;
+ unchecked {
+ id = (((ulong)(uint)evt.State) | (((ulong)evt.HardwareKeycode) << 32) | (((ulong)evt.Group) << 48));
+ }
MappedKeys mapped;
if (!mappedKeys.TryGetValue (id, out mapped)) {
@@ -415,21 +421,11 @@ namespace Mono.TextEditor
gdk_keymap_add_virtual_modifiers (keymap.Handle, ref modifier);
}
- // Workaround for bug "Bug 688247 - Ctrl+Alt key not work on windows7 with bootcamp on a Mac Book Pro"
- // Ctrl+Alt should behave like right alt key - unfortunately TranslateKeyboardState doesn't handle it.
- if (Platform.IsWindows) {
- const Gdk.ModifierType ctrlAlt = Gdk.ModifierType.ControlMask | Gdk.ModifierType.Mod1Mask;
- if ((modifier & ctrlAlt) == ctrlAlt) {
- modifier = (modifier & ~ctrlAlt) | Gdk.ModifierType.Mod2Mask;
- grp = 1;
- }
- }
-
//full key mapping
uint keyval;
int effectiveGroup, level;
Gdk.ModifierType consumedModifiers;
- keymap.TranslateKeyboardState (keycode, modifier, grp, out keyval, out effectiveGroup,
+ TranslateKeyboardState (keycode, modifier, grp, out keyval, out effectiveGroup,
out level, out consumedModifiers);
mapped.Key = (Gdk.Key)keyval;
mapped.State = FixMacModifiers (evt.State & ~consumedModifiers, grp);
@@ -444,7 +440,7 @@ namespace Mono.TextEditor
modifier &= ~Gdk.ModifierType.LockMask;
//fully decomposed
- keymap.TranslateKeyboardState (evt.HardwareKeycode, Gdk.ModifierType.None, 0,
+ TranslateKeyboardState (evt.HardwareKeycode, Gdk.ModifierType.None, 0,
out keyval, out effectiveGroup, out level, out consumedModifiers);
accelList.Add (new KeyboardShortcut ((Gdk.Key)keyval, FixMacModifiers (modifier, grp) & accelMods));
@@ -458,7 +454,7 @@ namespace Mono.TextEditor
//with group 1 composed
if (grp == 1) {
- keymap.TranslateKeyboardState (evt.HardwareKeycode, modifier & ~Gdk.ModifierType.ShiftMask, 1,
+ TranslateKeyboardState (evt.HardwareKeycode, modifier & ~Gdk.ModifierType.ShiftMask, 1,
out keyval, out effectiveGroup, out level, out consumedModifiers);
//somehow GTK on mac manages to consume a shift that we don't even pass to it
if (oldMacKeyHacks) {
@@ -470,7 +466,7 @@ namespace Mono.TextEditor
//with group 1 and shift composed
if (grp == 1 && (modifier & Gdk.ModifierType.ShiftMask) != 0) {
- keymap.TranslateKeyboardState (evt.HardwareKeycode, modifier, 1,
+ TranslateKeyboardState (evt.HardwareKeycode, modifier, 1,
out keyval, out effectiveGroup, out level, out consumedModifiers);
var m = FixMacModifiers ((modifier & ~consumedModifiers), 0) & accelMods;
AddIfNotDuplicate (accelList, new KeyboardShortcut ((Gdk.Key)keyval, m));
@@ -483,6 +479,23 @@ namespace Mono.TextEditor
return mapped;
}
+ // Workaround for bug "Bug 688247 - Ctrl+Alt key not work on windows7 with bootcamp on a Mac Book Pro"
+ // Ctrl+Alt should behave like right alt key - unfortunately TranslateKeyboardState doesn't handle it.
+ static void TranslateKeyboardState (uint hardware_keycode, Gdk.ModifierType state, int group, out uint keyval,
+ out int effective_group, out int level, out Gdk.ModifierType consumed_modifiers)
+ {
+ if (Platform.IsWindows) {
+ const Gdk.ModifierType ctrlAlt = Gdk.ModifierType.ControlMask | Gdk.ModifierType.Mod1Mask;
+ if ((state & ctrlAlt) == ctrlAlt) {
+ state = (state & ~ctrlAlt) | Gdk.ModifierType.Mod2Mask;
+ group = 1;
+ }
+ }
+
+ keymap.TranslateKeyboardState (hardware_keycode, state, group, out keyval, out effective_group,
+ out level, out consumed_modifiers);
+ }
+
static Gdk.ModifierType FixMacModifiers (Gdk.ModifierType mod, byte grp)
{
if (!oldMacKeyHacks)
@@ -641,4 +654,4 @@ namespace Mono.TextEditor
return other.key == key && other.mod == mod;
}
}
-} \ No newline at end of file
+}
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditor.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
index 0919b06eec..106733ce4a 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditor.cs
@@ -587,20 +587,22 @@ namespace Mono.TextEditor
protected override void OnRealized ()
{
WidgetFlags |= WidgetFlags.Realized;
- WindowAttr attributes = new WindowAttr ();
- attributes.WindowType = Gdk.WindowType.Child;
- attributes.X = Allocation.X;
- attributes.Y = Allocation.Y;
- attributes.Width = Allocation.Width;
- attributes.Height = Allocation.Height;
- attributes.Wclass = WindowClass.InputOutput;
- attributes.Visual = this.Visual;
- attributes.Colormap = this.Colormap;
- attributes.EventMask = (int)(this.Events | Gdk.EventMask.ExposureMask);
- attributes.Mask = this.Events | Gdk.EventMask.ExposureMask;
-// attributes.Mask = EventMask;
-
- WindowAttributesType mask = WindowAttributesType.X | WindowAttributesType.Y | WindowAttributesType.Colormap | WindowAttributesType.Visual;
+ WindowAttr attributes = new WindowAttr () {
+ WindowType = Gdk.WindowType.Child,
+ X = Allocation.X,
+ Y = Allocation.Y,
+ Width = Allocation.Width,
+ Height = Allocation.Height,
+ Wclass = WindowClass.InputOutput,
+ Visual = this.Visual,
+ Colormap = this.Colormap,
+ EventMask = (int)(this.Events | Gdk.EventMask.ExposureMask),
+ Mask = this.Events | Gdk.EventMask.ExposureMask,
+ //Mask = EventMask,
+ };
+
+ WindowAttributesType mask = WindowAttributesType.X | WindowAttributesType.Y
+ | WindowAttributesType.Colormap | WindowAttributesType.Visual;
this.GdkWindow = new Gdk.Window (ParentWindow, attributes, mask);
this.GdkWindow.UserData = this.Raw;
this.Style = Style.Attach (this.GdkWindow);
@@ -886,10 +888,15 @@ namespace Mono.TextEditor
protected override bool OnKeyPressEvent (Gdk.EventKey evt)
{
- ModifierType mod;
Gdk.Key key;
- uint keyVal;
- GtkWorkarounds.MapRawKeys (evt, out key, out mod, out keyVal);
+ Gdk.ModifierType mod;
+ KeyboardShortcut[] accels;
+ GtkWorkarounds.MapKeys (evt, out key, out mod, out accels);
+
+ uint keyVal = (uint) key;
+ key = accels[0].Key;
+ mod = accels[0].Modifier;
+
if (key == Gdk.Key.F1 && (mod & (ModifierType.ControlMask | ModifierType.ShiftMask)) == ModifierType.ControlMask) {
var p = LocationToPoint (Caret.Location);
ShowTooltip (Gdk.ModifierType.None, Caret.Offset, p.X, p.Y);
@@ -1367,10 +1374,10 @@ namespace Mono.TextEditor
if (this.textEditorData.VAdjustment.Upper < Allocation.Height) {
this.textEditorData.VAdjustment.Value = 0;
} else {
- double yMargin = 1 * this.LineHeight;
+ double yMargin = 3 * this.LineHeight;
double caretPosition = LineToY (p.Line);
if (this.textEditorData.VAdjustment.Value > caretPosition) {
- this.textEditorData.VAdjustment.Value = caretPosition;
+ this.textEditorData.VAdjustment.Value = caretPosition - yMargin;
} else if (this.textEditorData.VAdjustment.Value + this.textEditorData.VAdjustment.PageSize - this.LineHeight < caretPosition + yMargin) {
this.textEditorData.VAdjustment.Value = caretPosition - this.textEditorData.VAdjustment.PageSize + this.LineHeight + yMargin;
}
@@ -2778,13 +2785,15 @@ namespace Mono.TextEditor
TextEditor view;
int line, column;
bool highlightCaretLine;
+ bool centerCaret;
- public SetCaret (TextEditor view, int line, int column, bool highlightCaretLine)
+ public SetCaret (TextEditor view, int line, int column, bool highlightCaretLine, bool centerCaret)
{
this.view = view;
this.line = line;
this.column = column;
this.highlightCaretLine = highlightCaretLine;
+ this.centerCaret = centerCaret;
}
public void Run (object sender, EventArgs e)
@@ -2796,7 +2805,8 @@ namespace Mono.TextEditor
try {
view.Caret.Location = new DocumentLocation (line, column);
view.GrabFocus ();
- view.CenterToCaret ();
+ if (centerCaret)
+ view.CenterToCaret ();
if (view.TextViewMargin.XOffset == 0)
view.HAdjustment.Value = 0;
view.SizeAllocated -= Run;
@@ -2814,19 +2824,24 @@ namespace Mono.TextEditor
{
SetCaretTo (line, column, true);
}
-
+
public void SetCaretTo (int line, int column, bool highlight)
{
+ SetCaretTo (line, column, highlight, true);
+ }
+
+ public void SetCaretTo (int line, int column, bool highlight, bool centerCaret)
+ {
if (line < DocumentLocation.MinLine)
throw new ArgumentException ("line < MinLine");
if (column < DocumentLocation.MinColumn)
throw new ArgumentException ("column < MinColumn");
if (!IsRealized) {
- SetCaret setCaret = new SetCaret (this, line, column, highlight);
+ SetCaret setCaret = new SetCaret (this, line, column, highlight, centerCaret);
SizeAllocated += setCaret.Run;
} else {
- new SetCaret (this, line, column, highlight).Run (null, null);
+ new SetCaret (this, line, column, highlight, centerCaret).Run (null, null);
}
}
}
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs
index afe115868e..77b9197cd2 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs
@@ -132,29 +132,6 @@ namespace Mono.TextEditor
widget.GdkWindow.Raise ();
}
- protected override void OnRealized ()
- {
- WidgetFlags |= WidgetFlags.Realized;
- WindowAttr attributes = new WindowAttr ();
- attributes.WindowType = Gdk.WindowType.Child;
- attributes.X = Allocation.X;
- attributes.Y = Allocation.Y;
- attributes.Width = Allocation.Width;
- attributes.Height = Allocation.Height;
- attributes.Wclass = WindowClass.InputOutput;
- attributes.Visual = this.Visual;
- attributes.Colormap = this.Colormap;
- attributes.EventMask = (int)(this.Events | Gdk.EventMask.ExposureMask);
- attributes.Mask = this.Events | Gdk.EventMask.ExposureMask;
-// attributes.Mask = EventMask;
-
- WindowAttributesType mask = WindowAttributesType.X | WindowAttributesType.Y | WindowAttributesType.Colormap | WindowAttributesType.Visual;
- this.GdkWindow = new Gdk.Window (ParentWindow, attributes, mask);
- this.GdkWindow.UserData = this.Raw;
- this.Style = Style.Attach (this.GdkWindow);
- this.WidgetFlags &= ~WidgetFlags.NoWindow;
- }
-
protected override void OnAdded (Widget widget)
{
AddTopLevelWidget (widget, 0, 0);
@@ -179,9 +156,6 @@ namespace Mono.TextEditor
protected override void OnSizeAllocated (Rectangle allocation)
{
base.OnSizeAllocated (allocation);
- if (this.GdkWindow != null)
- this.GdkWindow.MoveResize (allocation);
- allocation = new Rectangle (0, 0, allocation.Width, allocation.Height);
if (textEditorWidget.Allocation != allocation)
textEditorWidget.SizeAllocate (allocation);
SetChildrenPositions (allocation);
@@ -189,15 +163,19 @@ namespace Mono.TextEditor
void SetChildrenPositions (Rectangle allocation)
{
- //Console.WriteLine (textEditorWidget.VAdjustment.Value +"/" + textEditorWidget.HAdjustment.Value);
foreach (EditorContainerChild child in containerChildren.ToArray ()) {
if (child.Child == textEditorWidget)
continue;
Requisition req = child.Child.SizeRequest ();
- //Console.WriteLine (child.X + "x" + child.Y);
- Rectangle childRectangle = new Gdk.Rectangle (/*allocation.X + */ (int)(child.FixedPosition ? child.X : child.X * textEditorWidget.Options.Zoom - textEditorWidget.HAdjustment.Value),
- /*allocation.Y + */ (int)(child.FixedPosition ? child.Y : child.Y * textEditorWidget.Options.Zoom - textEditorWidget.VAdjustment.Value), req.Width, req.Height);
- // if (childRectangle != child.Child.Allocation)
+ var childRectangle = new Gdk.Rectangle (child.X, child.Y, req.Width, req.Height);
+ if (!child.FixedPosition) {
+ double zoom = textEditorWidget.Options.Zoom;
+ childRectangle.X = (int)(child.X * zoom - textEditorWidget.HAdjustment.Value);
+ childRectangle.Y = (int)(child.Y * zoom - textEditorWidget.VAdjustment.Value);
+ }
+ childRectangle.X += allocation.X;
+ childRectangle.Y += allocation.Y;
+
child.Child.SizeAllocate (childRectangle);
}
}
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorData.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorData.cs
index 6fdcdfa636..5c9d802202 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorData.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorData.cs
@@ -1162,11 +1162,16 @@ namespace Mono.TextEditor
{
SetCaretTo (line, column, true);
}
-
+
public void SetCaretTo (int line, int column, bool highlight)
{
+ SetCaretTo (line, column, highlight, true);
+ }
+
+ public void SetCaretTo (int line, int column, bool highlight, bool centerCaret)
+ {
if (Parent != null) {
- Parent.SetCaretTo (line, column, highlight);
+ Parent.SetCaretTo (line, column, highlight, centerCaret);
} else {
Caret.Location = new DocumentLocation (line, column);
}
diff --git a/main/src/core/MonoDevelop.Core/Makefile.am b/main/src/core/MonoDevelop.Core/Makefile.am
index 3b923d5a75..7912b8c52c 100644
--- a/main/src/core/MonoDevelop.Core/Makefile.am
+++ b/main/src/core/MonoDevelop.Core/Makefile.am
@@ -76,6 +76,7 @@ FILES = \
MonoDevelop.Core.Execution/RemotingService.cs \
MonoDevelop.Core.FileSystem/DefaultFileSystemExtension.cs \
MonoDevelop.Core.FileSystem/FileSystemExtension.cs \
+ MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs \
MonoDevelop.Core.Instrumentation/Counter.cs \
MonoDevelop.Core.Instrumentation/CounterCategory.cs \
MonoDevelop.Core.Instrumentation/InstrumentationService.cs \
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/DefaultFileSystemExtension.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/DefaultFileSystemExtension.cs
index c3a4074f2a..a03943e3d8 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/DefaultFileSystemExtension.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/DefaultFileSystemExtension.cs
@@ -89,6 +89,11 @@ namespace MonoDevelop.Core.FileSystem
Directory.Move (path, newName);
}
+ public override FilePath ResolveFullPath (FilePath path)
+ {
+ return Path.GetFullPath (path);
+ }
+
public override void MoveDirectory (FilePath source, FilePath dest)
{
Directory.Move (source, dest);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/FileSystemExtension.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/FileSystemExtension.cs
index 549c204e1e..0e3c3d509b 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/FileSystemExtension.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/FileSystemExtension.cs
@@ -63,6 +63,11 @@ namespace MonoDevelop.Core.FileSystem
GetNextForPath (file, false).RenameFile (file, newName);
}
+ public virtual FilePath ResolveFullPath (FilePath path)
+ {
+ return GetNextForPath (path, true).ResolveFullPath (path);
+ }
+
public virtual void MoveFile (FilePath source, FilePath dest)
{
GetNextForPath (source, false).MoveFile (source, dest);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs
new file mode 100644
index 0000000000..fa3fc03b14
--- /dev/null
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs
@@ -0,0 +1,45 @@
+// UnixFileSystemExtension.cs
+//
+// Author:
+// Alan McGovern <alan@xamarin.com>
+//
+// Copyright (c) 2011 Xamarin, Inc (http://www.xamarin.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+//
+//
+
+using System;
+using System.Runtime.InteropServices;
+
+namespace MonoDevelop.Core.FileSystem
+{
+ class UnixFileSystemExtension : DefaultFileSystemExtension
+ {
+ [DllImport ("libc")]
+ static extern string realpath (string path, IntPtr buffer);
+
+ public override FilePath ResolveFullPath (FilePath path)
+ {
+ // Handle symlinks
+ return realpath (path, IntPtr.Zero);
+ }
+ }
+}
+
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.ProgressMonitoring/ConsoleProgressMonitor.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.ProgressMonitoring/ConsoleProgressMonitor.cs
index 028ca4aaf4..c622e32ad8 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.ProgressMonitoring/ConsoleProgressMonitor.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.ProgressMonitoring/ConsoleProgressMonitor.cs
@@ -45,7 +45,9 @@ namespace MonoDevelop.Core.ProgressMonitoring
public ConsoleProgressMonitor () : this (Console.Out)
{
- wrap = true;
+ //FIXME: can we efficiently update Console.WindowWidth when it changes?
+ columns = Console.WindowWidth;
+ this.wrap = columns > 0;
}
public ConsoleProgressMonitor (TextWriter writer)
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj
index ed4136b2d4..062a7e2f7f 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.csproj
@@ -396,9 +396,9 @@
<Compile Include="MonoDevelop.Core\LinuxSystemInformation.cs" />
<Compile Include="MonoDevelop.Core\UnixSystemInformation.cs" />
<Compile Include="MonoDevelop.Core\ISystemInformationProvider.cs" />
+ <Compile Include="MonoDevelop.Core.FileSystem\UnixFileSystemExtension.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Makefile.am" />
<None Include="MonoDevelop.Projects.Formats.MSBuild.Conditions\InvalidProjectFileException.cs" />
</ItemGroup>
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/BrandingService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/BrandingService.cs
index 6ba2b46305..fe76764d5c 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/BrandingService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/BrandingService.cs
@@ -154,7 +154,10 @@ namespace MonoDevelop.Core
if (file != null)
return File.OpenRead (file);
- return Assembly.GetCallingAssembly ().GetManifestResourceStream (name);
+ if (lookInCallingAssembly)
+ return Assembly.GetCallingAssembly ().GetManifestResourceStream (name);
+
+ return null;
}
}
} \ No newline at end of file
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs
index 812eda1d9c..9641916778 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/FileService.cs
@@ -47,7 +47,7 @@ namespace MonoDevelop.Core
static FileServiceErrorHandler errorHandler;
static FileSystemExtension fileSystemChain;
- static FileSystemExtension defaultExtension = new DefaultFileSystemExtension ();
+ static FileSystemExtension defaultExtension = Platform.IsWindows ? new DefaultFileSystemExtension () : new UnixFileSystemExtension () ;
static EventQueue eventQueue = new EventQueue ();
@@ -86,6 +86,17 @@ namespace MonoDevelop.Core
}
}
+ public static FilePath ResolveFullPath (FilePath path)
+ {
+ try {
+ return GetFileSystemForPath (path, false).ResolveFullPath (path);
+ } catch (Exception e) {
+ if (!HandleError (GettextCatalog.GetString ("Can't resolve full path {0}", path), e))
+ throw;
+ return FilePath.Empty;
+ }
+ }
+
public static void DeleteFile (string fileName)
{
Debug.Assert (!String.IsNullOrEmpty (fileName));
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
index 9332db2781..403e453ed6 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs
@@ -186,6 +186,13 @@ namespace MonoDevelop.Projects.Formats.MSBuild
LogWriter logWriter = new LogWriter (monitor.Log);
RemoteProjectBuilder builder = GetProjectBuilder ();
+
+ //for some reason, MD internally handles "AnyCPU" as "", but we need to be explicit when
+ //passing it to the build engine
+ var platform = configObject.Platform;
+ if (platform.Length == 0)
+ platform = "AnyCPU";
+
MSBuildResult[] results = builder.RunTarget (target, configObject.Name, configObject.Platform,
logWriter, verbosity);
System.Runtime.Remoting.RemotingServices.Disconnect (logWriter);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
index e5c9206f17..a6b6332edd 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/SolutionFolder.cs
@@ -592,8 +592,10 @@ namespace MonoDevelop.Projects
item.Clean (monitor, configuration);
else if (item is SolutionEntityItem) {
SolutionEntityItem si = (SolutionEntityItem) item;
+ // ce can be null if you add items to the root solution folder which
+ // causes them to be placed in an autogenerated 'Project Items' folder
SolutionConfigurationEntry ce = conf.GetEntryForItem (si);
- if (ce.Build)
+ if (ce != null && ce.Build)
si.Clean (monitor, ce.ItemConfigurationSelector);
} else {
item.Clean (monitor, configuration);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AutoTestSession.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AutoTestSession.cs
index 469fcf6910..bea624f779 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AutoTestSession.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.AutoTest/AutoTestSession.cs
@@ -171,7 +171,7 @@ namespace MonoDevelop.Components.AutoTest
}
}
- object GetActiveWidget ()
+ Gtk.Widget GetActiveWidget ()
{
Gtk.Window win = null;
foreach (Gtk.Window w in Gtk.Window.ListToplevels ()) {
@@ -179,18 +179,19 @@ namespace MonoDevelop.Components.AutoTest
win = w;
}
- if (win != null) {
- Gtk.Widget widget = win;
- while (widget is Gtk.Container) {
- Gtk.Widget child = ((Gtk.Container)widget).FocusChild;
- if (child != null)
- widget = child;
- else
- break;
- }
- return widget;
+ if (win == null) {
+ throw new Exception ("No window is focused");
+ }
+
+ Gtk.Widget widget = win;
+ while (widget is Gtk.Container) {
+ Gtk.Widget child = ((Gtk.Container)widget).FocusChild;
+ if (child != null)
+ widget = child;
+ else
+ break;
}
- return win;
+ return widget;
}
public object GetValue (string name)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs
index d6ab0a6fe4..b2b2a828eb 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Commands/FileCommands.cs
@@ -203,7 +203,9 @@ namespace MonoDevelop.Ide.Commands
internal static bool CanPrint ()
{
IPrintable print;
- return IdeApp.Workbench.ActiveDocument != null
+ //HACK: disable printing on Windows while it doesn't work
+ return !Platform.IsWindows
+ && IdeApp.Workbench.ActiveDocument != null
&& (print = IdeApp.Workbench.ActiveDocument.GetContent<IPrintable> ()) != null
&& print.CanPrint;
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/ReferencesFinder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/ReferencesFinder.cs
index 030da44327..bf8a160ad0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/ReferencesFinder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/ReferencesFinder.cs
@@ -139,6 +139,7 @@ namespace MonoDevelop.Ide.FindInFiles
yield return new FileList (ctx, prj.Files.Select (f => f.FilePath));
break;
case RefactoryScope.Solution:
+ var allProjects = solution.GetAllProjects ();
if (monitor != null)
monitor.BeginTask (GettextCatalog.GetString ("Search reference in solution..."), solution.GetAllProjects ().Count);
var sourceProject = TypeSystemService.GetProject ((IEntity)member);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
index 4278258cde..6a6db69a45 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/ExtensibleTreeView.cs
@@ -211,6 +211,7 @@ namespace MonoDevelop.Ide.Gui.Components
}
text_render.Ypad = 0;
IdeApp.Preferences.CustomPadFontChanged += CustomFontPropertyChanged;;
+ text_render.EditingStarted += HandleEditingStarted;
text_render.Edited += HandleOnEdit;
text_render.EditingCanceled += HandleOnEditCancelled;
@@ -433,6 +434,11 @@ namespace MonoDevelop.Ide.Gui.Components
LoggingService.LogError (ex.ToString ());
}
}
+ } catch (Exception ex) {
+ // We're now in an indeterminate state, so report the exception
+ // and exit.
+ GLib.ExceptionManager.RaiseUnhandledException (ex, true);
+ return false;
} finally {
if (updatesLocked)
UnlockUpdates ();
@@ -1171,19 +1177,52 @@ namespace MonoDevelop.Ide.Gui.Components
node.ExpandToNode (); //make sure the parent of the node that is being edited is expanded
- store.SetValue (iter, ExtensibleTreeView.TextColumn, node.NodeName);
+ string nodeName = node.NodeName;
+ store.SetValue (iter, ExtensibleTreeView.TextColumn, nodeName);
+ // Get and validate the initial text selection
+ int nameLength = nodeName != null ? nodeName.Length : 0,
+ selectionStart = 0, selectionLength = nameLength;
+ foreach (NodeBuilder b in node.NodeBuilderChain) {
+ try {
+ NodeCommandHandler handler = b.CommandHandler;
+ handler.SetCurrentNode(node);
+ handler.OnRenameStarting(ref selectionStart, ref selectionLength);
+ } catch (Exception ex) {
+ LoggingService.LogError (ex.ToString ());
+ }
+ }
+ if (selectionStart < 0 || selectionStart >= nameLength)
+ selectionStart = 0;
+ if (selectionStart + selectionLength > nameLength)
+ selectionLength = nameLength - selectionStart;
+ // This will apply the selection as soon as possible
+ GLib.Idle.Add (() => {
+ var editable = currentLabelEditable;
+ if (editable == null)
+ return false;
+
+ editable.SelectRegion (selectionStart, selectionStart + selectionLength);
+ return false;
+ });
text_render.Editable = true;
tree.SetCursor (store.GetPath (iter), complete_column, true);
editingText = true;
}
+ Gtk.Editable currentLabelEditable;
+ void HandleEditingStarted (object o, Gtk.EditingStartedArgs e)
+ {
+ currentLabelEditable = e.Editable as Gtk.Entry;
+ }
+
void HandleOnEdit (object o, Gtk.EditedArgs e)
{
try {
editingText = false;
text_render.Editable = false;
+ currentLabelEditable = null;
Gtk.TreeIter iter;
if (!store.GetIterFromString (out iter, e.Path))
@@ -1227,6 +1266,7 @@ namespace MonoDevelop.Ide.Gui.Components
{
editingText = false;
text_render.Editable = false;
+ currentLabelEditable = null;
TreeNodeNavigator node = (TreeNodeNavigator) GetSelectedNode ();
if (node == null)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeCommandHandler.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeCommandHandler.cs
index 9e7efa2362..bf5ad2227a 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeCommandHandler.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeCommandHandler.cs
@@ -86,6 +86,10 @@ namespace MonoDevelop.Ide.Gui.Components
get { return tree; }
}
+ public virtual void OnRenameStarting (ref int selectionStart, ref int selectionLength)
+ {
+ }
+
public virtual void RenameItem (string newName)
{
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/IEditableTextBuffer.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/IEditableTextBuffer.cs
index de3a8f8575..430e0b0a15 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/IEditableTextBuffer.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Content/IEditableTextBuffer.cs
@@ -36,6 +36,7 @@ namespace MonoDevelop.Ide.Gui.Content
int LineCount { get; }
void SetCaretTo (int line, int column);
void SetCaretTo (int line, int column, bool highlightLine);
+ void SetCaretTo (int line, int column, bool highlightLine, bool centerCaret);
bool HasInputFocus { get; }
event EventHandler CaretPositionSet;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/AboutMonoDevelopTabPage.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/AboutMonoDevelopTabPage.cs
index 10658db1f2..d4553ee78f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/AboutMonoDevelopTabPage.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/AboutMonoDevelopTabPage.cs
@@ -89,14 +89,19 @@ namespace MonoDevelop.Ide.Gui.Dialogs
internal class ScrollBox : DrawingArea
{
Pixbuf image;
+ Pixbuf imageBg;
+ int imageHeight, imageWidth;
Pixbuf monoPowered;
- int scroll;
Pango.Layout layout;
int monoLogoSpacing = 80;
- int textTop;
- int scrollPause;
- int scrollStart;
Gdk.GC backGc;
+
+ int scrollHeightPx, scrollStartPx, scrolledUpPx;
+ long lastFrameTicks;
+ const int fps = 20;
+ const int pixelsPerFrame = 1;
+ const int pauseSeconds = 5;
+
internal uint TimerHandle;
string[] authors = new string[] {
"Lluis Sanchez Gual",
@@ -204,6 +209,19 @@ namespace MonoDevelop.Ide.Gui.Dialogs
var bgColStr = BrandingService.GetString ("AboutBox", "BackgroundColor");
if (bgColStr != null)
Gdk.Color.Parse (bgColStr, ref bgColor);
+
+ //branders may provide either fg image or bg image, or both
+ using (var stream = BrandingService.GetStream ("AboutImage.png", false)) {
+ image = (stream != null ? new Gdk.Pixbuf (stream) : null);
+ }
+ using (var streamBg = BrandingService.GetStream ("AboutImageBg.png", false)) {
+ imageBg = (streamBg != null ? new Gdk.Pixbuf (streamBg) : null);
+ }
+
+ //if branding did not provide any image, use the built-in one
+ if (imageBg == null && image == null) {
+ image = Gdk.Pixbuf.LoadFromResource ("AboutImage.png");
+ }
} catch (Exception ex) {
LoggingService.LogError ("Error loading about box branding", ex);
}
@@ -215,10 +233,18 @@ namespace MonoDevelop.Ide.Gui.Dialogs
this.Realized += new EventHandler (OnRealized);
this.ModifyBg (Gtk.StateType.Normal, bgColor);
this.ModifyText (Gtk.StateType.Normal, textColor);
- using (var stream = BrandingService.GetStream ("AboutImage.png", true))
- image = new Gdk.Pixbuf (stream);
- monoPowered = new Gdk.Pixbuf (GetType ().Assembly, "mono-powered.png");
- this.SetSizeRequest (450, image.Height - 1);
+
+ if (image != null) {
+ imageHeight = image.Height;
+ imageWidth = image.Width;
+ }
+ if (imageBg != null) {
+ imageHeight = Math.Max (imageHeight, imageBg.Height);
+ imageWidth = Math.Max (imageWidth, imageBg.Width);
+ }
+
+ monoPowered = Gdk.Pixbuf.LoadFromResource ("mono-powered.png");
+ this.SetSizeRequest (imageWidth, imageHeight - 1);
TimerHandle = GLib.Timeout.Add (50, new TimeoutHandler (ScrollDown));
}
@@ -261,76 +287,75 @@ namespace MonoDevelop.Ide.Gui.Dialogs
bool ScrollDown ()
{
- if (scrollPause > 0) {
- if (--scrollPause == 0)
- ++scroll;
- } else
- ++scroll;
+ long oldTicks = this.lastFrameTicks;
+ long newTicks = DateTime.Now.Ticks;
+
+ if (scrolledUpPx >= scrollHeightPx) {
+ scrolledUpPx = scrollHeightPx;
+ if ((newTicks - oldTicks) > (pauseSeconds * TimeSpan.TicksPerSecond)) {
+ scrolledUpPx = 0;
+ this.lastFrameTicks = newTicks;
+ } else {
+ return true;
+ }
+ } else if (oldTicks == 0) {
+ this.lastFrameTicks = newTicks;
+ } else {
+ this.lastFrameTicks = newTicks;
+ int ticks = (int)(lastFrameTicks - oldTicks);
+ this.scrolledUpPx += (int)(ticks * pixelsPerFrame * fps / TimeSpan.TicksPerSecond);
+ }
+
int w, h;
- this.GdkWindow.GetSize (out w, out h);
- this.QueueDrawArea (0, 0, w, image.Height);
+ this.QueueDrawArea (0, 0, Allocation.Width, imageHeight);
return true;
}
- void DrawImage ()
+ void DrawText (Drawable window)
{
- if (image != null) {
- int w, h;
- this.GdkWindow.GetSize (out w, out h);
- this.GdkWindow.DrawPixbuf (backGc, image, 0, 0, (w - image.Width) / 2, 0, -1, -1, RgbDither.Normal, 0, 0);
- }
- }
-
- void DrawText ()
- {
- int width, height;
- GdkWindow.GetSize (out width, out height);
-
- int widthPixel, heightPixel;
- layout.GetPixelSize (out widthPixel, out heightPixel);
-
- GdkWindow.DrawLayout (Style.TextGC (StateType.Normal), 0, textTop - scroll, layout);
- GdkWindow.DrawPixbuf (backGc, monoPowered, 0, 0, (width / 2) - (monoPowered.Width / 2), textTop - scroll + heightPixel + monoLogoSpacing, -1, -1, RgbDither.Normal, 0, 0);
-
- heightPixel = heightPixel - 80 + image.Height;
-
- if ((scroll == heightPixel) && (scrollPause == 0))
- scrollPause = 60;
- if (scroll > heightPixel + monoLogoSpacing + monoPowered.Height)
- scroll = scrollStart;
+ var alloc = Allocation;
+ int pos = scrollStartPx - scrolledUpPx;
+ window.DrawLayout (Style.TextGC (StateType.Normal), 0, pos, layout);
+ int logoPos = pos + scrollHeightPx - monoPowered.Height / 2 - imageHeight / 2;
+ window.DrawPixbuf (backGc, monoPowered, 0, 0, (alloc.Width / 2) - (monoPowered.Width / 2),
+ logoPos, -1, -1, RgbDither.Normal, 0, 0);
}
protected override bool OnExposeEvent (Gdk.EventExpose evnt)
{
- int w, h;
-
- this.GdkWindow.GetSize (out w, out h);
- this.DrawText ();
- this.DrawImage ();
- // this.GdkWindow.DrawRectangle (backGc, true, 0, 210, w, 10);
+ var alloc = this.Allocation;
+ if (imageBg != null) {
+ evnt.Window.DrawPixbuf (backGc, imageBg, 0, 0,
+ (alloc.Width - imageBg.Width) / 2, 0,
+ -1, -1, RgbDither.Normal, 0, 0);
+ }
+ DrawText (evnt.Window);
+ if (this.image != null) {
+ evnt.Window.DrawPixbuf (backGc, image, 0, 0,
+ (alloc.Width - image.Width) / 2, 0,
+ -1, -1, RgbDither.Normal, 0, 0);
+ }
return false;
}
protected void OnRealized (object o, EventArgs args)
{
- int x, y;
- int w, h;
- GdkWindow.GetOrigin (out x, out y);
- GdkWindow.GetSize (out w, out h);
-
- textTop = y + image.Height - 30;
- scrollStart = -(image.Height - textTop);
- scroll = scrollStart;
+ scrollStartPx = imageHeight;
layout = new Pango.Layout (this.PangoContext);
// FIXME: this seems wrong but works
- layout.Width = w * (int)Pango.Scale.PangoScale;
+ layout.Width = Allocation.Width * (int)Pango.Scale.PangoScale;
layout.Wrap = Pango.WrapMode.Word;
layout.Alignment = Pango.Alignment.Center;
FontDescription fd = FontDescription.FromString ("Tahoma 10");
layout.FontDescription = fd;
layout.SetMarkup (CreditText);
+ int widthPx, heightPx;
+ layout.GetPixelSize (out widthPx, out heightPx);
+
+ this.scrollHeightPx = heightPx + monoLogoSpacing + monoPowered.Height + imageHeight / 2;
+
backGc = new Gdk.GC (GdkWindow);
backGc.RgbBgColor = bgColor;
}
@@ -343,4 +368,4 @@ namespace MonoDevelop.Ide.Gui.Dialogs
}
}
}
-}
+} \ No newline at end of file
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs
index 9b99613fe3..266cc0ef71 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/VersionInformationTabPage.cs
@@ -49,50 +49,50 @@ namespace MonoDevelop.Ide.Gui.Dialogs
internal class VersionInformationTabPage: VBox
{
- static bool IsMono ()
+ bool destroyed;
+
+ public VersionInformationTabPage ()
{
- return Type.GetType ("Mono.Runtime") != null;
+ SetLabel (GettextCatalog.GetString ("Loading..."));
+
+ new System.Threading.Thread (() => {
+ try {
+ var text = SystemInformation.ToText ();
+ Gtk.Application.Invoke (delegate {
+ if (destroyed)
+ return;
+ SetText (text);
+ });
+ } catch (Exception ex) {
+ Gtk.Application.Invoke (delegate {
+ if (destroyed)
+ return;
+ SetLabel (GettextCatalog.GetString ("Failed to load version information."));
+ });
+ }
+ }).Start ();
}
- static string GetMonoVersionNumber ()
+ void Clear ()
{
- var t = Type.GetType ("Mono.Runtime");
- if (t == null)
- return "unknown";
- var mi = t.GetMethod ("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static);
- if (mi == null) {
- LoggingService.LogError ("No Mono.Runtime.GetDiplayName method found.");
- return "error";
+ foreach (var c in this.Children) {
+ this.Remove (c);
}
- return (string)mi.Invoke (null, null);
}
- static string GetGtkVersion ()
+ void SetLabel (string text)
{
- uint v1 = 2, v2 = 0, v3 = 0;
-
- while (v1 < 99 && Gtk.Global.CheckVersion (v1, v2, v3) == null)
- v1++;
- v1--;
-
- while (v2 < 99 && Gtk.Global.CheckVersion (v1, v2, v3) == null)
- v2++;
- v2--;
-
- v3 = 0;
- while (v3 < 99 && Gtk.Global.CheckVersion (v1, v2, v3) == null)
- v3++;
- v3--;
-
- if (v1 == 99 || v2 == 99 || v3 == 99)
- return "unknown";
- return v1 +"." + v2 + "."+ v3;
+ Clear ();
+ var label = new Gtk.Label (text);
+ PackStart (label, true, true, 0);
+ ShowAll ();
}
-
- public VersionInformationTabPage ()
+
+ void SetText (string text)
{
+ Clear ();
var buf = new TextBuffer (null);
- buf.Text = SystemInformation.ToText ();
+ buf.Text = text;
var sw = new ScrolledWindow () {
BorderWidth = 6,
@@ -108,6 +108,13 @@ namespace MonoDevelop.Ide.Gui.Dialogs
sw.Child.ModifyFont (Pango.FontDescription.FromString (DesktopService.DefaultMonospaceFont));
PackStart (sw, true, true, 0);
+ ShowAll ();
+ }
+
+ public override void Destroy ()
+ {
+ base.Destroy ();
+ destroyed = true;
}
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs
index 2071478da2..30cf8fac0d 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/FolderNodeBuilder.cs
@@ -229,7 +229,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
if (targetPath.ParentDirectory == targetProject.BaseDirectory)
q = GettextCatalog.GetString ("Do you really want to move the folder '{0}' to the root folder of project '{1}'?", what, targetProject.Name);
else
- q = GettextCatalog.GetString ("Do you really want to move the folder '{0}' to the folder '{1}'?", what, targetPath.FileName);
+ q = GettextCatalog.GetString ("Do you really want to move the folder '{0}' to the folder '{1}'?", what, targetPath.ParentDirectory.FileName);
if (!MessageService.Confirm (q, AlertButton.Move))
return;
}
@@ -237,7 +237,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
if (targetPath.ParentDirectory == targetProject.BaseDirectory)
q = GettextCatalog.GetString ("Do you really want to copy the folder '{0}' to the root folder of project '{1}'?", what, targetProject.Name);
else
- q = GettextCatalog.GetString ("Do you really want to copy the folder '{0}' to the folder '{1}'?", what, targetPath.FileName);
+ q = GettextCatalog.GetString ("Do you really want to copy the folder '{0}' to the folder '{1}'?", what, targetPath.ParentDirectory.FileName);
if (!MessageService.Confirm (q, AlertButton.Copy))
return;
}
@@ -303,8 +303,12 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
using (IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetStatusProgressMonitor (GettextCatalog.GetString("Copying files..."), MonoDevelop.Ide.Gui.Stock.CopyIcon, true))
{
+ // If we drag and drop a node in the treeview corresponding to a directory, do not move
+ // the entire directory. We should only move the files which exist in the project. Otherwise
+ // we will need a lot of hacks all over the code to prevent us from incorrectly moving version
+ // control related files such as .svn directories
bool move = operation == DragOperation.Move;
- IdeApp.ProjectOperations.TransferFiles (monitor, sourceProject, source, targetProject, targetPath, move, false);
+ IdeApp.ProjectOperations.TransferFiles (monitor, sourceProject, source, targetProject, targetPath, move, true);
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs
index 81010e6413..d1ee44287a 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs
@@ -137,6 +137,13 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public class ProjectFileNodeCommandHandler: NodeCommandHandler
{
+ public override void OnRenameStarting (ref int selectionStart, ref int selectionLength)
+ {
+ string name = CurrentNode.NodeName;
+ selectionStart = 0;
+ selectionLength = Path.GetFileNameWithoutExtension(name).Length;
+ }
+
public override void RenameItem (string newName)
{
ProjectFile file = (ProjectFile) CurrentNode.DataItem;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DockItemToolbarLoader.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DockItemToolbarLoader.cs
index aa939644e1..1efcf2e3c7 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DockItemToolbarLoader.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/DockItemToolbarLoader.cs
@@ -152,18 +152,27 @@ namespace MonoDevelop.Ide.Gui
{
CommandInfo cmdInfo = IdeApp.CommandService.GetCommandInfo (cmdId, targetRoute);
- if (lastDesc != cmdInfo.Description) {
+ bool hasAccel = string.IsNullOrEmpty (cmdInfo.AccelKey);
+ bool hasIcon = !cmdInfo.Icon.IsNull;
+ string desc = cmdInfo.Description;
+
+ //If the button only has an icon it's not always clear what it does. In such cases, use the label as a
+ //fallback tooltip. Also do this if there's an accelerator, so the user can see what it is.
+ if (string.IsNullOrEmpty (desc) && (hasIcon || hasAccel))
+ desc = cmdInfo.Text;
+
+ if (lastDesc != desc) {
string toolTip;
- if (string.IsNullOrEmpty (cmdInfo.AccelKey)) {
- toolTip = cmdInfo.Description;
+ if (hasAccel) {
+ toolTip = desc;
} else {
- toolTip = cmdInfo.Description + " (" + KeyBindingManager.BindingToDisplayLabel (cmdInfo.AccelKey, false) + ")";
+ toolTip = desc + " (" + KeyBindingManager.BindingToDisplayLabel (cmdInfo.AccelKey, false) + ")";
}
button.TooltipText = toolTip;
- lastDesc = cmdInfo.Description;
+ lastDesc = desc;
}
- if (cmdInfo.Icon.IsNull && button.Label != cmdInfo.Text)
+ if (!hasIcon && button.Label != cmdInfo.Text)
button.Label = cmdInfo.Text;
if (cmdInfo.Icon != stockId) {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/HiddenTextEditorViewContent.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/HiddenTextEditorViewContent.cs
index a0b587ab05..f38ee30c18 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/HiddenTextEditorViewContent.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/HiddenTextEditorViewContent.cs
@@ -167,6 +167,9 @@ namespace MonoDevelop.Ide.Gui
public void SetCaretTo (int line, int column, bool highlightCaretLine)
{
}
+ public void SetCaretTo (int line, int column, bool highlightCaretLine, bool centerCaretLine)
+ {
+ }
public void Undo()
{
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs
index e9bbf2517b..5c132516bc 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui/Workbench.cs
@@ -191,6 +191,11 @@ namespace MonoDevelop.Ide.Gui
public void Present ()
{
+ //HACK: window resets its size on Win32 on Present if it was maximized by snapping to top edge of screen
+ //partially work around this by avoiding the present call if it's already toplevel
+ if (Platform.IsWindows && RootWindow.HasToplevelFocus)
+ return;
+
//FIXME: this should do a "request for attention" dock bounce on MacOS but only in some cases.
//Doing it for all Present calls is excessive and annoying. Maybe we have too many Present calls...
//Mono.TextEditor.GtkWorkarounds.PresentWindowWithNotification (RootWindow);
@@ -360,7 +365,7 @@ namespace MonoDevelop.Ide.Gui
if (vcFound != null) {
IEditableTextBuffer ipos = vcFound.GetContent<IEditableTextBuffer> ();
if (line >= 1 && ipos != null) {
- ipos.SetCaretTo (line, column >= 1 ? column : 1, options.HasFlag (OpenDocumentOptions.HighlightCaretLine));
+ ipos.SetCaretTo (line, column >= 1 ? column : 1, options.HasFlag (OpenDocumentOptions.HighlightCaretLine), options.HasFlag (OpenDocumentOptions.CenterCaretLine));
}
if (options.HasFlag (OpenDocumentOptions.BringToFront)) {
@@ -613,14 +618,18 @@ namespace MonoDevelop.Ide.Gui
window.ViewContent.Save (window.ViewContent.ContentName);
else
window.ViewContent.Save ();
+ args.Cancel |= window.ViewContent.IsDirty;
+
}
catch (Exception ex) {
args.Cancel = true;
MessageService.ShowException (ex, GettextCatalog.GetString ("The document could not be saved."));
}
}
+ if (args.Cancel)
+ FindDocument (window).Select ();
} else {
- args.Cancel = result != AlertButton.CloseWithoutSave;
+ args.Cancel |= result != AlertButton.CloseWithoutSave;
if (!args.Cancel)
window.ViewContent.DiscardChanges ();
}
@@ -1100,10 +1109,11 @@ namespace MonoDevelop.Ide.Gui
{
None = 0,
BringToFront = 1,
- HighlightCaretLine = 1 << 1,
- OnlyInternalViewer = 1 << 2,
- OnlyExternalViewer = 1 << 3,
+ CenterCaretLine = 1 << 1,
+ HighlightCaretLine = 1 << 2,
+ OnlyInternalViewer = 1 << 3,
+ OnlyExternalViewer = 1 << 4,
- Default = BringToFront | HighlightCaretLine
+ Default = BringToFront | CenterCaretLine | HighlightCaretLine
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectDialog.cs
index 121bcbfc75..bca050dd11 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectDialog.cs
@@ -387,7 +387,7 @@ namespace MonoDevelop.Ide.Projects {
string solution = txt_subdirectory.Text;
string name = txt_name.Text;
- string location = entry_location.Path;
+ string location = ProjectLocation;
if(solution.Equals("")) solution = name; //This was empty when adding after first combine
@@ -416,12 +416,12 @@ namespace MonoDevelop.Ide.Projects {
ProjectTemplate item = (ProjectTemplate) templateView.CurrentlySelected;
try {
- System.IO.Directory.CreateDirectory (ProjectLocation);
+ System.IO.Directory.CreateDirectory (location);
} catch (IOException) {
- MessageService.ShowError (GettextCatalog.GetString ("Could not create directory {0}. File already exists.", ProjectLocation));
+ MessageService.ShowError (GettextCatalog.GetString ("Could not create directory {0}. File already exists.", location));
return false;
} catch (UnauthorizedAccessException) {
- MessageService.ShowError (GettextCatalog.GetString ("You do not have permission to create to {0}", ProjectLocation));
+ MessageService.ShowError (GettextCatalog.GetString ("You do not have permission to create to {0}", location));
return false;
}
@@ -443,8 +443,8 @@ namespace MonoDevelop.Ide.Projects {
ProjectCreateInformation CreateProjectCreateInformation ()
{
ProjectCreateInformation cinfo = new ProjectCreateInformation ();
- cinfo.SolutionPath = SolutionLocation;
- cinfo.ProjectBasePath = ProjectLocation;
+ cinfo.SolutionPath = FileService.ResolveFullPath (SolutionLocation);
+ cinfo.ProjectBasePath = FileService.ResolveFullPath (ProjectLocation);
cinfo.ProjectName = txt_name.Text;
cinfo.SolutionName = CreateSolutionDirectory ? txt_subdirectory.Text : txt_name.Text;
cinfo.ParentFolder = parentFolder;
@@ -548,7 +548,7 @@ namespace MonoDevelop.Ide.Projects {
if (basePath == null)
basePath = IdeApp.ProjectOperations.ProjectsDefaultPath;
- entry_location.Path = basePath;
+ entry_location.Path = FileService.ResolveFullPath (basePath);
PathChanged (null, null);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
index ba281a0b1d..afa67db7ae 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.csproj
@@ -1508,7 +1508,6 @@
<Compile Include="MonoDevelop.Components\ContextMenuTreeView.cs" />
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="Makefile.am" />
<Data Include="options\DefaultEditingLayout.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
index 0826f8239d..2b44fa430e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
@@ -1063,8 +1063,6 @@ namespace MonoDevelop.Ide
ITimeTracker tt = Counters.BuildItemTimer.BeginTiming ("Building " + entry.Name);
try {
- tt.Trace ("Pre-build operations");
- DoBeforeCompileAction ();
IProgressMonitor monitor = IdeApp.Workbench.ProgressMonitors.GetBuildProgressMonitor ();
tt.Trace ("Start build event");
@@ -1087,12 +1085,17 @@ namespace MonoDevelop.Ide
{
BuildResult result = null;
try {
- tt.Trace ("Building item");
- SolutionItem it = entry as SolutionItem;
- if (it != null)
- result = it.Build (monitor, IdeApp.Workspace.ActiveConfiguration, true);
- else
- result = entry.RunTarget (monitor, ProjectService.BuildTarget, IdeApp.Workspace.ActiveConfiguration);
+ tt.Trace ("Pre-build operations");
+ result = DoBeforeCompileAction ();
+
+ if (result.ErrorCount == 0) {
+ tt.Trace ("Building item");
+ SolutionItem it = entry as SolutionItem;
+ if (it != null)
+ result = it.Build (monitor, IdeApp.Workspace.ActiveConfiguration, true);
+ else
+ result = entry.RunTarget (monitor, ProjectService.BuildTarget, IdeApp.Workspace.ActiveConfiguration);
+ }
} catch (Exception ex) {
monitor.ReportError (GettextCatalog.GetString ("Build failed."), ex);
} finally {
@@ -1104,8 +1107,10 @@ namespace MonoDevelop.Ide
});
}
- void DoBeforeCompileAction ()
+ BuildResult DoBeforeCompileAction ()
{
+ var result = new BuildResult ();
+ var couldNotSaveError = "The build has been aborted as the file '{0}' could not be saved";
BeforeCompileAction action = IdeApp.Preferences.BeforeBuildSaveAction;
switch (action) {
@@ -1120,6 +1125,8 @@ namespace MonoDevelop.Ide
AlertButton.BuildWithoutSave, AlertButton.Save) == AlertButton.Save) {
MarkFileDirty (doc.FileName);
doc.Save ();
+ if (doc.IsDirty)
+ result.AddError (string.Format (couldNotSaveError, Path.GetFileName (doc.FileName)), doc.FileName);
}
else
break;
@@ -1128,13 +1135,18 @@ namespace MonoDevelop.Ide
break;
case BeforeCompileAction.SaveAllFiles:
foreach (var doc in new List<MonoDevelop.Ide.Gui.Document> (IdeApp.Workbench.Documents))
- if (doc.IsDirty && doc.Project != null)
+ if (doc.IsDirty && doc.Project != null) {
doc.Save ();
+ if (doc.IsDirty)
+ result.AddError (string.Format (couldNotSaveError, Path.GetFileName (doc.FileName)), doc.FileName);
+ }
break;
default:
System.Diagnostics.Debug.Assert(false);
break;
}
+
+ return result;
}
void BeginBuild (IProgressMonitor monitor)
@@ -1269,10 +1281,14 @@ namespace MonoDevelop.Ide
if (folder.IsRoot) {
// Don't allow adding files to the root folder. VS doesn't allow it
- SolutionFolder newFolder = new SolutionFolder ();
- newFolder.Name = "Solution Items";
- folder.AddItem (newFolder);
- folder = newFolder;
+ // If there is no existing folder, create one
+ var itemsFolder = (SolutionFolder) folder.Items.Where (item => item.Name == "Solution Items").FirstOrDefault ();
+ if (itemsFolder == null) {
+ itemsFolder = new SolutionFolder ();
+ itemsFolder.Name = "Solution Items";
+ folder.AddItem (itemsFolder);
+ }
+ folder = itemsFolder;
}
if (!fp.IsChildPathOf (folder.BaseDirectory)) {
@@ -1526,20 +1542,26 @@ namespace MonoDevelop.Ide
!copyOnlyProjectFiles ||
IsDirectoryHierarchyEmpty (sourcePath)));
- // Get the list of files to copy
-
+ // We need to remove all files + directories from the source project
+ // but when dealing with the VCS addins we need to process only the
+ // files so we do not create a 'file' in the VCS which corresponds
+ // to a directory in the project and blow things up.
+ List<ProjectFile> filesToRemove = null;
List<ProjectFile> filesToMove = null;
try {
//get the real ProjectFiles
if (sourceProject != null) {
if (sourceIsFolder) {
var virtualPath = sourcePath.ToRelative (sourceProject.BaseDirectory);
- filesToMove = sourceProject.Files.GetFilesInVirtualPath (virtualPath).ToList ();
+ // Grab all the child nodes of the folder we just dragged/dropped
+ filesToRemove = sourceProject.Files.GetFilesInVirtualPath (virtualPath).ToList ();
+ // Add the folder itself so we can remove it from the soruce project if its a Move operation
+ filesToRemove.Add (sourceProject.Files.Where (f => f.ProjectVirtualPath == virtualPath).FirstOrDefault ());
} else {
- filesToMove = new List<ProjectFile> ();
+ filesToRemove = new List<ProjectFile> ();
var pf = sourceProject.GetProjectFile (sourcePath);
if (pf != null)
- filesToMove.Add (pf);
+ filesToRemove.Add (pf);
}
}
//get all the non-project files and create fake ProjectFiles
@@ -1547,12 +1569,12 @@ namespace MonoDevelop.Ide
var col = new List<ProjectFile> ();
GetAllFilesRecursive (sourcePath, col);
if (sourceProject != null) {
- var names = new HashSet<string> (filesToMove.Select (f => sourceProject.BaseDirectory.Combine (f.ProjectVirtualPath).ToString ()));
+ var names = new HashSet<string> (filesToRemove.Select (f => sourceProject.BaseDirectory.Combine (f.ProjectVirtualPath).ToString ()));
foreach (var f in col)
if (names.Add (f.Name))
- filesToMove.Add (f);
+ filesToRemove.Add (f);
} else {
- filesToMove = col;
+ filesToRemove = col;
}
}
} catch (Exception ex) {
@@ -1560,6 +1582,9 @@ namespace MonoDevelop.Ide
return;
}
+ // Strip out all the directories to leave us with just the files.
+ filesToMove = filesToRemove.Where (f => f.Subtype != Subtype.Directory).ToList ();
+
// If copying a single file, bring any grouped children along
ProjectFile sourceParent = null;
if (filesToMove.Count == 1 && sourceProject != null) {
@@ -1630,8 +1655,6 @@ namespace MonoDevelop.Ide
}
if (sourceProject != null) {
- if (removeFromSource && sourceProject.Files.Contains (file))
- sourceProject.Files.Remove (file);
if (fileIsLink) {
var linkFile = (sourceProject == targetProject)? file : (ProjectFile) file.Clone ();
if (movingFolder) {
@@ -1660,6 +1683,12 @@ namespace MonoDevelop.Ide
monitor.Step (1);
}
+ if (removeFromSource) {
+ // Remove all files and directories under 'sourcePath'
+ foreach (var v in filesToRemove)
+ sourceProject.Files.Remove (v);
+ }
+
var pfolder = sourcePath.ParentDirectory;
// If this was the last item in the folder, make sure we keep
diff --git a/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj b/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj
index 3f599fbfce..efe2e823d0 100644
--- a/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj
+++ b/main/src/core/MonoDevelop.Startup/MonoDevelop.Startup.csproj
@@ -84,7 +84,6 @@
</Reference>
</ItemGroup>
<ItemGroup>
- <None Include="ChangeLog" />
<None Include="app.config" />
</ItemGroup>
<ItemGroup>
diff --git a/main/tests/UnitTests/MonoDevelop.CSharpBinding/TestViewContent.cs b/main/tests/UnitTests/MonoDevelop.CSharpBinding/TestViewContent.cs
index 774567ccac..5a2d506045 100644
--- a/main/tests/UnitTests/MonoDevelop.CSharpBinding/TestViewContent.cs
+++ b/main/tests/UnitTests/MonoDevelop.CSharpBinding/TestViewContent.cs
@@ -172,6 +172,9 @@ namespace MonoDevelop.CSharpBinding.Tests
public void SetCaretTo (int line, int column, bool highlightCaretLine)
{
}
+ public void SetCaretTo (int line, int column, bool highlightCaretLine, bool centerCaret)
+ {
+ }
public void Undo()
{
diff --git a/main/tests/UserInterfaceTests/Main.cs b/main/tests/UserInterfaceTests/Main.cs
index 938a69cffc..ef3f2ed2c2 100644
--- a/main/tests/UserInterfaceTests/Main.cs
+++ b/main/tests/UserInterfaceTests/Main.cs
@@ -96,6 +96,10 @@ namespace UserInterfaceTests
}
AutoTestClientSession session = new AutoTestClientSession ();
+ Console.CancelKeyPress += delegate {
+ Console.WriteLine ("Test session cancelled");
+ session.Stop ();
+ };
try {
if (attach) {
session.AttachApplication ();
diff --git a/main/tests/UserInterfaceTests/MonoDevelop.UserInterfaceTests/IdeApi.cs b/main/tests/UserInterfaceTests/MonoDevelop.UserInterfaceTests/IdeApi.cs
index ca919a877e..13d4605b64 100644
--- a/main/tests/UserInterfaceTests/MonoDevelop.UserInterfaceTests/IdeApi.cs
+++ b/main/tests/UserInterfaceTests/MonoDevelop.UserInterfaceTests/IdeApi.cs
@@ -34,7 +34,7 @@ namespace MonoDevelop.UserInterfaceTests
{
public static void OpenFile (FilePath file)
{
- TestService.Session.GlobalInvoke ("MonoDevelop.Ide.IdeApp.Workbench.OpenDocument", (FilePath) file);
+ TestService.Session.GlobalInvoke ("MonoDevelop.Ide.IdeApp.Workbench.OpenDocument", (FilePath) file, true);
}
public static void OpenFile (string relFile, FilePath projectFilePath)
diff --git a/main/tests/UserInterfaceTests/UserInterfaceTests.csproj b/main/tests/UserInterfaceTests/UserInterfaceTests.csproj
index c684cf3f93..e38ef837f2 100644
--- a/main/tests/UserInterfaceTests/UserInterfaceTests.csproj
+++ b/main/tests/UserInterfaceTests/UserInterfaceTests.csproj
@@ -1 +1,63 @@
-<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProductVersion>9.0.21022</ProductVersion> <SchemaVersion>2.0</SchemaVersion> <ProjectGuid>{07F55155-51A8-4072-9F80-FA473666F086}</ProjectGuid> <OutputType>Exe</OutputType> <RootNamespace>UserInterfaceTests</RootNamespace> <AssemblyName>UserInterfaceTests</AssemblyName> <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> <DebugSymbols>true</DebugSymbols> <DebugType>full</DebugType> <Optimize>false</Optimize> <OutputPath>..\..\build\bin</OutputPath> <DefineConstants>DEBUG</DefineConstants> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <DebugType>none</DebugType> <Optimize>false</Optimize> <OutputPath>..\..\build\bin</OutputPath> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> </PropertyGroup> <ItemGroup> <Reference Include="System" /> <Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" /> <Reference Include="System.Core" /> </ItemGroup> <ItemGroup> <Compile Include="Main.cs" /> <Compile Include="MonoDevelop.Components.AutoTest\TestStep.cs" /> <Compile Include="MonoDevelop.UserInterfaceTests\SimpleTest.cs" /> <Compile Include="MonoDevelop.Components.AutoTest\StressTest.cs" /> <Compile Include="MonoDevelop.Components.AutoTest\UndoTestStepAttribute.cs" /> <Compile Include="MonoDevelop.UserInterfaceTests\Ide.cs" /> <Compile Include="MonoDevelop.UserInterfaceTests\IdeApi.cs" /> <Compile Include="MonoDevelop.Components.AutoTest\TestService.cs" /> <Compile Include="MonoDevelop.UserInterfaceTests\BaseStressTest.cs" /> <Compile Include="MonoDevelop.UserInterfaceTests\Util.cs" /> </ItemGroup> <ItemGroup> <ProjectReference Include="..\..\src\core\MonoDevelop.Ide\MonoDevelop.Ide.csproj"> <Project>{27096E7F-C91C-4AC6-B289-6897A701DF21}</Project> <Name>MonoDevelop.Ide</Name> <Private>False</Private> </ProjectReference> <ProjectReference Include="..\..\src\core\MonoDevelop.Core\MonoDevelop.Core.csproj"> <Project>{7525BB88-6142-4A26-93B9-A30C6983390A}</Project> <Name>MonoDevelop.Core</Name> <Private>False</Private> </ProjectReference> </ItemGroup> <ItemGroup> <Folder Include="MonoDevelop.Components.AutoTest\" /> <Folder Include="MonoDevelop.UserInterfaceTests\" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> </Project> \ No newline at end of file
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.21022</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{07F55155-51A8-4072-9F80-FA473666F086}</ProjectGuid>
+ <OutputType>Exe</OutputType>
+ <RootNamespace>UserInterfaceTests</RootNamespace>
+ <AssemblyName>UserInterfaceTests</AssemblyName>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\build\bin</OutputPath>
+ <DefineConstants>DEBUG</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>none</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>..\..\build\bin</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="System" />
+ <Reference Include="gdk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f" />
+ <Reference Include="System.Core" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Main.cs" />
+ <Compile Include="MonoDevelop.Components.AutoTest\TestStep.cs" />
+ <Compile Include="MonoDevelop.UserInterfaceTests\SimpleTest.cs" />
+ <Compile Include="MonoDevelop.Components.AutoTest\StressTest.cs" />
+ <Compile Include="MonoDevelop.Components.AutoTest\UndoTestStepAttribute.cs" />
+ <Compile Include="MonoDevelop.UserInterfaceTests\Ide.cs" />
+ <Compile Include="MonoDevelop.UserInterfaceTests\IdeApi.cs" />
+ <Compile Include="MonoDevelop.Components.AutoTest\TestService.cs" />
+ <Compile Include="MonoDevelop.UserInterfaceTests\BaseStressTest.cs" />
+ <Compile Include="MonoDevelop.UserInterfaceTests\Util.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\..\src\core\MonoDevelop.Ide\MonoDevelop.Ide.csproj">
+ <Project>{27096E7F-C91C-4AC6-B289-6897A701DF21}</Project>
+ <Name>MonoDevelop.Ide</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ <ProjectReference Include="..\..\src\core\MonoDevelop.Core\MonoDevelop.Core.csproj">
+ <Project>{7525BB88-6142-4A26-93B9-A30C6983390A}</Project>
+ <Name>MonoDevelop.Core</Name>
+ <Private>False</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <Folder Include="MonoDevelop.Components.AutoTest\" />
+ <Folder Include="MonoDevelop.UserInterfaceTests\" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+</Project> \ No newline at end of file
diff --git a/version-checks b/version-checks
index 37d19361e8..2b3dfb1938 100755
--- a/version-checks
+++ b/version-checks
@@ -25,7 +25,7 @@ DEP[1]=heap-shot
DEP_NAME[1]=HEAPSHOT
DEP_PATH[1]=${top_srcdir}/../heap-shot
DEP_MODULE[1]=git@github.com:mono/heap-shot.git
-DEP_NEEDED_VERSION[1]=498dba772c1e514e5a0d12d4b90e202acc30d1d2
+DEP_NEEDED_VERSION[1]=2bf14a9d62e5b649a91f5455ba7c222d66b6c088
DEP_BRANCH_AND_REMOTE[1]="master origin/master"
# other dependencies