From: <ju...@us...> - 2006-05-30 11:32:22
|
Revision: 393 Author: julienq Date: 2006-05-30 04:32:12 -0700 (Tue, 30 May 2006) ViewCVS: http://svn.sourceforge.net/urakawa/?rev=393&view=rev Log Message: ----------- Project infrastructure is working, except persistence Modified Paths: -------------- trunk/urakawa/application/Obi/Obi/Obi.csproj trunk/urakawa/application/Obi/Obi/ObiForm.Designer.cs trunk/urakawa/application/Obi/Obi/ObiForm.cs trunk/urakawa/application/Obi/Obi/Project.cs trunk/urakawa/application/Obi/Obi/UserProfile.cs trunk/urakawa/application/Obi/Obi/messages.Designer.cs trunk/urakawa/application/Obi/Obi/messages.resx Modified: trunk/urakawa/application/Obi/Obi/Obi.csproj =================================================================== --- trunk/urakawa/application/Obi/Obi/Obi.csproj 2006-05-30 01:09:14 UTC (rev 392) +++ trunk/urakawa/application/Obi/Obi/Obi.csproj 2006-05-30 11:32:12 UTC (rev 393) @@ -32,6 +32,7 @@ <Reference Include="System.Data" /> <Reference Include="System.Deployment" /> <Reference Include="System.Drawing" /> + <Reference Include="System.Runtime.Serialization.Formatters.Soap" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> </ItemGroup> Modified: trunk/urakawa/application/Obi/Obi/ObiForm.Designer.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ObiForm.Designer.cs 2006-05-30 01:09:14 UTC (rev 392) +++ trunk/urakawa/application/Obi/Obi/ObiForm.Designer.cs 2006-05-30 11:32:12 UTC (rev 393) @@ -33,13 +33,13 @@ this.createNewProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.openrecentProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.openrecentSeparator = new System.Windows.Forms.ToolStripSeparator(); this.clearListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.closeProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.saveProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.saveProjectasToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.revertToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.closeProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -98,30 +98,24 @@ // openrecentProjectToolStripMenuItem // this.openrecentProjectToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripSeparator4, + this.openrecentSeparator, this.clearListToolStripMenuItem}); this.openrecentProjectToolStripMenuItem.Name = "openrecentProjectToolStripMenuItem"; this.openrecentProjectToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.openrecentProjectToolStripMenuItem.Text = "Open &recent project"; // - // toolStripSeparator4 + // openrecentSeparator // - this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(114, 6); + this.openrecentSeparator.Name = "openrecentSeparator"; + this.openrecentSeparator.Size = new System.Drawing.Size(114, 6); // // clearListToolStripMenuItem // this.clearListToolStripMenuItem.Name = "clearListToolStripMenuItem"; this.clearListToolStripMenuItem.Size = new System.Drawing.Size(117, 22); this.clearListToolStripMenuItem.Text = "Clear list"; + this.clearListToolStripMenuItem.Click += new System.EventHandler(this.clearListToolStripMenuItem_Click); // - // closeProjectToolStripMenuItem - // - this.closeProjectToolStripMenuItem.Name = "closeProjectToolStripMenuItem"; - this.closeProjectToolStripMenuItem.Size = new System.Drawing.Size(171, 22); - this.closeProjectToolStripMenuItem.Text = "&Close project"; - this.closeProjectToolStripMenuItem.Click += new System.EventHandler(this.closeProjectToolStripMenuItem_Click); - // // toolStripSeparator2 // this.toolStripSeparator2.Name = "toolStripSeparator2"; @@ -132,19 +126,29 @@ this.saveProjectToolStripMenuItem.Name = "saveProjectToolStripMenuItem"; this.saveProjectToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.saveProjectToolStripMenuItem.Text = "&Save project"; + this.saveProjectToolStripMenuItem.Click += new System.EventHandler(this.saveProjectToolStripMenuItem_Click); // // saveProjectasToolStripMenuItem // this.saveProjectasToolStripMenuItem.Name = "saveProjectasToolStripMenuItem"; this.saveProjectasToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.saveProjectasToolStripMenuItem.Text = "Save project &as"; + this.saveProjectasToolStripMenuItem.Click += new System.EventHandler(this.saveProjectasToolStripMenuItem_Click); // // revertToolStripMenuItem // this.revertToolStripMenuItem.Name = "revertToolStripMenuItem"; this.revertToolStripMenuItem.Size = new System.Drawing.Size(171, 22); this.revertToolStripMenuItem.Text = "&Discard changes"; + this.revertToolStripMenuItem.Click += new System.EventHandler(this.revertToolStripMenuItem_Click); // + // closeProjectToolStripMenuItem + // + this.closeProjectToolStripMenuItem.Name = "closeProjectToolStripMenuItem"; + this.closeProjectToolStripMenuItem.Size = new System.Drawing.Size(171, 22); + this.closeProjectToolStripMenuItem.Text = "&Close project"; + this.closeProjectToolStripMenuItem.Click += new System.EventHandler(this.closeProjectToolStripMenuItem_Click); + // // toolStripSeparator3 // this.toolStripSeparator3.Name = "toolStripSeparator3"; @@ -224,6 +228,7 @@ this.MainMenuStrip = this.menuStrip1; this.Name = "ObiForm"; this.Text = "Obi"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ObiForm_FormClosing); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.statusStrip1.ResumeLayout(false); @@ -254,7 +259,7 @@ private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; private System.Windows.Forms.ToolStripMenuItem revertToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; + private System.Windows.Forms.ToolStripSeparator openrecentSeparator; private System.Windows.Forms.ToolStripMenuItem clearListToolStripMenuItem; Modified: trunk/urakawa/application/Obi/Obi/ObiForm.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ObiForm.cs 2006-05-30 01:09:14 UTC (rev 392) +++ trunk/urakawa/application/Obi/Obi/ObiForm.cs 2006-05-30 11:32:12 UTC (rev 393) @@ -1,8 +1,13 @@ using System; +using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; +using System.IO; +using System.IO.IsolatedStorage; +using System.Runtime.Serialization; +using System.Runtime.Serialization.Formatters.Soap; using System.Text; using System.Windows.Forms; @@ -13,10 +18,11 @@ public partial class ObiForm : Form { private Project mProject; // the project currently being authored + private Settings mSettings; // application settings private UndoRedoStack mUndoStack; // the undo stack for this project [should belong to the project; saved together] + + private event Events.Project.StateChangedHandler ProjectStateChanged; // track changes on the project - private event Events.Project.StateChangedHandler ProjectStateChanged; - /// <summary> /// Initialize a new form. No project is opened at creation time. /// </summary> @@ -27,7 +33,7 @@ mProject = null; ProjectStateChanged += new Events.Project.StateChangedHandler(mProject_StateChanged); GUIUpdateNoProject(); - + GetSettings(); mUndoStack = new UndoRedoStack(); undo_label = mUndoToolStripMenuItem.Text; redo_label = mRedoToolStripMenuItem.Text; @@ -43,7 +49,7 @@ { if (ClosedProject()) { - mProject = new Project(); + mProject = new Project(null); OnProjectCreated(); } else @@ -52,8 +58,10 @@ } } + private const string XukFilter = "Obi project file (*.xuk)|*.xuk"; + /// <summary> - /// Open a project from a XUK file. + /// Open a project from a XUK file by prompting the user for a file location. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> @@ -62,19 +70,200 @@ if (ClosedProject()) { OpenFileDialog dialog = new OpenFileDialog(); - dialog.Filter = "Obi project file (*.xuk)|*.xuk"; + dialog.Filter = XukFilter; DialogResult result = dialog.ShowDialog(); if (result == DialogResult.OK) { mProject = new Project(dialog.FileName); + AddRecentProject(dialog.FileName); OnProjectOpened(); - return; } + else + { + Ready(); + } } + else + { + Ready(); + } + } + + /// <summary> + /// Add a project to the list of recent projects. + /// If the project was already in the list, promote it to the top of the list. + /// Update the recent menu if necessary. + /// </summary> + /// <param name="path">The path of the project to add.</param> + private void AddRecentProject(string path) + { + if (mSettings.RecentProjects.Count == 0) + { + openrecentProjectToolStripMenuItem.Enabled = true; + } + else + { + if (mSettings.RecentProjects.Contains(path)) + { + int i = mSettings.RecentProjects.IndexOf(path); + mSettings.RecentProjects.RemoveAt(i); + openrecentProjectToolStripMenuItem.DropDownItems.RemoveAt(i); + } + } + mSettings.RecentProjects.Insert(0, path); + ToolStripMenuItem item = new ToolStripMenuItem(); + item.Text = Path.GetFileName(path); + item.Click += new System.EventHandler(delegate(object sender, EventArgs e) { OpenProject(path); }); + openrecentProjectToolStripMenuItem.DropDownItems.Insert(0, item); + } + + /// <summary> + /// Open a project from a XUK file. + /// </summary> + /// <param name="path">The path of the XUK file to open.</param> + private void OpenProject(string path) + { + if (ClosedProject()) + { + mProject = new Project(path); + AddRecentProject(path); + OnProjectOpened(); + } + else + { + Ready(); + } + } + + /// <summary> + /// Clear the list of recently opened files (prompt the user first.) + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void clearListToolStripMenuItem_Click(object sender, EventArgs e) + { + DialogResult result = MessageBox.Show(Localizer.Message("clear_recent_text"), + Localizer.Message("clear_recent_caption"), MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (result == DialogResult.Yes) + { + ClearRecentList(); + } Ready(); } /// <summary> + /// Clear the list of recent projects. + /// </summary> + private void ClearRecentList() + { + for (int i = mSettings.RecentProjects.Count - 1; i >= 0; --i) + { + openrecentProjectToolStripMenuItem.DropDownItems.RemoveAt(i); + } + mSettings.RecentProjects.Clear(); + openrecentProjectToolStripMenuItem.Enabled = false; + } + + /// <summary> + /// Save the current project under its current name, or ask for one if none is defined yet. + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void saveProjectToolStripMenuItem_Click(object sender, EventArgs e) + { + if (mProject.Unsaved) + { + if (mProject.XUKPath == null) + { + SaveProjectAs(); + } + else + { + mProject.Save(); + OnProjectSaved(); + } + } + else + { + Ready(); + } + } + + /// <summary> + /// Save the project under a (presumably) different name. + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void saveProjectasToolStripMenuItem_Click(object sender, EventArgs e) + { + SaveProjectAs(); + } + + /// <summary> + /// Save the project under a file name supplied by the user through a file chooser. + /// The currently open project is still the old project. + /// </summary> + private void SaveProjectAs() + { + SaveFileDialog dialog = new SaveFileDialog(); + dialog.Filter = XukFilter; + DialogResult result = dialog.ShowDialog(); + if (result == DialogResult.OK) + { + if (mProject.SetXukPath(dialog.FileName)) + { + mProject.Save(); + OnProjectSaved(); + } + else + { + mProject.SaveAs(dialog.FileName); + Debug(String.Format(Localizer.Message("debug_saved_project"), dialog.FileName)); + } + AddRecentProject(dialog.FileName); + } + else + { + Ready(); + } + } + + /// <summary> + /// Revert the project to its last saved state, or if it was never saved, just reset it to a blank project. + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void revertToolStripMenuItem_Click(object sender, EventArgs e) + { + if (mProject.Unsaved) + { + DialogResult discard = MessageBox.Show(Localizer.Message("discard_changes_text"), + Localizer.Message("discard_changes_caption"), MessageBoxButtons.YesNo, MessageBoxIcon.Question); + if (discard == DialogResult.Yes) + { + if (mProject.XUKPath == null) + { + mProject = new Project(null); + OnProjectCreated(); + } + else + { + mProject = new Project(mProject.XUKPath); + OnProjectOpened(); + } + } + else + { + Ready(); + } + } + else + { + Ready(); + } + } + + /// <summary> /// Close the current project. /// </summary> /// <param name="sender"></param> @@ -113,7 +302,7 @@ if (mProject != null && mProject.Unsaved) { DialogResult result = MessageBox.Show(Localizer.Message("closed_project_text"), - Localizer.Message("close_project_caption"), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); + Localizer.Message("closed_project_caption"), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (result == DialogResult.Yes) { mProject.Save(); @@ -132,6 +321,7 @@ } else { + OnProjectClosed(); Ready(); return true; } @@ -217,6 +407,7 @@ /// </summary> private void GUIUpdateNoProject() { + this.Text = "Obi"; closeProjectToolStripMenuItem.Enabled = false; saveProjectToolStripMenuItem.Enabled = false; saveProjectasToolStripMenuItem.Enabled = false; @@ -230,6 +421,7 @@ /// </summary> private void GUIUpdateSavedProject() { + this.Text = mProject.Title + " - Obi"; closeProjectToolStripMenuItem.Enabled = true; saveProjectToolStripMenuItem.Enabled = false; saveProjectasToolStripMenuItem.Enabled = true; @@ -242,6 +434,7 @@ /// </summary> private void GUIUpdateUnsavedProject() { + this.Text = mProject.Title + "* - Obi"; closeProjectToolStripMenuItem.Enabled = true; saveProjectToolStripMenuItem.Enabled = true; saveProjectasToolStripMenuItem.Enabled = true; @@ -250,16 +443,81 @@ Ready(); } + /// <summary> + /// Update the status bar to say "Ready." + /// </summary> private void Ready() { toolStripStatusLabel1.Text = Localizer.Message("ready"); } + private const string SettingsFileName = "obi_settings.xml"; - + /// <summary> + /// Read the settings, or create an empty settings object. + /// </summary> + private void GetSettings() + { + mSettings = new Settings(); + mSettings.RecentProjects = new ArrayList(); + ClearRecentList(); + } + /*private void GetSettings() + { + mSettings = new Settings(); + try + { + IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForDomain(); + IsolatedStorageFileStream stream = + new IsolatedStorageFileStream(SettingsFileName, FileMode.Open, FileAccess.Read, file); + MessageBox.Show("OK (stream)", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); + SoapFormatter soap = new SoapFormatter(); + mSettings.RecentProjects = (ArrayList)soap.Deserialize(stream); + ClearRecentList(); + for (int i = mSettings.RecentProjects.Count - 1; i >= 0; --i) + { + //AddRecentProject((string) mSettings.RecentProjects[i]); + Console.WriteLine("Add {0} ({1})", (string)mSettings.RecentProjects[i], i); + } + MessageBox.Show("OK (deserialize)", "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); + stream.Close(); + } + catch (Exception e) + { + mSettings.RecentProjects = new ArrayList(); + ClearRecentList(); + } + }*/ + /// <summary> + /// Save the settings when closing. + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void ObiForm_FormClosing(object sender, FormClosingEventArgs e) + { + /*try + { + IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForDomain(); + IsolatedStorageFileStream stream = + new IsolatedStorageFileStream(SettingsFileName, FileMode.Create, FileAccess.Write, file); + SoapFormatter soap = new SoapFormatter(); + soap.Serialize(stream, mSettings.RecentProjects); + stream.Close(); + string[] dirs = file.GetFileNames("*.*"); + MessageBox.Show("OK: " + String.Join(" :: ", dirs), "OK", MessageBoxButtons.OK, MessageBoxIcon.Information); + } + catch (Exception x) + { + MessageBox.Show(String.Format(Localizer.Message("save_settings_error_text"), x.Message), + Localizer.Message("save_settings_error_caption"), MessageBoxButtons.OK, MessageBoxIcon.Error); + }*/ + } + + + private string undo_label; private string redo_label; @@ -319,4 +577,13 @@ } } } + + /// <summary> + /// Various persistent application settings. + /// </summary> + [Serializable()] + public class Settings + { + public ArrayList RecentProjects; // paths to projects recently opened + } } \ No newline at end of file Modified: trunk/urakawa/application/Obi/Obi/Project.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/Project.cs 2006-05-30 01:09:14 UTC (rev 392) +++ trunk/urakawa/application/Obi/Obi/Project.cs 2006-05-30 11:32:12 UTC (rev 393) @@ -8,6 +8,7 @@ { private bool mUnsaved; // true if the project was modified and not saved private string mXUKPath; // path to the XUK file + private string mTitle; // temporary title (from file name) public bool Unsaved { @@ -25,12 +26,12 @@ } } - /// <summary> - /// Create a blank project. - /// </summary> - public Project() + public string Title { - mUnsaved = false; + get + { + return mTitle; + } } /// <summary> @@ -41,16 +42,50 @@ { mUnsaved = false; mXUKPath = xukPath; + mTitle = xukPath == null ? "(Untitled project)" : System.IO.Path.GetFileNameWithoutExtension(xukPath); } + /// <summary> + /// Save the project. + /// </summary> public void Save() { mUnsaved = false; } + /// <summary> + /// Make a copy of this project and save it under a new name. + /// </summary> + /// <param name="path">The path of the new project.</param> + public void SaveAs(string path) + { + } + + /// <summary> + /// Pretend that the project was modified. + /// </summary> public void Touch() { mUnsaved = true; } + + /// <summary> + /// Set the XUK path if and only if it was not set before. + /// </summary> + /// <param name="path">The new XUK path.</param> + /// <returns>True if the path was actually set.</returns> + public bool SetXukPath(string path) + { + if (mXUKPath == null) + { + mXUKPath = path; + mTitle = System.IO.Path.GetFileNameWithoutExtension(path); + return true; + } + else + { + return false; + } + } } } Modified: trunk/urakawa/application/Obi/Obi/UserProfile.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/UserProfile.cs 2006-05-30 01:09:14 UTC (rev 392) +++ trunk/urakawa/application/Obi/Obi/UserProfile.cs 2006-05-30 11:32:12 UTC (rev 393) @@ -11,5 +11,13 @@ private string mOrganization; private CultureInfo mLanguage; private string mIdTemplate; + + public UserProfile() + { + mName = null; + mOrganization = null; + mLanguage = null; + mIdTemplate = null; + } } } \ No newline at end of file Modified: trunk/urakawa/application/Obi/Obi/messages.Designer.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/messages.Designer.cs 2006-05-30 01:09:14 UTC (rev 392) +++ trunk/urakawa/application/Obi/Obi/messages.Designer.cs 2006-05-30 11:32:12 UTC (rev 393) @@ -70,6 +70,25 @@ } /// <summary> + /// Looks up a localized string similar to Clear the list of recent projects?. + /// </summary> + internal static string clear_recent_caption { + get { + return ResourceManager.GetString("clear_recent_caption", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Are you sure you want to clear the list of recent projects? + ///You cannot undo this operation.. + /// </summary> + internal static string clear_recent_text { + get { + return ResourceManager.GetString("clear_recent_text", resourceCulture); + } + } + + /// <summary> /// Looks up a localized string similar to Closing a modified project. /// </summary> internal static string closed_project_caption { @@ -80,8 +99,7 @@ /// <summary> /// Looks up a localized string similar to You are about to close a project with unsaved modifications. - ///Do you want to save these modifications before closing the project? - ///You may also press Cancel to not close the project.. + ///Do you want to save these modifications before closing the project?. /// </summary> internal static string closed_project_text { get { @@ -108,7 +126,7 @@ } /// <summary> - /// Looks up a localized string similar to [DEBUG] Saved project. + /// Looks up a localized string similar to [DEBUG] Saved project to XUK file {0}. /// </summary> internal static string debug_saved_project { get { @@ -126,6 +144,26 @@ } /// <summary> + /// Looks up a localized string similar to Discarding changes to a modified project. + /// </summary> + internal static string discard_changes_caption { + get { + return ResourceManager.GetString("discard_changes_caption", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to Do you really want to discard all modifications made to this + ///project and revert it to its last saved state? + ///You cannot undo this operation.. + /// </summary> + internal static string discard_changes_text { + get { + return ResourceManager.GetString("discard_changes_text", resourceCulture); + } + } + + /// <summary> /// Looks up a localized string similar to New strip. /// </summary> internal static string new_strip_label { @@ -171,6 +209,27 @@ } /// <summary> + /// Looks up a localized string similar to Could not save settings. + /// </summary> + internal static string save_settings_error_caption { + get { + return ResourceManager.GetString("save_settings_error_caption", resourceCulture); + } + } + + /// <summary> + /// Looks up a localized string similar to The following error occurred while trying to save the settings: + ///"{0}" + ///As a result, changes to the settings made during this session have not been saved. + ///Oh well.. + /// </summary> + internal static string save_settings_error_text { + get { + return ResourceManager.GetString("save_settings_error_text", resourceCulture); + } + } + + /// <summary> /// Looks up a localized string similar to {0} {1}. /// </summary> internal static string undo_label { Modified: trunk/urakawa/application/Obi/Obi/messages.resx =================================================================== --- trunk/urakawa/application/Obi/Obi/messages.resx 2006-05-30 01:09:14 UTC (rev 392) +++ trunk/urakawa/application/Obi/Obi/messages.resx 2006-05-30 11:32:12 UTC (rev 393) @@ -120,13 +120,19 @@ <data name="cancelled" xml:space="preserve"> <value>Cancelled</value> </data> + <data name="clear_recent_caption" xml:space="preserve"> + <value>Clear the list of recent projects?</value> + </data> + <data name="clear_recent_text" xml:space="preserve"> + <value>Are you sure you want to clear the list of recent projects? +You cannot undo this operation.</value> + </data> <data name="closed_project_caption" xml:space="preserve"> <value>Closing a modified project</value> </data> <data name="closed_project_text" xml:space="preserve"> <value>You are about to close a project with unsaved modifications. -Do you want to save these modifications before closing the project? -You may also press Cancel to not close the project.</value> +Do you want to save these modifications before closing the project?</value> </data> <data name="debug_created_project" xml:space="preserve"> <value>[DEBUG] Created project</value> @@ -135,11 +141,19 @@ <value>[DEBUG] Opened project from XUK file {0}</value> </data> <data name="debug_saved_project" xml:space="preserve"> - <value>[DEBUG] Saved project</value> + <value>[DEBUG] Saved project to XUK file {0}</value> </data> <data name="debug_touched_project" xml:space="preserve"> <value>[DEBUG] Touched project</value> </data> + <data name="discard_changes_caption" xml:space="preserve"> + <value>Discarding changes to a modified project</value> + </data> + <data name="discard_changes_text" xml:space="preserve"> + <value>Do you really want to discard all modifications made to this +project and revert it to its last saved state? +You cannot undo this operation.</value> + </data> <data name="new_strip_label" xml:space="preserve"> <value>New strip</value> </data> @@ -155,6 +169,15 @@ <data name="resize_strip" xml:space="preserve"> <value>resize strip</value> </data> + <data name="save_settings_error_caption" xml:space="preserve"> + <value>Could not save settings</value> + </data> + <data name="save_settings_error_text" xml:space="preserve"> + <value>The following error occurred while trying to save the settings: +"{0}" +As a result, changes to the settings made during this session have not been saved. +Oh well.</value> + </data> <data name="undo_label" xml:space="preserve"> <value>{0} {1}</value> </data> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |