diff --git a/RainmeterStudio/Model/Project.cs b/RainmeterStudio/Model/Project.cs
index edc71b5c..aba7f634 100644
--- a/RainmeterStudio/Model/Project.cs
+++ b/RainmeterStudio/Model/Project.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;
+using RainmeterStudio.Storage;
namespace RainmeterStudio.Model
{
@@ -170,9 +171,26 @@ namespace RainmeterStudio.Model
///
/// Gets or sets the root node
///
- [XmlElement("root")]
+ [XmlIgnore]
public Tree Root { get; set; }
+ ///
+ /// Gets or sets the serializable root node
+ ///
+ /// Warning: not efficient
+ [XmlElement("root")]
+ public SerializableTree SerializableRoot
+ {
+ get
+ {
+ return Root.AsSerializableTree();
+ }
+ set
+ {
+ Root = value.AsTree();
+ }
+ }
+
#endregion
#region Constructor
diff --git a/RainmeterStudio/Model/Tree.cs b/RainmeterStudio/Model/Tree.cs
index 62466cf1..ac2ae0d6 100644
--- a/RainmeterStudio/Model/Tree.cs
+++ b/RainmeterStudio/Model/Tree.cs
@@ -7,13 +7,11 @@ using System.Xml.Serialization;
namespace RainmeterStudio.Model
{
- public class Tree
+ public class Tree : IList>
{
- [XmlElement("data")]
public T Data { get; set; }
- [XmlArray("children"), XmlArrayItem("child")]
- public ObservableCollection> Children { get; set; }
+ public ObservableCollection> Children { get; private set; }
public Tree()
{
@@ -150,5 +148,10 @@ namespace RainmeterStudio.Model
return hash;
}
+
+ System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
+ {
+ return Children.GetEnumerator();
+ }
}
}
diff --git a/RainmeterStudio/Properties/Settings.Designer.cs b/RainmeterStudio/Properties/Settings.Designer.cs
index 43b346eb..287a887e 100644
--- a/RainmeterStudio/Properties/Settings.Designer.cs
+++ b/RainmeterStudio/Properties/Settings.Designer.cs
@@ -25,12 +25,66 @@ namespace RainmeterStudio.Properties {
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- public global::System.Windows.Input.KeyGestureConverter asdf {
+ [global::System.Configuration.DefaultSettingValueAttribute("Ctrl+Shift+N")]
+ [global::System.Configuration.SettingsManageabilityAttribute(global::System.Configuration.SettingsManageability.Roaming)]
+ public string ProjectCreateCommand_Shortcut {
get {
- return ((global::System.Windows.Input.KeyGestureConverter)(this["asdf"]));
+ return ((string)(this["ProjectCreateCommand_Shortcut"]));
}
set {
- this["asdf"] = value;
+ this["ProjectCreateCommand_Shortcut"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("F5")]
+ [global::System.Configuration.SettingsManageabilityAttribute(global::System.Configuration.SettingsManageability.Roaming)]
+ public string ProjectPanel_RefreshCommand_Shortcut {
+ get {
+ return ((string)(this["ProjectPanel_RefreshCommand_Shortcut"]));
+ }
+ set {
+ this["ProjectPanel_RefreshCommand_Shortcut"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("Ctrl+N")]
+ [global::System.Configuration.SettingsManageabilityAttribute(global::System.Configuration.SettingsManageability.Roaming)]
+ public string DocumentCreateCommand_Shortcut {
+ get {
+ return ((string)(this["DocumentCreateCommand_Shortcut"]));
+ }
+ set {
+ this["DocumentCreateCommand_Shortcut"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("Ctrl+Shift+O")]
+ [global::System.Configuration.SettingsManageabilityAttribute(global::System.Configuration.SettingsManageability.Roaming)]
+ public string ProjectOpenCommand_Shortcut {
+ get {
+ return ((string)(this["ProjectOpenCommand_Shortcut"]));
+ }
+ set {
+ this["ProjectOpenCommand_Shortcut"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("Ctrl+W")]
+ [global::System.Configuration.SettingsManageabilityAttribute(global::System.Configuration.SettingsManageability.Roaming)]
+ public string DocumentCloseCommand_Shortcut {
+ get {
+ return ((string)(this["DocumentCloseCommand_Shortcut"]));
+ }
+ set {
+ this["DocumentCloseCommand_Shortcut"] = value;
}
}
}
diff --git a/RainmeterStudio/Properties/Settings.settings b/RainmeterStudio/Properties/Settings.settings
index 8f2fd95d..83ff4d8d 100644
--- a/RainmeterStudio/Properties/Settings.settings
+++ b/RainmeterStudio/Properties/Settings.settings
@@ -1,7 +1,21 @@
-
-
-
-
-
+
+
+
+
+ Ctrl+Shift+N
+
+
+ F5
+
+
+ Ctrl+N
+
+
+ Ctrl+Shift+O
+
+
+ Ctrl+W
+
+
\ No newline at end of file
diff --git a/RainmeterStudio/RainmeterStudio.csproj b/RainmeterStudio/RainmeterStudio.csproj
index 98c62880..852c5e00 100644
--- a/RainmeterStudio/RainmeterStudio.csproj
+++ b/RainmeterStudio/RainmeterStudio.csproj
@@ -109,9 +109,11 @@
+
+
CreateDocumentDialog.xaml
@@ -123,7 +125,9 @@
ProjectPanel.xaml
+
+
Designer
MSBuild:Compile
@@ -248,6 +252,9 @@
+
+
+