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

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2012-01-02 16:29:27 +0400
committerMike Krüger <mkrueger@xamarin.com>2012-01-02 16:29:27 +0400
commitc1ee09f0217e56b30c672bec2f76a55ff85449ba (patch)
treeb90ac1bbd0e40093b30ae05c8062eb661cb24e6f
parent795e73c6c1cafc5898afeac022aa520974675888 (diff)
parent45132db7a43b404c9075a85a7754915c43648278 (diff)
Merge branch 'master' into newresolver
Conflicts: main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoryCommands.cs
-rw-r--r--Makefile8
-rw-r--r--extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionNodeBuilder.cs2
-rw-r--r--extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionPointNodeBuilder.cs2
-rw-r--r--extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/SolutionNodeBuilder.cs2
-rw-r--r--extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Dialect/AbstractSqlDialect.cs4
-rw-r--r--extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Providers/AbstractSchemaProvider.cs46
-rw-r--r--extras/MonoDevelop.MonoMac/MonoDevelop.MonoMac/MonoMacProject.cs11
-rw-r--r--main/Makefile.am9
-rw-r--r--main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj1
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.DeployFileListWidget.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.FileReplaceDialog.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.BinariesZipEditorWidget.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.EntrySelectionTree.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.InstallDialog.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.PackagingFeatureWidget.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SourcesZipEditorWidget.cs2
-rw-r--r--main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SshFuseFileCopyConfigurationEditorWidget.cs2
-rw-r--r--main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs4
-rw-r--r--main/src/addins/MacPlatform/Dialogs/MacExceptionDialogHandler.cs219
-rw-r--r--main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs36
-rw-r--r--main/src/addins/MacPlatform/MacPlatform.cs2
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.cs518
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/generated.cs137
-rw-r--r--main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/Mono.Debugging.Soft.csproj1
-rw-r--r--main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerAdaptor.cs166
-rw-r--r--main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/SoftDebuggerSession.cs33
-rw-r--r--main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs6
-rw-r--r--main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs10
-rwxr-xr-xmain/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectTypeInfo.cs4
-rw-r--r--main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs7
-rw-r--r--main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeMonitor.cs2
-rw-r--r--main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs1
-rw-r--r--main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedType.cs5
-rw-r--r--main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight/MoonlightProject.cs12
-rw-r--r--main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoryCommands.cs80
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs11
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs2
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.cs450
-rw-r--r--main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/generated.cs235
-rw-r--r--main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs11
-rw-r--r--main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ConfigurationOptionsPanelWidget.cs2
-rw-r--r--main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ImportsOptionsPanelWidget.cs2
-rw-r--r--main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ProjectOptionsPanelWidget.cs2
-rw-r--r--main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Task.cs1
-rw-r--r--main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/FilteredMembersSource.cs2
-rw-r--r--main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs41
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor.Vi/ViMode.cs4
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs21
-rw-r--r--main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs14
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs15
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core.LogReporting/LogReportingService.cs21
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Core/LoggingService.cs62
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProject.cs1
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildAction.cs37
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildResult.cs35
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs2
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs30
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectFileCollection.cs4
-rw-r--r--main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectService.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ErrorDialog.cs17
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs596
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeBuilder.cs72
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs23
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/GtkErrorDialog.cs20
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFileNodeBuilder.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs10
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs2
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs4
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectDialog.cs6
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs7
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs26
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/LogReportingStartup.cs63
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/MessageService.cs21
-rw-r--r--main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs43
-rw-r--r--main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.FindInFiles.FindInFilesDialog.cs236
-rw-r--r--main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.Dialogs.TipOfTheDayWindow.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.AddInsPanelWidget.cs1
-rw-r--r--main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic143
-rw-r--r--main/src/core/MonoDevelop.Ide/templates/EmptyTextFile.xft.xml2
-rw-r--r--main/src/core/MonoDevelop.Ide/templates/EmptyXMLFile.xft.xml5
-rw-r--r--main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/ProjectBuilder.cs7
-rw-r--r--main/src/tools/MacCrashLogger/MacCrashLogger.csproj3
88 files changed, 2246 insertions, 1429 deletions
diff --git a/Makefile b/Makefile
index de4ec321ca..ea6cc3af06 100644
--- a/Makefile
+++ b/Makefile
@@ -36,7 +36,6 @@ distcheck: distcheck-recursive
distclean: distclean-recursive
rm -rf config.make local-config
-
dist: dist-recursive
rm -rf tarballs
@@ -50,7 +49,7 @@ dist: dist-recursive
gunzip $$t ;\
done
for t in `ls tarballs/*.tar`; do \
- bzip2 $$t ;\
+ bzip2 $$t ;\
done
rm -rf specs
mkdir -p specs
@@ -62,7 +61,10 @@ dist: dist-recursive
run:
cd main && make run
-
+
+run-gdb:
+ cd main && make run-gdb
+
test:
cd main/tests/UnitTests && make test fixture=$(fixture)
diff --git a/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionNodeBuilder.cs b/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionNodeBuilder.cs
index c5c2fa6fdc..4095a15a48 100644
--- a/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionNodeBuilder.cs
+++ b/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionNodeBuilder.cs
@@ -64,7 +64,7 @@ namespace MonoDevelop.AddinAuthoring.NodeBuilders
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Pixbuf icon, ref Pixbuf closedIcon)
{
Extension ext = (Extension) dataObject;
- label = Util.GetDisplayName (ext);
+ label = EscapeTextForMarkup (Util.GetDisplayName (ext));
icon = Context.GetIcon ("md-extension");
}
diff --git a/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionPointNodeBuilder.cs b/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionPointNodeBuilder.cs
index 76446829e1..2e7cfa5693 100644
--- a/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionPointNodeBuilder.cs
+++ b/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/ExtensionPointNodeBuilder.cs
@@ -71,7 +71,7 @@ namespace MonoDevelop.AddinAuthoring.NodeBuilders
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Pixbuf icon, ref Pixbuf closedIcon)
{
ExtensionPoint ep = (ExtensionPoint) dataObject;
- label = !string.IsNullOrEmpty (ep.Name) ? ep.Name : ep.Path;
+ label = EscapeTextForMarkup (!string.IsNullOrEmpty (ep.Name) ? ep.Name : ep.Path);
icon = Context.GetIcon ("md-extension-point");
}
diff --git a/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/SolutionNodeBuilder.cs b/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/SolutionNodeBuilder.cs
index 0df58e778f..0382b13032 100644
--- a/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/SolutionNodeBuilder.cs
+++ b/extras/MonoDevelop.AddinAuthoring/MonoDevelop.AddinAuthoring.NodeBuilders/SolutionNodeBuilder.cs
@@ -71,7 +71,7 @@ namespace MonoDevelop.AddinAuthoring.NodeBuilders
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
{
Solution sol = (Solution) dataObject;
- label = sol.Name;
+ label = EscapeTextForMarkup (sol.Name);
icon = Context.GetIcon (MonoDevelop.Ide.Gui.Stock.Solution);
}
diff --git a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Dialect/AbstractSqlDialect.cs b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Dialect/AbstractSqlDialect.cs
index 2d5d5e3185..9d801c0a41 100644
--- a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Dialect/AbstractSqlDialect.cs
+++ b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Dialect/AbstractSqlDialect.cs
@@ -244,8 +244,8 @@ namespace MonoDevelop.Database.Sql
int columnCount = statement.Columns.Count;
for (int i=0; i<columnCount; i++) {
OperatorExpression expr = new OperatorExpression (statement.Columns[i], Operator.Equals, statement.Values[i]);
- sb.Append (expr);
- sb.Append (i == (columnCount - 1) ? ", " : "");
+ sb.Append (GetExpressionSql (expr));
+ sb.Append (i != (columnCount - 1) ? ", " : "");
}
if (statement.Where != null) {
diff --git a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Providers/AbstractSchemaProvider.cs b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Providers/AbstractSchemaProvider.cs
index 0d4f1bd594..6b13b2e3a0 100644
--- a/extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Providers/AbstractSchemaProvider.cs
+++ b/extras/MonoDevelop.Database/MonoDevelop.Database.Sql/Providers/AbstractSchemaProvider.cs
@@ -813,42 +813,32 @@ namespace MonoDevelop.Database.Sql
public virtual string GetSelectQuery (TableSchema table)
{
- StringBuilder sb = new StringBuilder ("SELECT ");
- bool coma = false;
+ ISqlDialect dialect = this.ConnectionPool.DbFactory.Dialect;
+ IdentifierExpression tableId = new IdentifierExpression (table.Name);
+ List<IdentifierExpression> columns = new List<IdentifierExpression>();
+
foreach (ColumnSchema col in table.Columns) {
- if (coma)
- sb.AppendFormat(",");
- coma = true;
- sb.AppendLine ();
- sb.AppendFormat ("{0}{1}", Convert.ToString (Convert.ToChar (9)), col.Name);
+ columns.Add(new IdentifierExpression(col.Name));
}
- sb.AppendLine ();
- sb.AppendFormat ("FROM {0}", table.Name);
- return sb.ToString ();
+
+ SelectStatement sel = new SelectStatement (new FromTableClause (tableId),columns);
+ return dialect.GetSql(sel);
}
public virtual string GetUpdateQuery (TableSchema table)
{
- StringBuilder sb = new StringBuilder ("UPDATE ");
- sb.AppendFormat ("{0} {1}{1}{2}SET", table.Name, Convert.ToString (Convert.ToChar (9)), Environment.NewLine);
- bool coma = false;
+ ISqlDialect dialect = this.ConnectionPool.DbFactory.Dialect;
+ IdentifierExpression tableId = new IdentifierExpression (table.Name);
+ List<IdentifierExpression> columns = new List<IdentifierExpression>();
+ List<IExpression> values = new List<IExpression>();
+
foreach (ColumnSchema col in table.Columns) {
- if (coma)
- sb.AppendFormat(",");
- coma = true;
- sb.AppendLine ();
- if (col.DataType.FullName.IndexOf ("varchar", StringComparison.OrdinalIgnoreCase) > -1 ||
- col.DataType.FullName.IndexOf ("char", StringComparison.OrdinalIgnoreCase) > -1 ||
- col.DataType.FullName.IndexOf ("nvarchar", StringComparison.OrdinalIgnoreCase) > -1 ||
- col.DataType.FullName.IndexOf ("varbinary", StringComparison.OrdinalIgnoreCase) > -1 ||
- col.DataType.FullName.IndexOf ("nchar", StringComparison.OrdinalIgnoreCase) > -1)
- sb.AppendFormat ("{2}{0} = <{1}({3})> ", col.Name, col.DataType.FullName, Convert.ToString (Convert.ToChar (9)), col.DataType.LengthRange.Max);
- else
- sb.AppendFormat ("{2}{0} = <{1}> ", col.Name, col.DataType.FullName, Convert.ToString (Convert.ToChar (9)));
+ columns.Add(new IdentifierExpression(col.Name));
+ values.Add(new IdentifierExpression(col.DataTypeName));
}
- sb.AppendLine ();
- sb.Append ("WHERE ");
- return sb.ToString ();
+
+ UpdateStatement upd = new UpdateStatement (tableId, columns, values);
+ return dialect.GetSql(upd);
}
public virtual string GetInsertQuery (TableSchema table)
diff --git a/extras/MonoDevelop.MonoMac/MonoDevelop.MonoMac/MonoMacProject.cs b/extras/MonoDevelop.MonoMac/MonoDevelop.MonoMac/MonoMacProject.cs
index 9cc8697e07..9e87d60c6e 100644
--- a/extras/MonoDevelop.MonoMac/MonoDevelop.MonoMac/MonoMacProject.cs
+++ b/extras/MonoDevelop.MonoMac/MonoDevelop.MonoMac/MonoMacProject.cs
@@ -264,5 +264,16 @@ namespace MonoDevelop.MonoMac
doc.WriteToFile (name);
return AddFile (name);
}
+
+ protected override IList<string> GetCommonBuildActions ()
+ {
+ return new string[] {
+ BuildAction.None,
+ BuildAction.Compile,
+ BuildAction.Content,
+ BuildAction.EmbeddedResource,
+ BuildAction.InterfaceDefinition,
+ };
+ }
}
}
diff --git a/main/Makefile.am b/main/Makefile.am
index 673bd8ed04..b940c685ca 100644
--- a/main/Makefile.am
+++ b/main/Makefile.am
@@ -110,6 +110,11 @@ runmd: $(PROGRAM)
run-debug: $(PROGRAM)
MONODEVELOP_CONSOLE_LOG_LEVEL=All $(MD_LAUNCH) --debug=casts $(MD_BIN_PATH)/MonoDevelop.exe
+run-gdb: $(PROGRAM)
+ echo "run --debug $(MD_BIN_PATH)/MonoDevelop.exe" > gdb.commands
+ $(MD_LAUNCH_SETUP) gdb $(RUNTIME) -x gdb.commands
+ rm -f gdb.commands
+
run-profile: $(PROGRAM)
$(MD_LAUNCH) -O=inline --profile $(MD_BIN_PATH)/MonoDevelop.exe
@@ -125,7 +130,7 @@ plot-trace:
run-profile-heap: $(PROGRAM)
$(MD_LAUNCH) -O=inline --profile=heap:heaplog $(MD_BIN_PATH)/MonoDevelop.exe
-
+
check-addins:
$(MDTOOL_RUN) setup reg-build -v
@@ -156,7 +161,7 @@ include $(top_srcdir)/Makefile.include
filter_stale_uninstalled = \
| egrep -v '^.*/share/mime/.*$$' \
| egrep -v '^.*./share/icons/hicolor/icon-theme\.cache$$'
-
+
filter_stale_buildfiles = | egrep -v '^./report.out$$'
distuninstallcheck_listfiles = find . -type f -print # automake-1.9 setting
distuninstallcheck_listfiles += $(filter_stale_uninstalled) # amend by required filtering
diff --git a/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj b/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj
index d3c6b3a9d2..e3c1ac0039 100644
--- a/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj
+++ b/main/contrib/Mono.Debugger.Soft/Mono.Debugger.Soft.csproj
@@ -120,6 +120,7 @@
<ProjectReference Include="..\Mono.Cecil\Mono.Cecil.csproj">
<Project>{3EC06433-F168-4C5B-A885-99CE4AB617E1}</Project>
<Name>Mono.Cecil</Name>
+ <Private>False</Private>
</ProjectReference>
</ItemGroup>
<ProjectExtensions>
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.DeployFileListWidget.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.DeployFileListWidget.cs
index cbc6fe7d76..3a6a61f074 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.DeployFileListWidget.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.DeployFileListWidget.cs
@@ -11,7 +11,7 @@ namespace MonoDevelop.Deployment
private global::Gtk.ScrolledWindow scrolledwindow1;
private global::Gtk.TreeView fileList;
private global::Gtk.HBox hbox2;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.FileReplaceDialog.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.FileReplaceDialog.cs
index ff3b88c85c..2ef71e78f3 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.FileReplaceDialog.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.FileReplaceDialog.cs
@@ -42,7 +42,7 @@ namespace MonoDevelop.Deployment
private global::Gtk.Label label11;
private global::Gtk.Button cancelButton;
private global::Gtk.Button okButton;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.BinariesZipEditorWidget.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.BinariesZipEditorWidget.cs
index 42d55638b8..35b70886c9 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.BinariesZipEditorWidget.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.BinariesZipEditorWidget.cs
@@ -17,7 +17,7 @@ namespace MonoDevelop.Deployment.Gui
private global::Gtk.Label label2;
private global::Gtk.Label label3;
private global::Gtk.Label label5;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.EntrySelectionTree.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.EntrySelectionTree.cs
index c43d8bf994..7ac1d4336c 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.EntrySelectionTree.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.EntrySelectionTree.cs
@@ -6,7 +6,7 @@ namespace MonoDevelop.Deployment.Gui
{
private global::Gtk.ScrolledWindow scrolledwindow1;
private global::Gtk.TreeView tree;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.InstallDialog.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.InstallDialog.cs
index 0a7270dde5..67b5bce548 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.InstallDialog.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.InstallDialog.cs
@@ -12,7 +12,7 @@ namespace MonoDevelop.Deployment.Gui
private global::Gtk.Entry nameEntry;
private global::Gtk.Button button19;
private global::Gtk.Button buttonOk;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.PackagingFeatureWidget.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.PackagingFeatureWidget.cs
index 5a6c53a50d..b7eb2557db 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.PackagingFeatureWidget.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.PackagingFeatureWidget.cs
@@ -5,7 +5,7 @@ namespace MonoDevelop.Deployment.Gui
internal partial class PackagingFeatureWidget
{
private global::Gtk.VBox box;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SourcesZipEditorWidget.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SourcesZipEditorWidget.cs
index 5c49a8f9f6..66ea2e8b5f 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SourcesZipEditorWidget.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SourcesZipEditorWidget.cs
@@ -15,7 +15,7 @@ namespace MonoDevelop.Deployment.Gui
private global::Gtk.Label label1;
private global::Gtk.Label label2;
private global::Gtk.Label label3;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SshFuseFileCopyConfigurationEditorWidget.cs b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SshFuseFileCopyConfigurationEditorWidget.cs
index 69122aea33..b1166a7869 100644
--- a/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SshFuseFileCopyConfigurationEditorWidget.cs
+++ b/main/src/addins/Deployment/MonoDevelop.Deployment/gtk-gui/MonoDevelop.Deployment.Gui.SshFuseFileCopyConfigurationEditorWidget.cs
@@ -12,7 +12,7 @@ namespace MonoDevelop.Deployment.Gui
private global::Gtk.Label label2;
private global::Gtk.Label label3;
private global::Gtk.Label label4;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs b/main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs
index 1909789e0d..2e8357dc33 100644
--- a/main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs
+++ b/main/src/addins/MacPlatform/Dialogs/MacAlertDialogHandler.cs
@@ -86,11 +86,11 @@ namespace MonoDevelop.MacIntegration
if (button.IsStockButton)
label = Gtk.Stock.Lookup (label).Label;
label = label.Replace ("_", "");
-
+
//this message seems to be a standard Mac message since alert handles it specially
if (button == AlertButton.CloseWithoutSave)
label = GettextCatalog.GetString ("Don't Save");
-
+
alert.AddButton (label);
}
diff --git a/main/src/addins/MacPlatform/Dialogs/MacExceptionDialogHandler.cs b/main/src/addins/MacPlatform/Dialogs/MacExceptionDialogHandler.cs
index d094ab4321..e2173bf6e1 100644
--- a/main/src/addins/MacPlatform/Dialogs/MacExceptionDialogHandler.cs
+++ b/main/src/addins/MacPlatform/Dialogs/MacExceptionDialogHandler.cs
@@ -41,46 +41,217 @@ namespace MonoDevelop.MacIntegration
{
class MacExceptionDialogHandler : IExceptionDialogHandler
{
+ class MyTextView : NSTextView
+ {
+ public MyTextView (RectangleF frame)
+ : base (frame)
+ {
+
+ }
+
+ public override void KeyDown (NSEvent theEvent)
+ {
+ if (theEvent.ModifierFlags.HasFlag (NSEventModifierMask.CommandKeyMask)) {
+ switch (theEvent.Characters) {
+ case "x":
+ Cut (this);
+ break;
+ case "c":
+ Copy (this);
+ break;
+ case "a":
+ SelectAll (this);
+ break;
+ }
+ }
+
+ base.KeyDown (theEvent);
+ }
+ }
+
public bool Run (ExceptionDialogData data)
{
- using (var alert = new NSAlert ()) {
- alert.AlertStyle = NSAlertStyle.Critical;
+ using (var alert = new NSAlert { AlertStyle = NSAlertStyle.Critical }) {
+ alert.Icon = NSApplication.SharedApplication.ApplicationIconImage;
- var pix = ImageService.GetPixbuf (Gtk.Stock.DialogError, Gtk.IconSize.Dialog);
- byte[] buf = pix.SaveToBuffer ("tiff");
- alert.Icon = new NSImage (NSData.FromArray (buf));
+ alert.MessageText = data.Title ?? GettextCatalog.GetString ("Error");
- alert.MessageText = data.Title ?? "Some Message";
- alert.InformativeText = data.Message ?? "Some Info";
+ if (!string.IsNullOrEmpty (data.Message)) {
+ alert.InformativeText = data.Message;
+ }
- if (data.Exception != null) {
+ List<AlertButton> buttons = null;
+ if (data.Buttons != null && data.Buttons.Length > 0)
+ buttons = data.Buttons.Reverse ().ToList ();
+
+ if (buttons != null) {
+ foreach (var button in buttons) {
+ var label = button.Label;
+ if (button.IsStockButton)
+ label = Gtk.Stock.Lookup (label).Label;
+ label = label.Replace ("_", "");
+
+ //this message seems to be a standard Mac message since alert handles it specially
+ if (button == AlertButton.CloseWithoutSave)
+ label = GettextCatalog.GetString ("Don't Save");
+
+ alert.AddButton (label);
+ }
+ }
- var text = new NSTextView (new RectangleF (0, 0, float.MaxValue, float.MaxValue));
- text.HorizontallyResizable = true;
+ if (data.Exception != null) {
+ var scrollSize = new SizeF (400, 130);
+ float spacing = 4;
+
+ string title = GettextCatalog.GetString ("View details");
+ string altTitle = GettextCatalog.GetString ("Hide details");
+
+ var buttonFrame = new RectangleF (0, 0, 0, 0);
+ var button = new NSButton (buttonFrame) {
+ BezelStyle = NSBezelStyle.Disclosure,
+ Title = "",
+ AlternateTitle = "",
+ };
+ button.SetButtonType (NSButtonType.OnOff);
+ button.SizeToFit ();
+
+ var label = new MDClickableLabel (title) {
+ Alignment = NSTextAlignment.Left,
+ };
+ label.SizeToFit ();
+
+ button.SetFrameSize (new SizeF (button.Frame.Width, Math.Max (button.Frame.Height, label.Frame.Height)));
+ label.SetFrameOrigin (new PointF (button.Frame.Width + 5, button.Frame.Y));
+
+ var text = new MyTextView (new RectangleF (0, 0, float.MaxValue, float.MaxValue)) {
+ HorizontallyResizable = true,
+ };
text.TextContainer.ContainerSize = new SizeF (float.MaxValue, float.MaxValue);
- text.TextContainer.WidthTracksTextView = false;
+ text.TextContainer.WidthTracksTextView = true;
text.InsertText (new NSString (data.Exception.ToString ()));
text.Editable = false;
-
- var scrollView = new NSScrollView (new RectangleF (0, 0, 450, 150)) {
+
+ var scrollView = new NSScrollView (new RectangleF (PointF.Empty, SizeF.Empty)) {
HasHorizontalScroller = true,
- DocumentView = text,
+ HasVerticalScroller = true,
};
-;
- alert.AccessoryView = scrollView;
+
+ var accessory = new NSView (new RectangleF (0, 0, scrollSize.Width, button.Frame.Height));
+ accessory.AddSubview (scrollView);
+ accessory.AddSubview (button);
+ accessory.AddSubview (label);
+
+ alert.AccessoryView = accessory;
+
+ button.Activated += delegate {
+ float change;
+ if (button.State == NSCellStateValue.On) {
+ change = scrollSize.Height + spacing;
+ label.StringValue = altTitle;
+ scrollView.Hidden = false;
+ scrollView.Frame = new RectangleF (PointF.Empty, scrollSize);
+ scrollView.DocumentView = text;
+ } else {
+ change = -(scrollSize.Height + spacing);
+ label.StringValue = title;
+ scrollView.Hidden = true;
+ scrollView.Frame = new RectangleF (PointF.Empty, SizeF.Empty);
+ }
+ var f = accessory.Frame;
+ f.Height += change;
+ accessory.Frame = f;
+ var lf = label.Frame;
+ lf.Y += change;
+ label.Frame = lf;
+ var bf = button.Frame;
+ bf.Y += change;
+ button.Frame = bf;
+ label.SizeToFit ();
+ var panel = (NSPanel) alert.Window;
+ var pf = panel.Frame;
+ pf.Height += change;
+ pf.Y -= change;
+ panel.SetFrame (pf, true, true);
+ //unless we assign the icon again, it starts nesting old icon into the warning icon
+ alert.Icon = NSApplication.SharedApplication.ApplicationIconImage;
+ alert.Layout ();
+ };
+ label.OnMouseUp += (sender, e) => button.PerformClick (e.Event);
}
-
- // Hack up a slightly wider than normal alert dialog. I don't know how to do this in a nicer way
- // as the min size constraints are apparently ignored.
- var frame = ((NSPanel) alert.Window).Frame;
- ((NSPanel) alert.Window).SetFrame (new RectangleF (frame.X, frame.Y, Math.Max (frame.Width, 600), frame.Height), true);
-
+
int result = alert.RunModal () - (int)NSAlertButtonReturn.First;
-
+ data.ResultButton = buttons != null ? buttons [result] : null;
GtkQuartz.FocusWindow (data.TransientFor ?? MessageService.RootWindow);
}
return true;
}
+
+ class MDClickableLabel: MDLabel
+ {
+ public MDClickableLabel (string text) : base (text)
+ {
+ }
+
+ public override void MouseDown (NSEvent theEvent)
+ {
+ if (OnMouseDown != null)
+ OnMouseDown (this, new NSEventArgs (theEvent));
+ else
+ base.MouseDown (theEvent);
+ }
+
+ public event EventHandler<NSEventArgs> OnMouseDown;
+
+ public override void MouseUp (NSEvent theEvent)
+ {
+ if (OnMouseUp != null)
+ OnMouseUp (this, new NSEventArgs (theEvent));
+ else
+ base.MouseUp (theEvent);
+ }
+
+ public event EventHandler<NSEventArgs> OnMouseUp;
+
+ public override void MouseEntered (NSEvent theEvent)
+ {
+ if (OnMouseEntered != null)
+ OnMouseEntered (this, new NSEventArgs (theEvent));
+ else
+ base.MouseEntered (theEvent);
+ }
+
+ public event EventHandler<NSEventArgs> OnMouseEntered;
+
+ public override void MouseExited (NSEvent theEvent)
+ {
+ if (OnMouseExited != null)
+ OnMouseExited (this, new NSEventArgs (theEvent));
+ else
+ base.MouseExited (theEvent);
+ }
+
+ public event EventHandler<NSEventArgs> OnMouseExited;
+
+ public override void MouseMoved (NSEvent theEvent)
+ {
+ if (OnMouseMoved != null)
+ OnMouseMoved (this, new NSEventArgs (theEvent));
+ else
+ base.MouseMoved (theEvent);
+ }
+
+ public event EventHandler<NSEventArgs> OnMouseMoved;
+ }
+
+ class NSEventArgs : EventArgs
+ {
+ public NSEventArgs (NSEvent evt)
+ {
+ this.Event = evt;
+ }
+
+ public NSEvent Event { get; private set; }
+ }
}
-}
+} \ No newline at end of file
diff --git a/main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs b/main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs
index 137f540cf0..c5296fa5b9 100644
--- a/main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs
+++ b/main/src/addins/MacPlatform/Dialogs/MacOpenFileDialogHandler.cs
@@ -147,7 +147,7 @@ namespace MonoDevelop.MacIntegration
var selection = MacSelectFileDialogHandler.GetSelectedFiles (panel);
bool slnViewerSelected = false;
if (viewerSelector != null) {
- FillViewers (currentViewers, viewerSelector, selection);
+ FillViewers (currentViewers, viewerSelector, closeSolutionButton, selection);
if (currentViewers.Count == 0 || currentViewers[0] != null) {
if (closeSolutionButton != null)
closeSolutionButton.Hidden = true;
@@ -158,6 +158,15 @@ namespace MonoDevelop.MacIntegration
slnViewerSelected = true;
}
box.Layout ();
+
+ //re-center the accessory view in its parent, Cocoa does this for us initially and after
+ //resizing the window, but we need to do it again after altering its layout
+ var superFrame = box.View.Superview.Frame;
+ var frame = box.View.Frame;
+ //not sure why it's ceiling, but this matches the Cocoa layout
+ frame.X = (float) Math.Ceiling ((superFrame.Width - frame.Width) / 2);
+ frame.Y = (float) Math.Ceiling ((superFrame.Height - frame.Height) / 2);
+ box.View.Frame = frame;
}
if (encodingSelector != null)
encodingSelector.Enabled = !slnViewerSelected;
@@ -195,7 +204,7 @@ namespace MonoDevelop.MacIntegration
return true;
}
- static void FillViewers (List<FileViewer> currentViewers, NSPopUpButton button, FilePath[] filenames)
+ static void FillViewers (List<FileViewer> currentViewers, NSPopUpButton button, NSButton closeSolutionButton, FilePath[] filenames)
{
button.Menu.RemoveAllItems ();
currentViewers.Clear ();
@@ -209,20 +218,37 @@ namespace MonoDevelop.MacIntegration
if (System.IO.Directory.Exists (filename))
return;
+ int selected = 0;
+ int i = 0;
+
if (IdeApp.Services.ProjectService.IsWorkspaceItemFile (filename) || IdeApp.Services.ProjectService.IsSolutionItemFile (filename)) {
button.Menu.AddItem (new NSMenuItem () { Title = GettextCatalog.GetString ("Solution Workbench") });
currentViewers.Add (null);
+
+ if (closeSolutionButton != null)
+ closeSolutionButton.State = NSCellStateValue.On;
+
+ i++;
}
+
foreach (var vw in DisplayBindingService.GetFileViewers (filename, null)) {
if (!vw.IsExternal) {
button.Menu.AddItem (new NSMenuItem () { Title = vw.Title });
currentViewers.Add (vw);
+
+ if (vw.CanUseAsDefault) {
+ if (closeSolutionButton != null)
+ closeSolutionButton.State = NSCellStateValue.Off;
+
+ selected = i;
+ }
+
+ i++;
}
}
+
button.Enabled = currentViewers.Count > 1;
- button.SelectItem (0);
+ button.SelectItem (selected);
}
}
-
-
}
diff --git a/main/src/addins/MacPlatform/MacPlatform.cs b/main/src/addins/MacPlatform/MacPlatform.cs
index 21e8ee50db..0c7351405e 100644
--- a/main/src/addins/MacPlatform/MacPlatform.cs
+++ b/main/src/addins/MacPlatform/MacPlatform.cs
@@ -480,7 +480,7 @@ end tell", directory.ToString ().Replace ("\"", "\\\"")));
float x, y, width, height;
if (visible.Height <= frame.Height) {
- float dockHeight = visible.Y;
+ float dockHeight = visible.Y - frame.Y;
float menubarHeight = (frame.Height - visible.Height) - dockHeight;
height = frame.Height - menubarHeight - dockHeight;
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.cs
index 334fbb9363..c5b89addad 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.cs
@@ -1,262 +1,262 @@
-
-// This file has been generated by the GUI designer. Do not modify.
+
+// This file has been generated by the GUI designer. Do not modify.
namespace MonoDevelop.AssemblyBrowser
-{
+{
internal partial class AssemblyBrowserWidget
- {
- private global::Gtk.UIManager UIManager;
- private global::Gtk.Action NavigateBackwardAction;
- private global::Gtk.Action NavigateForwardAction;
- private global::Gtk.Action goBackAction;
- private global::Gtk.Action goForwardAction;
- private global::Gtk.Action goBackAction1;
- private global::Gtk.VBox vbox1;
- private global::Gtk.HBox hbox2;
- private global::Gtk.Button buttonBack;
- private global::Gtk.Button buttonForeward;
- private global::Gtk.Label label3;
- private global::Gtk.ComboBox languageCombobox;
- private global::Gtk.Label label1;
- private global::MonoDevelop.Components.SearchEntry searchentry1;
- private global::Gtk.Label label2;
- private global::Gtk.ComboBox comboboxVisibilty;
- private global::Gtk.HPaned hpaned1;
- private global::Gtk.Alignment treeViewPlaceholder;
- private global::Gtk.VBox vbox3;
- private global::Gtk.Notebook notebook1;
- private global::Gtk.Notebook notebookInspection;
- private global::Gtk.ScrolledWindow documentationScrolledWindow;
- private global::Gtk.Label documentationLabel;
- private global::Gtk.Label label4;
- private global::Gtk.ScrolledWindow scrolledwindowEditor;
- private global::Gtk.Label label5;
- private global::Gtk.VBox searchWidget;
- private global::Gtk.ScrolledWindow scrolledwindow1;
- private global::Gtk.TreeView searchTreeview;
-
+ {
+ private global::Gtk.UIManager UIManager;
+ private global::Gtk.Action NavigateBackwardAction;
+ private global::Gtk.Action NavigateForwardAction;
+ private global::Gtk.Action goBackAction;
+ private global::Gtk.Action goForwardAction;
+ private global::Gtk.Action goBackAction1;
+ private global::Gtk.VBox vbox1;
+ private global::Gtk.HBox hbox2;
+ private global::Gtk.Button buttonBack;
+ private global::Gtk.Button buttonForeward;
+ private global::Gtk.Label label3;
+ private global::Gtk.ComboBox languageCombobox;
+ private global::Gtk.Label label1;
+ private global::MonoDevelop.Components.SearchEntry searchentry1;
+ private global::Gtk.Label label2;
+ private global::Gtk.ComboBox comboboxVisibilty;
+ private global::Gtk.HPaned hpaned1;
+ private global::Gtk.Alignment treeViewPlaceholder;
+ private global::Gtk.VBox vbox3;
+ private global::Gtk.Notebook notebook1;
+ private global::Gtk.Notebook notebookInspection;
+ private global::Gtk.ScrolledWindow documentationScrolledWindow;
+ private global::Gtk.Label documentationLabel;
+ private global::Gtk.Label label4;
+ private global::Gtk.ScrolledWindow scrolledwindowEditor;
+ private global::Gtk.Label label5;
+ private global::Gtk.VBox searchWidget;
+ private global::Gtk.ScrolledWindow scrolledwindow1;
+ private global::Gtk.TreeView searchTreeview;
+
protected virtual void Build ()
- {
- global::Stetic.Gui.Initialize (this);
- // Widget MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget
- Stetic.BinContainer w1 = global::Stetic.BinContainer.Attach (this);
- this.UIManager = new global::Gtk.UIManager ();
- global::Gtk.ActionGroup w2 = new global::Gtk.ActionGroup ("Default");
- this.NavigateBackwardAction = new global::Gtk.Action ("NavigateBackwardAction", global::Mono.Unix.Catalog.GetString ("Navigate backward"), null, "gtk-go-back");
- this.NavigateBackwardAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Navigate backward");
- w2.Add (this.NavigateBackwardAction, null);
- this.NavigateForwardAction = new global::Gtk.Action ("NavigateForwardAction", global::Mono.Unix.Catalog.GetString ("Navigate forward"), null, "gtk-go-forward");
- this.NavigateForwardAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Navigate forward");
- w2.Add (this.NavigateForwardAction, null);
- this.goBackAction = new global::Gtk.Action ("goBackAction", null, null, "gtk-go-back");
- w2.Add (this.goBackAction, null);
- this.goForwardAction = new global::Gtk.Action ("goForwardAction", null, null, "gtk-go-forward");
- w2.Add (this.goForwardAction, null);
- this.goBackAction1 = new global::Gtk.Action ("goBackAction1", null, null, "gtk-go-back");
- w2.Add (this.goBackAction1, null);
- this.UIManager.InsertActionGroup (w2, 0);
- this.Name = "MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget";
- // Container child MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.Gtk.Container+ContainerChild
- this.vbox1 = new global::Gtk.VBox ();
- this.vbox1.Name = "vbox1";
- this.vbox1.Spacing = 2;
- // Container child vbox1.Gtk.Box+BoxChild
- this.hbox2 = new global::Gtk.HBox ();
- this.hbox2.Name = "hbox2";
- this.hbox2.Spacing = 6;
- // Container child hbox2.Gtk.Box+BoxChild
- this.buttonBack = new global::Gtk.Button ();
- this.buttonBack.CanFocus = true;
- this.buttonBack.Name = "buttonBack";
- this.buttonBack.UseStock = true;
- this.buttonBack.UseUnderline = true;
- this.buttonBack.Label = "gtk-go-back";
- this.hbox2.Add (this.buttonBack);
- global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.buttonBack]));
- w3.Position = 0;
- w3.Expand = false;
- w3.Fill = false;
- // Container child hbox2.Gtk.Box+BoxChild
- this.buttonForeward = new global::Gtk.Button ();
- this.buttonForeward.CanFocus = true;
- this.buttonForeward.Name = "buttonForeward";
- this.buttonForeward.UseStock = true;
- this.buttonForeward.UseUnderline = true;
- this.buttonForeward.Label = "gtk-go-forward";
- this.hbox2.Add (this.buttonForeward);
- global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.buttonForeward]));
- w4.Position = 1;
- w4.Expand = false;
- w4.Fill = false;
- // Container child hbox2.Gtk.Box+BoxChild
- this.label3 = new global::Gtk.Label ();
- this.label3.Name = "label3";
- this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("_Visibility:");
- this.label3.UseUnderline = true;
- this.hbox2.Add (this.label3);
- global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.label3]));
- w5.Position = 2;
- w5.Expand = false;
- w5.Fill = false;
- // Container child hbox2.Gtk.Box+BoxChild
- this.languageCombobox = global::Gtk.ComboBox.NewText ();
- this.languageCombobox.Name = "languageCombobox";
- this.hbox2.Add (this.languageCombobox);
- global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.languageCombobox]));
- w6.PackType = ((global::Gtk.PackType)(1));
- w6.Position = 3;
- w6.Expand = false;
- w6.Fill = false;
- // Container child hbox2.Gtk.Box+BoxChild
- this.label1 = new global::Gtk.Label ();
- this.label1.Name = "label1";
- this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("_Language:");
- this.label1.UseUnderline = true;
- this.hbox2.Add (this.label1);
- global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.label1]));
- w7.PackType = ((global::Gtk.PackType)(1));
- w7.Position = 4;
- w7.Expand = false;
- w7.Fill = false;
- // Container child hbox2.Gtk.Box+BoxChild
- this.searchentry1 = new global::MonoDevelop.Components.SearchEntry ();
- this.searchentry1.Name = "searchentry1";
- this.searchentry1.ForceFilterButtonVisible = false;
- this.searchentry1.IsCheckMenu = false;
- this.searchentry1.ActiveFilterID = 0;
- this.searchentry1.Ready = false;
- this.searchentry1.HasFocus = false;
- this.hbox2.Add (this.searchentry1);
- global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.searchentry1]));
- w8.PackType = ((global::Gtk.PackType)(1));
- w8.Position = 5;
- // Container child hbox2.Gtk.Box+BoxChild
- this.label2 = new global::Gtk.Label ();
- this.label2.Name = "label2";
- this.label2.Xalign = 1F;
- this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("_Search:");
- this.label2.UseUnderline = true;
- this.hbox2.Add (this.label2);
- global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.label2]));
- w9.PackType = ((global::Gtk.PackType)(1));
- w9.Position = 6;
- // Container child hbox2.Gtk.Box+BoxChild
- this.comboboxVisibilty = global::Gtk.ComboBox.NewText ();
- this.comboboxVisibilty.Name = "comboboxVisibilty";
- this.hbox2.Add (this.comboboxVisibilty);
- global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.comboboxVisibilty]));
- w10.PackType = ((global::Gtk.PackType)(1));
- w10.Position = 7;
- w10.Expand = false;
- w10.Fill = false;
- this.vbox1.Add (this.hbox2);
- global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hbox2]));
- w11.Position = 0;
- w11.Expand = false;
- w11.Fill = false;
- // Container child vbox1.Gtk.Box+BoxChild
- this.hpaned1 = new global::Gtk.HPaned ();
- this.hpaned1.CanFocus = true;
- this.hpaned1.Name = "hpaned1";
- this.hpaned1.Position = 271;
- // Container child hpaned1.Gtk.Paned+PanedChild
- this.treeViewPlaceholder = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F);
- this.treeViewPlaceholder.Name = "treeViewPlaceholder";
- this.hpaned1.Add (this.treeViewPlaceholder);
- global::Gtk.Paned.PanedChild w12 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 [this.treeViewPlaceholder]));
- w12.Resize = false;
- // Container child hpaned1.Gtk.Paned+PanedChild
- this.vbox3 = new global::Gtk.VBox ();
- this.vbox3.Name = "vbox3";
- this.vbox3.Spacing = 6;
- // Container child vbox3.Gtk.Box+BoxChild
- this.notebook1 = new global::Gtk.Notebook ();
- this.notebook1.CanFocus = true;
- this.notebook1.Name = "notebook1";
- this.notebook1.CurrentPage = 0;
- this.notebook1.ShowBorder = false;
- // Container child notebook1.Gtk.Notebook+NotebookChild
- this.notebookInspection = new global::Gtk.Notebook ();
- this.notebookInspection.CanFocus = true;
- this.notebookInspection.Name = "notebookInspection";
- this.notebookInspection.CurrentPage = 1;
- // Container child notebookInspection.Gtk.Notebook+NotebookChild
- this.documentationScrolledWindow = new global::Gtk.ScrolledWindow ();
- this.documentationScrolledWindow.Name = "documentationScrolledWindow";
- this.documentationScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
- // Container child documentationScrolledWindow.Gtk.Container+ContainerChild
- global::Gtk.Viewport w13 = new global::Gtk.Viewport ();
- w13.ShadowType = ((global::Gtk.ShadowType)(0));
- // Container child GtkViewport.Gtk.Container+ContainerChild
- this.documentationLabel = new global::Gtk.Label ();
- this.documentationLabel.Name = "documentationLabel";
- this.documentationLabel.Xpad = 6;
- this.documentationLabel.Ypad = 6;
- this.documentationLabel.Xalign = 0F;
- this.documentationLabel.Yalign = 0F;
- this.documentationLabel.UseMarkup = true;
- this.documentationLabel.Selectable = true;
- w13.Add (this.documentationLabel);
- this.documentationScrolledWindow.Add (w13);
- this.notebookInspection.Add (this.documentationScrolledWindow);
- // Notebook tab
- this.label4 = new global::Gtk.Label ();
- this.label4.Name = "label4";
- this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("summary");
- this.notebookInspection.SetTabLabel (this.documentationScrolledWindow, this.label4);
- this.label4.ShowAll ();
- // Container child notebookInspection.Gtk.Notebook+NotebookChild
- this.scrolledwindowEditor = new global::Gtk.ScrolledWindow ();
- this.scrolledwindowEditor.CanFocus = true;
- this.scrolledwindowEditor.Name = "scrolledwindowEditor";
- this.scrolledwindowEditor.ShadowType = ((global::Gtk.ShadowType)(1));
- this.notebookInspection.Add (this.scrolledwindowEditor);
- global::Gtk.Notebook.NotebookChild w17 = ((global::Gtk.Notebook.NotebookChild)(this.notebookInspection [this.scrolledwindowEditor]));
- w17.Position = 1;
- // Notebook tab
- this.label5 = new global::Gtk.Label ();
- this.label5.Name = "label5";
- this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("decompiler");
- this.notebookInspection.SetTabLabel (this.scrolledwindowEditor, this.label5);
- this.label5.ShowAll ();
- this.notebook1.Add (this.notebookInspection);
- // Container child notebook1.Gtk.Notebook+NotebookChild
- this.searchWidget = new global::Gtk.VBox ();
- this.searchWidget.Name = "searchWidget";
- this.searchWidget.Spacing = 6;
- // Container child searchWidget.Gtk.Box+BoxChild
- this.scrolledwindow1 = new global::Gtk.ScrolledWindow ();
- this.scrolledwindow1.CanFocus = true;
- this.scrolledwindow1.Name = "scrolledwindow1";
- this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1));
- // Container child scrolledwindow1.Gtk.Container+ContainerChild
- this.searchTreeview = new global::Gtk.TreeView ();
- this.searchTreeview.CanFocus = true;
- this.searchTreeview.Name = "searchTreeview";
- this.scrolledwindow1.Add (this.searchTreeview);
- this.searchWidget.Add (this.scrolledwindow1);
- global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.searchWidget [this.scrolledwindow1]));
- w20.Position = 0;
- this.notebook1.Add (this.searchWidget);
- global::Gtk.Notebook.NotebookChild w21 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1 [this.searchWidget]));
- w21.Position = 1;
- this.vbox3.Add (this.notebook1);
- global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.notebook1]));
- w22.Position = 0;
- this.hpaned1.Add (this.vbox3);
- this.vbox1.Add (this.hpaned1);
- global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hpaned1]));
- w24.Position = 1;
- this.Add (this.vbox1);
- if ((this.Child != null)) {
- this.Child.ShowAll ();
- }
- w1.SetUiManager (UIManager);
- this.label3.MnemonicWidget = this.comboboxVisibilty;
- this.label1.MnemonicWidget = this.languageCombobox;
- this.label2.MnemonicWidget = this.searchentry1;
- this.Show ();
- this.NavigateBackwardAction.Activated += new global::System.EventHandler (this.OnNavigateBackwardActionActivated);
- this.NavigateForwardAction.Activated += new global::System.EventHandler (this.OnNavigateForwardActionActivated);
- }
- }
-}
+ {
+ global::Stetic.Gui.Initialize (this);
+ // Widget MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget
+ Stetic.BinContainer w1 = global::Stetic.BinContainer.Attach (this);
+ this.UIManager = new global::Gtk.UIManager ();
+ global::Gtk.ActionGroup w2 = new global::Gtk.ActionGroup ("Default");
+ this.NavigateBackwardAction = new global::Gtk.Action ("NavigateBackwardAction", global::Mono.Unix.Catalog.GetString ("Navigate backward"), null, "gtk-go-back");
+ this.NavigateBackwardAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Navigate backward");
+ w2.Add (this.NavigateBackwardAction, null);
+ this.NavigateForwardAction = new global::Gtk.Action ("NavigateForwardAction", global::Mono.Unix.Catalog.GetString ("Navigate forward"), null, "gtk-go-forward");
+ this.NavigateForwardAction.ShortLabel = global::Mono.Unix.Catalog.GetString ("Navigate forward");
+ w2.Add (this.NavigateForwardAction, null);
+ this.goBackAction = new global::Gtk.Action ("goBackAction", null, null, "gtk-go-back");
+ w2.Add (this.goBackAction, null);
+ this.goForwardAction = new global::Gtk.Action ("goForwardAction", null, null, "gtk-go-forward");
+ w2.Add (this.goForwardAction, null);
+ this.goBackAction1 = new global::Gtk.Action ("goBackAction1", null, null, "gtk-go-back");
+ w2.Add (this.goBackAction1, null);
+ this.UIManager.InsertActionGroup (w2, 0);
+ this.Name = "MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget";
+ // Container child MonoDevelop.AssemblyBrowser.AssemblyBrowserWidget.Gtk.Container+ContainerChild
+ this.vbox1 = new global::Gtk.VBox ();
+ this.vbox1.Name = "vbox1";
+ this.vbox1.Spacing = 2;
+ // Container child vbox1.Gtk.Box+BoxChild
+ this.hbox2 = new global::Gtk.HBox ();
+ this.hbox2.Name = "hbox2";
+ this.hbox2.Spacing = 6;
+ // Container child hbox2.Gtk.Box+BoxChild
+ this.buttonBack = new global::Gtk.Button ();
+ this.buttonBack.CanFocus = true;
+ this.buttonBack.Name = "buttonBack";
+ this.buttonBack.UseStock = true;
+ this.buttonBack.UseUnderline = true;
+ this.buttonBack.Label = "gtk-go-back";
+ this.hbox2.Add (this.buttonBack);
+ global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.buttonBack]));
+ w3.Position = 0;
+ w3.Expand = false;
+ w3.Fill = false;
+ // Container child hbox2.Gtk.Box+BoxChild
+ this.buttonForeward = new global::Gtk.Button ();
+ this.buttonForeward.CanFocus = true;
+ this.buttonForeward.Name = "buttonForeward";
+ this.buttonForeward.UseStock = true;
+ this.buttonForeward.UseUnderline = true;
+ this.buttonForeward.Label = "gtk-go-forward";
+ this.hbox2.Add (this.buttonForeward);
+ global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.buttonForeward]));
+ w4.Position = 1;
+ w4.Expand = false;
+ w4.Fill = false;
+ // Container child hbox2.Gtk.Box+BoxChild
+ this.label3 = new global::Gtk.Label ();
+ this.label3.Name = "label3";
+ this.label3.LabelProp = global::Mono.Unix.Catalog.GetString ("_Visibility:");
+ this.label3.UseUnderline = true;
+ this.hbox2.Add (this.label3);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.label3]));
+ w5.Position = 2;
+ w5.Expand = false;
+ w5.Fill = false;
+ // Container child hbox2.Gtk.Box+BoxChild
+ this.languageCombobox = global::Gtk.ComboBox.NewText ();
+ this.languageCombobox.Name = "languageCombobox";
+ this.hbox2.Add (this.languageCombobox);
+ global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.languageCombobox]));
+ w6.PackType = ((global::Gtk.PackType)(1));
+ w6.Position = 3;
+ w6.Expand = false;
+ w6.Fill = false;
+ // Container child hbox2.Gtk.Box+BoxChild
+ this.label1 = new global::Gtk.Label ();
+ this.label1.Name = "label1";
+ this.label1.LabelProp = global::Mono.Unix.Catalog.GetString ("_Language:");
+ this.label1.UseUnderline = true;
+ this.hbox2.Add (this.label1);
+ global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.label1]));
+ w7.PackType = ((global::Gtk.PackType)(1));
+ w7.Position = 4;
+ w7.Expand = false;
+ w7.Fill = false;
+ // Container child hbox2.Gtk.Box+BoxChild
+ this.searchentry1 = new global::MonoDevelop.Components.SearchEntry ();
+ this.searchentry1.Name = "searchentry1";
+ this.searchentry1.ForceFilterButtonVisible = false;
+ this.searchentry1.IsCheckMenu = false;
+ this.searchentry1.ActiveFilterID = 0;
+ this.searchentry1.Ready = false;
+ this.searchentry1.HasFocus = false;
+ this.hbox2.Add (this.searchentry1);
+ global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.searchentry1]));
+ w8.PackType = ((global::Gtk.PackType)(1));
+ w8.Position = 5;
+ // Container child hbox2.Gtk.Box+BoxChild
+ this.label2 = new global::Gtk.Label ();
+ this.label2.Name = "label2";
+ this.label2.Xalign = 1F;
+ this.label2.LabelProp = global::Mono.Unix.Catalog.GetString ("_Search:");
+ this.label2.UseUnderline = true;
+ this.hbox2.Add (this.label2);
+ global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.label2]));
+ w9.PackType = ((global::Gtk.PackType)(1));
+ w9.Position = 6;
+ // Container child hbox2.Gtk.Box+BoxChild
+ this.comboboxVisibilty = global::Gtk.ComboBox.NewText ();
+ this.comboboxVisibilty.Name = "comboboxVisibilty";
+ this.hbox2.Add (this.comboboxVisibilty);
+ global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.comboboxVisibilty]));
+ w10.PackType = ((global::Gtk.PackType)(1));
+ w10.Position = 7;
+ w10.Expand = false;
+ w10.Fill = false;
+ this.vbox1.Add (this.hbox2);
+ global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hbox2]));
+ w11.Position = 0;
+ w11.Expand = false;
+ w11.Fill = false;
+ // Container child vbox1.Gtk.Box+BoxChild
+ this.hpaned1 = new global::Gtk.HPaned ();
+ this.hpaned1.CanFocus = true;
+ this.hpaned1.Name = "hpaned1";
+ this.hpaned1.Position = 271;
+ // Container child hpaned1.Gtk.Paned+PanedChild
+ this.treeViewPlaceholder = new global::Gtk.Alignment (0.5F, 0.5F, 1F, 1F);
+ this.treeViewPlaceholder.Name = "treeViewPlaceholder";
+ this.hpaned1.Add (this.treeViewPlaceholder);
+ global::Gtk.Paned.PanedChild w12 = ((global::Gtk.Paned.PanedChild)(this.hpaned1 [this.treeViewPlaceholder]));
+ w12.Resize = false;
+ // Container child hpaned1.Gtk.Paned+PanedChild
+ this.vbox3 = new global::Gtk.VBox ();
+ this.vbox3.Name = "vbox3";
+ this.vbox3.Spacing = 6;
+ // Container child vbox3.Gtk.Box+BoxChild
+ this.notebook1 = new global::Gtk.Notebook ();
+ this.notebook1.CanFocus = true;
+ this.notebook1.Name = "notebook1";
+ this.notebook1.CurrentPage = 0;
+ this.notebook1.ShowBorder = false;
+ // Container child notebook1.Gtk.Notebook+NotebookChild
+ this.notebookInspection = new global::Gtk.Notebook ();
+ this.notebookInspection.CanFocus = true;
+ this.notebookInspection.Name = "notebookInspection";
+ this.notebookInspection.CurrentPage = 1;
+ // Container child notebookInspection.Gtk.Notebook+NotebookChild
+ this.documentationScrolledWindow = new global::Gtk.ScrolledWindow ();
+ this.documentationScrolledWindow.Name = "documentationScrolledWindow";
+ this.documentationScrolledWindow.ShadowType = ((global::Gtk.ShadowType)(1));
+ // Container child documentationScrolledWindow.Gtk.Container+ContainerChild
+ global::Gtk.Viewport w13 = new global::Gtk.Viewport ();
+ w13.ShadowType = ((global::Gtk.ShadowType)(0));
+ // Container child GtkViewport.Gtk.Container+ContainerChild
+ this.documentationLabel = new global::Gtk.Label ();
+ this.documentationLabel.Name = "documentationLabel";
+ this.documentationLabel.Xpad = 6;
+ this.documentationLabel.Ypad = 6;
+ this.documentationLabel.Xalign = 0F;
+ this.documentationLabel.Yalign = 0F;
+ this.documentationLabel.UseMarkup = true;
+ this.documentationLabel.Selectable = true;
+ w13.Add (this.documentationLabel);
+ this.documentationScrolledWindow.Add (w13);
+ this.notebookInspection.Add (this.documentationScrolledWindow);
+ // Notebook tab
+ this.label4 = new global::Gtk.Label ();
+ this.label4.Name = "label4";
+ this.label4.LabelProp = global::Mono.Unix.Catalog.GetString ("summary");
+ this.notebookInspection.SetTabLabel (this.documentationScrolledWindow, this.label4);
+ this.label4.ShowAll ();
+ // Container child notebookInspection.Gtk.Notebook+NotebookChild
+ this.scrolledwindowEditor = new global::Gtk.ScrolledWindow ();
+ this.scrolledwindowEditor.CanFocus = true;
+ this.scrolledwindowEditor.Name = "scrolledwindowEditor";
+ this.scrolledwindowEditor.ShadowType = ((global::Gtk.ShadowType)(1));
+ this.notebookInspection.Add (this.scrolledwindowEditor);
+ global::Gtk.Notebook.NotebookChild w17 = ((global::Gtk.Notebook.NotebookChild)(this.notebookInspection [this.scrolledwindowEditor]));
+ w17.Position = 1;
+ // Notebook tab
+ this.label5 = new global::Gtk.Label ();
+ this.label5.Name = "label5";
+ this.label5.LabelProp = global::Mono.Unix.Catalog.GetString ("decompiler");
+ this.notebookInspection.SetTabLabel (this.scrolledwindowEditor, this.label5);
+ this.label5.ShowAll ();
+ this.notebook1.Add (this.notebookInspection);
+ // Container child notebook1.Gtk.Notebook+NotebookChild
+ this.searchWidget = new global::Gtk.VBox ();
+ this.searchWidget.Name = "searchWidget";
+ this.searchWidget.Spacing = 6;
+ // Container child searchWidget.Gtk.Box+BoxChild
+ this.scrolledwindow1 = new global::Gtk.ScrolledWindow ();
+ this.scrolledwindow1.CanFocus = true;
+ this.scrolledwindow1.Name = "scrolledwindow1";
+ this.scrolledwindow1.ShadowType = ((global::Gtk.ShadowType)(1));
+ // Container child scrolledwindow1.Gtk.Container+ContainerChild
+ this.searchTreeview = new global::Gtk.TreeView ();
+ this.searchTreeview.CanFocus = true;
+ this.searchTreeview.Name = "searchTreeview";
+ this.scrolledwindow1.Add (this.searchTreeview);
+ this.searchWidget.Add (this.scrolledwindow1);
+ global::Gtk.Box.BoxChild w20 = ((global::Gtk.Box.BoxChild)(this.searchWidget [this.scrolledwindow1]));
+ w20.Position = 0;
+ this.notebook1.Add (this.searchWidget);
+ global::Gtk.Notebook.NotebookChild w21 = ((global::Gtk.Notebook.NotebookChild)(this.notebook1 [this.searchWidget]));
+ w21.Position = 1;
+ this.vbox3.Add (this.notebook1);
+ global::Gtk.Box.BoxChild w22 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.notebook1]));
+ w22.Position = 0;
+ this.hpaned1.Add (this.vbox3);
+ this.vbox1.Add (this.hpaned1);
+ global::Gtk.Box.BoxChild w24 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.hpaned1]));
+ w24.Position = 1;
+ this.Add (this.vbox1);
+ if ((this.Child != null)) {
+ this.Child.ShowAll ();
+ }
+ w1.SetUiManager (UIManager);
+ this.label3.MnemonicWidget = this.comboboxVisibilty;
+ this.label1.MnemonicWidget = this.languageCombobox;
+ this.label2.MnemonicWidget = this.searchentry1;
+ this.Show ();
+ this.NavigateBackwardAction.Activated += new global::System.EventHandler (this.OnNavigateBackwardActionActivated);
+ this.NavigateForwardAction.Activated += new global::System.EventHandler (this.OnNavigateForwardActionActivated);
+ }
+ }
+}
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/generated.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/generated.cs
index fbd31747d9..8d3a3ae5d9 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/generated.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/gtk-gui/generated.cs
@@ -1,82 +1,81 @@
-
-// This file has been generated by the GUI designer. Do not modify.
+
+// This file has been generated by the GUI designer. Do not modify.
namespace Stetic
-{
+{
internal class Gui
- {
- private static bool initialized;
-
+ {
+ private static bool initialized;
+
internal static void Initialize (Gtk.Widget iconRenderer)
- {
- if ((Stetic.Gui.initialized == false)) {
- Stetic.Gui.initialized = true;
- }
- }
- }
-
+ {
+ if ((Stetic.Gui.initialized == false)) {
+ Stetic.Gui.initialized = true;
+ }
+ }
+ }
+
internal class BinContainer
- {
- private Gtk.Widget child;
- private Gtk.UIManager uimanager;
-
+ {
+ private Gtk.Widget child;
+ private Gtk.UIManager uimanager;
+
public static BinContainer Attach (Gtk.Bin bin)
- {
- BinContainer bc = new BinContainer ();
- bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested);
- bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated);
- bin.Added += new Gtk.AddedHandler (bc.OnAdded);
- return bc;
- }
-
+ {
+ BinContainer bc = new BinContainer ();
+ bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested);
+ bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated);
+ bin.Added += new Gtk.AddedHandler (bc.OnAdded);
+ return bc;
+ }
+
private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args)
- {
- if ((this.child != null)) {
- args.Requisition = this.child.SizeRequest ();
- }
- }
-
+ {
+ if ((this.child != null)) {
+ args.Requisition = this.child.SizeRequest ();
+ }
+ }
+
private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args)
- {
- if ((this.child != null)) {
- this.child.Allocation = args.Allocation;
- }
- }
-
+ {
+ if ((this.child != null)) {
+ this.child.Allocation = args.Allocation;
+ }
+ }
+
private void OnAdded (object sender, Gtk.AddedArgs args)
- {
- this.child = args.Widget;
- }
-
+ {
+ this.child = args.Widget;
+ }
+
public void SetUiManager (Gtk.UIManager uim)
- {
- this.uimanager = uim;
- this.child.Realized += new System.EventHandler (this.OnRealized);
- }
-
+ {
+ this.uimanager = uim;
+ this.child.Realized += new System.EventHandler (this.OnRealized);
+ }
+
private void OnRealized (object sender, System.EventArgs args)
- {
- if ((this.uimanager != null)) {
- Gtk.Widget w;
- w = this.child.Toplevel;
- if (((w != null)
- && typeof(Gtk.Window).IsInstanceOfType (w))) {
- ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup);
- this.uimanager = null;
- }
- }
- }
- }
-
+ {
+ if ((this.uimanager != null)) {
+ Gtk.Widget w;
+ w = this.child.Toplevel;
+ if (((w != null) && typeof(Gtk.Window).IsInstanceOfType (w))) {
+ ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup);
+ this.uimanager = null;
+ }
+ }
+ }
+ }
+
internal class ActionGroups
- {
+ {
public static Gtk.ActionGroup GetActionGroup (System.Type type)
- {
- return Stetic.ActionGroups.GetActionGroup (type.FullName);
- }
-
+ {
+ return Stetic.ActionGroups.GetActionGroup (type.FullName);
+ }
+
public static Gtk.ActionGroup GetActionGroup (string name)
- {
- return null;
- }
- }
-}
+ {
+ return null;
+ }
+ }
+}
diff --git a/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/Mono.Debugging.Soft.csproj b/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/Mono.Debugging.Soft.csproj
index ffbe8b705e..a203426380 100644
--- a/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/Mono.Debugging.Soft.csproj
+++ b/main/src/addins/MonoDevelop.Debugger.Soft/Mono.Debugging.Soft/Mono.Debugging.Soft.csproj
@@ -37,6 +37,7 @@
<ProjectReference Include="..\..\..\..\contrib\Mono.Debugger.Soft\Mono.Debugger.Soft.csproj">
<Project>{372E8E3E-29D5-4B4D-88A2-4711CD628C4E}</Project>
<Name>Mono.Debugger.Soft</Name>
+ <Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\..\..\..\contrib\Mono.Cecil\Mono.Cecil.csproj">
<Project>{3EC06433-F168-4C5B-A885-99CE4AB617E1}</Project>
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 41ae288c58..8d665c59c4 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
@@ -249,21 +249,83 @@ namespace Mono.Debugging.Soft
return new PropertyValueReference (ctx, props[i], target, null, values);
}
- bool IsCompilerGeneratedType (SoftEvaluationContext cx, TypeMirror tm)
- {
- return tm.Name.IndexOf (">c__AnonStorey") != -1 || tm.Name.IndexOf (">c__Iterator") != -1;
- }
-
- bool InCompilerGeneratedType (EvaluationContext ctx)
+ static bool InGeneratedClosureOrIteratorType (EvaluationContext ctx)
{
SoftEvaluationContext cx = (SoftEvaluationContext) ctx;
if (cx.Frame.Method.IsStatic)
return false;
TypeMirror tm = cx.Frame.Method.DeclaringType;
- return IsCompilerGeneratedType (cx, tm);
+ return IsGeneratedClosureOrIteratorType (tm);
+ }
+
+ static bool IsGeneratedClosureOrIteratorType (TypeMirror tm)
+ {
+ return IsGeneratedClosureType (tm) || IsGeneratedIteratorType (tm);
+ }
+
+ static bool IsGeneratedClosureType (TypeMirror tm)
+ {
+ return tm.Name.IndexOf (">c__") != -1;
+ }
+
+ static bool IsGeneratedIteratorType (TypeMirror tm)
+ {
+ return
+ //mcs
+ tm.Name.IndexOf (">c__Iterator") != -1
+ //csc is of form <NAME>d__NUMBER
+ || (tm.Name.StartsWith ("<") && tm.Name.IndexOf (">d__") > -1);
+ }
+
+ static bool IsHoistedThisReference (FieldInfoMirror field)
+ {
+ // mcs is "<>f__this"
+ // csc is "<>4__this"
+ return field.Name.StartsWith ("<>") && field.Name.EndsWith ("__this");
+ }
+
+ static bool IsClosureReferenceField (FieldInfoMirror field)
+ {
+ // mcs is "<>f__ref"
+ // csc is "CS$<>"
+ return field.Name.StartsWith ("CS$<>") || field.Name.StartsWith ("<>f__ref");
+ }
+
+ static bool IsClosureReferenceLocal (LocalVariable local)
+ {
+ if (local.Name == null)
+ return false;
+
+ return
+ // mcs
+ local.Name.Length == 0 || local.Name.StartsWith ("<") || local.Name.StartsWith ("$locvar")
+ // csc
+ || local.Name.StartsWith ("CS$<>");
+ }
+
+ static bool IsGeneratedTemporaryLocal (LocalVariable local)
+ {
+ return local.Name != null && local.Name.StartsWith ("CS$");
+ }
+
+ static string GetHoistedIteratorLocalName (FieldInfoMirror field)
+ {
+ //mcs captured args, of form <$>name
+ if (field.Name.StartsWith ("<$>")) {
+ return field.Name.Substring (3);
+ }
+
+ // csc, mcs locals of form <name>__0
+ if (field.Name.StartsWith ("<")) {
+ int i = field.Name.IndexOf ('>');
+ if (i > 1) {
+ return field.Name.Substring (1, i - 1);
+ }
+ }
+ return null;
}
- IEnumerable<ValueReference> GetCompilerGeneratedLocalVariables (SoftEvaluationContext cx, ValueReference vthis)
+ IEnumerable<ValueReference> GetHoistedLocalVariables (SoftEvaluationContext cx, ValueReference vthis)
{
if (vthis == null)
return new ValueReference [0];
@@ -273,49 +335,70 @@ namespace Mono.Debugging.Soft
return new ValueReference [0];
TypeMirror tm = (TypeMirror) vthis.Type;
- bool isIterator = tm.Name.IndexOf (">c__Iterator") != -1;
+ bool isIterator = IsGeneratedIteratorType (tm);
var list = new List<ValueReference> ();
TypeMirror type = (TypeMirror) vthis.Type;
foreach (FieldInfoMirror field in type.GetFields ()) {
- if (field.Name == "<>f__this")
+ if (IsHoistedThisReference (field))
continue;
- if (field.Name.StartsWith ("<>f__ref")) {
- list.AddRange (GetCompilerGeneratedLocalVariables (cx, new FieldValueReference (cx, field, val, type)));
+ if (IsClosureReferenceField (field)) {
+ list.AddRange (GetHoistedLocalVariables (cx, new FieldValueReference (cx, field, val, type)));
continue;
}
if (field.Name.StartsWith ("<")) {
if (isIterator) {
- int i = field.Name.IndexOf ('>');
- if (i > 1) {
- string vname = field.Name.Substring (1, i - 1);
- list.Add (new FieldValueReference (cx, field, val, type, vname, ObjectValueFlags.Variable));
+ var name = GetHoistedIteratorLocalName (field);
+ if (!string.IsNullOrEmpty (name)) {
+ list.Add (new FieldValueReference (cx, field, val, type, name, ObjectValueFlags.Variable));
}
}
- }
- else
+ } else if (!field.Name.Contains ("$")) {
list.Add (new FieldValueReference (cx, field, val, type, field.Name, ObjectValueFlags.Variable));
+ }
}
return list;
}
- ValueReference GetCompilerGeneratedThisReference (SoftEvaluationContext cx)
+ ValueReference GetHoistedThisReference (SoftEvaluationContext cx)
{
try {
Value val = cx.Frame.GetThis ();
TypeMirror type = (TypeMirror) GetValueType (cx, val);
- FieldInfoMirror field = type.GetField ("<>f__this");
- if (field != null)
- return new FieldValueReference (cx, field, val, type, "this", ObjectValueFlags.Literal);
+ return GetHoistedThisReference (cx, type, val);
} catch (AbsentInformationException) {
}
return null;
}
+ ValueReference GetHoistedThisReference (SoftEvaluationContext cx, TypeMirror type, object val)
+ {
+ foreach (FieldInfoMirror field in type.GetFields ()) {
+ if (IsHoistedThisReference (field)) {
+ return new FieldValueReference (cx, field, val, type, "this", ObjectValueFlags.Literal);
+ } else if (IsClosureReferenceField (field)) {
+ var fieldRef = new FieldValueReference (cx, field, val, type);
+ var thisRef = GetHoistedThisReference (cx, field.FieldType, fieldRef.Value);
+ if (thisRef != null)
+ return thisRef;
+ }
+ }
+ return null;
+ }
+
+ // if the local does not have a name, constructs one from the index
+ static string GetLocalName (SoftEvaluationContext cx, LocalVariable local)
+ {
+ var name = local.Name;
+ if (!string.IsNullOrEmpty (local.Name) || cx.SourceCodeAvailable)
+ return name;
+ return "loc" + local.Index;
+ }
+
protected override ValueReference OnGetLocalVariable (EvaluationContext ctx, string name)
{
SoftEvaluationContext cx = (SoftEvaluationContext) ctx;
- if (InCompilerGeneratedType (cx))
+ if (InGeneratedClosureOrIteratorType (cx))
return FindByName (OnGetLocalVariables (cx), v => v.Name, name, ctx.CaseSensitive);
try {
@@ -326,12 +409,13 @@ namespace Mono.Debugging.Soft
if (int.TryParse (name.Substring (3), out idx))
local = cx.Frame.Method.GetLocals ().FirstOrDefault (loc => loc.Index == idx);
}
- } else
- local = ctx.CaseSensitive ? cx.Frame.GetVisibleVariableByName (name) : FindByName (cx.Frame.GetVisibleVariables(), v => v.Name, name, false);
-
+ } else {
+ local = ctx.CaseSensitive
+ ? cx.Frame.GetVisibleVariableByName (name)
+ : FindByName (cx.Frame.GetVisibleVariables(), v => v.Name, name, false);
+ }
if (local != null) {
- string vname = !string.IsNullOrEmpty (local.Name) || cx.SourceCodeAvailable ? local.Name : "loc" + local.Index;
- return new VariableValueReference (ctx, vname, local);
+ return new VariableValueReference (ctx, GetLocalName (cx, local), local);
}
return FindByName (OnGetLocalVariables (ctx), v => v.Name, name, ctx.CaseSensitive);;
} catch (AbsentInformationException) {
@@ -342,9 +426,9 @@ namespace Mono.Debugging.Soft
protected override IEnumerable<ValueReference> OnGetLocalVariables (EvaluationContext ctx)
{
SoftEvaluationContext cx = (SoftEvaluationContext) ctx;
- if (InCompilerGeneratedType (cx)) {
+ if (InGeneratedClosureOrIteratorType (cx)) {
ValueReference vthis = GetThisReference (cx);
- return GetCompilerGeneratedLocalVariables (cx, vthis).Union (GetLocalVariables (cx));
+ return GetHoistedLocalVariables (cx, vthis).Union (GetLocalVariables (cx));
}
else
return GetLocalVariables (cx);
@@ -358,17 +442,15 @@ namespace Mono.Debugging.Soft
} catch (AbsentInformationException) {
yield break;
}
- foreach (LocalVariable var in locals) {
- if (!var.IsArg) {
- string name = !string.IsNullOrEmpty (var.Name) || cx.SourceCodeAvailable ? var.Name : "loc" + var.Index;
- if (name.Length == 0 || name.StartsWith ("<") || name.StartsWith ("$locvar")) {
- if (IsCompilerGeneratedType (cx, var.Type)) {
- foreach (var gv in GetCompilerGeneratedLocalVariables (cx, new VariableValueReference (cx, name, var)))
- yield return gv;
- }
+ foreach (LocalVariable local in locals) {
+ if (local.IsArg)
+ continue;
+ if (IsClosureReferenceLocal (local) && IsGeneratedClosureType (local.Type)) {
+ foreach (var gv in GetHoistedLocalVariables (cx, new VariableValueReference (cx, local.Name, local))) {
+ yield return gv;
}
- else
- yield return new VariableValueReference (cx, name, var);
+ } else if (!IsGeneratedTemporaryLocal (local)) {
+ yield return new VariableValueReference (cx, GetLocalName (cx, local), local);
}
}
}
@@ -508,8 +590,8 @@ namespace Mono.Debugging.Soft
protected override ValueReference OnGetThisReference (EvaluationContext ctx)
{
SoftEvaluationContext cx = (SoftEvaluationContext) ctx;
- if (InCompilerGeneratedType (cx))
- return GetCompilerGeneratedThisReference (cx);
+ if (InGeneratedClosureOrIteratorType (cx))
+ return GetHoistedThisReference (cx);
else
return GetThisReference (cx);
}
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 e67fbaee8f..abea838aaf 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
@@ -759,6 +759,18 @@ namespace Mono.Debugging.Soft
if (vm.Version.AtLeast (2, 9)) {
var sourceFileList = pending_bes.Where (b => b.FileName != null).Select (b => b.FileName).ToArray ();
if (sourceFileList.Length > 0) {
+ //HACK: explicitly try lowercased drivename on windows, since csc (when not hosted in VS) lowercases
+ //the drivename in the pdb files that get converted to mdbs as-is
+ //FIXME: we should really do a case-insensitive request on Win/Mac, when sdb supports that
+ if (IsWindows) {
+ int originalCount = sourceFileList.Length;
+ Array.Resize (ref sourceFileList, originalCount * 2);
+ for (int i = 0; i < originalCount; i++) {
+ string n = sourceFileList[i];
+ sourceFileList[originalCount + i] = char.ToLower (n[0]) + n.Substring (1);
+ }
+ }
+
if (typeLoadReq == null) {
typeLoadReq = vm.CreateTypeLoadRequest ();
}
@@ -766,6 +778,7 @@ namespace Mono.Debugging.Soft
typeLoadReq.SourceFileFilter = sourceFileList;
typeLoadReq.Enabled = true;
}
+
var typeNameList = pending_bes.Where (b => b.ExceptionName != null).Select (b => b.ExceptionName).ToArray ();
if (typeNameList.Length > 0) {
// Use a separate request since the filters are ANDed together
@@ -841,7 +854,17 @@ namespace Mono.Debugging.Soft
// just the ones which match a source file with an existing breakpoint.
//
if (vm.Version.AtLeast (2, 9)) {
- foreach (TypeMirror t in vm.GetTypesForSourceFile (filename, false))
+ //FIXME: do a case insensitive request on Win/Mac when sdb supports it (currently asserts NOTIMPLEMENTED)
+ var typesInFile = vm.GetTypesForSourceFile (filename, false);
+
+ //HACK: explicitly try lowercased drivename on windows, since csc (when not hosted in VS) lowercases
+ //the drivename in the pdb files that get converted to mdbs as-is
+ if (typesInFile.Count == 0 && IsWindows) {
+ string alternateCaseFilename = char.ToLower (filename[0]) + filename.Substring (1);
+ typesInFile = vm.GetTypesForSourceFile (alternateCaseFilename, false);
+ }
+
+ foreach (TypeMirror t in typesInFile)
ProcessType (t);
}
@@ -1718,11 +1741,17 @@ namespace Mono.Debugging.Soft
readonly static bool IsMac;
readonly static StringComparer PathComparer;
+ static bool IgnoreFilenameCase {
+ get {
+ return IsMac || IsWindows;
+ }
+ }
+
static SoftDebuggerSession ()
{
IsWindows = Path.DirectorySeparatorChar == '\\';
IsMac = !IsWindows && IsRunningOnMac();
- PathComparer = (IsWindows || IsMac)? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal;
+ PathComparer = (IgnoreFilenameCase)? StringComparer.OrdinalIgnoreCase : StringComparer.Ordinal;
}
//From Managed.Windows.Forms/XplatUI
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs
index 254a6bf35a..98b74f57f0 100644
--- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs
+++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Projects/ProjectFileDescriptor.cs
@@ -137,7 +137,7 @@ namespace MonoDevelop.DesignerSupport
public override object ConvertTo (System.ComponentModel.ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, System.Type destinationType)
{
- return MonoDevelop.Projects.BuildAction.Translate ((string)value);
+ return (string)value;
}
public override bool CanConvertFrom (ITypeDescriptorContext context, Type sourceType)
@@ -151,7 +151,7 @@ namespace MonoDevelop.DesignerSupport
if (!IsValid (context, value))
throw new FormatException ("Invalid build target name");
- return MonoDevelop.Projects.BuildAction.ReTranslate ((string)value);
+ return (string)value;
}
public override bool IsValid (ITypeDescriptorContext context, object value)
@@ -159,7 +159,7 @@ namespace MonoDevelop.DesignerSupport
if (!(value is string))
return false;
- string str = MonoDevelop.Projects.BuildAction.ReTranslate ((string) value);
+ string str = (string) value;
if (string.IsNullOrEmpty (str) || !char.IsLetter (str[0]))
return false;
diff --git a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs
index 6370bce99d..9ffde3cac0 100644
--- a/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs
+++ b/main/src/addins/MonoDevelop.MacDev/MonoDevelop.MacDev.PlistEditor/ImageChooser.cs
@@ -130,7 +130,7 @@ namespace MonoDevelop.MacDev.PlistEditor
} else if (!SupportedFormats.Contains (type.Name)) {
var formats = string.Join (", ", SupportedFormats.Select (f => "'" + f + "'"));
errorTitle = GettextCatalog.GetString ("Invalid image selected");
- errorMessage = GettextCatalog.GetString ("An image of type '{0}' has been selected but you must select an image of type '{1}'.", formats);
+ errorMessage = GettextCatalog.GetString ("An image of type '{0}' has been selected but you must select an image of type '{1}'.", type.Name, formats);
} else {
return true;
}
@@ -200,14 +200,14 @@ namespace MonoDevelop.MacDev.PlistEditor
cr.Translate (imgAlloc.X, imgAlloc.Y);
using (var layout = new Pango.Layout (PangoContext)) {
- layout.SetText (string.Format ("({0}x{1})", displaySize.Width, displaySize.Height));
-
- layout.Width = (int)((imgAlloc.Width - 16) * Pango.Scale.PangoScale);
+ layout.SetText (string.Format ("({0}x{1})", acceptedSize.Width, acceptedSize.Height));
+ layout.Width = (int) (imgAlloc.Width * Pango.Scale.PangoScale);
layout.Wrap = Pango.WrapMode.WordChar;
layout.Alignment = Pango.Alignment.Center;
+
int pw, ph;
layout.GetPixelSize (out pw, out ph);
- cr.MoveTo ((imgAlloc.Width - layout.Width / Pango.Scale.PangoScale) / 2, (imgAlloc.Height - ph) / 2);
+ cr.MoveTo (0, (imgAlloc.Height - ph) / 2);
cr.Color = new Cairo.Color (0.5, 0.5, 0.5);
cr.ShowLayout (layout);
}
diff --git a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectTypeInfo.cs b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectTypeInfo.cs
index dfa1d0db53..20e1809205 100755
--- a/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectTypeInfo.cs
+++ b/main/src/addins/MonoDevelop.MacDev/ObjCIntegration/NSObjectTypeInfo.cs
@@ -203,6 +203,10 @@ namespace MonoDevelop.MacDev.ObjCIntegration
sw.WriteLine ("@end");
}
+
+ var lastSourceUpdateTime = DefinedIn.Max (f => File.GetLastWriteTime (f));
+ File.SetLastWriteTime (hFilePath, lastSourceUpdateTime);
+ File.SetLastWriteTime (mFilePath, lastSourceUpdateTime);
}
static string AsId (string objcType)
diff --git a/main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs b/main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs
index 9a8b57066e..b297d2244a 100644
--- a/main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs
+++ b/main/src/addins/MonoDevelop.MacDev/XcodeInterfaceBuilderDisplayBinding.cs
@@ -69,8 +69,11 @@ namespace MonoDevelop.MacDev
public override void Launch (params string[] files)
{
- if (!AppleSdkSettings.IsXcode42)
- throw new UserException (string.Format ("XCode 4.2 is required to open file {0}", files [0]));
+ // Users without paid apple developer accounts do not have access to Xcode 4.2 so we
+ // cannot rely on people having it installed. As such, if we want to support MonoMac
+ // development on Snow Leopard we should just check that Xcode is installed.
+ if (!AppleSdkSettings.IsValid)
+ throw new UserException (string.Format ("XCode is required to open file {0}", files [0]));
project.XcodeProjectTracker.OpenDocument (files[0]);
}
diff --git a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeMonitor.cs b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeMonitor.cs
index 7df6f9ac5b..5c1c9878d7 100644
--- a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeMonitor.cs
+++ b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeMonitor.cs
@@ -366,7 +366,9 @@ end tell";
const string XCODE_OPEN_PROJECT_FILE =
@"tell application ""{0}""
activate
+ activate
open ""{1}""
+ activate
open ""{2}""
end tell";
diff --git a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs
index a1bc4b6e64..602211f824 100644
--- a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs
+++ b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedContent.cs
@@ -64,6 +64,7 @@ namespace MonoDevelop.MacDev.XcodeSyncing
if (File.Exists (target))
File.Delete (target);
File.Copy (source, target);
+ File.SetLastWriteTime (target, File.GetLastWriteTime (source));
context.UpdateSyncTime (targetRelative);
}
diff --git a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedType.cs b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedType.cs
index b22ee9782e..1d3453affa 100644
--- a/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedType.cs
+++ b/main/src/addins/MonoDevelop.MacDev/XcodeSyncing/XcodeSyncedType.cs
@@ -54,9 +54,8 @@ namespace MonoDevelop.MacDev.XcodeSyncing
//FIXME: types dep on other types on project, need better regeneration skipping
var h = Type.ObjCName + ".h";
var path = context.ProjectDir.Combine (h);
- if (File.Exists (path) && context.GetSyncTime (h) != Type.DefinedIn.Max (f => File.GetLastWriteTime (f)))
- return false;
- return true;
+
+ return !File.Exists (path) || context.GetSyncTime (h) != Type.DefinedIn.Max (f => File.GetLastWriteTime (f));
}
public override void SyncOut (XcodeSyncContext context)
diff --git a/main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight/MoonlightProject.cs b/main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight/MoonlightProject.cs
index 5880d7fe0c..e1834884fe 100644
--- a/main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight/MoonlightProject.cs
+++ b/main/src/addins/MonoDevelop.Moonlight/MonoDevelop.Moonlight/MoonlightProject.cs
@@ -420,6 +420,18 @@ namespace MonoDevelop.Moonlight
}
}
+ protected override IList<string> GetCommonBuildActions ()
+ {
+ return new string[] {
+ BuildAction.None,
+ BuildAction.Compile,
+ BuildAction.Content,
+ BuildAction.EmbeddedResource,
+ BuildAction.Resource,
+ BuildAction.ApplicationDefinition,
+ };
+ }
+
#endregion
}
}
diff --git a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoryCommands.cs b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoryCommands.cs
index bdeef02157..9ac1982068 100644
--- a/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoryCommands.cs
+++ b/main/src/addins/MonoDevelop.Refactoring/MonoDevelop.Refactoring/RefactoryCommands.cs
@@ -635,46 +635,46 @@ namespace MonoDevelop.Refactoring
}
}
-// public class ResolveNameOperation
-// {
-// ITypeResolveContext ctx;
-// Document doc;
-// string ns;
-// ResolveResult resolveResult;
-//
-// public ResolveNameOperation (ITypeResolveContext ctx, Document doc, ResolveResult resolveResult, string ns)
-// {
-// this.ctx = ctx;
-// this.doc = doc;
-// this.resolveResult = resolveResult;
-// this.ns = ns;
-// }
-//
-// public void AddImport ()
-// {
-// CodeRefactorer refactorer = IdeApp.Workspace.GetCodeRefactorer (IdeApp.ProjectOperations.CurrentSelectedSolution);
-//
-// if (resolveResult is NamespaceResolveResult) {
-// refactorer.AddLocalNamespaceImport (ctx, doc.FileName, ns, resolveResult.ResolvedExpression.Region.Start);
-// } else {
-// refactorer.AddGlobalNamespaceImport (ctx, doc.FileName, ns);
-// }
-// }
-//
-// public void ResolveName ()
-// {
-// int pos = doc.Editor.Document.LocationToOffset (resolveResult.ResolvedExpression.Region.BeginLine, resolveResult.ResolvedExpression.Region.BeginColumn);
-// if (pos < 0) {
-// LoggingService.LogError ("Invalie expression position: " + resolveResult.ResolvedExpression);
-// return;
-// }
-// doc.Editor.Insert (pos, ns + ".");
-// if (doc.Editor.Caret.Offset >= pos)
-// doc.Editor.Caret.Offset += (ns + ".").Length;
-// doc.Editor.Document.CommitLineUpdate (resolveResult.ResolvedExpression.Region.BeginLine);
-// }
-// }
-
+/* public class ResolveNameOperation
+ {
+ ProjectDom ctx;
+ Document doc;
+ string ns;
+ ResolveResult resolveResult;
+
+ public ResolveNameOperation (ProjectDom ctx, Document doc, ResolveResult resolveResult, string ns)
+ {
+ this.ctx = ctx;
+ this.doc = doc;
+ this.resolveResult = resolveResult;
+ this.ns = ns;
+ }
+
+ public void AddImport ()
+ {
+ CodeRefactorer refactorer = IdeApp.Workspace.GetCodeRefactorer (IdeApp.ProjectOperations.CurrentSelectedSolution);
+
+ if (resolveResult is NamespaceResolveResult) {
+ refactorer.AddLocalNamespaceImport (ctx, doc.FileName, ns, resolveResult.ResolvedExpression.Region.Start);
+ } else {
+ refactorer.AddGlobalNamespaceImport (ctx, doc.FileName, ns);
+ }
+ }
+
+ public void ResolveName ()
+ {
+ int pos = doc.Editor.Document.LocationToOffset (resolveResult.ResolvedExpression.Region.Start.Line, resolveResult.ResolvedExpression.Region.Start.Column);
+ if (pos < 0) {
+ LoggingService.LogError ("Invalid expression position: " + resolveResult.ResolvedExpression);
+ return;
+ }
+ doc.Editor.Insert (pos, ns + ".");
+ if (doc.Editor.Caret.Offset >= pos)
+ doc.Editor.Caret.Offset += (ns + ".").Length;
+ doc.Editor.Document.CommitLineUpdate (resolveResult.ResolvedExpression.Region.Start.Line);
+ }
+ }
+*/
bool IsModifiable (object member)
{
IType t = member as IType;
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs
index f5bd3bbfbb..fba0b01fbc 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/CompileErrorTooltipProvider.cs
@@ -43,8 +43,15 @@ namespace MonoDevelop.SourceEditor
public TooltipItem GetItem (Mono.TextEditor.TextEditor editor, int offset)
{
- ExtensibleTextEditor ed = (ExtensibleTextEditor) editor;
- return new TooltipItem (ed.GetErrorInformationAt (offset), editor.Document.GetLineByOffset (offset));
+ var ed = editor as ExtensibleTextEditor;
+ if (ed == null)
+ return null;
+
+ string errorInformation = ed.GetErrorInformationAt (offset);
+ if (string.IsNullOrEmpty (errorInformation))
+ return null;
+
+ return new TooltipItem (errorInformation, editor.Document.GetLineByOffset (offset));
}
public Gtk.Window CreateTooltipWindow (Mono.TextEditor.TextEditor editor, int offset, Gdk.ModifierType modifierState, TooltipItem item)
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs
index b868515cb5..b1d2db6e7a 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/MonoDevelop.SourceEditor/DebugValueWindow.cs
@@ -95,7 +95,7 @@ namespace MonoDevelop.SourceEditor
tree.RootPinAlwaysVisible = true;
tree.PinnedWatch = watch;
DocumentLocation location = editor.Document.OffsetToLocation (offset);
- tree.PinnedWatchLine = location.Line + 1;
+ tree.PinnedWatchLine = location.Line;
tree.PinnedWatchFile = ((ExtensibleTextEditor)editor).View.ContentName;
tree.AddValue (value);
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.cs b/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.cs
index 1569005d25..59ea5fdea3 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.cs
@@ -1,225 +1,225 @@
-
-// This file has been generated by the GUI designer. Do not modify.
-namespace MonoDevelop.SourceEditor.OptionPanels
-{
- public partial class MarkerPanel
- {
- private global::Gtk.VBox vbox1;
- private global::Gtk.Label GtkLabel9;
- private global::Gtk.Alignment alignment1;
- private global::Gtk.VBox vbox3;
- private global::Gtk.CheckButton showLineNumbersCheckbutton;
- private global::Gtk.CheckButton underlineErrorsCheckbutton;
- private global::Gtk.CheckButton highlightMatchingBracketCheckbutton;
- private global::Gtk.CheckButton highlightCurrentLineCheckbutton;
- private global::Gtk.CheckButton showRulerCheckbutton;
- private global::Gtk.CheckButton enableAnimationCheckbutton1;
- private global::Gtk.CheckButton enableHighlightUsagesCheckbutton;
- private global::Gtk.Label GtkLabel10;
- private global::Gtk.Alignment GtkAlignment;
- private global::Gtk.VBox vbox2;
- private global::Gtk.CheckButton showInvLinesCheckbutton;
- private global::Gtk.CheckButton showSpacesCheckbutton;
- private global::Gtk.CheckButton showTabsCheckbutton;
- private global::Gtk.CheckButton showEolCheckbutton;
-
- protected virtual void Build ()
- {
- global::Stetic.Gui.Initialize (this);
- // Widget MonoDevelop.SourceEditor.OptionPanels.MarkerPanel
- global::Stetic.BinContainer.Attach (this);
- this.Name = "MonoDevelop.SourceEditor.OptionPanels.MarkerPanel";
- // Container child MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.Gtk.Container+ContainerChild
- this.vbox1 = new global::Gtk.VBox ();
- this.vbox1.Name = "vbox1";
- this.vbox1.Spacing = 6;
- // Container child vbox1.Gtk.Box+BoxChild
- this.GtkLabel9 = new global::Gtk.Label ();
- this.GtkLabel9.Name = "GtkLabel9";
- this.GtkLabel9.Xalign = 0F;
- this.GtkLabel9.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>General</b>");
- this.GtkLabel9.UseMarkup = true;
- this.vbox1.Add (this.GtkLabel9);
- global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.GtkLabel9]));
- 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.Name = "alignment1";
- this.alignment1.LeftPadding = ((uint)(12));
- // Container child alignment1.Gtk.Container+ContainerChild
- this.vbox3 = new global::Gtk.VBox ();
- this.vbox3.Name = "vbox3";
- this.vbox3.Spacing = 6;
- // Container child vbox3.Gtk.Box+BoxChild
- this.showLineNumbersCheckbutton = new global::Gtk.CheckButton ();
- this.showLineNumbersCheckbutton.CanFocus = true;
- this.showLineNumbersCheckbutton.Name = "showLineNumbersCheckbutton";
- this.showLineNumbersCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Show line numbers");
- this.showLineNumbersCheckbutton.DrawIndicator = true;
- this.showLineNumbersCheckbutton.UseUnderline = true;
- this.vbox3.Add (this.showLineNumbersCheckbutton);
- global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.showLineNumbersCheckbutton]));
- w2.Position = 0;
- w2.Expand = false;
- w2.Fill = false;
- // Container child vbox3.Gtk.Box+BoxChild
- this.underlineErrorsCheckbutton = new global::Gtk.CheckButton ();
- this.underlineErrorsCheckbutton.CanFocus = true;
- this.underlineErrorsCheckbutton.Name = "underlineErrorsCheckbutton";
- this.underlineErrorsCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Underline errors");
- this.underlineErrorsCheckbutton.DrawIndicator = true;
- this.underlineErrorsCheckbutton.UseUnderline = true;
- this.vbox3.Add (this.underlineErrorsCheckbutton);
- global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.underlineErrorsCheckbutton]));
- w3.Position = 1;
- w3.Expand = false;
- w3.Fill = false;
- // Container child vbox3.Gtk.Box+BoxChild
- this.highlightMatchingBracketCheckbutton = new global::Gtk.CheckButton ();
- this.highlightMatchingBracketCheckbutton.CanFocus = true;
- this.highlightMatchingBracketCheckbutton.Name = "highlightMatchingBracketCheckbutton";
- this.highlightMatchingBracketCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Highlight matching bracket");
- this.highlightMatchingBracketCheckbutton.DrawIndicator = true;
- this.highlightMatchingBracketCheckbutton.UseUnderline = true;
- this.vbox3.Add (this.highlightMatchingBracketCheckbutton);
- global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.highlightMatchingBracketCheckbutton]));
- w4.Position = 2;
- w4.Expand = false;
- w4.Fill = false;
- // Container child vbox3.Gtk.Box+BoxChild
- this.highlightCurrentLineCheckbutton = new global::Gtk.CheckButton ();
- this.highlightCurrentLineCheckbutton.CanFocus = true;
- this.highlightCurrentLineCheckbutton.Name = "highlightCurrentLineCheckbutton";
- this.highlightCurrentLineCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Highlight _current line");
- this.highlightCurrentLineCheckbutton.DrawIndicator = true;
- this.highlightCurrentLineCheckbutton.UseUnderline = true;
- this.vbox3.Add (this.highlightCurrentLineCheckbutton);
- global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.highlightCurrentLineCheckbutton]));
- w5.Position = 3;
- w5.Expand = false;
- w5.Fill = false;
- // Container child vbox3.Gtk.Box+BoxChild
- this.showRulerCheckbutton = new global::Gtk.CheckButton ();
- this.showRulerCheckbutton.CanFocus = true;
- this.showRulerCheckbutton.Name = "showRulerCheckbutton";
- this.showRulerCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Show _column ruler");
- this.showRulerCheckbutton.DrawIndicator = true;
- this.showRulerCheckbutton.UseUnderline = true;
- this.vbox3.Add (this.showRulerCheckbutton);
- global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.showRulerCheckbutton]));
- w6.Position = 4;
- w6.Expand = false;
- w6.Fill = false;
- // Container child vbox3.Gtk.Box+BoxChild
- this.enableAnimationCheckbutton1 = new global::Gtk.CheckButton ();
- this.enableAnimationCheckbutton1.CanFocus = true;
- this.enableAnimationCheckbutton1.Name = "enableAnimationCheckbutton1";
- this.enableAnimationCheckbutton1.Label = global::Mono.Unix.Catalog.GetString ("_Animations enabled");
- this.enableAnimationCheckbutton1.DrawIndicator = true;
- this.enableAnimationCheckbutton1.UseUnderline = true;
- this.vbox3.Add (this.enableAnimationCheckbutton1);
- global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.enableAnimationCheckbutton1]));
- w7.Position = 5;
- w7.Expand = false;
- w7.Fill = false;
- // Container child vbox3.Gtk.Box+BoxChild
- this.enableHighlightUsagesCheckbutton = new global::Gtk.CheckButton ();
- this.enableHighlightUsagesCheckbutton.CanFocus = true;
- this.enableHighlightUsagesCheckbutton.Name = "enableHighlightUsagesCheckbutton";
- this.enableHighlightUsagesCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Enable highlighting of usages");
- this.enableHighlightUsagesCheckbutton.DrawIndicator = true;
- this.enableHighlightUsagesCheckbutton.UseUnderline = true;
- this.vbox3.Add (this.enableHighlightUsagesCheckbutton);
- global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.enableHighlightUsagesCheckbutton]));
- w8.Position = 6;
- w8.Expand = false;
- w8.Fill = false;
- this.alignment1.Add (this.vbox3);
- this.vbox1.Add (this.alignment1);
- global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.alignment1]));
- w10.Position = 1;
- w10.Expand = false;
- w10.Fill = false;
- // Container child vbox1.Gtk.Box+BoxChild
- this.GtkLabel10 = new global::Gtk.Label ();
- this.GtkLabel10.Name = "GtkLabel10";
- this.GtkLabel10.Xalign = 0F;
- this.GtkLabel10.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Whitespace Markers</b>");
- this.GtkLabel10.UseMarkup = true;
- this.vbox1.Add (this.GtkLabel10);
- global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.GtkLabel10]));
- w11.Position = 2;
- w11.Expand = false;
- w11.Fill = false;
- // Container child vbox1.Gtk.Box+BoxChild
- this.GtkAlignment = new global::Gtk.Alignment (0F, 0F, 1F, 1F);
- this.GtkAlignment.Name = "GtkAlignment";
- this.GtkAlignment.LeftPadding = ((uint)(12));
- // Container child GtkAlignment.Gtk.Container+ContainerChild
- this.vbox2 = new global::Gtk.VBox ();
- this.vbox2.Name = "vbox2";
- this.vbox2.Spacing = 6;
- // Container child vbox2.Gtk.Box+BoxChild
- this.showInvLinesCheckbutton = new global::Gtk.CheckButton ();
- this.showInvLinesCheckbutton.CanFocus = true;
- this.showInvLinesCheckbutton.Name = "showInvLinesCheckbutton";
- this.showInvLinesCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Invalid lines");
- this.showInvLinesCheckbutton.DrawIndicator = true;
- this.showInvLinesCheckbutton.UseUnderline = true;
- this.vbox2.Add (this.showInvLinesCheckbutton);
- global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.showInvLinesCheckbutton]));
- w12.Position = 0;
- w12.Expand = false;
- w12.Fill = false;
- // Container child vbox2.Gtk.Box+BoxChild
- this.showSpacesCheckbutton = new global::Gtk.CheckButton ();
- this.showSpacesCheckbutton.CanFocus = true;
- this.showSpacesCheckbutton.Name = "showSpacesCheckbutton";
- this.showSpacesCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("S_paces");
- this.showSpacesCheckbutton.DrawIndicator = true;
- this.showSpacesCheckbutton.UseUnderline = true;
- this.vbox2.Add (this.showSpacesCheckbutton);
- global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.showSpacesCheckbutton]));
- w13.Position = 1;
- w13.Expand = false;
- w13.Fill = false;
- // Container child vbox2.Gtk.Box+BoxChild
- this.showTabsCheckbutton = new global::Gtk.CheckButton ();
- this.showTabsCheckbutton.CanFocus = true;
- this.showTabsCheckbutton.Name = "showTabsCheckbutton";
- this.showTabsCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Tabs");
- this.showTabsCheckbutton.DrawIndicator = true;
- this.showTabsCheckbutton.UseUnderline = true;
- this.vbox2.Add (this.showTabsCheckbutton);
- global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.showTabsCheckbutton]));
- w14.Position = 2;
- w14.Expand = false;
- w14.Fill = false;
- // Container child vbox2.Gtk.Box+BoxChild
- this.showEolCheckbutton = new global::Gtk.CheckButton ();
- this.showEolCheckbutton.CanFocus = true;
- this.showEolCheckbutton.Name = "showEolCheckbutton";
- this.showEolCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_End of line");
- this.showEolCheckbutton.DrawIndicator = true;
- this.showEolCheckbutton.UseUnderline = true;
- this.vbox2.Add (this.showEolCheckbutton);
- global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.showEolCheckbutton]));
- w15.Position = 3;
- w15.Expand = false;
- w15.Fill = false;
- this.GtkAlignment.Add (this.vbox2);
- this.vbox1.Add (this.GtkAlignment);
- global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.GtkAlignment]));
- w17.Position = 3;
- w17.Expand = false;
- w17.Fill = false;
- this.Add (this.vbox1);
- if ((this.Child != null)) {
- this.Child.ShowAll ();
- }
- this.Show ();
- }
- }
-}
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace MonoDevelop.SourceEditor.OptionPanels
+{
+ public partial class MarkerPanel
+ {
+ private global::Gtk.VBox vbox1;
+ private global::Gtk.Label GtkLabel9;
+ private global::Gtk.Alignment alignment1;
+ private global::Gtk.VBox vbox3;
+ private global::Gtk.CheckButton showLineNumbersCheckbutton;
+ private global::Gtk.CheckButton underlineErrorsCheckbutton;
+ private global::Gtk.CheckButton highlightMatchingBracketCheckbutton;
+ private global::Gtk.CheckButton highlightCurrentLineCheckbutton;
+ private global::Gtk.CheckButton showRulerCheckbutton;
+ private global::Gtk.CheckButton enableAnimationCheckbutton1;
+ private global::Gtk.CheckButton enableHighlightUsagesCheckbutton;
+ private global::Gtk.Label GtkLabel10;
+ private global::Gtk.Alignment GtkAlignment;
+ private global::Gtk.VBox vbox2;
+ private global::Gtk.CheckButton showInvLinesCheckbutton;
+ private global::Gtk.CheckButton showSpacesCheckbutton;
+ private global::Gtk.CheckButton showTabsCheckbutton;
+ private global::Gtk.CheckButton showEolCheckbutton;
+
+ protected virtual void Build ()
+ {
+ global::Stetic.Gui.Initialize (this);
+ // Widget MonoDevelop.SourceEditor.OptionPanels.MarkerPanel
+ global::Stetic.BinContainer.Attach (this);
+ this.Name = "MonoDevelop.SourceEditor.OptionPanels.MarkerPanel";
+ // Container child MonoDevelop.SourceEditor.OptionPanels.MarkerPanel.Gtk.Container+ContainerChild
+ this.vbox1 = new global::Gtk.VBox ();
+ this.vbox1.Name = "vbox1";
+ this.vbox1.Spacing = 6;
+ // Container child vbox1.Gtk.Box+BoxChild
+ this.GtkLabel9 = new global::Gtk.Label ();
+ this.GtkLabel9.Name = "GtkLabel9";
+ this.GtkLabel9.Xalign = 0F;
+ this.GtkLabel9.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>General</b>");
+ this.GtkLabel9.UseMarkup = true;
+ this.vbox1.Add (this.GtkLabel9);
+ global::Gtk.Box.BoxChild w1 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.GtkLabel9]));
+ 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.Name = "alignment1";
+ this.alignment1.LeftPadding = ((uint)(12));
+ // Container child alignment1.Gtk.Container+ContainerChild
+ this.vbox3 = new global::Gtk.VBox ();
+ this.vbox3.Name = "vbox3";
+ this.vbox3.Spacing = 6;
+ // Container child vbox3.Gtk.Box+BoxChild
+ this.showLineNumbersCheckbutton = new global::Gtk.CheckButton ();
+ this.showLineNumbersCheckbutton.CanFocus = true;
+ this.showLineNumbersCheckbutton.Name = "showLineNumbersCheckbutton";
+ this.showLineNumbersCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Show line numbers");
+ this.showLineNumbersCheckbutton.DrawIndicator = true;
+ this.showLineNumbersCheckbutton.UseUnderline = true;
+ this.vbox3.Add (this.showLineNumbersCheckbutton);
+ global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.showLineNumbersCheckbutton]));
+ w2.Position = 0;
+ w2.Expand = false;
+ w2.Fill = false;
+ // Container child vbox3.Gtk.Box+BoxChild
+ this.underlineErrorsCheckbutton = new global::Gtk.CheckButton ();
+ this.underlineErrorsCheckbutton.CanFocus = true;
+ this.underlineErrorsCheckbutton.Name = "underlineErrorsCheckbutton";
+ this.underlineErrorsCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Underline errors");
+ this.underlineErrorsCheckbutton.DrawIndicator = true;
+ this.underlineErrorsCheckbutton.UseUnderline = true;
+ this.vbox3.Add (this.underlineErrorsCheckbutton);
+ global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.underlineErrorsCheckbutton]));
+ w3.Position = 1;
+ w3.Expand = false;
+ w3.Fill = false;
+ // Container child vbox3.Gtk.Box+BoxChild
+ this.highlightMatchingBracketCheckbutton = new global::Gtk.CheckButton ();
+ this.highlightMatchingBracketCheckbutton.CanFocus = true;
+ this.highlightMatchingBracketCheckbutton.Name = "highlightMatchingBracketCheckbutton";
+ this.highlightMatchingBracketCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Highlight matching bracket");
+ this.highlightMatchingBracketCheckbutton.DrawIndicator = true;
+ this.highlightMatchingBracketCheckbutton.UseUnderline = true;
+ this.vbox3.Add (this.highlightMatchingBracketCheckbutton);
+ global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.highlightMatchingBracketCheckbutton]));
+ w4.Position = 2;
+ w4.Expand = false;
+ w4.Fill = false;
+ // Container child vbox3.Gtk.Box+BoxChild
+ this.highlightCurrentLineCheckbutton = new global::Gtk.CheckButton ();
+ this.highlightCurrentLineCheckbutton.CanFocus = true;
+ this.highlightCurrentLineCheckbutton.Name = "highlightCurrentLineCheckbutton";
+ this.highlightCurrentLineCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Highlight _current line");
+ this.highlightCurrentLineCheckbutton.DrawIndicator = true;
+ this.highlightCurrentLineCheckbutton.UseUnderline = true;
+ this.vbox3.Add (this.highlightCurrentLineCheckbutton);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.highlightCurrentLineCheckbutton]));
+ w5.Position = 3;
+ w5.Expand = false;
+ w5.Fill = false;
+ // Container child vbox3.Gtk.Box+BoxChild
+ this.showRulerCheckbutton = new global::Gtk.CheckButton ();
+ this.showRulerCheckbutton.CanFocus = true;
+ this.showRulerCheckbutton.Name = "showRulerCheckbutton";
+ this.showRulerCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("Show _column ruler");
+ this.showRulerCheckbutton.DrawIndicator = true;
+ this.showRulerCheckbutton.UseUnderline = true;
+ this.vbox3.Add (this.showRulerCheckbutton);
+ global::Gtk.Box.BoxChild w6 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.showRulerCheckbutton]));
+ w6.Position = 4;
+ w6.Expand = false;
+ w6.Fill = false;
+ // Container child vbox3.Gtk.Box+BoxChild
+ this.enableAnimationCheckbutton1 = new global::Gtk.CheckButton ();
+ this.enableAnimationCheckbutton1.CanFocus = true;
+ this.enableAnimationCheckbutton1.Name = "enableAnimationCheckbutton1";
+ this.enableAnimationCheckbutton1.Label = global::Mono.Unix.Catalog.GetString ("_Animations enabled");
+ this.enableAnimationCheckbutton1.DrawIndicator = true;
+ this.enableAnimationCheckbutton1.UseUnderline = true;
+ this.vbox3.Add (this.enableAnimationCheckbutton1);
+ global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.enableAnimationCheckbutton1]));
+ w7.Position = 5;
+ w7.Expand = false;
+ w7.Fill = false;
+ // Container child vbox3.Gtk.Box+BoxChild
+ this.enableHighlightUsagesCheckbutton = new global::Gtk.CheckButton ();
+ this.enableHighlightUsagesCheckbutton.CanFocus = true;
+ this.enableHighlightUsagesCheckbutton.Name = "enableHighlightUsagesCheckbutton";
+ this.enableHighlightUsagesCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Enable highlighting of usages");
+ this.enableHighlightUsagesCheckbutton.DrawIndicator = true;
+ this.enableHighlightUsagesCheckbutton.UseUnderline = true;
+ this.vbox3.Add (this.enableHighlightUsagesCheckbutton);
+ global::Gtk.Box.BoxChild w8 = ((global::Gtk.Box.BoxChild)(this.vbox3 [this.enableHighlightUsagesCheckbutton]));
+ w8.Position = 6;
+ w8.Expand = false;
+ w8.Fill = false;
+ this.alignment1.Add (this.vbox3);
+ this.vbox1.Add (this.alignment1);
+ global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.alignment1]));
+ w10.Position = 1;
+ w10.Expand = false;
+ w10.Fill = false;
+ // Container child vbox1.Gtk.Box+BoxChild
+ this.GtkLabel10 = new global::Gtk.Label ();
+ this.GtkLabel10.Name = "GtkLabel10";
+ this.GtkLabel10.Xalign = 0F;
+ this.GtkLabel10.LabelProp = global::Mono.Unix.Catalog.GetString ("<b>Whitespace Markers</b>");
+ this.GtkLabel10.UseMarkup = true;
+ this.vbox1.Add (this.GtkLabel10);
+ global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.GtkLabel10]));
+ w11.Position = 2;
+ w11.Expand = false;
+ w11.Fill = false;
+ // Container child vbox1.Gtk.Box+BoxChild
+ this.GtkAlignment = new global::Gtk.Alignment (0F, 0F, 1F, 1F);
+ this.GtkAlignment.Name = "GtkAlignment";
+ this.GtkAlignment.LeftPadding = ((uint)(12));
+ // Container child GtkAlignment.Gtk.Container+ContainerChild
+ this.vbox2 = new global::Gtk.VBox ();
+ this.vbox2.Name = "vbox2";
+ this.vbox2.Spacing = 6;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.showInvLinesCheckbutton = new global::Gtk.CheckButton ();
+ this.showInvLinesCheckbutton.CanFocus = true;
+ this.showInvLinesCheckbutton.Name = "showInvLinesCheckbutton";
+ this.showInvLinesCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Invalid lines");
+ this.showInvLinesCheckbutton.DrawIndicator = true;
+ this.showInvLinesCheckbutton.UseUnderline = true;
+ this.vbox2.Add (this.showInvLinesCheckbutton);
+ global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.showInvLinesCheckbutton]));
+ w12.Position = 0;
+ w12.Expand = false;
+ w12.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.showSpacesCheckbutton = new global::Gtk.CheckButton ();
+ this.showSpacesCheckbutton.CanFocus = true;
+ this.showSpacesCheckbutton.Name = "showSpacesCheckbutton";
+ this.showSpacesCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("S_paces");
+ this.showSpacesCheckbutton.DrawIndicator = true;
+ this.showSpacesCheckbutton.UseUnderline = true;
+ this.vbox2.Add (this.showSpacesCheckbutton);
+ global::Gtk.Box.BoxChild w13 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.showSpacesCheckbutton]));
+ w13.Position = 1;
+ w13.Expand = false;
+ w13.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.showTabsCheckbutton = new global::Gtk.CheckButton ();
+ this.showTabsCheckbutton.CanFocus = true;
+ this.showTabsCheckbutton.Name = "showTabsCheckbutton";
+ this.showTabsCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_Tabs");
+ this.showTabsCheckbutton.DrawIndicator = true;
+ this.showTabsCheckbutton.UseUnderline = true;
+ this.vbox2.Add (this.showTabsCheckbutton);
+ global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.showTabsCheckbutton]));
+ w14.Position = 2;
+ w14.Expand = false;
+ w14.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
+ this.showEolCheckbutton = new global::Gtk.CheckButton ();
+ this.showEolCheckbutton.CanFocus = true;
+ this.showEolCheckbutton.Name = "showEolCheckbutton";
+ this.showEolCheckbutton.Label = global::Mono.Unix.Catalog.GetString ("_End of line");
+ this.showEolCheckbutton.DrawIndicator = true;
+ this.showEolCheckbutton.UseUnderline = true;
+ this.vbox2.Add (this.showEolCheckbutton);
+ global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.showEolCheckbutton]));
+ w15.Position = 3;
+ w15.Expand = false;
+ w15.Fill = false;
+ this.GtkAlignment.Add (this.vbox2);
+ this.vbox1.Add (this.GtkAlignment);
+ global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(this.vbox1 [this.GtkAlignment]));
+ w17.Position = 3;
+ w17.Expand = false;
+ w17.Fill = false;
+ this.Add (this.vbox1);
+ if ((this.Child != null)) {
+ this.Child.ShowAll ();
+ }
+ this.Show ();
+ }
+ }
+}
diff --git a/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/generated.cs b/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/generated.cs
index b965530299..d23ef38e01 100644
--- a/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/generated.cs
+++ b/main/src/addins/MonoDevelop.SourceEditor2/gtk-gui/generated.cs
@@ -1,120 +1,115 @@
-
-// This file has been generated by the GUI designer. Do not modify.
-namespace Stetic
-{
- internal class Gui
- {
- private static bool initialized;
-
- internal static void Initialize (Gtk.Widget iconRenderer)
- {
- if ((Stetic.Gui.initialized == false)) {
- Stetic.Gui.initialized = true;
- }
- }
- }
-
- internal class BinContainer
- {
- private Gtk.Widget child;
- private Gtk.UIManager uimanager;
-
- public static BinContainer Attach (Gtk.Bin bin)
- {
- BinContainer bc = new BinContainer ();
- bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested);
- bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated);
- bin.Added += new Gtk.AddedHandler (bc.OnAdded);
- return bc;
- }
-
- private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args)
- {
- if ((this.child != null)) {
- args.Requisition = this.child.SizeRequest ();
- }
- }
-
- private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args)
- {
- if ((this.child != null)) {
- this.child.Allocation = args.Allocation;
- }
- }
-
- private void OnAdded (object sender, Gtk.AddedArgs args)
- {
- this.child = args.Widget;
- }
-
- public void SetUiManager (Gtk.UIManager uim)
- {
- this.uimanager = uim;
- this.child.Realized += new System.EventHandler (this.OnRealized);
- }
-
- private void OnRealized (object sender, System.EventArgs args)
- {
- if ((this.uimanager != null)) {
- Gtk.Widget w;
- w = this.child.Toplevel;
- if (((w != null)
- && typeof(Gtk.Window).IsInstanceOfType (w))) {
- ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup);
- this.uimanager = null;
- }
- }
- }
- }
-
- internal class IconLoader
- {
- public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size)
- {
- Gdk.Pixbuf res = widget.RenderIcon (name, size, null);
- if ((res != null)) {
- return res;
- } else {
- int sz;
- int sy;
- global::Gtk.Icon.SizeLookup (size, out sz, out sy);
- try {
- return Gtk.IconTheme.Default.LoadIcon (name, sz, 0);
- } catch (System.Exception) {
- if ((name != "gtk-missing-image")) {
- return Stetic.IconLoader.LoadIcon (widget, "gtk-missing-image", size);
- } else {
- Gdk.Pixmap pmap = new Gdk.Pixmap (Gdk.Screen.Default.RootWindow, sz, sz);
- Gdk.GC gc = new Gdk.GC (pmap);
- gc.RgbFgColor = new Gdk.Color (255, 255, 255);
- pmap.DrawRectangle (gc, true, 0, 0, sz, sz);
- gc.RgbFgColor = new Gdk.Color (0, 0, 0);
- pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1));
- gc.SetLineAttributes (3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round);
- gc.RgbFgColor = new Gdk.Color (255, 0, 0);
- pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1)
- - (sz / 4)), ((sz - 1)
- - (sz / 4)));
- pmap.DrawLine (gc, ((sz - 1)
- - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1)
- - (sz / 4)));
- return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz);
- }
- }
- }
- }
- }
-
- internal class ActionGroups
- {
- public static Gtk.ActionGroup GetActionGroup (System.Type type)
- {
- return Stetic.ActionGroups.GetActionGroup (type.FullName);
- }
-
- public static Gtk.ActionGroup GetActionGroup (string name)
- {
- return null;
- }
- }
-}
+
+// This file has been generated by the GUI designer. Do not modify.
+namespace Stetic
+{
+ internal class Gui
+ {
+ private static bool initialized;
+
+ internal static void Initialize (Gtk.Widget iconRenderer)
+ {
+ if ((Stetic.Gui.initialized == false)) {
+ Stetic.Gui.initialized = true;
+ }
+ }
+ }
+
+ internal class BinContainer
+ {
+ private Gtk.Widget child;
+ private Gtk.UIManager uimanager;
+
+ public static BinContainer Attach (Gtk.Bin bin)
+ {
+ BinContainer bc = new BinContainer ();
+ bin.SizeRequested += new Gtk.SizeRequestedHandler (bc.OnSizeRequested);
+ bin.SizeAllocated += new Gtk.SizeAllocatedHandler (bc.OnSizeAllocated);
+ bin.Added += new Gtk.AddedHandler (bc.OnAdded);
+ return bc;
+ }
+
+ private void OnSizeRequested (object sender, Gtk.SizeRequestedArgs args)
+ {
+ if ((this.child != null)) {
+ args.Requisition = this.child.SizeRequest ();
+ }
+ }
+
+ private void OnSizeAllocated (object sender, Gtk.SizeAllocatedArgs args)
+ {
+ if ((this.child != null)) {
+ this.child.Allocation = args.Allocation;
+ }
+ }
+
+ private void OnAdded (object sender, Gtk.AddedArgs args)
+ {
+ this.child = args.Widget;
+ }
+
+ public void SetUiManager (Gtk.UIManager uim)
+ {
+ this.uimanager = uim;
+ this.child.Realized += new System.EventHandler (this.OnRealized);
+ }
+
+ private void OnRealized (object sender, System.EventArgs args)
+ {
+ if ((this.uimanager != null)) {
+ Gtk.Widget w;
+ w = this.child.Toplevel;
+ if (((w != null) && typeof(Gtk.Window).IsInstanceOfType (w))) {
+ ((Gtk.Window)(w)).AddAccelGroup (this.uimanager.AccelGroup);
+ this.uimanager = null;
+ }
+ }
+ }
+ }
+
+ internal class IconLoader
+ {
+ public static Gdk.Pixbuf LoadIcon (Gtk.Widget widget, string name, Gtk.IconSize size)
+ {
+ Gdk.Pixbuf res = widget.RenderIcon (name, size, null);
+ if ((res != null)) {
+ return res;
+ } else {
+ int sz;
+ int sy;
+ global::Gtk.Icon.SizeLookup (size, out sz, out sy);
+ try {
+ return Gtk.IconTheme.Default.LoadIcon (name, sz, 0);
+ } catch (System.Exception) {
+ if ((name != "gtk-missing-image")) {
+ return Stetic.IconLoader.LoadIcon (widget, "gtk-missing-image", size);
+ } else {
+ Gdk.Pixmap pmap = new Gdk.Pixmap (Gdk.Screen.Default.RootWindow, sz, sz);
+ Gdk.GC gc = new Gdk.GC (pmap);
+ gc.RgbFgColor = new Gdk.Color (255, 255, 255);
+ pmap.DrawRectangle (gc, true, 0, 0, sz, sz);
+ gc.RgbFgColor = new Gdk.Color (0, 0, 0);
+ pmap.DrawRectangle (gc, false, 0, 0, (sz - 1), (sz - 1));
+ gc.SetLineAttributes (3, Gdk.LineStyle.Solid, Gdk.CapStyle.Round, Gdk.JoinStyle.Round);
+ gc.RgbFgColor = new Gdk.Color (255, 0, 0);
+ pmap.DrawLine (gc, (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)), ((sz - 1) - (sz / 4)));
+ pmap.DrawLine (gc, ((sz - 1) - (sz / 4)), (sz / 4), (sz / 4), ((sz - 1) - (sz / 4)));
+ return Gdk.Pixbuf.FromDrawable (pmap, pmap.Colormap, 0, 0, 0, 0, sz, sz);
+ }
+ }
+ }
+ }
+ }
+
+ internal class ActionGroups
+ {
+ public static Gtk.ActionGroup GetActionGroup (System.Type type)
+ {
+ return Stetic.ActionGroups.GetActionGroup (type.FullName);
+ }
+
+ public static Gtk.ActionGroup GetActionGroup (string name)
+ {
+ return null;
+ }
+ }
+}
diff --git a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs
index c16366a468..fd5c83c6ae 100644
--- a/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs
+++ b/main/src/addins/MonoDevelop.WebReferences/MonoDevelop.WebReferences.WCF/WebServiceDiscoveryResultWCF.cs
@@ -149,9 +149,12 @@ namespace MonoDevelop.WebReferences.WCF
bool targetMonoTouch = dotNetProject.TargetFramework.Id.Identifier == ("MonoTouch");
bool targetMonoDroid = dotNetProject.TargetFramework.Id.Identifier == ("MonoDroid");
+ bool targetCoreClr = targetMoonlight || targetMonoDroid || targetMonoTouch;
+ bool generateSyncMethods = targetMonoDroid | targetMonoTouch;
+
ServiceContractGenerator generator = new ServiceContractGenerator (ccu);
generator.Options = ServiceContractGenerationOptions.ChannelInterface | ServiceContractGenerationOptions.ClientClass;
- if (refGroup.ClientOptions.GenerateAsynchronousMethods || targetMoonlight || targetMonoTouch)
+ if (refGroup.ClientOptions.GenerateAsynchronousMethods || targetCoreClr)
generator.Options |= ServiceContractGenerationOptions.AsynchronousMethods;
if (refGroup.ClientOptions.GenerateInternalTypes)
generator.Options |= ServiceContractGenerationOptions.InternalTypes;
@@ -177,11 +180,11 @@ namespace MonoDevelop.WebReferences.WCF
foreach (ContractDescription cd in contracts) {
cd.Namespace = proxyNamespace;
- if (targetMoonlight || targetMonoTouch) {
+ if (targetCoreClr) {
var moonctx = new MoonlightChannelBaseContext ();
- cd.Behaviors.Add (new MoonlightChannelBaseContractExtension (moonctx, targetMonoTouch));
+ cd.Behaviors.Add (new MoonlightChannelBaseContractExtension (moonctx, generateSyncMethods));
foreach (var od in cd.Operations)
- od.Behaviors.Add (new MoonlightChannelBaseOperationExtension (moonctx, targetMonoTouch));
+ od.Behaviors.Add (new MoonlightChannelBaseOperationExtension (moonctx, generateSyncMethods));
generator.GenerateServiceContractType (cd);
moonctx.Fixup ();
}
diff --git a/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ConfigurationOptionsPanelWidget.cs b/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ConfigurationOptionsPanelWidget.cs
index 4d20968303..0861e6b3b7 100644
--- a/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ConfigurationOptionsPanelWidget.cs
+++ b/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ConfigurationOptionsPanelWidget.cs
@@ -39,7 +39,7 @@ namespace MonoDevelop.VBNetBinding
private global::Gtk.Label label96;
private global::Gtk.Entry txtAdditionalArguments;
private global::Gtk.Entry txtDefineConstants;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ImportsOptionsPanelWidget.cs b/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ImportsOptionsPanelWidget.cs
index eff9c262a7..7cab12ed87 100644
--- a/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ImportsOptionsPanelWidget.cs
+++ b/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ImportsOptionsPanelWidget.cs
@@ -12,7 +12,7 @@ namespace MonoDevelop.VBNetBinding
private global::Gtk.VBox vbox1;
private global::Gtk.Button cmdRemove;
private global::Gtk.Label label10;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ProjectOptionsPanelWidget.cs b/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ProjectOptionsPanelWidget.cs
index e2c5dc3560..08ce929f46 100644
--- a/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ProjectOptionsPanelWidget.cs
+++ b/main/src/addins/VBNetBinding/gtk-gui/MonoDevelop.VBNetBinding.ProjectOptionsPanelWidget.cs
@@ -24,7 +24,7 @@ namespace MonoDevelop.VBNetBinding
private global::Gtk.Label label86;
private global::Gtk.Label label88;
private global::Gtk.ComboBoxEntry txtMyType;
-
+
protected virtual void Build ()
{
global::Stetic.Gui.Initialize (this);
diff --git a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Task.cs b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Task.cs
index e10443eedc..105b108e20 100644
--- a/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Task.cs
+++ b/main/src/addins/VersionControl/MonoDevelop.VersionControl/MonoDevelop.VersionControl/Task.cs
@@ -59,7 +59,6 @@ namespace MonoDevelop.VersionControl
msg += " " + e.InnerException.Message;
}
tracker.ReportError (msg, e);
- GLib.ExceptionManager.RaiseUnhandledException (e, false);
} finally {
threadnotify.WakeupMain();
}
diff --git a/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/FilteredMembersSource.cs b/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/FilteredMembersSource.cs
index be7f2d1b08..deafa047ff 100644
--- a/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/FilteredMembersSource.cs
+++ b/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/FilteredMembersSource.cs
@@ -48,6 +48,7 @@ namespace Mono.Debugging.Evaluation
public ObjectValue[] GetChildren (ObjectPath path, int index, int count, EvaluationOptions options)
{
EvaluationContext cctx = ctx.WithOptions (options);
+ var names = new ObjectValueNameTracker (cctx);
object tdataType = null;
TypeDisplayData tdata = null;
List<ObjectValue> list = new List<ObjectValue> ();
@@ -61,6 +62,7 @@ namespace Mono.Debugging.Evaluation
if (state == DebuggerBrowsableState.Never)
continue;
ObjectValue oval = val.CreateObjectValue (options);
+ names.Disambiguate (val, oval);
list.Add (oval);
}
if ((bindingFlags & BindingFlags.NonPublic) == 0) {
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 d44441ab84..cdb65ccf8a 100644
--- a/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs
+++ b/main/src/core/Mono.Debugging/Mono.Debugging.Evaluation/ObjectValueAdaptor.cs
@@ -362,7 +362,7 @@ namespace Mono.Debugging.Evaluation
// to avoid problems with objects being invalidated due to evaluations in the target,
List<ValueReference> list = new List<ValueReference> ();
list.AddRange (GetMembersSorted (ctx, objectSource, type, proxy, access));
-
+ var names = new ObjectValueNameTracker (ctx);
object tdataType = type;
foreach (ValueReference val in list) {
@@ -387,6 +387,7 @@ namespace Mono.Debugging.Evaluation
}
else {
ObjectValue oval = val.CreateObjectValue (true);
+ names.Disambiguate (val, oval);
values.Add (oval);
}
@@ -1068,6 +1069,44 @@ namespace Mono.Debugging.Evaluation
}
}
+ class ObjectValueNameTracker
+ {
+ Dictionary<string,KeyValuePair<ObjectValue, ValueReference>> names = new Dictionary<string,KeyValuePair<ObjectValue, ValueReference>> ();
+ EvaluationContext ctx;
+
+ public ObjectValueNameTracker (EvaluationContext ctx)
+ {
+ this.ctx = ctx;
+ }
+
+ /// <summary>
+ /// Disambiguate the ObjectValue's name (in the case where the property name also exists in a base class).
+ /// </summary>
+ /// <param name='val'>
+ /// The ValueReference.
+ /// </param>
+ /// <param name='oval'>
+ /// The ObjectValue.
+ /// </param>
+ public void Disambiguate (ValueReference val, ObjectValue oval)
+ {
+ KeyValuePair<ObjectValue, ValueReference> other;
+ if (names.TryGetValue (oval.Name, out other)) {
+ object tn = val.DeclaringType;
+
+ if (tn != null)
+ oval.Name += " (" + ctx.Adapter.GetDisplayTypeName (ctx, tn) + ")";
+ if (!other.Key.Name.EndsWith (")")) {
+ tn = other.Value.DeclaringType;
+ if (tn != null)
+ other.Key.Name += " (" + ctx.Adapter.GetDisplayTypeName (ctx, tn) + ")";
+ }
+ }
+
+ names [oval.Name] = new KeyValuePair<ObjectValue, ValueReference> (oval, val);
+ }
+ }
+
public struct EnumMember
{
public string Name { get; set; }
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor.Vi/ViMode.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor.Vi/ViMode.cs
index 620c8eeadc..5bfd0c402e 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor.Vi/ViMode.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor.Vi/ViMode.cs
@@ -129,7 +129,7 @@ namespace Mono.TextEditor.Vi
statusText = value + " recording";
}
}
-
+
}
protected virtual string RunExCommand (string command)
@@ -148,7 +148,7 @@ namespace Mono.TextEditor.Vi
return "Jumped to beginning of document.";
}
- Data.Caret.Line = line - 1;
+ Data.Caret.Line = line;
Editor.ScrollToCaret ();
return string.Format ("Jumped to line {0}.", line);
}
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs
index a24754014b..be526c3c3c 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/GtkWorkarounds.cs
@@ -155,7 +155,7 @@ namespace Mono.TextEditor
float x, y, width, height;
if (visible.Height < frame.Height) {
- float dockHeight = visible.Y;
+ float dockHeight = visible.Y - frame.Y;
float menubarHeight = (frame.Height - visible.Height) - dockHeight;
height = frame.Height - menubarHeight - dockHeight;
@@ -314,27 +314,28 @@ namespace Mono.TextEditor
bool flip_left = true;
bool flip_up = false;
- int x_over = x + request.Width - geometry.Right;
- if (x_over > 0) {
+ if (x + request.Width > geometry.Right) {
if (flip_left) {
x -= request.Width;
} else {
- x -= x_over;
+ x = geometry.Right - request.Width;
}
+
+ if (x < geometry.Left)
+ x = geometry.Left;
}
- int y_over = y + request.Height - geometry.Bottom;
- if (y_over > 0) {
+ if (y + request.Height > geometry.Bottom) {
if (flip_up) {
y -= request.Height;
} else {
- y -= y_over;
+ y = geometry.Bottom - request.Height;
}
+
+ if (y < geometry.Top)
+ y = geometry.Top;
}
- 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));
-
pushIn = false;
};
}
diff --git a/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs b/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs
index 97961d7f9c..14e42ce8ce 100644
--- a/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs
+++ b/main/src/core/Mono.Texteditor/Mono.TextEditor/TextEditorContainer.cs
@@ -106,14 +106,6 @@ namespace Mono.TextEditor
info.X = x;
info.Y = y;
containerChildren.Add (info);
-
- widget.Mapped += (sender, e) => {
- Console.WriteLine ("\tChild mapped!");
- };
-
- widget.Unmapped += (sender, e) => {
- Console.WriteLine ("\tChild unmapped!");
- };
}
public void MoveTopLevelWidget (Gtk.Widget widget, int x, int y)
@@ -346,7 +338,9 @@ namespace Mono.TextEditor
void HandleHAdjustementValueChanged (object sender, EventArgs e)
{
- SetChildrenPositions (Allocation);
+ var alloc = this.Allocation;
+ alloc.X = alloc.Y = 0;
+ SetChildrenPositions (alloc);
}
protected override void OnDestroyed ()
@@ -358,4 +352,4 @@ namespace Mono.TextEditor
base.OnDestroyed ();
}
}
-} \ No newline at end of file
+}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs
index fa3fc03b14..d29c7e9772 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.FileSystem/UnixFileSystemExtension.cs
@@ -32,13 +32,22 @@ namespace MonoDevelop.Core.FileSystem
{
class UnixFileSystemExtension : DefaultFileSystemExtension
{
+ const int PATHMAX = 4096 + 1;
+
[DllImport ("libc")]
- static extern string realpath (string path, IntPtr buffer);
+ static extern IntPtr realpath (string path, IntPtr buffer);
public override FilePath ResolveFullPath (FilePath path)
{
- // Handle symlinks
- return realpath (path, IntPtr.Zero);
+ IntPtr buffer = IntPtr.Zero;
+ try {
+ buffer = Marshal.AllocHGlobal (PATHMAX);
+ var result = realpath (path, buffer);
+ return result == IntPtr.Zero ? "" : Marshal.PtrToStringAuto (buffer);
+ } finally {
+ if (buffer != IntPtr.Zero)
+ Marshal.FreeHGlobal (buffer);
+ }
}
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.LogReporting/LogReportingService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.LogReporting/LogReportingService.cs
index 586787d81f..ff4e6713bc 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core.LogReporting/LogReportingService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core.LogReporting/LogReportingService.cs
@@ -43,7 +43,11 @@ namespace MonoDevelop.Core.LogReporting
static int CrashId;
static int Processing;
- public static Func<bool> ShouldEnableReporting;
+ // Return value is the new value for 'ReportCrashes'
+ // First parameter is the current value of 'ReportCrashes
+ // Second parameter is the exception
+ // Thirdparameter shows if the exception is fatal or not
+ public static Func<bool?, Exception, bool, bool?> UnhandledErrorOccured;
public static bool? ReportCrashes {
get { return PropertyService.Get<bool?> (ReportCrashesKey); }
@@ -55,14 +59,10 @@ namespace MonoDevelop.Core.LogReporting
set { PropertyService.Set (ReportUsageKey, value); }
}
- public static void ReportUnhandledException (Exception ex)
+ public static void ReportUnhandledException (Exception ex, bool willShutDown)
{
- // if the user hasn't opted in/out yet, ask them
- if (!ReportCrashes.HasValue) {
- var handler = ShouldEnableReporting;
- if (handler != null)
- ReportCrashes = handler ();
- }
+ if (UnhandledErrorOccured != null)
+ ReportCrashes = UnhandledErrorOccured (ReportCrashes, ex, willShutDown);
// If crash reporting has been explicitly disabled, disregard this crash
if (ReportCrashes.HasValue && !ReportCrashes.Value)
@@ -82,10 +82,9 @@ namespace MonoDevelop.Core.LogReporting
data = stream.ToArray ();
}
- // If crash reporting has not been enabled or disabled yet, just log to disk.
- // Otherwise log to disk only if uploading fails.
+ // Log to disk only if uploading fails.
var filename = string.Format ("{0}.{1}.crashlog", SystemInformation.SessionUuid, Interlocked.Increment (ref CrashId));
- if (!ReportCrashes.GetValueOrDefault () || !TryUploadReport (filename, data)) {
+ if (!TryUploadReport (filename, data)) {
if (!Directory.Exists (CrashLogDirectory))
Directory.CreateDirectory (CrashLogDirectory);
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/LoggingService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/LoggingService.cs
index e8d8bb2588..484808ee53 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Core/LoggingService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Core/LoggingService.cs
@@ -73,6 +73,20 @@ namespace MonoDevelop.Core
}
}
}
+
+ static FilePath GenericLogFile {
+ get { return "MonoDevelop.log"; }
+ }
+
+ static string FormattedGenericLogFile (int value)
+ {
+ return string.Format ("MonoDevelop-{0}.log", value);
+ }
+
+ static string FormattedUniqueFileName (DateTime timestamp)
+ {
+ return string.Format ("MonoDevelop.{0}.log", timestamp.ToString ("yyyy-MM-dd__HH-mm-ss"));
+ }
public static void Initialize (bool redirectOutput)
{
@@ -88,7 +102,7 @@ namespace MonoDevelop.Core
if (!Directory.Exists (UserProfile.Current.LogDir))
return;
- var files = Directory.EnumerateFiles (UserProfile.Current.LogDir)
+ var files = Directory.EnumerateFiles (UserProfile.Current.LogDir, "MonoDevelop.*.log")
.Select (f => new FileInfo (f))
.Where (f => f.CreationTimeUtc < DateTime.UtcNow.Subtract (TimeSpan.FromDays (30)));
@@ -101,29 +115,54 @@ namespace MonoDevelop.Core
FilePath logDir = UserProfile.Current.LogDir;
if (!Directory.Exists (logDir))
Directory.CreateDirectory (logDir);
-
- //TODO: log rotation
- string file = logDir.Combine (string.Format ("MonoDevelop.{0}.log", SystemInformation.SessionUuid));
+
try {
if (Platform.IsWindows) {
//TODO: redirect the file descriptors on Windows, just plugging in a textwriter won't get everything
- RedirectOutputToFileWindows (file);
+ RedirectOutputToFileWindows (logDir);
} else {
- RedirectOutputToFileUnix (file);
+ RedirectOutputToFileUnix (logDir);
}
} catch {
}
}
- static void RedirectOutputToFileWindows (string file)
+ static IEnumerable<string> GetGenericLogFiles (FilePath logDirectory)
{
- var logFile = new StreamWriter (file);
+ // Look for MonoDevelop.log and also MonoDevelop-XXX.log and move them to MonoDevelop.{timestamp}.log files
+ // as we cannot symlink on windows and we want 'MonoDevelop.log' to be the newest log file
+ string additonalGenericLogs = Path.GetFileNameWithoutExtension (GenericLogFile) + "-";
+ return Directory.GetFiles (logDirectory)
+ .Where (f => f == GenericLogFile || f.StartsWith (additonalGenericLogs))
+ .OrderBy (f => f);
+ }
+
+ static void RedirectOutputToFileWindows (FilePath logDirectory)
+ {
+ // First try to move any generic MonoDevelop.log files to a timestamped filename
+ foreach (var path in GetGenericLogFiles (logDirectory)) {
+ try {
+ var creationTime = File.GetCreationTime (path);
+ var destination = logDirectory.Combine (FormattedUniqueFileName (creationTime));
+ File.Copy (path, destination, true);
+ File.Delete (path);
+ } catch {}
+ }
+
+ // Find the first free filename, try MonoDevelop.log first and then MonoDevelop-{0}.log
+ int count = 0;
+ var newLogFileName = GenericLogFile;
+ var existingFiles = GetGenericLogFiles (logDirectory).Select (f => Path.GetFileName (f)).ToList ();
+ while (existingFiles.Contains (newLogFileName))
+ newLogFileName = FormattedGenericLogFile (count ++);
+
+ var logFile = new StreamWriter (logDirectory.Combine (newLogFileName));
logFile.AutoFlush = true;
Console.SetOut (logFile);
Console.SetError (logFile);
}
- static void RedirectOutputToFileUnix (string file)
+ static void RedirectOutputToFileUnix (FilePath logDirectory)
{
const int STDOUT_FILENO = 1;
const int STDERR_FILENO = 2;
@@ -134,6 +173,7 @@ namespace MonoDevelop.Core
| Mono.Unix.Native.FilePermissions.S_IRUSR | Mono.Unix.Native.FilePermissions.S_IWUSR
| Mono.Unix.Native.FilePermissions.S_IRGRP | Mono.Unix.Native.FilePermissions.S_IWGRP;
+ var file = logDirectory.Combine (FormattedUniqueFileName (DateTime.Now));
int fd = Mono.Unix.Native.Syscall.open (file, flags, mode);
if (fd < 0)
//error
@@ -148,6 +188,10 @@ namespace MonoDevelop.Core
if (res < 0)
//error
return;
+
+ var genericLog = logDirectory.Combine (GenericLogFile);
+ File.Delete (genericLog);
+ Mono.Unix.Native.Syscall.symlink (file, genericLog);
} finally {
Mono.Unix.Native.Syscall.close (fd);
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProject.cs
index 9d953b1ae2..c0caeb856a 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProject.cs
@@ -145,6 +145,7 @@ namespace MonoDevelop.Projects.Formats.MSBuild
if (elem != null)
elem.ParentNode.RemoveChild (elem);
else
+ //FIXME: should this actually log an error?
Console.WriteLine ("ppnf:");
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildAction.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildAction.cs
index af5438cb48..78cc24f9b6 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildAction.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildAction.cs
@@ -72,45 +72,8 @@ namespace MonoDevelop.Projects
Compile,
Content,
EmbeddedResource,
- ApplicationDefinition,
- InterfaceDefinition,
- Resource,
-// SplashScreen,
-// EntityDeploy
};
}
}
- static Dictionary<string, string> translations = new Dictionary<string, string> ();
- static BuildAction()
- {
- translations[None] = GettextCatalog.GetString ("Nothing");
- translations[Compile] = GettextCatalog.GetString ("Compile");
- translations[EmbeddedResource] = GettextCatalog.GetString ("Embed as resource");
- translations[Content] = GettextCatalog.GetString ("Content");
- translations[ApplicationDefinition] = GettextCatalog.GetString ("Application definition");
- translations[Page] = GettextCatalog.GetString ("Page");
- translations[InterfaceDefinition] = GettextCatalog.GetString ("Interface definition");
- translations[Resource] = GettextCatalog.GetString ("Resource");
- translations[SplashScreen] = GettextCatalog.GetString ("Splash screen");
- translations[EntityDeploy] = GettextCatalog.GetString ("Entity deploy");
- }
-
- public static string ReTranslate (string translatedAction)
- {
- foreach (KeyValuePair<string, string> translation in translations) {
- if (translation.Value == translatedAction)
- return translation.Key;
- }
- return translatedAction;
- }
-
- public static string Translate (string action)
- {
- string result;
- if (translations.TryGetValue (action, out result))
- return result;
- return action;
- }
-
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildResult.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildResult.cs
index a92aaa9a90..543ec390c1 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildResult.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/BuildResult.cs
@@ -30,6 +30,7 @@ using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+using System.Text.RegularExpressions;
namespace MonoDevelop.Projects
{
@@ -290,5 +291,39 @@ namespace MonoDevelop.Projects
get { return sourceTarget; }
set { sourceTarget = value; }
}
+
+ //FIXME: this doesn't get hanlde the complete MSBuild error format, see
+ //http://blogs.msdn.com/b/msbuild/archive/2006/11/03/msbuild-visual-studio-aware-error-messages-and-message-formats.aspx
+ static Regex regexError = new Regex (
+ @"^(\s*(?<file>[^\(]+)(\((?<line>\d*)(,(?<column>\d*[\+]*))?\))?:\s+)*(?<level>\w+)\s+(?<number>..\d+):\s*(?<message>.*)",
+ RegexOptions.Compiled | RegexOptions.ExplicitCapture);
+
+ public static BuildError FromMSBuildErrorFormat (string lineText)
+ {
+ Match match = regexError.Match (lineText);
+ if (!match.Success)
+ return null;
+
+ return new BuildError () {
+ FileName = match.Result ("${file}") ?? "",
+ IsWarning = match.Result ("${level}") == "warning",
+ ErrorNumber = match.Result ("${number}"),
+ ErrorText = match.Result ("${message}"),
+ Line = GetLineNumber (match.Result ("${line}")),
+ Column = GetLineNumber (match.Result ("${column}")),
+ };
+ }
+
+ static int GetLineNumber (string textValue)
+ {
+ if (string.IsNullOrEmpty (textValue))
+ return 0;
+
+ int val;
+ if (Int32.TryParse (textValue, out val))
+ return val;
+
+ return -1;
+ }
}
} \ No newline at end of file
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs
index e1a6f5619d..078d6e1ac3 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetAssemblyProject.cs
@@ -63,7 +63,7 @@ namespace MonoDevelop.Projects
case "MSBuild05":
return TargetFrameworkMoniker.NET_2_0;
case "MSBuild08":
- return TargetFrameworkMoniker.NET_3_5;
+ return TargetFrameworkMoniker.NET_2_0;
case "MSBuild10":
return TargetFrameworkMoniker.NET_4_0;
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
index 6e6aa2963b..169a28003b 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/DotNetProject.cs
@@ -768,6 +768,36 @@ namespace MonoDevelop.Projects
if (base.CheckNeedsBuild (configuration))
return true;
+ // base.CheckNeedsBuild() checks Project references, but not Assembly, Package, or Custom.
+ DateTime mtime = GetLastBuildTime (configuration);
+ foreach (ProjectReference pref in References) {
+ switch (pref.ReferenceType) {
+ case ReferenceType.Assembly:
+ foreach (var file in GetAssemblyRefsRec (pref.Reference, new HashSet<string> ())) {
+ try {
+ if (File.GetLastWriteTime (file) > mtime)
+ return true;
+ } catch (IOException) {
+ // Ignore.
+ }
+ }
+ break;
+ case ReferenceType.Package:
+ if (pref.Package == null) {
+ break;
+ }
+ foreach (var assembly in pref.Package.Assemblies) {
+ try {
+ if (File.GetLastWriteTime (assembly.Location) > mtime)
+ return true;
+ } catch (IOException) {
+ // Ignore.
+ }
+ }
+ break;
+ }
+ }
+
return Files.Any (file => file.BuildAction == BuildAction.EmbeddedResource
&& String.Compare (Path.GetExtension (file.FilePath), ".resx", StringComparison.OrdinalIgnoreCase) == 0
&& MD1DotNetProjectHandler.IsResgenRequired (file.FilePath));
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectFileCollection.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectFileCollection.cs
index 024c6da642..2dab858328 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectFileCollection.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectFileCollection.cs
@@ -92,8 +92,10 @@ namespace MonoDevelop.Projects
{
fileName = FileService.GetFullPath (fileName);
for (int n=0; n<Count; n++) {
- if (Items [n].Name == fileName)
+ if (Items [n].Name == fileName) {
RemoveAt (n);
+ break;
+ }
}
}
}
diff --git a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectService.cs b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectService.cs
index 2b8ceb4266..50a3389707 100644
--- a/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectService.cs
+++ b/main/src/core/MonoDevelop.Core/MonoDevelop.Projects/ProjectService.cs
@@ -91,7 +91,7 @@ namespace MonoDevelop.Projects
AddinManager.AddExtensionNodeHandler (ProjectBindingsExtensionPath, OnProjectsExtensionChanged);
AddinManager.ExtensionChanged += OnExtensionChanged;
- defaultFormat = formatManager.GetFileFormat ("MSBuild05");
+ defaultFormat = formatManager.GetFileFormat ("MSBuild10");
}
public DataContext DataContext {
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ErrorDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ErrorDialog.cs
index 9f219d91b8..0b86d75a1e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ErrorDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Components.Extensions/ErrorDialog.cs
@@ -25,6 +25,7 @@
// THE SOFTWARE.
using System;
+using MonoDevelop.Ide;
namespace MonoDevelop.Components.Extensions
{
@@ -34,12 +35,19 @@ namespace MonoDevelop.Components.Extensions
public class ExceptionDialogData : PlatformDialogData
{
+ public AlertButton[] Buttons { get; set; }
public string Message { get; set; }
public Exception Exception { get; set; }
+ public AlertButton ResultButton { get; set; }
}
public class ExceptionDialog : PlatformDialog<ExceptionDialogData>
{
+ public AlertButton[] Buttons {
+ get { return data.Buttons; }
+ set { data.Buttons = value; }
+ }
+
public string Message {
get { return data.Message; }
set { data.Message = value; }
@@ -50,12 +58,19 @@ namespace MonoDevelop.Components.Extensions
set { data.Exception = value; }
}
+ public AlertButton ResultButton {
+ get { return data.ResultButton; }
+ private set { data.ResultButton = value; }
+ }
+
protected override bool RunDefault ()
{
var errorDialog = new MonoDevelop.Ide.Gui.Dialogs.GtkErrorDialog (TransientFor);
errorDialog.Message = Message;
errorDialog.AddDetails (Exception.ToString (), false);
- MonoDevelop.Ide.MessageService.ShowCustomDialog (errorDialog, TransientFor);
+ errorDialog.Buttons = Buttons;
+ int result = MonoDevelop.Ide.MessageService.ShowCustomDialog (errorDialog, TransientFor);
+ ResultButton = result >= 0 ? Buttons [result] : null;
return true;
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
index 72917605ba..d21d1af391 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.FindInFiles/FindInFilesDialog.cs
@@ -38,80 +38,116 @@ namespace MonoDevelop.Ide.FindInFiles
{
public partial class FindInFilesDialog : Gtk.Dialog
{
- readonly bool writeScope = true;
- readonly bool showReplace;
+ readonly bool writeScope = true;
- const int ScopeWholeSolution = 0;
- const int ScopeCurrentProject = 1;
- const int ScopeAllOpenFiles = 2;
- const int ScopeDirectories = 3;
- const int ScopeCurrentDocument = 4;
- const int ScopeSelection = 5;
+ enum SearchScope {
+ WholeSolution,
+ CurrentProject,
+ AllOpenFiles,
+ Directories,
+ CurrentDocument,
+ Selection
+ }
+
+ CheckButton checkbuttonRecursively;
+ ComboBoxEntry comboboxentryReplace;
+ ComboBoxEntry comboboxentryPath;
+ SearchEntry searchentryFileMask;
+ Button buttonBrowsePaths;
+ Button buttonReplace;
+ Label labelFileMask;
+ Label labelReplace;
+ Label labelPath;
+ HBox hboxPath;
+
+ Properties properties = null;
+ bool replaceMode = false;
+
+ static void SetButtonIcon (Button button, string stockIcon)
+ {
+ Alignment alignment = new Alignment (0.5f, 0.5f, 0f, 0f);
+ Label label = new Label (button.Label);
+ HBox hbox = new HBox (false, 2);
+ Image image = new Image ();
+
+ image.Pixbuf = Stetic.IconLoader.LoadIcon (button, stockIcon, IconSize.Button);
+ image.Show ();
+ hbox.Add (image);
+
+ label.Show ();
+ hbox.Add (label);
+
+ hbox.Show ();
+ alignment.Add (hbox);
+
+ button.Child.Destroy ();
+
+ alignment.Show ();
+ button.Add (alignment);
+ }
+
+ static Widget GetChildWidget (Container toplevel, Type type)
+ {
+ foreach (var child in ((Container) toplevel).Children) {
+ if (child.GetType () == type)
+ return child;
+
+ if (child is Container) {
+ var w = GetChildWidget ((Container) child, type);
+ if (w != null)
+ return w;
+ }
+ }
+
+ return null;
+ }
+
+ static void OverrideStockLabel (Button button, string label)
+ {
+ var widget = GetChildWidget ((Container) button.Child, typeof (Label));
+ if (widget != null)
+ ((Label) widget).LabelProp = label;
+ }
- FindInFilesDialog (bool showReplace, string directory) : this(showReplace)
+ FindInFilesDialog (bool showReplace, string directory) : this (showReplace)
{
- comboboxScope.Active = ScopeDirectories;
+ comboboxScope.Active = (int) SearchScope.Directories;
comboboxentryPath.Entry.Text = directory;
writeScope = false;
- }
-
- readonly ComboBoxEntry comboboxentryReplace;
- readonly Label labelReplace;
+ }
FindInFilesDialog (bool showReplace)
{
- this.showReplace = showReplace;
Build ();
- Title = showReplace ? GettextCatalog.GetString ("Replace in Files") : GettextCatalog.GetString ("Find in Files");
- TransientFor = IdeApp.Workbench.RootWindow;
- if (!showReplace)
- buttonReplace.Destroy();
-
- if (showReplace) {
- tableFindAndReplace.NRows = 4;
- labelReplace = new Label {Text = GettextCatalog.GetString("_Replace:"), Xalign = 0f, UseUnderline = true};
- tableFindAndReplace.Add (labelReplace);
-
- comboboxentryReplace = new ComboBoxEntry ();
- tableFindAndReplace.Add (comboboxentryReplace);
-
- var childLabel = (Table.TableChild)tableFindAndReplace[labelReplace];
- childLabel.TopAttach = 1;
- childLabel.BottomAttach = 2;
- childLabel.XOptions = childLabel.YOptions = (AttachOptions)4;
-
- var childCombo = (Table.TableChild)tableFindAndReplace[comboboxentryReplace];
- childCombo.TopAttach = 1;
- childCombo.BottomAttach = 2;
- childCombo.LeftAttach = 1;
- childCombo.RightAttach = 2;
- childCombo.XOptions = childCombo.YOptions = (AttachOptions)4;
-
- childLabel = (Table.TableChild)tableFindAndReplace[labelScope];
- childLabel.TopAttach = 2;
- childLabel.BottomAttach = 3;
-
- childCombo = (Table.TableChild)tableFindAndReplace[hbox2];
- childCombo.TopAttach = 2;
- childCombo.BottomAttach = 3;
-
- childCombo = (Table.TableChild)tableFindAndReplace[labelFileMask];
- childCombo.TopAttach = 3;
- childCombo.BottomAttach = 4;
-
- childCombo = (Table.TableChild)tableFindAndReplace[searchentry1];
- childCombo.TopAttach = 3;
- childCombo.BottomAttach = 4;
-
- Child.ShowAll ();
- }
-
- comboboxentryFind.Entry.Activated += delegate { buttonSearch.Click (); };
+
+ properties = PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
+ SetButtonIcon (toggleReplaceInFiles, "gtk-find-and-replace");
+ SetButtonIcon (toggleFindInFiles, "gtk-find");
+
+ TransientFor = IdeApp.Workbench.RootWindow;
- buttonReplace.Clicked += HandleReplaceClicked;
+ toggleReplaceInFiles.Active = showReplace;
+ toggleFindInFiles.Active = !showReplace;
+
+ toggleFindInFiles.Toggled += delegate {
+ if (toggleFindInFiles.Active) {
+ Title = GettextCatalog.GetString ("Find in Files");
+ HideReplaceUI ();
+ }
+ };
+
+ toggleReplaceInFiles.Toggled += delegate {
+ if (toggleReplaceInFiles.Active) {
+ Title = GettextCatalog.GetString ("Replace in Files");
+ ShowReplaceUI ();
+ }
+ };
+
buttonSearch.Clicked += HandleSearchClicked;
buttonClose.Clicked += (sender, e) => Destroy ();
DeleteEvent += (o, args) => Destroy ();
+ buttonSearch.GrabDefault ();
+
buttonStop.Clicked += ButtonStopClicked;
var scopeStore = new ListStore (typeof(string));
scopeStore.AppendValues (GettextCatalog.GetString ("Whole solution"));
@@ -120,12 +156,16 @@ namespace MonoDevelop.Ide.FindInFiles
scopeStore.AppendValues (GettextCatalog.GetString ("Directories"));
scopeStore.AppendValues (GettextCatalog.GetString ("Current document"));
scopeStore.AppendValues (GettextCatalog.GetString ("Selection"));
-
comboboxScope.Model = scopeStore;
comboboxScope.Changed += HandleScopeChanged;
InitFromProperties ();
+
+ if (showReplace)
+ toggleReplaceInFiles.Toggle ();
+ else
+ toggleFindInFiles.Toggle ();
if (IdeApp.Workbench.ActiveDocument != null) {
var view = IdeApp.Workbench.ActiveDocument.GetContent<ITextBuffer> ();
@@ -135,149 +175,317 @@ namespace MonoDevelop.Ide.FindInFiles
if (selectedText.Any (c => c == '\n' || c == '\r')) {
// comboboxScope.Active = ScopeSelection;
} else {
- if (comboboxScope.Active == ScopeSelection)
- comboboxScope.Active = ScopeCurrentDocument;
+ if (comboboxScope.Active == (int) SearchScope.Selection)
+ comboboxScope.Active = (int) SearchScope.CurrentDocument;
comboboxentryFind.Entry.Text = selectedText;
}
- } else if (comboboxScope.Active == ScopeSelection) {
- comboboxScope.Active = ScopeCurrentDocument;
+ } else if (comboboxScope.Active == (int) SearchScope.Selection) {
+ comboboxScope.Active = (int) SearchScope.CurrentDocument;
}
}
}
comboboxentryFind.Entry.SelectRegion (0, comboboxentryFind.ActiveText.Length);
-
+ comboboxentryFind.GrabFocus ();
DeleteEvent += delegate { Destroy (); };
UpdateStopButton ();
- searchentry1.Ready = true;
- searchentry1.Visible = true;
- searchentry1.IsCheckMenu = true;
- var properties = PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
+ Child.Show ();
+ }
+
+ static void TableAddRow (Table table, uint row, Widget column1, Widget column2)
+ {
+ uint rows = table.NRows;
+ Table.TableChild tr;
+
+ table.NRows = rows + 1;
+
+ foreach (var child in table.Children) {
+ tr = (Table.TableChild) table[child];
+ uint bottom = tr.BottomAttach;
+ uint top = tr.TopAttach;
+
+ if (top >= row && top < rows) {
+ tr.BottomAttach = bottom + 1;
+ tr.TopAttach = top + 1;
+ }
+ }
+
+ if (column1 != null) {
+ table.Add (column1);
+
+ tr = (Table.TableChild) table[column1];
+ tr.XOptions = (AttachOptions) 4;
+ tr.YOptions = (AttachOptions) 4;
+ tr.BottomAttach = row + 1;
+ tr.TopAttach = row;
+ tr.LeftAttach = 0;
+ tr.RightAttach = 1;
+ }
+
+ if (column2 != null) {
+ table.Add (column2);
+
+ tr = (Table.TableChild) table[column2];
+ tr.XOptions = (AttachOptions) 4;
+ tr.YOptions = (AttachOptions) 4;
+ tr.BottomAttach = row + 1;
+ tr.TopAttach = row;
+ tr.LeftAttach = 1;
+ tr.RightAttach = 2;
+ }
+ }
+
+ static void TableRemoveRow (Table table, uint row, Widget column1, Widget column2, bool destroy)
+ {
+ uint rows = table.NRows;
+
+ foreach (var child in table.Children) {
+ var tr = (Table.TableChild) table[child];
+ uint bottom = tr.BottomAttach;
+ uint top = tr.TopAttach;
+
+ if (top >= row && top < rows) {
+ tr.BottomAttach = bottom - 1;
+ tr.TopAttach = top - 1;
+ }
+ }
+
+ if (column1 != null) {
+ table.Remove (column1);
+ if (destroy)
+ column1.Destroy ();
+ }
+
+ if (column2 != null) {
+ table.Remove (column2);
+ if (destroy)
+ column2.Destroy ();
+ }
- CheckMenuItem checkMenuItem = searchentry1.AddFilterOption (0, GettextCatalog.GetString ("Include binary files"));
+ table.NRows--;
+ }
+
+ static uint TableGetRowForItem (Table table, Widget item)
+ {
+ var child = (Table.TableChild) table[item];
+ return child.TopAttach;
+ }
+
+ void ShowReplaceUI ()
+ {
+ if (replaceMode)
+ return;
+
+ labelReplace = new Label { Text = GettextCatalog.GetString ("_Replace:"), Xalign = 0f, UseUnderline = true };
+ comboboxentryReplace = new ComboBoxEntry ();
+ LoadHistory ("MonoDevelop.FindReplaceDialogs.ReplaceHistory", comboboxentryReplace);
+ comboboxentryReplace.Show ();
+ labelReplace.Show ();
+
+ TableAddRow (tableFindAndReplace, 1, labelReplace, comboboxentryReplace);
+
+ buttonReplace = new Button () {
+ Label = "gtk-find-and-replace",
+ UseUnderline = true,
+ CanDefault = true,
+ UseStock = true,
+ };
+ // Note: We override the stock label text instead of using SetButtonIcon() because the
+ // theme may override whether or not the icons are shown. Using SetButtonIcon() would
+ // break the theme by forcing icons even if the theme says "no".
+ OverrideStockLabel (buttonReplace, GettextCatalog.GetString ("R_eplace"));
+ buttonReplace.Clicked += HandleReplaceClicked;
+ buttonReplace.Show ();
+
+ AddActionWidget (buttonReplace, 0);
+ buttonReplace.GrabDefault ();
+
+ replaceMode = true;
+
+ Requisition req = SizeRequest ();
+ Resize (req.Width, req.Height);
+ }
+
+ void HideReplaceUI ()
+ {
+ if (!replaceMode)
+ return;
+
+ buttonReplace.Destroy ();
+ buttonReplace = null;
+
+ buttonSearch.GrabDefault ();
+
+ StoreHistory ("MonoDevelop.FindReplaceDialogs.ReplaceHistory", comboboxentryReplace);
+ TableRemoveRow (tableFindAndReplace, 1, labelReplace, comboboxentryReplace, true);
+ comboboxentryReplace = null;
+ labelReplace = null;
+
+ replaceMode = false;
+
+ Requisition req = SizeRequest ();
+ Resize (req.Width, req.Height);
+ }
+
+ void ShowDirectoryPathUI ()
+ {
+ if (labelPath != null)
+ return;
+
+ // We want to add the Path combo box right below the Scope
+ uint row = TableGetRowForItem (tableFindAndReplace, labelScope) + 1;
+
+ // DirectoryScope
+ labelPath = new Label {
+ LabelProp = GettextCatalog.GetString ("_Path:"),
+ UseUnderline = true,
+ Xalign = 0f
+ };
+ labelPath.Show ();
+
+ hboxPath = new HBox ();
+ comboboxentryPath = new ComboBoxEntry ();
+ comboboxentryPath.Destroyed += ComboboxentryPathDestroyed;
+ LoadHistory ("MonoDevelop.FindReplaceDialogs.PathHistory", comboboxentryPath);
+ comboboxentryPath.Show ();
+ hboxPath.PackStart (comboboxentryPath);
+
+ labelPath.MnemonicWidget = comboboxentryPath;
+
+ buttonBrowsePaths = new Button { Label = "..." };
+ buttonBrowsePaths.Clicked += ButtonBrowsePathsClicked;
+ buttonBrowsePaths.Show ();
+ hboxPath.PackStart (buttonBrowsePaths, false, false, 0);
+ hboxPath.Show ();
+
+ // Add the Directory Path row to the table
+ TableAddRow (tableFindAndReplace, row++, labelPath, hboxPath);
+
+ // Add a checkbox for searching the directory recursively...
+ checkbuttonRecursively = new CheckButton {
+ Label = GettextCatalog.GetString ("Re_cursively"),
+ Active = properties.Get ("SearchPathRecursively", true),
+ UseUnderline = true
+ };
+
+ checkbuttonRecursively.Destroyed += CheckbuttonRecursivelyDestroyed;
+ checkbuttonRecursively.Show ();
+
+ TableAddRow (tableFindAndReplace, row, null, checkbuttonRecursively);
+ }
+
+ void HideDirectoryPathUI ()
+ {
+ if (labelPath == null)
+ return;
+
+ uint row = TableGetRowForItem (tableFindAndReplace, checkbuttonRecursively);
+ TableRemoveRow (tableFindAndReplace, row, null, checkbuttonRecursively, true);
+ checkbuttonRecursively = null;
+
+ row = TableGetRowForItem (tableFindAndReplace, labelPath);
+ TableRemoveRow (tableFindAndReplace, row, labelPath, hboxPath, true);
+ // comboboxentryPath and buttonBrowsePaths are destroyed with hboxPath
+ buttonBrowsePaths = null;
+ comboboxentryPath = null;
+ labelPath = null;
+ hboxPath = null;
+ }
+
+ void ShowFileMaskUI ()
+ {
+ if (labelFileMask != null)
+ return;
+
+ uint row;
+
+ if (checkbuttonRecursively != null)
+ row = TableGetRowForItem (tableFindAndReplace, checkbuttonRecursively) + 1;
+ else
+ row = TableGetRowForItem (tableFindAndReplace, labelScope) + 1;
+
+ labelFileMask = new Label {
+ LabelProp = GettextCatalog.GetString ("_File Mask:"),
+ UseUnderline = true,
+ Xalign = 0f
+ };
+ labelFileMask.Show ();
+
+ searchentryFileMask = new SearchEntry () {
+ ForceFilterButtonVisible = false,
+ IsCheckMenu = true,
+ ActiveFilterID = 0,
+ Visible = true,
+ Ready = true,
+ };
+
+ var checkMenuItem = searchentryFileMask.AddFilterOption (0, GettextCatalog.GetString ("Include binary files"));
checkMenuItem.DrawAsRadio = false;
checkMenuItem.Active = properties.Get ("IncludeBinaryFiles", false);
checkMenuItem.Toggled += delegate {
properties.Set ("IncludeBinaryFiles", checkMenuItem.Active);
};
- CheckMenuItem checkMenuItem1 = searchentry1.AddFilterOption (1, GettextCatalog.GetString ("Include hidden files and directories"));
+ var checkMenuItem1 = searchentryFileMask.AddFilterOption (1, GettextCatalog.GetString ("Include hidden files and directories"));
checkMenuItem1.DrawAsRadio = false;
checkMenuItem1.Active = properties.Get ("IncludeHiddenFiles", false);
checkMenuItem1.Toggled += delegate {
properties.Set ("IncludeHiddenFiles", checkMenuItem1.Active);
};
- Child.Show ();
+ searchentryFileMask.Query = properties.Get ("MonoDevelop.FindReplaceDialogs.FileMask", "");
+
+ searchentryFileMask.Show ();
+
+ TableAddRow (tableFindAndReplace, row, labelFileMask, searchentryFileMask);
}
-
- Label labelPath;
- ComboBoxEntry comboboxentryPath;
- HBox hboxPath;
- Button buttonBrowsePaths;
- CheckButton checkbuttonRecursively;
-
+
+ void HideFileMaskUI ()
+ {
+ if (labelFileMask == null)
+ return;
+
+ properties.Set ("MonoDevelop.FindReplaceDialogs.FileMask", searchentryFileMask.Query);
+
+ uint row = TableGetRowForItem (tableFindAndReplace, labelFileMask);
+ TableRemoveRow (tableFindAndReplace, row, labelFileMask, searchentryFileMask, true);
+ searchentryFileMask = null;
+ labelFileMask = null;
+ }
+
void HandleScopeChanged (object sender, EventArgs e)
{
- if (hboxPath != null) {
- // comboboxentryPath and buttonBrowsePaths are destroyed with hboxPath
- foreach (Widget w in new Widget[] {
- labelPath,
- hboxPath,
- checkbuttonRecursively
- }) {
- tableFindAndReplace.Remove (w);
- w.Destroy ();
- }
- labelPath = null;
- hboxPath = null;
- comboboxentryPath = null;
- buttonBrowsePaths = null;
- checkbuttonRecursively = null;
-
- //tableFindAndReplace.NRows = showReplace ? 4u : 3u;
-
- var childCombo = (Table.TableChild)tableFindAndReplace[labelFileMask];
- childCombo.TopAttach = tableFindAndReplace.NRows - 3;
- childCombo.BottomAttach = tableFindAndReplace.NRows - 2;
-
- childCombo = (Table.TableChild)tableFindAndReplace[searchentry1];
- childCombo.TopAttach = tableFindAndReplace.NRows - 3;
- childCombo.BottomAttach = tableFindAndReplace.NRows - 2;
- }
-
- if (comboboxScope.Active == ScopeDirectories) {
- // DirectoryScope
- tableFindAndReplace.NRows = showReplace ? 6u : 5u;
- labelPath = new Label {
- LabelProp = GettextCatalog.GetString("_Path:"),
- UseUnderline = true,
- Xalign = 0f
- };
-
- tableFindAndReplace.Add (labelPath);
-
- var childCombo = (Table.TableChild)tableFindAndReplace[labelPath];
- childCombo.TopAttach = tableFindAndReplace.NRows - 3;
- childCombo.BottomAttach = tableFindAndReplace.NRows - 2;
- childCombo.XOptions = childCombo.YOptions = (AttachOptions)4;
-
- hboxPath = new HBox ();
- var properties = PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
- comboboxentryPath = new ComboBoxEntry ();
- comboboxentryPath.Destroyed += ComboboxentryPathDestroyed;
- LoadHistory ("MonoDevelop.FindReplaceDialogs.PathHistory", comboboxentryPath);
- hboxPath.PackStart (comboboxentryPath);
-
- labelPath.MnemonicWidget = comboboxentryPath;
-
- var boxChild = (Box.BoxChild)hboxPath[comboboxentryPath];
- boxChild.Position = 0;
- boxChild.Expand = boxChild.Fill = true;
-
- buttonBrowsePaths = new Button { Label = "..." };
- buttonBrowsePaths.Clicked += ButtonBrowsePathsClicked;
- hboxPath.PackStart (buttonBrowsePaths);
- boxChild = (Box.BoxChild)hboxPath[buttonBrowsePaths];
- boxChild.Position = 1;
- boxChild.Expand = boxChild.Fill = false;
-
- tableFindAndReplace.Add (hboxPath);
- childCombo = (Table.TableChild)tableFindAndReplace[hboxPath];
- childCombo.TopAttach = tableFindAndReplace.NRows - 3;
- childCombo.BottomAttach = tableFindAndReplace.NRows - 2;
- childCombo.LeftAttach = 1;
- childCombo.RightAttach = 2;
- childCombo.XOptions = childCombo.YOptions = (AttachOptions)4;
-
- checkbuttonRecursively = new CheckButton {
- Label = GettextCatalog.GetString ("Re_cursively"),
- Active = properties.Get ("SearchPathRecursively", true),
- UseUnderline = true
- };
-
- checkbuttonRecursively.Destroyed += CheckbuttonRecursivelyDestroyed;
- tableFindAndReplace.Add (checkbuttonRecursively);
- childCombo = (Table.TableChild)tableFindAndReplace[checkbuttonRecursively];
- childCombo.TopAttach = tableFindAndReplace.NRows - 2;
- childCombo.BottomAttach = tableFindAndReplace.NRows - 1;
- childCombo.LeftAttach = 1;
- childCombo.RightAttach = 2;
- childCombo.XOptions = childCombo.YOptions = (AttachOptions)4;
-
- childCombo = (Table.TableChild)tableFindAndReplace[labelFileMask];
- childCombo.TopAttach = tableFindAndReplace.NRows - 1;
- childCombo.BottomAttach = tableFindAndReplace.NRows;
-
- childCombo = (Table.TableChild)tableFindAndReplace[searchentry1];
- childCombo.TopAttach = tableFindAndReplace.NRows - 1;
- childCombo.BottomAttach = tableFindAndReplace.NRows;
+ switch ((SearchScope) comboboxScope.Active) {
+ case SearchScope.WholeSolution:
+ HideDirectoryPathUI ();
+ ShowFileMaskUI ();
+ break;
+ case SearchScope.CurrentProject:
+ HideDirectoryPathUI ();
+ ShowFileMaskUI ();
+ break;
+ case SearchScope.AllOpenFiles:
+ HideDirectoryPathUI ();
+ ShowFileMaskUI ();
+ break;
+ case SearchScope.Directories:
+ ShowDirectoryPathUI ();
+ ShowFileMaskUI ();
+ break;
+ case SearchScope.CurrentDocument:
+ HideDirectoryPathUI ();
+ HideFileMaskUI ();
+ break;
+ case SearchScope.Selection:
+ HideDirectoryPathUI ();
+ HideFileMaskUI ();
+ break;
}
+
Requisition req = SizeRequest ();
Resize (req.Width, req.Height);
- // this.QueueResize ();
- ShowAll ();
+ //this.QueueResize ();
}
protected override void OnSizeRequested (ref Requisition requisition)
@@ -307,28 +515,24 @@ namespace MonoDevelop.Ide.FindInFiles
comboboxentryPath.Entry.Text = dlg.SelectedFile;
}
- static void CheckbuttonRecursivelyDestroyed (object sender, EventArgs e)
+ void CheckbuttonRecursivelyDestroyed (object sender, EventArgs e)
{
- var properties = PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
properties.Set ("SearchPathRecursively", ((CheckButton)sender).Active);
}
const char historySeparator = '\n';
void InitFromProperties ()
{
- var properties = PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
- comboboxScope.Active = properties.Get ("Scope", ScopeWholeSolution);
+ comboboxScope.Active = properties.Get ("Scope", (int) SearchScope.WholeSolution);
//checkbuttonRecursively.Active = properties.Get ("SearchPathRecursively", true);
- // checkbuttonFileMask.Active = properties.Get ("UseFileMask", false);
+ //checkbuttonFileMask.Active = properties.Get ("UseFileMask", false);
checkbuttonCaseSensitive.Active = properties.Get ("CaseSensitive", false);
checkbuttonWholeWordsOnly.Active = properties.Get ("WholeWordsOnly", false);
checkbuttonRegexSearch.Active = properties.Get ("RegexSearch", false);
LoadHistory ("MonoDevelop.FindReplaceDialogs.FindHistory", comboboxentryFind);
- if (showReplace)
- LoadHistory ("MonoDevelop.FindReplaceDialogs.ReplaceHistory", comboboxentryReplace);
- searchentry1.Query = properties.Get ("MonoDevelop.FindReplaceDialogs.FileMask", "");
+
// LoadHistory ("MonoDevelop.FindReplaceDialogs.PathHistory", comboboxentryPath);
// LoadHistory ("MonoDevelop.FindReplaceDialogs.FileMaskHistory", comboboxentryFileMask);
}
@@ -355,7 +559,6 @@ namespace MonoDevelop.Ide.FindInFiles
void StorePoperties ()
{
- var properties = PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
if (writeScope)
properties.Set ("Scope", comboboxScope.Active);
// properties.Set ("SearchPathRecursively", checkbuttonRecursively.Active);
@@ -365,9 +568,10 @@ namespace MonoDevelop.Ide.FindInFiles
properties.Set ("RegexSearch", checkbuttonRegexSearch.Active);
StoreHistory ("MonoDevelop.FindReplaceDialogs.FindHistory", comboboxentryFind);
- if (showReplace)
+ if (replaceMode)
StoreHistory ("MonoDevelop.FindReplaceDialogs.ReplaceHistory", comboboxentryReplace);
- properties.Set ("MonoDevelop.FindReplaceDialogs.FileMask", searchentry1.Query);
+ if (searchentryFileMask != null)
+ properties.Set ("MonoDevelop.FindReplaceDialogs.FileMask", searchentryFileMask.Query);
// StoreHistory ("MonoDevelop.FindReplaceDialogs.PathHistory", comboboxentryPath);
//StoreHistory ("MonoDevelop.FindReplaceDialogs.FileMaskHistory", comboboxentryFileMask);
}
@@ -428,25 +632,23 @@ namespace MonoDevelop.Ide.FindInFiles
Scope GetScope ()
{
-
- var properties = PropertyService.Get ("MonoDevelop.FindReplaceDialogs.SearchOptions", new Properties ());
Scope scope = null;
- switch (comboboxScope.Active) {
- case ScopeCurrentDocument:
+ switch ((SearchScope) comboboxScope.Active) {
+ case SearchScope.CurrentDocument:
scope = new DocumentScope ();
break;
- case ScopeSelection:
+ case SearchScope.Selection:
scope = new SelectionScope ();
break;
- case ScopeWholeSolution:
+ case SearchScope.WholeSolution:
if (!IdeApp.Workspace.IsOpen) {
MessageService.ShowError (GettextCatalog.GetString ("Currently there is no open solution."));
return null;
}
scope = new WholeSolutionScope ();
break;
- case ScopeCurrentProject:
+ case SearchScope.CurrentProject:
var currentSelectedProject = IdeApp.ProjectOperations.CurrentSelectedProject;
if (currentSelectedProject != null) {
scope = new WholeProjectScope (currentSelectedProject);
@@ -464,10 +666,10 @@ namespace MonoDevelop.Ide.FindInFiles
}
MessageService.ShowError (GettextCatalog.GetString ("Currently there is no open solution."));
return null;
- case ScopeAllOpenFiles:
+ case SearchScope.AllOpenFiles:
scope = new AllOpenFilesScope ();
break;
- case ScopeDirectories:
+ case SearchScope.Directories:
if (!System.IO.Directory.Exists (comboboxentryPath.Entry.Text)) {
MessageService.ShowError (string.Format (GettextCatalog.GetString ("Directory not found: {0}"),
comboboxentryPath.Entry.Text));
@@ -489,7 +691,7 @@ namespace MonoDevelop.Ide.FindInFiles
FilterOptions GetFilterOptions ()
{
return new FilterOptions {
- FileMask = !string.IsNullOrEmpty (searchentry1.Query) ? searchentry1.Query : "*",
+ FileMask = searchentryFileMask != null && !string.IsNullOrEmpty (searchentryFileMask.Query) ? searchentryFileMask.Query : "*",
CaseSensitive = checkbuttonCaseSensitive.Active,
RegexSearch = checkbuttonRegexSearch.Active,
WholeWordsOnly = checkbuttonWholeWordsOnly.Active
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeBuilder.cs
index 16b91b950c..84a4cb1f0b 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/NodeBuilder.cs
@@ -27,6 +27,9 @@
//
using System;
+using System.Text;
+using System.Collections.Generic;
+
using MonoDevelop.Core;
namespace MonoDevelop.Ide.Gui.Components
@@ -145,5 +148,74 @@ namespace MonoDevelop.Ide.Gui.Components
return (nodeAttr & attr) != 0;
}
+
+
+ static Dictionary<char, string> MarkupSpecials;
+
+ static NodeBuilder ()
+ {
+ byte c;
+
+ MarkupSpecials = new Dictionary<char, string> ();
+ MarkupSpecials.Add ('\'', "&apos;");
+ MarkupSpecials.Add ('"', "&quot;");
+ MarkupSpecials.Add ('&', "&amp;");
+ MarkupSpecials.Add ('<', "&lt;");
+ MarkupSpecials.Add ('>', "&gt;");
+
+ // Escape control characters.
+ for (c = 0x1; c <= 0x8; c++)
+ MarkupSpecials.Add ((char) c, string.Format ("&#0x{0:x};", c));
+ for (c = 0xb; c <= 0xc; c++)
+ MarkupSpecials.Add ((char) c, string.Format ("&#0x{0:x};", c));
+ for (c = 0xe; c <= 0x1f; c++)
+ MarkupSpecials.Add ((char) c, string.Format ("&#0x{0:x};", c));
+ for (c = 0x7f; c <= 0x84; c++)
+ MarkupSpecials.Add ((char) c, string.Format ("&#0x{0:x};", c));
+ for (c = 0x86; c <= 0x9f; c++)
+ MarkupSpecials.Add ((char) c, string.Format ("&#0x{0:x};", c));
+ }
+
+ static int EscapedLength (string text, out int first)
+ {
+ int length = text.Length;
+ string escaped;
+
+ first = -1;
+
+ for (int i = 0; i < text.Length; i++) {
+ if (MarkupSpecials.TryGetValue (text[i], out escaped)) {
+ if (first == -1)
+ first = i;
+
+ length += escaped.Length;
+ }
+ }
+
+ return length;
+ }
+
+ protected static string EscapeTextForMarkup (string text)
+ {
+ StringBuilder sb;
+ int length, i;
+
+ if ((length = EscapedLength (text, out i)) == text.Length)
+ return text;
+
+ sb = new StringBuilder (text, 0, i, length);
+ while (i < text.Length) {
+ string escaped;
+
+ if (MarkupSpecials.TryGetValue (text[i], out escaped))
+ sb.Append (escaped);
+ else
+ sb.Append (text[i]);
+
+ i++;
+ }
+
+ return sb.ToString ();
+ }
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs
index f7296152b0..0d27654db0 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Components/TreeBuilder.cs
@@ -153,10 +153,12 @@ namespace MonoDevelop.Ide.Gui.Components
}
return ats;
}
+
static int NullSortFunc (Gtk.TreeModel model, Gtk.TreeIter a, Gtk.TreeIter b)
{
return 0;
}
+
public void AddChildren (IEnumerable dataObjects)
{
NodeBuilder[] chain = null;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs
index 66562d6902..24a598d76b 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/FileSelectorDialog.cs
@@ -209,17 +209,36 @@ namespace MonoDevelop.Ide.Gui.Dialogs
if (Filenames.Length == 0 || Filename.Length == 0 || System.IO.Directory.Exists (Filename))
return;
+ int selected = 0;
+ int i = 0;
+
if (IdeApp.Services.ProjectService.IsWorkspaceItemFile (Filename) || IdeApp.Services.ProjectService.IsSolutionItemFile (Filename)) {
viewerSelector.AppendText (GettextCatalog.GetString ("Solution Workbench"));
currentViewers.Add (null);
+
+ if (closeWorkspaceCheck.Visible)
+ closeWorkspaceCheck.Active = true;
+
+ i++;
}
+
foreach (FileViewer vw in DisplayBindingService.GetFileViewers (Filename, null)) {
if (!vw.IsExternal) {
viewerSelector.AppendText (vw.Title);
currentViewers.Add (vw);
+
+ if (vw.CanUseAsDefault) {
+ if (closeWorkspaceCheck.Visible)
+ closeWorkspaceCheck.Active = false;
+
+ selected = i;
+ }
+
+ i++;
}
}
- viewerSelector.Active = 0;
+
+ viewerSelector.Active = selected;
viewerLabel.Sensitive = viewerSelector.Sensitive = currentViewers.Count > 1;
}
@@ -236,7 +255,7 @@ namespace MonoDevelop.Ide.Gui.Dialogs
closeWorkspaceCheck.Visible = false;
return;
}
-
+
if (IdeApp.Services.ProjectService.IsWorkspaceItemFile (Filename) || IdeApp.Services.ProjectService.IsSolutionItemFile (Filename)) {
encodingLabel.Sensitive = encodingMenu.Sensitive = (SelectedViewer != null);
closeWorkspaceCheck.Visible = viewerLabel.Visible && IdeApp.Workspace.IsOpen;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/GtkErrorDialog.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/GtkErrorDialog.cs
index 8545cb1bd8..b6edd1e439 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/GtkErrorDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Dialogs/GtkErrorDialog.cs
@@ -51,8 +51,15 @@ namespace MonoDevelop.Ide.Gui.Dialogs
detailsTextView.Buffer.TagTable.Add (tagWrap);
expander.Visible = false;
+
+ ActionArea.Homogeneous = true;
+ ActionArea.Remove (okButton);
}
+ public AlertButton[] Buttons {
+ get; set;
+ }
+
public string Message {
get { return descriptionLabel.Text; }
set {
@@ -63,7 +70,18 @@ namespace MonoDevelop.Ide.Gui.Dialogs
descriptionLabel.Text = message;
}
}
-
+
+ protected override void OnRealized ()
+ {
+ for (int i = 0; i < Buttons.Length; i++) {
+ Gtk.Button button;
+ button = new Gtk.Button (Buttons[i].Label);
+ button.ShowAll ();
+ AddActionWidget (button, i);
+ }
+ base.OnRealized ();
+ }
+
public void AddDetails (string text, bool wrapped)
{
TextIter it = detailsTextView.Buffer.EndIter;
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 5706fd1979..cba2856f1b 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
@@ -73,7 +73,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
{
ProjectFile file = (ProjectFile) dataObject;
- label = file.Link.IsNullOrEmpty ? file.FilePath.FileName : file.Link.FileName;
+ label = EscapeTextForMarkup (file.Link.IsNullOrEmpty ? file.FilePath.FileName : file.Link.FileName);
if (!File.Exists (file.FilePath)) {
label = "<span foreground='red'>" + label + "</span>";
}
@@ -369,7 +369,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
if (action == "--") {
info.AddSeparator ();
} else {
- CommandInfo ci = info.Add (BuildAction.Translate (action), action);
+ CommandInfo ci = info.Add (action, action);
ci.Checked = toggledActions.Contains (action);
if (ci.Checked)
ci.CheckedInconsistent = toggledActions.Count > 1;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
index fe22add135..54697fc392 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectFolderNodeBuilder.cs
@@ -125,7 +125,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
ProjectFolder folder = (ProjectFolder) dataObject;
- label = folder.Name;
+ label = EscapeTextForMarkup (folder.Name);
icon = folderOpenIcon;
closedIcon = folderClosedIcon;
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs
index d400ed7001..fb952fa75f 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectNodeBuilder.cs
@@ -113,19 +113,21 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
Project p = dataObject as Project;
+ string escapedProjectName = EscapeTextForMarkup (p.Name);
string iconName;
+
if (p is DotNetProject && ((DotNetProject)p).LanguageBinding == null) {
iconName = Gtk.Stock.DialogError;
- label = GettextCatalog.GetString ("{0} <span foreground='red' size='small'>(Unknown language '{1}')</span>", p.Name, ((DotNetProject)p).LanguageName);
+ label = GettextCatalog.GetString ("{0} <span foreground='red' size='small'>(Unknown language '{1}')</span>", escapedProjectName, ((DotNetProject)p).LanguageName);
} else if (p is UnknownProject) {
iconName = Gtk.Stock.DialogError;
- label = GettextCatalog.GetString ("{0} <span foreground='red' size='small'>(Unknown project type)</span>", p.Name);
+ label = GettextCatalog.GetString ("{0} <span foreground='red' size='small'>(Unknown project type)</span>", escapedProjectName);
} else {
iconName = p.StockIcon;
if (p.ParentSolution != null && p.ParentSolution.SingleStartup && p.ParentSolution.StartupItem == p)
- label = "<b>" + p.Name + "</b>";
+ label = "<b>" + escapedProjectName + "</b>";
else
- label = p.Name;
+ label = escapedProjectName;
}
icon = Context.GetIcon (iconName);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs
index cb6e3d25bd..e708277929 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceFolderNodeBuilder.cs
@@ -73,7 +73,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
{
- label = GettextCatalog.GetString ("References");
+ label = EscapeTextForMarkup (GettextCatalog.GetString ("References"));
icon = Context.GetIcon (Stock.OpenReferenceFolder);
closedIcon = Context.GetIcon (Stock.ClosedReferenceFolder);
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs
index 5c825ca0a8..0829cf52c9 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/ProjectReferenceNodeBuilder.cs
@@ -77,6 +77,8 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
icon = Context.GetIcon (Stock.Reference);
break;
}
+
+ label = EscapeTextForMarkup (label);
if (!pref.IsValid) {
label = "<span color='red'>" + label + "</span>";
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs
index 46108ab3cf..271f2ac781 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionFolderNodeBuilder.cs
@@ -78,7 +78,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
{
SolutionFolder combine = dataObject as SolutionFolder;
- label = combine.Name;
+ label = EscapeTextForMarkup (combine.Name);
icon = Context.GetIcon (Stock.SolutionFolderOpen);
closedIcon = Context.GetIcon (Stock.SolutionFolderClosed);
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs
index c8e9511efd..f935786e63 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SolutionNodeBuilder.cs
@@ -92,7 +92,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
{
Solution solution = dataObject as Solution;
- label = GettextCatalog.GetString ("Solution {0}", solution.Name);
+ label = EscapeTextForMarkup (GettextCatalog.GetString ("Solution {0}", solution.Name));
icon = Context.GetIcon (Stock.Solution);
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs
index eda6dda4be..da8c253351 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/SystemFileNodeBuilder.cs
@@ -65,7 +65,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
{
SystemFile file = (SystemFile) dataObject;
- label = file.Name;
+ label = EscapeTextForMarkup (file.Name);
icon = DesktopService.GetPixbufForFile (file.Path, Gtk.IconSize.Menu);
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs
index bf6bebe050..fe4d794750 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Gui.Pads.ProjectPad/UnknownEntryNodeBuilder.cs
@@ -53,7 +53,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
if (entry.LoadError.Length > 0) {
icon = Context.GetIcon (Gtk.Stock.DialogError);
- label = GettextCatalog.GetString ("{0} <span foreground='red' size='small'>(Load failed)</span>", entry.Name);
+ label = GettextCatalog.GetString ("{0} <span foreground='red' size='small'>(Load failed)</span>", EscapeTextForMarkup (entry.Name));
} else {
icon = Context.GetIcon (MonoDevelop.Ide.Gui.Stock.Project);
Gdk.Pixbuf gicon = Context.GetComposedIcon (icon, "fade");
@@ -62,7 +62,7 @@ namespace MonoDevelop.Ide.Gui.Pads.ProjectPad
Context.CacheComposedIcon (icon, "fade", gicon);
}
icon = gicon;
- label = entry.Name;
+ label = EscapeTextForMarkup (entry.Name);
}
}
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 bca050dd11..e6c7c7152d 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Projects/NewProjectDialog.cs
@@ -87,7 +87,7 @@ namespace MonoDevelop.Ide.Projects {
this.openSolution = openCombine;
TransientFor = IdeApp.Workbench.RootWindow;
Title = newSolution ? GettextCatalog.GetString ("New Solution") : GettextCatalog.GetString ("New Project");
-
+
InitializeTemplates ();
if (!newSolution) {
@@ -303,8 +303,8 @@ namespace MonoDevelop.Ide.Projects {
{
if (!btn_new.Sensitive)
return;
+
if (notebook.Page == 0) {
-
if (!CreateProject ())
return;
@@ -489,6 +489,8 @@ namespace MonoDevelop.Ide.Projects {
}
PathChanged (null, null);
+
+ btn_new.GrabDefault ();
} catch (Exception ex) {
txt_name.Sensitive = false;
btn_new.Sensitive = false;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs
index 2a00bf821d..3f2a95fa05 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide.Templates/SingleFileDescriptionTemplate.cs
@@ -266,8 +266,11 @@ namespace MonoDevelop.Ide.Templates
string mime = DesktopService.GetMimeTypeForUri (fileName);
CodeFormatter formatter = !string.IsNullOrEmpty (mime) ? CodeFormatterService.GetFormatter (mime) : null;
- if (formatter != null)
- content = formatter.FormatText (policyParent != null ? policyParent.Policies : null, content);
+ if (formatter != null) {
+ var formatted = formatter.FormatText (policyParent != null ? policyParent.Policies : null, content);
+ if (formatted != null)
+ content = formatted;
+ }
MemoryStream ms = new MemoryStream ();
byte[] data;
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs
index 5bb89973eb..f6d54c0421 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/IdeStartup.cs
@@ -466,29 +466,11 @@ namespace MonoDevelop.Ide
void HandleException (Exception ex, bool willShutdown)
{
- var original = LogReportingService.ReportCrashes;
+ // Log the crash to the MonoDevelop.log file first:
+ LoggingService.LogError (string.Format ("An unhandled exception has occured. Terminating MonoDevelop? {0}", willShutdown), ex);
- // Attempt to log the crash. If the user hasn't opted in, they will get prompted now to opt in/out.
- LogReportingService.ReportUnhandledException (ex);
-
- // If the user has just been prompted to enable crash reporting there is no need to display the
- // normal crash dialog this time round unless we are about to shut down.
- if (!original.HasValue && !willShutdown)
- return;
-
-
- string message;
- string title = GettextCatalog.GetString ("An unhandled exception has occurred.");
- var report = LogReportingService.ReportCrashes;
- if (report.HasValue && report.Value) {
- message = GettextCatalog.GetString ("Details of this crash have been automatically submitted for analysis.");
- } else {
- message = GettextCatalog.GetString ("Details of this crash have not been submitted as error reporting is disabled.");
- }
-
- if (willShutdown)
- message += GettextCatalog.GetString (" MonoDevelop will now close.");
- MessageService.ShowException (ex, message, title);
+ // Pass it off to the reporting service now.
+ LogReportingService.ReportUnhandledException (ex, willShutdown);
}
/// <summary>SDBM-style hash, bounded to a range of 1000.</summary>
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/LogReportingStartup.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/LogReportingStartup.cs
index 807eb9b758..412617f48e 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/LogReportingStartup.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/LogReportingStartup.cs
@@ -39,33 +39,48 @@ namespace MonoDevelop.Ide
{
protected override void Run ()
{
-// var pid = Process.GetCurrentProcess ().Id;
-// var directory = new DirectoryInfo (LogReportingService.CrashLogDirectory);
-//
-// if (Platform.IsMac) {
-// var crashmonitor = Path.Combine (PropertyService.EntryAssemblyPath, "MonoDevelopLogAgent.app");
-// Process.Start (new ProcessStartInfo ("open", string.Format ("-a {0} -n --args -pid {1} -log {2} -session {3}", crashmonitor, pid, directory.FullName, SystemInformation.SessionUuid)) {
-// UseShellExecute = false,
-// });
-// }
-
- LogReportingService.ShouldEnableReporting = () => {
- var title = GettextCatalog.GetString ("A crash has just occurred");
- var part1 = GettextCatalog.GetString ("Details of this crash, along with anonymous installation " +
- "information, can be uploaded to Xamarin to help diagnose the issue. " +
- "Do you wish to automatically upload this information for this and future crashes?");
- var part2 = GettextCatalog.GetString ("This setting can be changed in the 'Log Agent' section of the MonoDevelop preferences.");
-
- var result = MessageService.AskQuestion (
- title,
- string.Format ("{0}{1}{1}{2}", part1, Environment.NewLine, part2),
- AlertButton.No, AlertButton.Yes);
-
- return result == AlertButton.Yes;
- };
// Process cached crash reports if there are any and uploading is enabled
LogReportingService.ProcessCache ();
+
+ // Attach a handler for when exceptions need to be processed
+ LogReportingService.UnhandledErrorOccured = (enabled, ex, willShutdown) => {
+ AlertButton[] buttons = null;
+ string message = null;
+ string title = GettextCatalog.GetString ("An error has occurred");
+
+ if (enabled.HasValue) {
+ if (enabled.Value) {
+ message = GettextCatalog.GetString ("Details of this error have been automatically submitted for analysis.");
+ } else {
+ message = GettextCatalog.GetString ("Details of this error have not been submitted as error reporting is disabled.");
+ }
+ if (willShutdown)
+ message += GettextCatalog.GetString (" MonoDevelop will now close.");
+
+ buttons = new [] { AlertButton.Ok };
+ } else {
+ var part1 = GettextCatalog.GetString ("Details of this error, along with anonymous installation " +
+ "information, can be uploaded to Xamarin to help diagnose the issue. " +
+ "Do you wish to automatically upload this information for this and future crashes?");
+ var part2 = GettextCatalog.GetString ("This setting can be changed in the 'Log Agent' section of the MonoDevelop preferences.");
+ message = string.Format ("{0}{1}{1}{2}", part1, Environment.NewLine, part2);
+ buttons = new [] { AlertButton.Never, AlertButton.ThisTimeOnly, AlertButton.Always };
+ }
+
+ var result = MessageService.ShowException (ex, message, title, buttons);
+ if (enabled.HasValue) {
+ // In this case we will not change the value
+ return enabled;
+ } else if (result == AlertButton.Always) {
+ return true;
+ } else if (result == AlertButton.Never) {
+ return false;
+ } else {
+ // The user has decided to submit this one only
+ return null;
+ }
+ };
}
}
}
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/MessageService.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/MessageService.cs
index 15fffd9dfd..55d9279023 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/MessageService.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/MessageService.cs
@@ -39,8 +39,10 @@ namespace MonoDevelop.Ide
{
public class AlertButton
{
+ public static AlertButton Always = new AlertButton (GettextCatalog.GetString ("_Always"));
public static AlertButton Ok = new AlertButton (Gtk.Stock.Ok, true);
public static AlertButton Yes = new AlertButton (Gtk.Stock.Yes, true);
+ public static AlertButton Never = new AlertButton (GettextCatalog.GetString ("_Never"));
public static AlertButton No = new AlertButton (Gtk.Stock.No, true);
public static AlertButton Close = new AlertButton (Gtk.Stock.Close, true);
public static AlertButton Cancel = new AlertButton (Gtk.Stock.Cancel, true);
@@ -59,6 +61,7 @@ namespace MonoDevelop.Ide
public static AlertButton Stop = new AlertButton (Gtk.Stock.Stop, true);
public static AlertButton Proceed = new AlertButton (GettextCatalog.GetString ("_Proceed"));
public static AlertButton Replace = new AlertButton (GettextCatalog.GetString ("_Replace"));
+ public static AlertButton ThisTimeOnly = new AlertButton (GettextCatalog.GetString ("_This time only"));
public static AlertButton OverwriteFile = new AlertButton (GettextCatalog.GetString ("_Overwrite file"));
@@ -154,6 +157,11 @@ namespace MonoDevelop.Ide
ShowException (RootWindow, e, message, title);
}
+ public static AlertButton ShowException (Exception e, string message, string title, params AlertButton[] buttons)
+ {
+ return ShowException (RootWindow, e, message, title, buttons);
+ }
+
public static void ShowException (Gtk.Window parent, Exception e)
{
ShowException (RootWindow, e, e.Message);
@@ -161,12 +169,17 @@ namespace MonoDevelop.Ide
public static void ShowException (Gtk.Window parent, Exception e, string message)
{
- ShowException (parent, e, message, "An unhandled exception occured");
+ ShowException (parent, e, message, "An unexpected error occured");
}
public static void ShowException (Gtk.Window parent, Exception e, string message, string title)
{
- messageService.ShowException (parent, title, message, e);
+ ShowException (parent, e, message, title, null);
+ }
+
+ public static AlertButton ShowException (Gtk.Window parent, Exception e, string message, string title, params AlertButton[] buttons)
+ {
+ return messageService.ShowException (parent, title, message, e, buttons);
}
#endregion
@@ -421,15 +434,17 @@ namespace MonoDevelop.Ide
//The real GTK# code is wrapped in a GuiSyncObject to make calls synchronous on the GUI thread
private class InternalMessageService : GuiSyncObject
{
- public void ShowException (Gtk.Window parent, string title, string message, Exception e)
+ public AlertButton ShowException (Gtk.Window parent, string title, string message, Exception e, params AlertButton[] buttons)
{
var exceptionDialog = new ExceptionDialog () {
+ Buttons = buttons,
Title = title,
Message = message,
Exception = e,
TransientFor = parent,
};
exceptionDialog.Run ();
+ return exceptionDialog.ResultButton;
}
public AlertButton GenericAlert (MessageDescription message)
diff --git a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
index 2b44fa430e..e7b0c658cf 100644
--- a/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
+++ b/main/src/core/MonoDevelop.Ide/MonoDevelop.Ide/ProjectOperations.cs
@@ -882,6 +882,7 @@ namespace MonoDevelop.Ide
entry.Execute (monitor, context, IdeApp.Workspace.ActiveConfiguration);
} catch (Exception ex) {
monitor.ReportError (GettextCatalog.GetString ("Execution failed."), ex);
+ LoggingService.LogError ("Execution failed", ex);
} finally {
monitor.Dispose ();
}
@@ -1394,7 +1395,7 @@ namespace MonoDevelop.Ide
string fileBuildAction = buildAction;
if (string.IsNullOrEmpty (buildAction))
- fileBuildAction = project.GetDefaultBuildAction (file);
+ fileBuildAction = project.GetDefaultBuildAction (targetPath);
//files in the target directory get added directly in their current location without moving/copying
if (file.CanonicalPath == targetPath) {
@@ -1438,16 +1439,7 @@ namespace MonoDevelop.Ide
}
if (action == AddAction.Link) {
- //FIXME: MD project system doesn't cope with duplicate includes - project save/load will remove the file
- ProjectFile pf;
- if (filesInProject.TryGetValue (file, out pf)) {
- var link = pf.Link;
- MessageService.ShowWarning (GettextCatalog.GetString (
- "The link '{0}' in the project already includes the file '{1}'", link, file));
- continue;
- }
-
- pf = new ProjectFile (file, fileBuildAction) {
+ ProjectFile pf = new ProjectFile (file, fileBuildAction) {
Link = vpath
};
vpathsInProject.Add (pf.ProjectVirtualPath);
@@ -1879,9 +1871,14 @@ namespace MonoDevelop.Ide
class ProviderProxy : ITextEditorDataProvider, IEditableTextFile
{
TextEditorData data;
- public ProviderProxy (TextEditorData data)
+ string encoding;
+ bool bom;
+
+ public ProviderProxy (TextEditorData data, string encoding, bool bom)
{
this.data = data;
+ this.encoding = encoding;
+ this.bom = bom;
}
public TextEditorData GetTextEditorData ()
@@ -1889,6 +1886,11 @@ namespace MonoDevelop.Ide
return data;
}
+ void Save ()
+ {
+ TextFile.WriteFile (Name, Text, encoding, bom);
+ }
+
#region IEditableTextFile implementation
public FilePath Name { get { return data.Document.FileName; } }
@@ -1898,6 +1900,7 @@ namespace MonoDevelop.Ide
{
return data.GetTextBetween (startPosition, endPosition);
}
+
public char GetCharAt (int position)
{
return data.GetCharAt (position);
@@ -1918,15 +1921,15 @@ namespace MonoDevelop.Ide
public int InsertText (int position, string text)
{
int result = data.Insert (position, text);
- File.WriteAllText (Name, Text);
+ Save ();
+
return result;
}
-
public void DeleteText (int position, int length)
{
data.Remove (position, length);
- File.WriteAllText (Name, Text);
+ Save ();
}
public string Text {
@@ -1935,6 +1938,7 @@ namespace MonoDevelop.Ide
}
set {
data.Text = value;
+ Save ();
}
}
@@ -1951,10 +1955,12 @@ namespace MonoDevelop.Ide
}
}
+ TextFile file = TextFile.ReadFile (filePath);
TextEditorData data = new TextEditorData ();
data.Document.FileName = filePath;
- data.Text = File.ReadAllText (filePath);
- return new ProviderProxy (data);
+ data.Text = file.Text;
+
+ return new ProviderProxy (data, file.SourceEncoding, file.HadBOM);
}
public TextEditorData GetTextEditorData (FilePath filePath)
@@ -1972,9 +1978,10 @@ namespace MonoDevelop.Ide
}
}
+ TextFile file = TextFile.ReadFile (filePath);
TextEditorData data = new TextEditorData ();
data.Document.FileName = filePath;
- data.Text = File.ReadAllText (filePath);
+ data.Text = file.Text;
isOpen = false;
return data;
}
diff --git a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.FindInFiles.FindInFilesDialog.cs b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.FindInFiles.FindInFilesDialog.cs
index eb71ba9369..fbe36dd14c 100644
--- a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.FindInFiles.FindInFilesDialog.cs
+++ b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.FindInFiles.FindInFilesDialog.cs
@@ -5,22 +5,23 @@ namespace MonoDevelop.Ide.FindInFiles
public partial class FindInFilesDialog
{
private global::Gtk.VBox vbox2;
+ private global::Gtk.HBox hbox3;
+ private global::Gtk.RadioButton toggleFindInFiles;
+ private global::Gtk.VSeparator vseparator1;
+ private global::Gtk.RadioButton toggleReplaceInFiles;
private global::Gtk.HBox hbox1;
private global::Gtk.Table tableFindAndReplace;
private global::Gtk.ComboBoxEntry comboboxentryFind;
private global::Gtk.HBox hbox2;
private global::Gtk.ComboBox comboboxScope;
- private global::Gtk.Label labelFileMask;
private global::Gtk.Label labelFind;
private global::Gtk.Label labelScope;
- private global::MonoDevelop.Components.SearchEntry searchentry1;
private global::Gtk.Table table1;
private global::Gtk.CheckButton checkbuttonCaseSensitive;
private global::Gtk.CheckButton checkbuttonRegexSearch;
private global::Gtk.CheckButton checkbuttonWholeWordsOnly;
private global::Gtk.Button buttonStop;
private global::Gtk.Button buttonClose;
- private global::Gtk.Button buttonReplace;
private global::Gtk.Button buttonSearch;
protected virtual void Build ()
@@ -45,11 +46,54 @@ namespace MonoDevelop.Ide.FindInFiles
this.vbox2.Spacing = 6;
this.vbox2.BorderWidth = ((uint)(6));
// Container child vbox2.Gtk.Box+BoxChild
+ this.hbox3 = new global::Gtk.HBox ();
+ this.hbox3.Name = "hbox3";
+ this.hbox3.Spacing = 6;
+ // Container child hbox3.Gtk.Box+BoxChild
+ this.toggleFindInFiles = new global::Gtk.RadioButton (global::MonoDevelop.Core.GettextCatalog.GetString ("Find in Files"));
+ this.toggleFindInFiles.TooltipMarkup = "Switch to Find in Files";
+ this.toggleFindInFiles.CanFocus = true;
+ this.toggleFindInFiles.Name = "toggleFindInFiles";
+ this.toggleFindInFiles.DrawIndicator = false;
+ this.toggleFindInFiles.UseUnderline = true;
+ this.toggleFindInFiles.Relief = ((global::Gtk.ReliefStyle)(2));
+ this.toggleFindInFiles.Group = new global::GLib.SList (global::System.IntPtr.Zero);
+ this.hbox3.Add (this.toggleFindInFiles);
+ global::Gtk.Box.BoxChild w2 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.toggleFindInFiles]));
+ w2.Position = 0;
+ w2.Expand = false;
+ // Container child hbox3.Gtk.Box+BoxChild
+ this.vseparator1 = new global::Gtk.VSeparator ();
+ this.vseparator1.Name = "vseparator1";
+ this.hbox3.Add (this.vseparator1);
+ global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.vseparator1]));
+ w3.Position = 1;
+ w3.Expand = false;
+ w3.Fill = false;
+ // Container child hbox3.Gtk.Box+BoxChild
+ this.toggleReplaceInFiles = new global::Gtk.RadioButton (global::MonoDevelop.Core.GettextCatalog.GetString ("Replace in Files"));
+ this.toggleReplaceInFiles.TooltipMarkup = "Switch to Replace in Files";
+ this.toggleReplaceInFiles.CanFocus = true;
+ this.toggleReplaceInFiles.Name = "toggleReplaceInFiles";
+ this.toggleReplaceInFiles.DrawIndicator = false;
+ this.toggleReplaceInFiles.UseUnderline = true;
+ this.toggleReplaceInFiles.Relief = ((global::Gtk.ReliefStyle)(2));
+ this.toggleReplaceInFiles.Group = this.toggleFindInFiles.Group;
+ this.hbox3.Add (this.toggleReplaceInFiles);
+ global::Gtk.Box.BoxChild w4 = ((global::Gtk.Box.BoxChild)(this.hbox3 [this.toggleReplaceInFiles]));
+ w4.Position = 2;
+ w4.Expand = false;
+ this.vbox2.Add (this.hbox3);
+ global::Gtk.Box.BoxChild w5 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox3]));
+ w5.Position = 0;
+ w5.Expand = false;
+ w5.Fill = false;
+ // Container child vbox2.Gtk.Box+BoxChild
this.hbox1 = new global::Gtk.HBox ();
this.hbox1.Name = "hbox1";
this.hbox1.Spacing = 6;
// Container child hbox1.Gtk.Box+BoxChild
- this.tableFindAndReplace = new global::Gtk.Table (((uint)(3)), ((uint)(2)), false);
+ this.tableFindAndReplace = new global::Gtk.Table (((uint)(2)), ((uint)(2)), false);
this.tableFindAndReplace.Name = "tableFindAndReplace";
this.tableFindAndReplace.RowSpacing = ((uint)(6));
this.tableFindAndReplace.ColumnSpacing = ((uint)(6));
@@ -57,10 +101,10 @@ namespace MonoDevelop.Ide.FindInFiles
this.comboboxentryFind = global::Gtk.ComboBoxEntry.NewText ();
this.comboboxentryFind.Name = "comboboxentryFind";
this.tableFindAndReplace.Add (this.comboboxentryFind);
- global::Gtk.Table.TableChild w2 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.comboboxentryFind]));
- w2.LeftAttach = ((uint)(1));
- w2.RightAttach = ((uint)(2));
- w2.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.comboboxentryFind]));
+ w6.LeftAttach = ((uint)(1));
+ w6.RightAttach = ((uint)(2));
+ w6.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child tableFindAndReplace.Gtk.Table+TableChild
this.hbox2 = new global::Gtk.HBox ();
this.hbox2.Name = "hbox2";
@@ -69,30 +113,18 @@ namespace MonoDevelop.Ide.FindInFiles
this.comboboxScope = global::Gtk.ComboBox.NewText ();
this.comboboxScope.Name = "comboboxScope";
this.hbox2.Add (this.comboboxScope);
- global::Gtk.Box.BoxChild w3 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.comboboxScope]));
- w3.Position = 0;
- w3.Expand = false;
- w3.Fill = false;
+ global::Gtk.Box.BoxChild w7 = ((global::Gtk.Box.BoxChild)(this.hbox2 [this.comboboxScope]));
+ w7.Position = 0;
+ w7.Expand = false;
+ w7.Fill = false;
this.tableFindAndReplace.Add (this.hbox2);
- global::Gtk.Table.TableChild w4 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.hbox2]));
- w4.TopAttach = ((uint)(1));
- w4.BottomAttach = ((uint)(2));
- w4.LeftAttach = ((uint)(1));
- w4.RightAttach = ((uint)(2));
- w4.XOptions = ((global::Gtk.AttachOptions)(4));
- w4.YOptions = ((global::Gtk.AttachOptions)(4));
- // Container child tableFindAndReplace.Gtk.Table+TableChild
- this.labelFileMask = new global::Gtk.Label ();
- this.labelFileMask.Name = "labelFileMask";
- this.labelFileMask.Xalign = 0F;
- this.labelFileMask.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("_File Mask:");
- this.labelFileMask.UseUnderline = true;
- this.tableFindAndReplace.Add (this.labelFileMask);
- global::Gtk.Table.TableChild w5 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.labelFileMask]));
- w5.TopAttach = ((uint)(2));
- w5.BottomAttach = ((uint)(3));
- w5.XOptions = ((global::Gtk.AttachOptions)(4));
- w5.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.hbox2]));
+ w8.TopAttach = ((uint)(1));
+ w8.BottomAttach = ((uint)(2));
+ w8.LeftAttach = ((uint)(1));
+ w8.RightAttach = ((uint)(2));
+ w8.XOptions = ((global::Gtk.AttachOptions)(4));
+ w8.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child tableFindAndReplace.Gtk.Table+TableChild
this.labelFind = new global::Gtk.Label ();
this.labelFind.Name = "labelFind";
@@ -100,45 +132,29 @@ namespace MonoDevelop.Ide.FindInFiles
this.labelFind.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("_Find:");
this.labelFind.UseUnderline = true;
this.tableFindAndReplace.Add (this.labelFind);
- global::Gtk.Table.TableChild w6 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.labelFind]));
- w6.XOptions = ((global::Gtk.AttachOptions)(4));
- w6.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w9 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.labelFind]));
+ w9.XOptions = ((global::Gtk.AttachOptions)(4));
+ w9.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child tableFindAndReplace.Gtk.Table+TableChild
this.labelScope = new global::Gtk.Label ();
this.labelScope.Name = "labelScope";
this.labelScope.Xalign = 0F;
- this.labelScope.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("_Scope:");
+ this.labelScope.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("_Look in:");
this.labelScope.UseUnderline = true;
this.tableFindAndReplace.Add (this.labelScope);
- global::Gtk.Table.TableChild w7 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.labelScope]));
- w7.TopAttach = ((uint)(1));
- w7.BottomAttach = ((uint)(2));
- w7.XOptions = ((global::Gtk.AttachOptions)(4));
- w7.YOptions = ((global::Gtk.AttachOptions)(4));
- // Container child tableFindAndReplace.Gtk.Table+TableChild
- this.searchentry1 = new global::MonoDevelop.Components.SearchEntry ();
- this.searchentry1.Name = "searchentry1";
- this.searchentry1.ForceFilterButtonVisible = false;
- this.searchentry1.IsCheckMenu = false;
- this.searchentry1.ActiveFilterID = 0;
- this.searchentry1.Ready = false;
- this.searchentry1.HasFocus = false;
- this.tableFindAndReplace.Add (this.searchentry1);
- global::Gtk.Table.TableChild w8 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.searchentry1]));
- w8.TopAttach = ((uint)(2));
- w8.BottomAttach = ((uint)(3));
- w8.LeftAttach = ((uint)(1));
- w8.RightAttach = ((uint)(2));
- w8.XOptions = ((global::Gtk.AttachOptions)(4));
- w8.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w10 = ((global::Gtk.Table.TableChild)(this.tableFindAndReplace [this.labelScope]));
+ w10.TopAttach = ((uint)(1));
+ w10.BottomAttach = ((uint)(2));
+ w10.XOptions = ((global::Gtk.AttachOptions)(4));
+ w10.YOptions = ((global::Gtk.AttachOptions)(4));
this.hbox1.Add (this.tableFindAndReplace);
- global::Gtk.Box.BoxChild w9 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.tableFindAndReplace]));
- w9.Position = 0;
+ global::Gtk.Box.BoxChild w11 = ((global::Gtk.Box.BoxChild)(this.hbox1 [this.tableFindAndReplace]));
+ w11.Position = 0;
this.vbox2.Add (this.hbox1);
- global::Gtk.Box.BoxChild w10 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox1]));
- w10.Position = 0;
- w10.Expand = false;
- w10.Fill = false;
+ global::Gtk.Box.BoxChild w12 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.hbox1]));
+ w12.Position = 1;
+ w12.Expand = false;
+ w12.Fill = false;
// Container child vbox2.Gtk.Box+BoxChild
this.table1 = new global::Gtk.Table (((uint)(3)), ((uint)(2)), false);
this.table1.Name = "table1";
@@ -152,8 +168,8 @@ namespace MonoDevelop.Ide.FindInFiles
this.checkbuttonCaseSensitive.DrawIndicator = true;
this.checkbuttonCaseSensitive.UseUnderline = true;
this.table1.Add (this.checkbuttonCaseSensitive);
- global::Gtk.Table.TableChild w11 = ((global::Gtk.Table.TableChild)(this.table1 [this.checkbuttonCaseSensitive]));
- w11.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1 [this.checkbuttonCaseSensitive]));
+ w13.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.checkbuttonRegexSearch = new global::Gtk.CheckButton ();
this.checkbuttonRegexSearch.CanFocus = true;
@@ -162,10 +178,10 @@ namespace MonoDevelop.Ide.FindInFiles
this.checkbuttonRegexSearch.DrawIndicator = true;
this.checkbuttonRegexSearch.UseUnderline = true;
this.table1.Add (this.checkbuttonRegexSearch);
- global::Gtk.Table.TableChild w12 = ((global::Gtk.Table.TableChild)(this.table1 [this.checkbuttonRegexSearch]));
- w12.TopAttach = ((uint)(2));
- w12.BottomAttach = ((uint)(3));
- w12.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w14 = ((global::Gtk.Table.TableChild)(this.table1 [this.checkbuttonRegexSearch]));
+ w14.TopAttach = ((uint)(2));
+ w14.BottomAttach = ((uint)(3));
+ w14.YOptions = ((global::Gtk.AttachOptions)(4));
// Container child table1.Gtk.Table+TableChild
this.checkbuttonWholeWordsOnly = new global::Gtk.CheckButton ();
this.checkbuttonWholeWordsOnly.CanFocus = true;
@@ -174,26 +190,26 @@ namespace MonoDevelop.Ide.FindInFiles
this.checkbuttonWholeWordsOnly.DrawIndicator = true;
this.checkbuttonWholeWordsOnly.UseUnderline = true;
this.table1.Add (this.checkbuttonWholeWordsOnly);
- global::Gtk.Table.TableChild w13 = ((global::Gtk.Table.TableChild)(this.table1 [this.checkbuttonWholeWordsOnly]));
- w13.TopAttach = ((uint)(1));
- w13.BottomAttach = ((uint)(2));
- w13.YOptions = ((global::Gtk.AttachOptions)(4));
+ global::Gtk.Table.TableChild w15 = ((global::Gtk.Table.TableChild)(this.table1 [this.checkbuttonWholeWordsOnly]));
+ w15.TopAttach = ((uint)(1));
+ w15.BottomAttach = ((uint)(2));
+ w15.YOptions = ((global::Gtk.AttachOptions)(4));
this.vbox2.Add (this.table1);
- global::Gtk.Box.BoxChild w14 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.table1]));
- w14.Position = 1;
- w14.Expand = false;
- w14.Fill = false;
+ global::Gtk.Box.BoxChild w16 = ((global::Gtk.Box.BoxChild)(this.vbox2 [this.table1]));
+ w16.Position = 2;
+ w16.Expand = false;
+ w16.Fill = false;
w1.Add (this.vbox2);
- global::Gtk.Box.BoxChild w15 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox2]));
- w15.Position = 0;
- w15.Expand = false;
- w15.Fill = false;
+ global::Gtk.Box.BoxChild w17 = ((global::Gtk.Box.BoxChild)(w1 [this.vbox2]));
+ w17.Position = 0;
+ w17.Expand = false;
+ w17.Fill = false;
// Internal child MonoDevelop.Ide.FindInFiles.FindInFilesDialog.ActionArea
- global::Gtk.HButtonBox w16 = this.ActionArea;
- w16.Name = "dialog1_ActionArea";
- w16.Spacing = 6;
- w16.BorderWidth = ((uint)(5));
- w16.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
+ global::Gtk.HButtonBox w18 = this.ActionArea;
+ w18.Name = "dialog1_ActionArea";
+ w18.Spacing = 6;
+ w18.BorderWidth = ((uint)(5));
+ w18.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
this.buttonStop = new global::Gtk.Button ();
this.buttonStop.CanFocus = true;
@@ -202,9 +218,9 @@ namespace MonoDevelop.Ide.FindInFiles
this.buttonStop.UseUnderline = true;
this.buttonStop.Label = "gtk-stop";
this.AddActionWidget (this.buttonStop, 0);
- global::Gtk.ButtonBox.ButtonBoxChild w17 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16 [this.buttonStop]));
- w17.Expand = false;
- w17.Fill = false;
+ global::Gtk.ButtonBox.ButtonBoxChild w19 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w18 [this.buttonStop]));
+ w19.Expand = false;
+ w19.Fill = false;
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
this.buttonClose = new global::Gtk.Button ();
this.buttonClose.CanDefault = true;
@@ -214,36 +230,10 @@ namespace MonoDevelop.Ide.FindInFiles
this.buttonClose.UseUnderline = true;
this.buttonClose.Label = "gtk-close";
this.AddActionWidget (this.buttonClose, -7);
- global::Gtk.ButtonBox.ButtonBoxChild w18 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16 [this.buttonClose]));
- w18.Position = 1;
- w18.Expand = false;
- w18.Fill = false;
- // Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
- this.buttonReplace = new global::Gtk.Button ();
- this.buttonReplace.CanFocus = true;
- this.buttonReplace.Name = "buttonReplace";
- this.buttonReplace.UseUnderline = true;
- // Container child buttonReplace.Gtk.Container+ContainerChild
- global::Gtk.Alignment w19 = new global::Gtk.Alignment (0.5F, 0.5F, 0F, 0F);
- // Container child GtkAlignment.Gtk.Container+ContainerChild
- global::Gtk.HBox w20 = new global::Gtk.HBox ();
- w20.Spacing = 2;
- // Container child GtkHBox.Gtk.Container+ContainerChild
- global::Gtk.Image w21 = new global::Gtk.Image ();
- w21.Pixbuf = global::Stetic.IconLoader.LoadIcon (this, "gtk-find-and-replace", global::Gtk.IconSize.Menu);
- w20.Add (w21);
- // Container child GtkHBox.Gtk.Container+ContainerChild
- global::Gtk.Label w23 = new global::Gtk.Label ();
- w23.LabelProp = global::MonoDevelop.Core.GettextCatalog.GetString ("R_eplace");
- w23.UseUnderline = true;
- w20.Add (w23);
- w19.Add (w20);
- this.buttonReplace.Add (w19);
- this.AddActionWidget (this.buttonReplace, 0);
- global::Gtk.ButtonBox.ButtonBoxChild w27 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16 [this.buttonReplace]));
- w27.Position = 2;
- w27.Expand = false;
- w27.Fill = false;
+ global::Gtk.ButtonBox.ButtonBoxChild w20 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w18 [this.buttonClose]));
+ w20.Position = 1;
+ w20.Expand = false;
+ w20.Fill = false;
// Container child dialog1_ActionArea.Gtk.ButtonBox+ButtonBoxChild
this.buttonSearch = new global::Gtk.Button ();
this.buttonSearch.CanDefault = true;
@@ -253,15 +243,15 @@ namespace MonoDevelop.Ide.FindInFiles
this.buttonSearch.UseUnderline = true;
this.buttonSearch.Label = "gtk-find";
this.AddActionWidget (this.buttonSearch, 0);
- global::Gtk.ButtonBox.ButtonBoxChild w28 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w16 [this.buttonSearch]));
- w28.Position = 3;
- w28.Expand = false;
- w28.Fill = false;
+ global::Gtk.ButtonBox.ButtonBoxChild w21 = ((global::Gtk.ButtonBox.ButtonBoxChild)(w18 [this.buttonSearch]));
+ w21.Position = 2;
+ w21.Expand = false;
+ w21.Fill = false;
if ((this.Child != null)) {
this.Child.ShowAll ();
}
this.DefaultWidth = 456;
- this.DefaultHeight = 289;
+ this.DefaultHeight = 348;
this.labelFind.MnemonicWidget = this.comboboxentryFind;
this.labelScope.MnemonicWidget = this.comboboxScope;
this.Hide ();
diff --git a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.Dialogs.TipOfTheDayWindow.cs b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.Dialogs.TipOfTheDayWindow.cs
index 5bc366d997..890fbc07a9 100644
--- a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.Dialogs.TipOfTheDayWindow.cs
+++ b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.Dialogs.TipOfTheDayWindow.cs
@@ -100,6 +100,7 @@ namespace MonoDevelop.Ide.Gui.Dialogs
w7.Fill = false;
// Container child hbox5.Gtk.Box+BoxChild
this.hbuttonbox1 = new global::Gtk.HButtonBox ();
+ this.hbuttonbox1.Name = "hbuttonbox1";
this.hbuttonbox1.Spacing = 10;
this.hbuttonbox1.LayoutStyle = ((global::Gtk.ButtonBoxStyle)(4));
// Container child hbuttonbox1.Gtk.ButtonBox+ButtonBoxChild
diff --git a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.AddInsPanelWidget.cs b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.AddInsPanelWidget.cs
index 7cca07d7b3..876b67815a 100644
--- a/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.AddInsPanelWidget.cs
+++ b/main/src/core/MonoDevelop.Ide/gtk-gui/MonoDevelop.Ide.Gui.OptionPanels.AddInsPanelWidget.cs
@@ -55,6 +55,7 @@ namespace MonoDevelop.Ide.Gui.OptionPanels
this.radioHour = new global::Gtk.RadioButton (global::MonoDevelop.Core.GettextCatalog.GetString ("Every hour"));
this.radioHour.CanFocus = true;
this.radioHour.Name = "radioHour";
+ this.radioHour.Active = true;
this.radioHour.DrawIndicator = true;
this.radioHour.UseUnderline = true;
this.radioHour.Group = new global::GLib.SList (global::System.IntPtr.Zero);
diff --git a/main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic b/main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic
index 832d8246ff..2c7e3f2941 100644
--- a/main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic
+++ b/main/src/core/MonoDevelop.Ide/gtk-gui/gui.stetic
@@ -2317,6 +2317,7 @@ Diagnostic</property>
<property name="MemberName" />
<property name="CanFocus">True</property>
<property name="Label" translatable="yes">Every hour</property>
+ <property name="Active">True</property>
<property name="DrawIndicator">True</property>
<property name="HasLabel">True</property>
<property name="UseUnderline">True</property>
@@ -5522,7 +5523,7 @@ Large</property>
</widget>
</child>
</widget>
- <widget class="Gtk.Dialog" id="MonoDevelop.Ide.FindInFiles.FindInFilesDialog" design-size="456 289">
+ <widget class="Gtk.Dialog" id="MonoDevelop.Ide.FindInFiles.FindInFilesDialog" design-size="456 348">
<property name="MemberName" />
<property name="Visible">False</property>
<property name="TypeHint">Dialog</property>
@@ -5531,7 +5532,7 @@ Large</property>
<property name="DestroyWithParent">True</property>
<property name="SkipPagerHint">True</property>
<property name="SkipTaskbarHint">True</property>
- <property name="Buttons">4</property>
+ <property name="Buttons">3</property>
<property name="HelpButton">False</property>
<child internal-child="VBox">
<widget class="Gtk.VBox" id="dialog1_VBox">
@@ -5544,13 +5545,76 @@ Large</property>
<property name="Spacing">6</property>
<property name="BorderWidth">6</property>
<child>
+ <widget class="Gtk.HBox" id="hbox3">
+ <property name="MemberName" />
+ <property name="Spacing">6</property>
+ <child>
+ <widget class="Gtk.RadioButton" id="toggleFindInFiles">
+ <property name="MemberName" />
+ <property name="Tooltip" translatable="yes">Switch to Find in Files</property>
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes">Find in Files</property>
+ <property name="Active">True</property>
+ <property name="DrawIndicator">False</property>
+ <property name="HasLabel">True</property>
+ <property name="UseUnderline">True</property>
+ <property name="Relief">None</property>
+ <property name="Group">FindInFilesMode</property>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">False</property>
+ <property name="Expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.VSeparator" id="vseparator1">
+ <property name="MemberName" />
+ </widget>
+ <packing>
+ <property name="Position">1</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="Gtk.RadioButton" id="toggleReplaceInFiles">
+ <property name="MemberName" />
+ <property name="Tooltip" translatable="yes">Switch to Replace in Files</property>
+ <property name="CanFocus">True</property>
+ <property name="Label" translatable="yes">Replace in Files</property>
+ <property name="DrawIndicator">False</property>
+ <property name="HasLabel">True</property>
+ <property name="UseUnderline">True</property>
+ <property name="Relief">None</property>
+ <property name="Group">FindInFilesMode</property>
+ </widget>
+ <packing>
+ <property name="Position">2</property>
+ <property name="AutoSize">False</property>
+ <property name="Expand">False</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder />
+ </child>
+ </widget>
+ <packing>
+ <property name="Position">0</property>
+ <property name="AutoSize">True</property>
+ <property name="Expand">False</property>
+ <property name="Fill">False</property>
+ </packing>
+ </child>
+ <child>
<widget class="Gtk.HBox" id="hbox1">
<property name="MemberName" />
<property name="Spacing">6</property>
<child>
<widget class="Gtk.Table" id="tableFindAndReplace">
<property name="MemberName" />
- <property name="NRows">3</property>
+ <property name="NRows">2</property>
<property name="NColumns">2</property>
<property name="RowSpacing">6</property>
<property name="ColumnSpacing">6</property>
@@ -5608,28 +5672,6 @@ Large</property>
</packing>
</child>
<child>
- <widget class="Gtk.Label" id="labelFileMask">
- <property name="MemberName" />
- <property name="Xalign">0</property>
- <property name="LabelProp" translatable="yes">_File Mask:</property>
- <property name="UseUnderline">True</property>
- <property name="MnemonicWidget">comboboxentryFileMask</property>
- </widget>
- <packing>
- <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>
- <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="labelFind">
<property name="MemberName" />
<property name="Xalign">0</property>
@@ -5653,7 +5695,7 @@ Large</property>
<widget class="Gtk.Label" id="labelScope">
<property name="MemberName" />
<property name="Xalign">0</property>
- <property name="LabelProp" translatable="yes">_Scope:</property>
+ <property name="LabelProp" translatable="yes">_Look in:</property>
<property name="UseUnderline">True</property>
<property name="MnemonicWidget">comboboxScope</property>
</widget>
@@ -5671,31 +5713,6 @@ Large</property>
<property name="YShrink">False</property>
</packing>
</child>
- <child>
- <widget class="MonoDevelop.Components.SearchEntry" id="searchentry1">
- <property name="MemberName" />
- <property name="ForceFilterButtonVisible">False</property>
- <property name="IsCheckMenu">False</property>
- <property name="ActiveFilterID">0</property>
- <property name="Ready">False</property>
- <property name="HasFocus">False</property>
- </widget>
- <packing>
- <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>
- <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>
<packing>
<property name="Position">0</property>
@@ -5704,7 +5721,7 @@ Large</property>
</child>
</widget>
<packing>
- <property name="Position">0</property>
+ <property name="Position">1</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
@@ -5792,7 +5809,7 @@ Large</property>
</child>
</widget>
<packing>
- <property name="Position">1</property>
+ <property name="Position">2</property>
<property name="AutoSize">True</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
@@ -5813,7 +5830,7 @@ Large</property>
<property name="MemberName" />
<property name="Spacing">6</property>
<property name="BorderWidth">5</property>
- <property name="Size">4</property>
+ <property name="Size">3</property>
<property name="LayoutStyle">End</property>
<child>
<widget class="Gtk.Button" id="buttonStop">
@@ -5848,22 +5865,6 @@ Large</property>
</packing>
</child>
<child>
- <widget class="Gtk.Button" id="buttonReplace">
- <property name="MemberName" />
- <property name="CanFocus">True</property>
- <property name="Type">TextAndIcon</property>
- <property name="Icon">stock:gtk-find-and-replace Menu</property>
- <property name="Label" translatable="yes">R_eplace</property>
- <property name="UseUnderline">True</property>
- <property name="ResponseId">0</property>
- </widget>
- <packing>
- <property name="Position">2</property>
- <property name="Expand">False</property>
- <property name="Fill">False</property>
- </packing>
- </child>
- <child>
<widget class="Gtk.Button" id="buttonSearch">
<property name="MemberName" />
<property name="CanDefault">True</property>
@@ -5875,7 +5876,7 @@ Large</property>
<property name="label">gtk-find</property>
</widget>
<packing>
- <property name="Position">3</property>
+ <property name="Position">2</property>
<property name="Expand">False</property>
<property name="Fill">False</property>
</packing>
diff --git a/main/src/core/MonoDevelop.Ide/templates/EmptyTextFile.xft.xml b/main/src/core/MonoDevelop.Ide/templates/EmptyTextFile.xft.xml
index 4f0394b341..f03ac02143 100644
--- a/main/src/core/MonoDevelop.Ide/templates/EmptyTextFile.xft.xml
+++ b/main/src/core/MonoDevelop.Ide/templates/EmptyTextFile.xft.xml
@@ -9,7 +9,7 @@
</TemplateConfiguration>
<TemplateFiles>
- <File DefaultExtension=".txt" DefaultName="EmptyTextfile" BuildAction="None"/>
+ <File DefaultExtension=".txt" DefaultName="EmptyTextFile" />
</TemplateFiles>
<FileOptions/>
diff --git a/main/src/core/MonoDevelop.Ide/templates/EmptyXMLFile.xft.xml b/main/src/core/MonoDevelop.Ide/templates/EmptyXMLFile.xft.xml
index 06dcd401c2..4257807273 100644
--- a/main/src/core/MonoDevelop.Ide/templates/EmptyXMLFile.xft.xml
+++ b/main/src/core/MonoDevelop.Ide/templates/EmptyXMLFile.xft.xml
@@ -9,7 +9,10 @@
</TemplateConfiguration>
<TemplateFiles>
- <File DefaultExtension=".xml" DefaultName="EmptyXmlfile" BuildAction="None" />
+ <File DefaultExtension=".xml" DefaultName="EmptyXmlFile">
+<![CDATA[<?xml version="1.0" encoding="UTF-8" ?>
+]]>
+ </File>
</TemplateFiles>
<FileOptions/>
diff --git a/main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/ProjectBuilder.cs b/main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/ProjectBuilder.cs
index 1e79321a5d..47463538ff 100644
--- a/main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/ProjectBuilder.cs
+++ b/main/src/core/MonoDevelop.Projects.Formats.MSBuild/MonoDevelop.Projects.Formats.MSBuild/ProjectBuilder.cs
@@ -57,7 +57,12 @@ namespace MonoDevelop.Projects.Formats.MSBuild
RunSTA (delegate
{
engine = new Engine (binDir);
- engine.GlobalProperties.SetProperty ("BuildingInsideVisualStudio", "true");
+ engine.GlobalProperties.SetProperty ("BuildingInsideVisualStudio", "true");
+
+ //we don't have host compilers in MD, and this is set to true by some of the MS targets
+ //which causes it to always run the CoreCompile task if BuildingInsideVisualStudio is also
+ //true, because the VS in-process compiler would take care of the deps tracking
+ engine.GlobalProperties.SetProperty ("UseHostCompilerIfAvailable", "false");
consoleLogger = new MDConsoleLogger (LoggerVerbosity.Normal, LogWriteLine, null, null);
engine.RegisterLogger (consoleLogger);
diff --git a/main/src/tools/MacCrashLogger/MacCrashLogger.csproj b/main/src/tools/MacCrashLogger/MacCrashLogger.csproj
index a548ac9156..7dc78c06e4 100644
--- a/main/src/tools/MacCrashLogger/MacCrashLogger.csproj
+++ b/main/src/tools/MacCrashLogger/MacCrashLogger.csproj
@@ -53,7 +53,6 @@
<None Include="MonoMacLaunchScript.sh" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
- <Import Project="$(MSBuildExtensionsPath)\Mono\MonoMac\v0.0\Mono.MonoMac.targets" />
<ItemGroup>
<InterfaceDefinition Include="MainMenu.xib" />
</ItemGroup>
@@ -78,4 +77,4 @@
<Name>MonoDevelop.Core</Name>
</ProjectReference>
</ItemGroup>
-</Project> \ No newline at end of file
+</Project>