[longomatch] Added ability to import project into the DB Closes #603260: Ability to export/import projects to/fr
- From: Andoni Morales Alastruey <amorales src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [longomatch] Added ability to import project into the DB Closes #603260: Ability to export/import projects to/fr
- Date: Mon, 28 Dec 2009 03:13:30 +0000 (UTC)
commit 83d7e07433012df8b3075a40d5f19118764f9627
Author: Andoni Morales Alastruey <ylatuya gmail com>
Date: Thu Dec 24 13:05:19 2009 +0100
Added ability to import project into the DB
Closes #603260: Ability to export/import projects to/from other machines
LongoMatch/DB/DataBase.cs | 20 +++++++++
LongoMatch/Gui/MainWindow.cs | 49 ++++++++++++++++++++++-
LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs | 14 +++++--
LongoMatch/gtk-gui/gui.stetic | 16 ++++++-
4 files changed, 91 insertions(+), 8 deletions(-)
---
diff --git a/LongoMatch/DB/DataBase.cs b/LongoMatch/DB/DataBase.cs
index 0335760..a9d7999 100644
--- a/LongoMatch/DB/DataBase.cs
+++ b/LongoMatch/DB/DataBase.cs
@@ -305,6 +305,26 @@ namespace LongoMatch.DB
}
}
}
+
+ /// <summary>
+ /// Checks if a project already exists in the DataBase with the same file
+ /// </summary>
+ /// <param name="project">
+ /// A <see cref="Project"/> to compare
+ /// </param>
+ /// <returns>
+ /// A <see cref="System.Boolean"/>
+ /// </returns>
+ public bool Exists(Project project){
+ IObjectContainer db = Db4oFactory.OpenFile(file);
+ try{
+ return Exists(project.File.FilePath, db);
+ }catch{
+ return false;
+ }finally{
+ CloseDB(db);
+ }
+ }
private void CloseDB(IObjectContainer db) {
db.Ext().Purge();
diff --git a/LongoMatch/Gui/MainWindow.cs b/LongoMatch/Gui/MainWindow.cs
index 4da6eeb..aee8843 100644
--- a/LongoMatch/Gui/MainWindow.cs
+++ b/LongoMatch/Gui/MainWindow.cs
@@ -279,6 +279,52 @@ namespace LongoMatch.Gui
{
CloseActualProyect();
}
+
+ protected virtual void OnImportProjectActionActivated (object sender, System.EventArgs e)
+ {
+ FileChooserDialog fChooser = new FileChooserDialog(Catalog.GetString("Import Project"),
+ (Gtk.Window)Toplevel,
+ FileChooserAction.Open,
+ "gtk-cancel",ResponseType.Cancel,
+ "gtk-open",ResponseType.Accept);
+ fChooser.SetCurrentFolder(MainClass.HomeDir());
+ FileFilter filter = new FileFilter();
+ filter.Name = "LongoMatch Project";
+ filter.AddPattern("*.lpr");
+
+ fChooser.AddFilter(filter);
+ if (fChooser.Run() == (int)ResponseType.Accept) {
+ Project project;
+ 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 overwritte it?"));
+ md.Icon=Stetic.IconLoader.LoadIcon(this, "longomatch", Gtk.IconSize.Dialog, 48);
+ if (md.Run() == (int)ResponseType.Yes){
+ MainClass.DB.UpdateProject(project);
+ }
+ md.Destroy();
+ }
+ }
+ catch (Exception ex){
+ MessagePopup.PopupMessage(this, MessageType.Error, ex.Message);
+ fChooser.Destroy();
+ return;
+ }
+ }
+ fChooser.Destroy();
+
+ }
protected virtual void OnDatabaseManagerActivated(object sender, System.EventArgs e)
{
@@ -495,6 +541,7 @@ GNU General Public License for more details.";
System.Diagnostics.Process.Start("http://www.longomatch.ylatuya.es/documentation/manual.html");
} catch {}
}
- #endregion
+
+ #endregion}
}
}
\ No newline at end of file
diff --git a/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs b/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
index a553030..ddebdd0 100644
--- a/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
+++ b/LongoMatch/gtk-gui/LongoMatch.Gui.MainWindow.cs
@@ -57,6 +57,8 @@ namespace LongoMatch.Gui {
private Gtk.ToggleAction DrawingToolAction;
+ private Gtk.Action ImportProjectAction;
+
private Gtk.VBox vbox1;
private Gtk.VBox menubox;
@@ -181,6 +183,9 @@ namespace LongoMatch.Gui {
this.DrawingToolAction = new Gtk.ToggleAction("DrawingToolAction", Mono.Unix.Catalog.GetString("_Drawing Tool"), null, null);
this.DrawingToolAction.ShortLabel = Mono.Unix.Catalog.GetString("Drawing Tool");
w1.Add(this.DrawingToolAction, "<Control>d");
+ this.ImportProjectAction = new Gtk.Action("ImportProjectAction", Mono.Unix.Catalog.GetString("_Import Project"), null, "stock-import");
+ this.ImportProjectAction.ShortLabel = Mono.Unix.Catalog.GetString("_Import Project");
+ w1.Add(this.ImportProjectAction, "<Control>i");
this.UIManager.InsertActionGroup(w1, 0);
this.AddAccelGroup(this.UIManager.AccelGroup);
this.Name = "LongoMatch.Gui.MainWindow";
@@ -197,7 +202,7 @@ namespace LongoMatch.Gui {
this.menubox.Name = "menubox";
this.menubox.Spacing = 6;
// Container child menubox.Gtk.Box+BoxChild
- this.UIManager.AddUiFromString("<ui><menubar name='menubar1'><menu name='FileAction' action='FileAction'><menuitem name='NewPojectAction' action='NewPojectAction'/><menuitem name='OpenProjectAction' action='OpenProjectAction'/><menuitem name='SaveProjectAction' action='SaveProjectAction'/><menuitem name='CloseProjectAction' action='CloseProjectAction'/><separator/><menuitem name='QuitAction' action='QuitAction'/></menu><menu name='ToolsAction' action='ToolsAction'><menuitem name='ProjectsManagerAction' action='ProjectsManagerAction'/><menuitem name='CategoriesTemplatesManagerAction' action='CategoriesTemplatesManagerAction'/><menuitem name='TeamsTemplatesManagerAction' action='TeamsTemplatesManagerAction'/><menuitem name='ExportProjectToCSVFileAction' action='ExportProjectToCSVFileAction'/></menu><menu name='ViewAction' action='ViewAction'><menuitem name='FullScreenAction' action='FullScreenAction'/><menuitem name='HideAllWidgetsAction' action='HideAllWidgetsActi
on'/><separator/><menuitem name='PlaylistAction' action='PlaylistAction'/><menuitem name='DrawingToolAction' action='DrawingToolAction'/><separator/><menuitem name='CaptureModeAction' action='CaptureModeAction'/><menuitem name='AnalyzeModeAction' action='AnalyzeModeAction'/></menu><menu name='HelpAction' action='HelpAction'><menuitem name='AboutAction' action='AboutAction'/><menuitem name='HelpAction1' action='HelpAction1'/></menu></menubar></ui>");
+ this.UIManager.AddUiFromString("<ui><menubar name='menubar1'><menu name='FileAction' action='FileAction'><menuitem name='NewPojectAction' action='NewPojectAction'/><menuitem name='OpenProjectAction' action='OpenProjectAction'/><menuitem name='SaveProjectAction' action='SaveProjectAction'/><menuitem name='CloseProjectAction' action='CloseProjectAction'/><separator/><menuitem name='ImportProjectAction' action='ImportProjectAction'/><separator/><menuitem name='QuitAction' action='QuitAction'/></menu><menu name='ToolsAction' action='ToolsAction'><menuitem name='ProjectsManagerAction' action='ProjectsManagerAction'/><menuitem name='CategoriesTemplatesManagerAction' action='CategoriesTemplatesManagerAction'/><menuitem name='TeamsTemplatesManagerAction' action='TeamsTemplatesManagerAction'/><menuitem name='ExportProjectToCSVFileAction' action='ExportProjectToCSVFileAction'/></menu><menu name='ViewAction' action='ViewAction'><menuitem name='FullScreenAction' action='Full
ScreenAction'/><menuitem name='HideAllWidgetsAction' action='HideAllWidgetsAction'/><separator/><menuitem name='PlaylistAction' action='PlaylistAction'/><menuitem name='DrawingToolAction' action='DrawingToolAction'/><separator/><menuitem name='CaptureModeAction' action='CaptureModeAction'/><menuitem name='AnalyzeModeAction' action='AnalyzeModeAction'/></menu><menu name='HelpAction' action='HelpAction'><menuitem name='AboutAction' action='AboutAction'/><menuitem name='HelpAction1' action='HelpAction1'/></menu></menubar></ui>");
this.menubar1 = ((Gtk.MenuBar)(this.UIManager.GetWidget("/menubar1")));
this.menubar1.Name = "menubar1";
this.menubox.Add(this.menubar1);
@@ -214,7 +219,7 @@ namespace LongoMatch.Gui {
this.hpaned = new Gtk.HPaned();
this.hpaned.CanFocus = true;
this.hpaned.Name = "hpaned";
- this.hpaned.Position = 299;
+ this.hpaned.Position = 294;
// Container child hpaned.Gtk.Paned+PanedChild
this.leftbox = new Gtk.VBox();
this.leftbox.Name = "leftbox";
@@ -272,7 +277,7 @@ namespace LongoMatch.Gui {
this.hpaned1 = new Gtk.HPaned();
this.hpaned1.CanFocus = true;
this.hpaned1.Name = "hpaned1";
- this.hpaned1.Position = 789;
+ this.hpaned1.Position = 804;
// Container child hpaned1.Gtk.Paned+PanedChild
this.vbox5 = new Gtk.VBox();
this.vbox5.Name = "vbox5";
@@ -378,7 +383,7 @@ namespace LongoMatch.Gui {
this.Child.ShowAll();
}
this.DefaultWidth = 1259;
- this.DefaultHeight = 761;
+ this.DefaultHeight = 786;
this.leftbox.Hide();
this.drawingtoolbox1.Hide();
this.timelinewidget1.Hide();
@@ -405,6 +410,7 @@ namespace LongoMatch.Gui {
this.HideAllWidgetsAction.Toggled += new System.EventHandler(this.OnHideAllWidgetsActionToggled);
this.HelpAction1.Activated += new System.EventHandler(this.OnHelpAction1Activated);
this.DrawingToolAction.Toggled += new System.EventHandler(this.OnDrawingToolActionToggled);
+ this.ImportProjectAction.Activated += new System.EventHandler(this.OnImportProjectActionActivated);
this.treewidget1.TimeNodeSelected += new LongoMatch.Handlers.TimeNodeSelectedHandler(this.OnTimeNodeSelected);
this.playerbin1.Error += new LongoMatch.Video.Handlers.ErrorHandler(this.OnPlayerbin1Error);
this.playerbin1.SegmentClosedEvent += new LongoMatch.Video.Handlers.SegmentClosedHandler(this.OnSegmentClosedEvent);
diff --git a/LongoMatch/gtk-gui/gui.stetic b/LongoMatch/gtk-gui/gui.stetic
index 8c12a03..d6b5425 100644
--- a/LongoMatch/gtk-gui/gui.stetic
+++ b/LongoMatch/gtk-gui/gui.stetic
@@ -1482,7 +1482,7 @@
</widget>
</child>
</widget>
- <widget class="Gtk.Window" id="LongoMatch.Gui.MainWindow" design-size="1259 761">
+ <widget class="Gtk.Window" id="LongoMatch.Gui.MainWindow" design-size="1259 786">
<action-group name="Default">
<action id="FileAction">
<property name="Type">Action</property>
@@ -1637,6 +1637,14 @@
<property name="Active">False</property>
<signal name="Toggled" handler="OnDrawingToolActionToggled" />
</action>
+ <action id="ImportProjectAction">
+ <property name="Type">Action</property>
+ <property name="Accelerator"><Control>i</property>
+ <property name="Label" translatable="yes">_Import Project</property>
+ <property name="ShortLabel" translatable="yes">_Import Project</property>
+ <property name="StockId">stock-import</property>
+ <signal name="Activated" handler="OnImportProjectActionActivated" />
+ </action>
</action-group>
<property name="MemberName" />
<property name="Title" translatable="yes">LongoMatch</property>
@@ -1662,6 +1670,8 @@
<node type="Menuitem" action="SaveProjectAction" />
<node type="Menuitem" action="CloseProjectAction" />
<node type="Separator" />
+ <node type="Menuitem" action="ImportProjectAction" />
+ <node type="Separator" />
<node type="Menuitem" action="QuitAction" />
</node>
<node type="Menu" action="ToolsAction">
@@ -1705,7 +1715,7 @@
<widget class="Gtk.HPaned" id="hpaned">
<property name="MemberName" />
<property name="CanFocus">True</property>
- <property name="Position">299</property>
+ <property name="Position">294</property>
<child>
<widget class="Gtk.VBox" id="leftbox">
<property name="MemberName" />
@@ -1784,7 +1794,7 @@
<widget class="Gtk.HPaned" id="hpaned1">
<property name="MemberName" />
<property name="CanFocus">True</property>
- <property name="Position">789</property>
+ <property name="Position">804</property>
<child>
<widget class="Gtk.VBox" id="vbox5">
<property name="MemberName" />
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]