Browse Source

New file dialog remembers last selected item type.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3259 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 17 years ago
parent
commit
d92e88951d
  1. 64
      src/Main/Base/Project/Src/Gui/Dialogs/NewFileDialog.cs

64
src/Main/Base/Project/Src/Gui/Dialogs/NewFileDialog.cs

@ -50,7 +50,10 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -50,7 +50,10 @@ namespace ICSharpCode.SharpDevelop.Gui
InitializeTemplates();
InitializeView();
((TreeView)ControlDictionary["categoryTreeView"]).Select();
if (allowUntitledFiles)
categoryTreeView.Select();
else
ControlDictionary["fileNameTextBox"].Select();
} catch (Exception e) {
MessageService.ShowError(e);
}
@ -92,11 +95,11 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -92,11 +95,11 @@ namespace ICSharpCode.SharpDevelop.Gui
}
}
((ListView)ControlDictionary["templateListView"]).LargeImageList = imglist;
((ListView)ControlDictionary["templateListView"]).SmallImageList = smalllist;
templateListView.LargeImageList = imglist;
templateListView.SmallImageList = smalllist;
InsertCategories(null, categories);
TreeView categoryTreeView = ((TreeView)ControlDictionary["categoryTreeView"]);
categoryTreeView.TreeViewNodeSorter = new TemplateCategoryComparer();
categoryTreeView.Sort();
@ -104,11 +107,14 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -104,11 +107,14 @@ namespace ICSharpCode.SharpDevelop.Gui
categoryTreeView.SelectedNode = TreeViewHelper.GetNodeByPath(categoryTreeView, PropertyService.Get("Dialogs.NewFileDialog.LastSelectedCategory", "C#"));
}
ListView templateListView;
TreeView categoryTreeView;
void InsertCategories(TreeNode node, ArrayList catarray)
{
foreach (Category cat in catarray) {
if (node == null) {
((TreeView)ControlDictionary["categoryTreeView"]).Nodes.Add(cat);
categoryTreeView.Nodes.Add(cat);
} else {
node.Nodes.Add(cat);
}
@ -174,13 +180,19 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -174,13 +180,19 @@ namespace ICSharpCode.SharpDevelop.Gui
// tree view event handlers
void CategoryChange(object sender, TreeViewEventArgs e)
{
((ListView)ControlDictionary["templateListView"]).Items.Clear();
templateListView.Items.Clear();
HidePropertyGrid();
if (((TreeView)ControlDictionary["categoryTreeView"]).SelectedNode != null) {
foreach (TemplateItem item in ((Category)((TreeView)ControlDictionary["categoryTreeView"]).SelectedNode).Templates) {
((ListView)ControlDictionary["templateListView"]).Items.Add(item);
if (categoryTreeView.SelectedNode != null) {
foreach (TemplateItem item in ((Category)categoryTreeView.SelectedNode).Templates) {
templateListView.Items.Add(item);
}
}
string activeTemplate = PropertyService.Get("Dialogs.NewFileDialog.LastSelectedTemplate", "");
foreach (TemplateItem item in templateListView.Items) {
if (item.Template.Name == activeTemplate)
item.Selected = true;
}
}
void OnBeforeExpand(object sender, TreeViewCancelEventArgs e)
@ -279,8 +291,8 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -279,8 +291,8 @@ namespace ICSharpCode.SharpDevelop.Gui
FileTemplate SelectedTemplate {
get {
if (((ListView)ControlDictionary["templateListView"]).SelectedItems.Count == 1) {
return ((TemplateItem)((ListView)ControlDictionary["templateListView"]).SelectedItems[0]).Template;
if (templateListView.SelectedItems.Count == 1) {
return ((TemplateItem)templateListView.SelectedItems[0]).Template;
}
return null;
}
@ -321,7 +333,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -321,7 +333,7 @@ namespace ICSharpCode.SharpDevelop.Gui
// list view event handlers
void SelectedIndexChange(object sender, EventArgs e)
{
if (((ListView)ControlDictionary["templateListView"]).SelectedItems.Count == 1) {
if (templateListView.SelectedItems.Count == 1) {
ControlDictionary["descriptionLabel"].Text = StringParser.Parse(SelectedTemplate.Description);
ControlDictionary["openButton"].Enabled = true;
if (SelectedTemplate.HasProperties) {
@ -347,7 +359,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -347,7 +359,7 @@ namespace ICSharpCode.SharpDevelop.Gui
void CheckedChange(object sender, EventArgs e)
{
((ListView)ControlDictionary["templateListView"]).View = ((RadioButton)ControlDictionary["smallIconsRadioButton"]).Checked ? View.List : View.LargeIcon;
templateListView.View = ((RadioButton)ControlDictionary["smallIconsRadioButton"]).Checked ? View.List : View.LargeIcon;
}
public bool IsFilenameAvailable(string fileName)
@ -428,19 +440,21 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -428,19 +440,21 @@ namespace ICSharpCode.SharpDevelop.Gui
void OpenEvent(object sender, EventArgs e)
{
TreeView categoryTreeView = ((TreeView)ControlDictionary["categoryTreeView"]);
if (categoryTreeView.SelectedNode != null) {
PropertyService.Set("Dialogs.NewProjectDialog.LargeImages", ((RadioButton)ControlDictionary["largeIconsRadioButton"]).Checked);
PropertyService.Set("Dialogs.NewFileDialog.CategoryViewState", TreeViewHelper.GetViewStateString(categoryTreeView));
PropertyService.Set("Dialogs.NewFileDialog.LastSelectedCategory", TreeViewHelper.GetPath(categoryTreeView.SelectedNode));
}
createdFiles.Clear();
if (((ListView)ControlDictionary["templateListView"]).SelectedItems.Count == 1) {
if (templateListView.SelectedItems.Count == 1) {
if (!AllPropertiesHaveAValue) {
MessageService.ShowMessage("${res:Dialog.NewFile.FillOutFirstMessage}", "${res:Dialog.NewFile.FillOutFirstCaption}");
return;
}
TemplateItem item = (TemplateItem)((ListView)ControlDictionary["templateListView"]).SelectedItems[0];
TemplateItem item = (TemplateItem)templateListView.SelectedItems[0];
PropertyService.Set("Dialogs.NewFileDialog.LastSelectedTemplate", item.Template.Name);
string fileName;
StringParser.Properties["StandardNamespace"] = "DefaultNamespace";
if (allowUntitledFiles) {
@ -599,15 +613,19 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -599,15 +613,19 @@ namespace ICSharpCode.SharpDevelop.Gui
imglist.ColorDepth = ColorDepth.Depth32Bit;
imglist.Images.Add(IconService.GetBitmap("Icons.16x16.OpenFolderBitmap"));
imglist.Images.Add(IconService.GetBitmap("Icons.16x16.ClosedFolderBitmap"));
((TreeView)ControlDictionary["categoryTreeView"]).ImageList = imglist;
((TreeView)ControlDictionary["categoryTreeView"]).AfterSelect += new TreeViewEventHandler(CategoryChange);
((TreeView)ControlDictionary["categoryTreeView"]).BeforeSelect += new TreeViewCancelEventHandler(OnBeforeExpand);
((TreeView)ControlDictionary["categoryTreeView"]).BeforeExpand += new TreeViewCancelEventHandler(OnBeforeExpand);
((TreeView)ControlDictionary["categoryTreeView"]).BeforeCollapse += new TreeViewCancelEventHandler(OnBeforeCollapse);
templateListView = ((ListView)ControlDictionary["templateListView"]);
categoryTreeView = ((TreeView)ControlDictionary["categoryTreeView"]);
categoryTreeView.ImageList = imglist;
categoryTreeView.AfterSelect += new TreeViewEventHandler(CategoryChange);
categoryTreeView.BeforeSelect += new TreeViewCancelEventHandler(OnBeforeExpand);
categoryTreeView.BeforeExpand += new TreeViewCancelEventHandler(OnBeforeExpand);
categoryTreeView.BeforeCollapse += new TreeViewCancelEventHandler(OnBeforeCollapse);
((ListView)ControlDictionary["templateListView"]).SelectedIndexChanged += new EventHandler(SelectedIndexChange);
((ListView)ControlDictionary["templateListView"]).DoubleClick += new EventHandler(OpenEvent);
templateListView.SelectedIndexChanged += new EventHandler(SelectedIndexChange);
templateListView.DoubleClick += new EventHandler(OpenEvent);
ControlDictionary["openButton"].Click += new EventHandler(OpenEvent);

Loading…
Cancel
Save