[brasero] First commit
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Subject: [brasero] First commit
- Date: Sun, 21 Jun 2009 17:06:52 -0400 (EDT)
commit b23c835b51c9b45a2bbeef908eba615395e751ed
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Fri May 29 18:02:15 2009 +0200
First commit
src/brasero-project.c | 140 +++++++++++++++++++++++++++++++++++++++---------
1 files changed, 113 insertions(+), 27 deletions(-)
---
diff --git a/src/brasero-project.c b/src/brasero-project.c
index b2a2ddc..cea7b97 100644
--- a/src/brasero-project.c
+++ b/src/brasero-project.c
@@ -67,6 +67,9 @@
#include "brasero-burn-options.h"
#include "brasero-cover.h"
+#include "brasero-session-cfg.h"
+#include "brasero-dest-selection.h"
+
#include "brasero-project-type-chooser.h"
#include "brasero-app.h"
#include "brasero-project.h"
@@ -153,9 +156,13 @@ typedef enum {
} BraseroProjectSave;
struct BraseroProjectPrivate {
+ BraseroBurnSession *session;
+
+ GtkWidget *selection;
GtkWidget *name_display;
GtkWidget *button_img;
GtkWidget *icon_img;
+ GtkWidget *icon_label;
GtkWidget *discs;
GtkWidget *audio;
GtkWidget *data;
@@ -532,8 +539,11 @@ brasero_project_init (BraseroProject *obj)
{
GtkSizeGroup *size_group;
GtkWidget *alignment;
+ GtkWidget *selector;
GtkWidget *button;
+ GtkWidget *table;
GtkWidget *image;
+ GtkWidget *frame;
GtkWidget *label;
GtkWidget *box;
@@ -549,12 +559,69 @@ brasero_project_init (BraseroProject *obj)
gtk_widget_show (obj->priv->message);
/* bottom */
+ obj->priv->session = BRASERO_BURN_SESSION (brasero_session_cfg_new ());
+
box = gtk_hbox_new (FALSE, 6);
gtk_container_set_border_width (GTK_CONTAINER (box), 4);
gtk_widget_show (box);
gtk_box_pack_end (GTK_BOX (obj), box, FALSE, TRUE, 0);
- /* Icon button */
+ /* Media selection widget */
+ selector = brasero_dest_selection_new (obj->priv->session);
+ gtk_widget_show (selector);
+ gtk_box_pack_start (GTK_BOX (box), selector, TRUE, TRUE, 0);
+ obj->priv->selection = selector;
+
+ /* burn button set insensitive since there are no files in the selection */
+ size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
+ obj->priv->burn = brasero_utils_make_button (_("_Burn"),
+ NULL,
+ "media-optical-burn",
+ GTK_ICON_SIZE_BUTTON);
+ gtk_widget_show (obj->priv->burn);
+ gtk_widget_set_sensitive (obj->priv->burn, FALSE);
+ gtk_button_set_focus_on_click (GTK_BUTTON (obj->priv->burn), FALSE);
+ g_signal_connect (obj->priv->burn,
+ "clicked",
+ G_CALLBACK (brasero_project_burn_clicked_cb),
+ obj);
+ gtk_widget_set_tooltip_text (obj->priv->burn,
+ _("Start to burn the contents of the selection"));
+ gtk_size_group_add_widget (GTK_SIZE_GROUP (size_group), obj->priv->burn);
+
+ alignment = gtk_alignment_new (1.0, 0.5, 0.0, 0.0);
+ gtk_widget_show (alignment);
+ gtk_container_add (GTK_CONTAINER (alignment), obj->priv->burn);
+ gtk_box_pack_end (GTK_BOX (box), alignment, FALSE, TRUE, 0);
+
+ /* Options expander */
+ frame = gtk_expander_new_with_mnemonic ("_Burn Options");
+ gtk_widget_show (frame);
+ gtk_box_pack_end (GTK_BOX (obj), frame, FALSE, TRUE, 0);
+
+ /* Options expander */
+ frame = gtk_expander_new_with_mnemonic ("_Information");
+ gtk_widget_show (frame);
+ gtk_box_pack_end (GTK_BOX (obj), frame, FALSE, TRUE, 0);
+
+ table = gtk_table_new (2, 2, FALSE);
+ gtk_container_set_border_width (GTK_CONTAINER (table), 4);
+ gtk_table_set_col_spacings (GTK_TABLE (table), 6);
+ gtk_widget_show (table);
+ gtk_container_add (GTK_CONTAINER (frame), table);
+
+ /* icon */
+ label = gtk_label_new_with_mnemonic (_("_Icon:"));
+ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
+ gtk_widget_show (label);
+ obj->priv->icon_label = label;
+ gtk_table_attach (GTK_TABLE (table), label,
+ 0, 1,
+ 1, 2,
+ GTK_FILL,
+ GTK_EXPAND,
+ 0, 0);
+
image = gtk_image_new_from_icon_name ("media-optical", GTK_ICON_SIZE_LARGE_TOOLBAR);
gtk_widget_show (image);
obj->priv->icon_img = image;
@@ -571,18 +638,36 @@ brasero_project_init (BraseroProject *obj)
G_CALLBACK (brasero_project_icon_button_clicked),
obj);
- gtk_box_pack_start (GTK_BOX (box), button, FALSE, TRUE, 0);
+ alignment = gtk_alignment_new (0.0, 0.5, 0.0, 0.0);
+ gtk_widget_show (alignment);
+ gtk_container_add (GTK_CONTAINER (alignment), button);
+
+ gtk_table_attach (GTK_TABLE (table), alignment,
+ 1, 2,
+ 1, 2,
+ GTK_FILL|GTK_EXPAND,
+ GTK_EXPAND,
+ 0, 0);
/* Name widget */
label = gtk_label_new_with_mnemonic (_("_Name:"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
- gtk_misc_set_padding (GTK_MISC (label), 6, 0);
gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (box), label, FALSE, TRUE, 0);
+ gtk_table_attach (GTK_TABLE (table), label,
+ 0, 1,
+ 0, 1,
+ GTK_FILL,
+ GTK_EXPAND,
+ 0, 0);
obj->priv->name_display = brasero_project_name_new ();
gtk_widget_show (obj->priv->name_display);
- gtk_box_pack_start (GTK_BOX (box), obj->priv->name_display, TRUE, TRUE, 0);
+ gtk_table_attach (GTK_TABLE (table), obj->priv->name_display,
+ 1, 2,
+ 0, 1,
+ GTK_EXPAND|GTK_FILL,
+ GTK_EXPAND,
+ 0, 0);
obj->priv->empty = 1;
g_signal_connect (obj->priv->name_display,
@@ -592,28 +677,6 @@ brasero_project_init (BraseroProject *obj)
gtk_label_set_mnemonic_widget (GTK_LABEL (label), obj->priv->name_display);
- /* burn button set insensitive since there are no files in the selection */
- size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
- obj->priv->burn = brasero_utils_make_button (_("_Burn..."),
- NULL,
- "media-optical-burn",
- GTK_ICON_SIZE_BUTTON);
- gtk_widget_show (obj->priv->burn);
- gtk_widget_set_sensitive (obj->priv->burn, FALSE);
- gtk_button_set_focus_on_click (GTK_BUTTON (obj->priv->burn), FALSE);
- g_signal_connect (obj->priv->burn,
- "clicked",
- G_CALLBACK (brasero_project_burn_clicked_cb),
- obj);
- gtk_widget_set_tooltip_text (obj->priv->burn,
- _("Start to burn the contents of the selection"));
- gtk_size_group_add_widget (GTK_SIZE_GROUP (size_group), obj->priv->burn);
-
- alignment = gtk_alignment_new (1.0, 0.5, 0.0, 0.0);
- gtk_widget_show (alignment);
- gtk_container_add (GTK_CONTAINER (alignment), obj->priv->burn);
- gtk_box_pack_end (GTK_BOX (box), alignment, FALSE, TRUE, 0);
-
/* The three panes to put into the notebook */
obj->priv->audio = brasero_audio_disc_new ();
gtk_widget_show (obj->priv->audio);
@@ -1187,6 +1250,8 @@ brasero_project_switch (BraseroProject *project, BraseroProjectType type)
if (type == BRASERO_PROJECT_TYPE_AUDIO) {
gtk_widget_hide (project->priv->button_img);
+ gtk_widget_hide (project->priv->icon_label);
+
project->priv->current = BRASERO_DISC (project->priv->audio);
project->priv->merge_id = brasero_disc_add_ui (project->priv->current,
project->priv->manager,
@@ -1194,9 +1259,15 @@ brasero_project_switch (BraseroProject *project, BraseroProjectType type)
gtk_notebook_set_current_page (GTK_NOTEBOOK (project->priv->discs), 0);
brasero_project_update_project_size (project, 0);
+
+ brasero_medium_selection_show_media_type (BRASERO_MEDIUM_SELECTION (project->priv->selection),
+ BRASERO_MEDIA_TYPE_WRITABLE);
+ brasero_dest_selection_choose_best (BRASERO_DEST_SELECTION (project->priv->selection));
}
else if (type == BRASERO_PROJECT_TYPE_DATA) {
gtk_widget_show (project->priv->button_img);
+ gtk_widget_show (project->priv->icon_label);
+
project->priv->current = BRASERO_DISC (project->priv->data);
project->priv->merge_id = brasero_disc_add_ui (project->priv->current,
project->priv->manager,
@@ -1204,9 +1275,16 @@ brasero_project_switch (BraseroProject *project, BraseroProjectType type)
gtk_notebook_set_current_page (GTK_NOTEBOOK (project->priv->discs), 1);
brasero_project_update_project_size (project, 0);
+
+ brasero_medium_selection_show_media_type (BRASERO_MEDIUM_SELECTION (project->priv->selection),
+ BRASERO_MEDIA_TYPE_WRITABLE|
+ BRASERO_MEDIA_TYPE_FILE);
+ brasero_dest_selection_choose_best (BRASERO_DEST_SELECTION (project->priv->selection));
}
else if (type == BRASERO_PROJECT_TYPE_VIDEO) {
gtk_widget_hide (project->priv->button_img);
+ gtk_widget_hide (project->priv->icon_label);
+
project->priv->current = BRASERO_DISC (project->priv->video);
project->priv->merge_id = brasero_disc_add_ui (project->priv->current,
project->priv->manager,
@@ -1214,8 +1292,16 @@ brasero_project_switch (BraseroProject *project, BraseroProjectType type)
gtk_notebook_set_current_page (GTK_NOTEBOOK (project->priv->discs), 2);
brasero_project_update_project_size (project, 0);
+
+ brasero_medium_selection_show_media_type (BRASERO_MEDIUM_SELECTION (project->priv->selection),
+ BRASERO_MEDIA_TYPE_WRITABLE|
+ BRASERO_MEDIA_TYPE_FILE);
+ brasero_dest_selection_choose_best (BRASERO_DEST_SELECTION (project->priv->selection));
}
+ if (project->priv->current)
+ brasero_disc_set_session_contents (project->priv->current, BRASERO_BURN_SESSION (project->priv->session));
+
brasero_notify_message_remove (BRASERO_NOTIFY (project->priv->message), BRASERO_NOTIFY_CONTEXT_SIZE);
/* update the menus */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]