[longomatch] Open a NewProjectDialog when importing a fake live project
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [longomatch] Open a NewProjectDialog when importing a fake live project
- Date: Thu, 25 Mar 2010 20:48:44 +0000 (UTC)
commit 81f1c5273edf9366fca1dcce51fe9d0f4f1b4af1
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Sun Mar 7 18:08:03 2010 +0100
Open a NewProjectDialog when importing a fake live project
LongoMatch/Gui/MainWindow.cs | 79 ++++++++++++++++++++++++++++--------------
1 files changed, 53 insertions(+), 26 deletions(-)
---
diff --git a/LongoMatch/Gui/MainWindow.cs b/LongoMatch/Gui/MainWindow.cs
index 3eba047..0b6dbe8 100644
--- a/LongoMatch/Gui/MainWindow.cs
+++ b/LongoMatch/Gui/MainWindow.cs
@@ -33,6 +33,7 @@ using LongoMatch.Gui.Popup;
using LongoMatch.Video;
using LongoMatch.Video.Capturer;
using LongoMatch.Video.Player;
+using LongoMatch.Video.Utils;
using LongoMatch.Updates;
using LongoMatch.IO;
using LongoMatch.Handlers;
@@ -273,7 +274,7 @@ namespace LongoMatch.Gui
private bool SaveFakeLiveProject(Project project){
bool res = false;
MessagePopup.PopupMessage(this.Toplevel, MessageType.Info,
- Catalog.GetString("The project will be saved to a file. To add it to the databse, use the "+
+ Catalog.GetString("The project will be saved to a file. To insert it into the databse, use the "+
"Import function after adding the associated video file to your computer."));
FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Save Project"),
@@ -401,6 +402,7 @@ namespace LongoMatch.Gui
protected virtual void OnImportProjectActionActivated (object sender, System.EventArgs e)
{
+ NewProjectDialog npd=null;
FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Import Project"),
(Gtk.Window)Toplevel,
FileChooserAction.Open,
@@ -410,39 +412,64 @@ namespace LongoMatch.Gui
FileFilter filter = new FileFilter();
filter.Name = "LongoMatch Project";
filter.AddPattern("*.lpr");
-
+
fChooser.AddFilter(filter);
if (fChooser.Run() == (int)ResponseType.Accept) {
Project project;
+ string fileName = fChooser.Filename;
+ fChooser.Destroy();
try{
- project = Project.Import(fChooser.Filename);
- if (!MainClass.DB.Exists(project)){
- MainClass.DB.AddProject(project);
- MessagePopup.PopupMessage(this, MessageType.Info,
- Catalog.GetString("Project successfully imported."));
- }
- else{
- MessageDialog md = new MessageDialog((Gtk.Window)this.Toplevel,
- DialogFlags.Modal,
- MessageType.Question,
- Gtk.ButtonsType.YesNo,
- Catalog.GetString("A project already exists for the file:")+project.File.FilePath+
- "\n"+Catalog.GetString("Do you want to overwrite it?"));
- md.Icon=Stetic.IconLoader.LoadIcon(this, "longomatch", Gtk.IconSize.Dialog, 48);
- if (md.Run() == (int)ResponseType.Yes){
- MainClass.DB.UpdateProject(project);
- }
- md.Destroy();
- }
+ project = Project.Import(fileName);
}
catch (Exception ex){
- MessagePopup.PopupMessage(this, MessageType.Error, ex.Message);
- fChooser.Destroy();
+ MessagePopup.PopupMessage(this, MessageType.Error, ex.Message);
return;
}
- }
- fChooser.Destroy();
-
+ // If it's a fake live project prompt for a video file and
+ // create a new PreviewMediaFile for this project
+ if (project.File.FilePath == Constants.FAKE_PROJECT){
+ project.File = null;
+ npd = new NewProjectDialog();
+ npd.TransientFor = this;
+ npd.Use = ProjectType.EditProject;
+ npd.Project = project;
+ int response = npd.Run();
+ while (response == (int)ResponseType.Ok && npd.Project == null) {
+ MessagePopup.PopupMessage(this, MessageType.Info,
+ Catalog.GetString("Please, select a video file."));
+ response=npd.Run();
+ }
+ if (response ==(int)ResponseType.Ok) {
+ project = npd.Project;
+ npd.Destroy();
+ } else {
+ npd.Destroy();
+ return;
+ }
+ }
+ // Try to add the project to the database and warn if a project
+ // already exists in the database with the same file path
+ if (!MainClass.DB.Exists(project)){
+ MainClass.DB.AddProject(project);
+ MessagePopup.PopupMessage(this, MessageType.Info,
+ Catalog.GetString("Project successfully imported."));
+ }
+ else{
+ MessageDialog md = new MessageDialog((Gtk.Window)this.Toplevel,
+ DialogFlags.Modal,
+ MessageType.Question,
+ Gtk.ButtonsType.YesNo,
+ Catalog.GetString("A project already exists for the file:")+project.File.FilePath+
+ "\n"+Catalog.GetString("Do you want to overwrite it?"));
+ md.Icon=Stetic.IconLoader.LoadIcon(this, "longomatch", Gtk.IconSize.Dialog, 48);
+ if (md.Run() == (int)ResponseType.Yes){
+ MainClass.DB.UpdateProject(project);
+ }
+ md.Destroy();
+
+ }
+ } else
+ fChooser.Destroy();
}
protected virtual void OnDatabaseManagerActivated(object sender, System.EventArgs e)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]