[chronojump] Session export half gui done
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Session export half gui done
- Date: Fri, 26 Jun 2020 13:05:27 +0000 (UTC)
commit 35cb38d1aa0a604e9916faa4911a1678cffdf00a
Author: Xavier de Blas <xaviblas gmail com>
Date: Fri Jun 26 15:04:53 2020 +0200
Session export half gui done
glade/app1.glade | 404 +++++++++++++++++++++++++++++++++++++++--
po/POTFILES.in | 1 +
src/Makefile.am | 1 +
src/gui/app1/icons.cs | 1 +
src/gui/app1/menu.cs | 2 +
src/gui/app1/session/export.cs | 79 ++++++++
src/gui/app1/session/main.cs | 18 +-
7 files changed, 492 insertions(+), 14 deletions(-)
---
diff --git a/glade/app1.glade b/glade/app1.glade
index ab1038ce..421bb9a8 100644
--- a/glade/app1.glade
+++ b/glade/app1.glade
@@ -24272,6 +24272,9 @@ Concentric</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -27117,6 +27120,18 @@ Concentric</property>
<property name="can_focus">False</property>
<property name="spacing">6</property>
<child>
+ <widget class="GtkLabel"
id="label_video_encoder_tests_will_be_filmed">
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Tests
will be filmed</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
<widget class="GtkHBox"
id="hbox_video_encoder_capturing">
<property name="can_focus">False</property>
<property name="spacing">4</property>
@@ -27153,18 +27168,6 @@ Concentric</property>
</packing>
</child>
<child>
- <widget class="GtkLabel"
id="label_video_encoder_tests_will_be_filmed">
- <property name="can_focus">False</property>
- <property name="label" translatable="yes">Tests
will be filmed</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
<widget class="GtkHBox"
id="hbox_video_encoder_no_capturing">
<property name="visible">True</property>
<property name="can_focus">False</property>
@@ -35097,6 +35100,9 @@ then click this button.</property>
<child>
<placeholder/>
</child>
+ <child>
+ <placeholder/>
+ </child>
</widget>
<packing>
<property name="expand">False</property>
@@ -35881,13 +35887,15 @@ then click this button.</property>
<property name="can_focus">False</property>
<property name="spacing">4</property>
<child>
- <widget class="GtkButton"
id="button_menu_session_import1">
+ <widget class="GtkButton"
id="button_menu_session_export">
<property name="visible">True</property>
+ <property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="can_default">True</property>
<property name="receives_default">True</property>
<property name="has_tooltip">True</property>
<property name="relief">half</property>
+ <signal name="clicked"
handler="on_button_session_export_pre_clicked" swapped="no"/>
<child>
<widget class="GtkEventBox"
id="eventbox_button_menu_session_import1">
<property name="visible">True</property>
@@ -39558,6 +39566,376 @@ then click this button.</property>
<property name="type">tab</property>
</packing>
</child>
+ <child>
+ <widget class="GtkHBox" id="hbox_session_export">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkVBox" id="vbox227">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkVBox" id="session_export_box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">25</property>
+ <child>
+ <widget class="GtkFrame" id="frame24">
+ <property name="width_request">550</property>
+ <property name="height_request">425</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">1</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <widget class="GtkViewport" id="viewport20">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">4</property>
+ <child>
+ <widget class="GtkVBox" id="vbox228">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">16</property>
+ <property name="spacing">30</property>
+ <child>
+ <widget class="GtkVBox" id="vbox229">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">16</property>
+ <child>
+ <widget class="GtkVButtonBox" id="vbuttonbox6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkButton"
id="app1s_button_export_select">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <signal name="clicked"
handler="on_app1s_button_export_select_clicked" swapped="no"/>
+ <child>
+ <widget class="GtkHBox" id="hbox421">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">8</property>
+ <child>
+ <widget class="GtkImage"
id="app1s_image_button_export_select">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property
name="stock">gtk-missing-image</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel"
id="app1s_label_button_backup_select1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Select
destination</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel"
id="app1s_label_export_destination">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="wrap">True</property>
+ <property name="wrap_mode">word-char</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVButtonBox" id="vbuttonbox7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">20</property>
+ <child>
+ <widget class="GtkButton"
id="app1s_button_export_start">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ <child>
+ <widget class="GtkLabel" id="label549">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Export</property>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkVBox" id="vbox230">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">20</property>
+ <child>
+ <widget class="GtkHBox" id="hbox427">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkHBox" id="hbox428">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">20</property>
+ <child>
+ <widget class="GtkLabel"
id="app1s_label_export_progress">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkProgressBar"
id="app1s_pulsebarExportActivity">
+ <property name="width_request">50</property>
+ <property name="can_focus">False</property>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ <child>
+ <widget class="GtkHBox" id="hbox_session_more7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <widget class="GtkLabel" id="label552">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Session</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label553">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">/</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label554">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">More</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label555">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">/</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label556">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Export</property>
+ <property name="use_markup">True</property>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="type">label_item</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkHButtonBox" id="hbuttonbox17">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">center</property>
+ <child>
+ <widget class="GtkVBox" id="vbox231">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkButton"
id="app1s_button_export_cancel_close">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property
name="receives_default">False</property>
+ <signal name="clicked"
handler="on_app1s_button_export_cancel_or_close_clicked" swapped="no"/>
+ <accelerator key="Escape" signal="clicked"/>
+ <child>
+ <widget class="GtkEventBox"
id="app1s_eventbox_button_export_cancel_close">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <widget class="GtkLabel"
id="app1s_label_export_cancel_close">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"
translatable="yes">Cancel</property>
+ </widget>
+ </child>
+ </widget>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </widget>
+ <packing>
+ <property name="position">8</property>
+ </packing>
+ </child>
+ <child>
+ <widget class="GtkLabel" id="label547">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label">export session</property>
+ </widget>
+ <packing>
+ <property name="position">8</property>
+ <property name="tab_fill">False</property>
+ <property name="type">tab</property>
+ </packing>
+ </child>
</widget>
</child>
</widget>
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 17336bdf..ab2421a0 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -74,6 +74,7 @@ src/gui/app1/runEncoderAnalyze.cs
src/gui/app1/runEncoder.cs
src/gui/app1/session/addEdit.cs
src/gui/app1/session/backup.cs
+src/gui/app1/session/export.cs
src/gui/app1/session/loadAndImport.cs
src/gui/app1/session/main.cs
src/gui/app1/shortcuts.cs
diff --git a/src/Makefile.am b/src/Makefile.am
index 905ce9d8..d18b1e00 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -20,6 +20,7 @@ SOURCES = \
gui/app1/session/delete.cs\
gui/app1/session/addEdit.cs\
gui/app1/session/backup.cs\
+ gui/app1/session/export.cs\
gui/app1/session/loadAndImport.cs\
gui/app1/session/main.cs\
gui/app1/jump.cs\
diff --git a/src/gui/app1/icons.cs b/src/gui/app1/icons.cs
index 460eada4..ab89052c 100644
--- a/src/gui/app1/icons.cs
+++ b/src/gui/app1/icons.cs
@@ -401,6 +401,7 @@ public partial class ChronoJumpWindow
image_session_load3_blue.Pixbuf = pixbuf;
app1s_image_open_database.Pixbuf = pixbuf;
app1s_image_button_backup_select.Pixbuf = pixbuf;
+ app1s_image_button_export_select.Pixbuf = pixbuf;
pixbuf = new Pixbuf (null, Util.GetImagePath(false) + "folder_open_yellow.png");
image_session_load3_yellow.Pixbuf = pixbuf;
diff --git a/src/gui/app1/menu.cs b/src/gui/app1/menu.cs
index a395d1b9..b3a8c16d 100644
--- a/src/gui/app1/menu.cs
+++ b/src/gui/app1/menu.cs
@@ -310,6 +310,8 @@ public partial class ChronoJumpWindow
notebook_sup.CurrentPage = Convert.ToInt32(notebook_sup_pages.SESSION);
app1s_notebook.CurrentPage = Convert.ToInt32(app1s_PAGE_MODES);
app1s_label_session_set_name();
+ //do not allow to export session SIMULATED because it could also not be imported
+ button_menu_session_export.Sensitive = (currentSession != null && currentSession.Name !=
Constants.SessionSimulatedName);
}
}
diff --git a/src/gui/app1/session/export.cs b/src/gui/app1/session/export.cs
new file mode 100644
index 00000000..a47e4a6f
--- /dev/null
+++ b/src/gui/app1/session/export.cs
@@ -0,0 +1,79 @@
+/*
+ * This file is part of ChronoJump
+ *
+ * ChronoJump is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * ChronoJump is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Copyright (C) 2020 Xavier de Blas <xaviblas gmail com>
+ */
+
+using System;
+using System.IO;
+using Gtk;
+using System.Diagnostics; //Stopwatch
+using System.Threading;
+using Mono.Unix;
+
+public partial class ChronoJumpWindow
+{
+ private void on_button_session_export_pre_clicked (object o, EventArgs args)
+ {
+ /*
+ if(! app1s_getDatabaseFile())
+ {
+ new DialogMessage(Constants.MessageTypes.WARNING, Catalog.GetString("Error. Cannot
find database."));
+ return;
+ }
+ */
+
+ app1s_label_export_destination.Text = "";
+ app1s_label_export_progress.Text = "";
+ app1s_button_export_select.Sensitive = true;
+ app1s_button_export_start.Sensitive = false;
+ app1s_button_export_cancel_close.Sensitive = true;
+ app1s_label_export_cancel_close.Text = Catalog.GetString("Cancel");
+
+ app1s_notebook.CurrentPage = app1s_PAGE_EXPORT;
+ }
+
+ private void on_app1s_button_export_select_clicked (object o, EventArgs args)
+ {
+ app1s_fc = new Gtk.FileChooserDialog(Catalog.GetString("Export session to:"),
+ app1,
+ FileChooserAction.SelectFolder,
+ Catalog.GetString("Cancel"),ResponseType.Cancel,
+ Catalog.GetString("Export"),ResponseType.Accept
+ );
+
+ if (app1s_fc.Run() == (int)ResponseType.Accept)
+ {
+ app1s_fileCopy = app1s_fc.Filename + Path.DirectorySeparatorChar + "chronojump_" +
currentSession.Name + "_" + UtilDate.ToFile();
+
+ app1s_label_export_destination.Text = app1s_fileCopy;
+
+ app1s_button_export_start.Sensitive = true;
+ }
+
+ app1s_fc.Hide ();
+
+ //Don't forget to call Destroy() or the FileChooserDialog window won't get closed.
+ app1s_fc.Destroy();
+ }
+
+
+ private void on_app1s_button_export_cancel_or_close_clicked (object o, EventArgs args)
+ {
+ app1s_notebook.CurrentPage = app1s_PAGE_MODES;
+ }
+}
diff --git a/src/gui/app1/session/main.cs b/src/gui/app1/session/main.cs
index 602c1a24..ba5abae7 100644
--- a/src/gui/app1/session/main.cs
+++ b/src/gui/app1/session/main.cs
@@ -34,6 +34,7 @@ public partial class ChronoJumpWindow
//notebook tab 0
[Widget] Gtk.Frame frame_session_more_this_session;
[Widget] Gtk.Label label_session_more_session_name;
+ [Widget] Gtk.Button button_menu_session_export;
[Widget] Gtk.EventBox app1s_eventbox_button_close0;
//notebook tab 1
@@ -84,7 +85,9 @@ public partial class ChronoJumpWindow
//notebook tab 5
[Widget] Gtk.EventBox app1s_eventbox_button_delete_close;
- //notebook tab 6 (backup)
+ //notebook tab 6 (add/edit)
+
+ //notebook tab 7 (backup)
[Widget] Gtk.Button app1s_button_backup_select;
[Widget] Gtk.Button app1s_button_backup_start;
[Widget] Gtk.Button app1s_button_backup_cancel_close;
@@ -98,6 +101,17 @@ public partial class ChronoJumpWindow
[Widget] Gtk.ProgressBar app1s_pulsebarBackupDirs;
[Widget] Gtk.ProgressBar app1s_pulsebarBackupSecondDirs;
+ //notebook tab 8 (export)
+ [Widget] Gtk.Button app1s_button_export_select;
+ [Widget] Gtk.Button app1s_button_export_start;
+ [Widget] Gtk.Button app1s_button_export_cancel_close;
+ [Widget] Gtk.EventBox app1s_eventbox_button_export_cancel_close;
+ [Widget] Gtk.Label app1s_label_export_cancel_close;
+ [Widget] Gtk.Image app1s_image_button_export_select;
+ [Widget] Gtk.Label app1s_label_export_destination;
+ [Widget] Gtk.Label app1s_label_export_progress;
+ [Widget] Gtk.ProgressBar app1s_pulsebarExportActivity;
+
const int app1s_PAGE_MODES = 0;
const int app1s_PAGE_IMPORT_START = 1;
const int app1s_PAGE_SELECT_SESSION = 2; //for load session and for import
@@ -106,6 +120,7 @@ public partial class ChronoJumpWindow
public const int app1s_PAGE_DELETE_CONFIRM = 5;
const int app1s_PAGE_ADD_EDIT = 6;
const int app1s_PAGE_BACKUP = 7;
+ const int app1s_PAGE_EXPORT = 8;
private int app1s_notebook_sup_entered_from; //to store from which page we entered (to return at it)
@@ -139,6 +154,7 @@ public partial class ChronoJumpWindow
UtilGtk.EventBoxColorBackgroundActive (app1s_eventbox_button_import_again, UtilGtk.YELLOW,
UtilGtk.YELLOW_LIGHT);
UtilGtk.EventBoxColorBackgroundActive (app1s_eventbox_button_delete_close, UtilGtk.YELLOW,
UtilGtk.YELLOW_LIGHT);
UtilGtk.EventBoxColorBackgroundActive (app1s_eventbox_button_backup_cancel_close,
UtilGtk.YELLOW, UtilGtk.YELLOW_LIGHT);
+ UtilGtk.EventBoxColorBackgroundActive (app1s_eventbox_button_export_cancel_close,
UtilGtk.YELLOW, UtilGtk.YELLOW_LIGHT);
}
private void app1s_label_session_set_name()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]