[Goodies-commits] r5270 - in xfburn/trunk: . xfburn
David Mohr
squisher at xfce.org
Sun Aug 17 18:50:50 CEST 2008
Author: squisher
Date: 2008-08-17 16:50:50 +0000 (Sun, 17 Aug 2008)
New Revision: 5270
Modified:
xfburn/trunk/xfburn-toolbars.ui
xfburn/trunk/xfburn.ui
xfburn/trunk/xfburn/Makefile.am
xfburn/trunk/xfburn/xfburn-audio-composition.c
xfburn/trunk/xfburn/xfburn-audio-composition.h
xfburn/trunk/xfburn/xfburn-compositions-notebook.c
xfburn/trunk/xfburn/xfburn-data-disc-usage.c
xfburn/trunk/xfburn/xfburn-disc-usage.c
xfburn/trunk/xfburn/xfburn-main-window.c
xfburn/trunk/xfburn/xfburn-main-window.h
xfburn/trunk/xfburn/xfburn-main.c
xfburn/trunk/xfburn/xfburn-welcome-tab.c
Log:
Adding basic UI for audio CDs
Modified: xfburn/trunk/xfburn/Makefile.am
===================================================================
--- xfburn/trunk/xfburn/Makefile.am 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/Makefile.am 2008-08-17 16:50:50 UTC (rev 5270)
@@ -30,6 +30,7 @@
xfburn-file-browser.h \
xfburn-welcome-tab.h \
xfburn-data-composition.h \
+ xfburn-audio-composition.h \
xfburn-disc-usage.h \
xfburn-data-disc-usage.h \
xfburn-fs-browser.h \
@@ -61,6 +62,7 @@
xfburn-file-browser.c \
xfburn-welcome-tab.c \
xfburn-data-composition.c \
+ xfburn-audio-composition.c \
xfburn-disc-usage.c \
xfburn-data-disc-usage.c \
xfburn-fs-browser.c \
Modified: xfburn/trunk/xfburn/xfburn-audio-composition.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-audio-composition.c 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-audio-composition.c 2008-08-17 16:50:50 UTC (rev 5270)
@@ -45,89 +45,89 @@
#include <libisofs.h>
-#include "xfburn-data-composition.h"
+#include "xfburn-audio-composition.h"
#include "xfburn-global.h"
#include "xfburn-adding-progress.h"
#include "xfburn-composition.h"
-#include "xfburn-burn-data-cd-composition-dialog.h"
-#include "xfburn-burn-data-dvd-composition-dialog.h"
#include "xfburn-data-disc-usage.h"
#include "xfburn-main-window.h"
#include "xfburn-utils.h"
-#define XFBURN_DATA_COMPOSITION_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), XFBURN_TYPE_DATA_COMPOSITION, XfburnDataCompositionPrivate))
+#define XFBURN_AUDIO_COMPOSITION_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), XFBURN_TYPE_AUDIO_COMPOSITION, XfburnAudioCompositionPrivate))
enum
{
- DATA_COMPOSITION_COLUMN_ICON,
- DATA_COMPOSITION_COLUMN_CONTENT,
- DATA_COMPOSITION_COLUMN_HUMANSIZE,
- DATA_COMPOSITION_COLUMN_SIZE,
- DATA_COMPOSITION_COLUMN_PATH,
- DATA_COMPOSITION_COLUMN_TYPE,
- DATA_COMPOSITION_N_COLUMNS
+ AUDIO_COMPOSITION_COLUMN_ICON,
+ AUDIO_COMPOSITION_COLUMN_POS,
+ AUDIO_COMPOSITION_COLUMN_CONTENT,
+ AUDIO_COMPOSITION_COLUMN_LENGTH,
+ AUDIO_COMPOSITION_COLUMN_HUMANLENGTH,
+ AUDIO_COMPOSITION_COLUMN_SIZE,
+ AUDIO_COMPOSITION_COLUMN_SONG,
+ AUDIO_COMPOSITION_COLUMN_ARTIST,
+ AUDIO_COMPOSITION_COLUMN_PATH,
+ AUDIO_COMPOSITION_COLUMN_TYPE,
+ AUDIO_COMPOSITION_N_COLUMNS
};
typedef enum
{
- DATA_COMPOSITION_TYPE_FILE,
- DATA_COMPOSITION_TYPE_DIRECTORY
-} DataCompositionEntryType;
+ AUDIO_COMPOSITION_TYPE_RAW,
+} AudioCompositionEntryType;
/* thread parameters */
typedef struct {
char **filenames;
int filec;
- XfburnDataComposition *dc;
+ XfburnAudioComposition *dc;
} ThreadAddFilesCLIParams;
typedef struct {
- XfburnDataComposition *dc;
+ XfburnAudioComposition *dc;
GtkTreeModel *model;
GtkTreeIter iter_where_insert;
- DataCompositionEntryType type;
+ AudioCompositionEntryType type;
} ThreadAddFilesActionParams;
typedef struct {
- XfburnDataComposition *composition;
- DataCompositionEntryType type;
+ XfburnAudioComposition *composition;
+ AudioCompositionEntryType type;
GtkWidget *widget;
GtkTreeViewDropPosition position;
GtkTreeIter iter_dummy;
} ThreadAddFilesDragParams;
/* prototypes */
-static void xfburn_data_composition_class_init (XfburnDataCompositionClass *);
+static void xfburn_audio_composition_class_init (XfburnAudioCompositionClass *);
static void composition_interface_init (XfburnCompositionInterface *composition, gpointer iface_data);
-static void xfburn_data_composition_init (XfburnDataComposition *dc);
-static void xfburn_data_composition_finalize (GObject * object);
+static void xfburn_audio_composition_init (XfburnAudioComposition *dc);
+static void xfburn_audio_composition_finalize (GObject * object);
static void show_custom_controls (XfburnComposition *composition);
static void hide_custom_controls (XfburnComposition *composition);
static void load_from_file (XfburnComposition *composition, const gchar *file);
static void save_to_file (XfburnComposition *composition);
-static gint directory_tree_sortfunc (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data);
+//static gint song_tree_sortfunc (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data);
-static void action_create_directory (GtkAction *, XfburnDataComposition *);
-static void action_clear (GtkAction *, XfburnDataComposition *);
-static void action_remove_selection (GtkAction *, XfburnDataComposition *);
-static void action_rename_selection (GtkAction *, XfburnDataComposition *);
-static void action_add_selected_files (GtkAction *, XfburnDataComposition *);
+static void action_clear (GtkAction *, XfburnAudioComposition *);
+static void action_remove_selection (GtkAction *, XfburnAudioComposition *);
+static void action_rename_selection (GtkAction *, XfburnAudioComposition *);
+static void action_add_selected_files (GtkAction *, XfburnAudioComposition *);
-static gboolean cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, XfburnDataComposition * dc);
-static void cb_treeview_row_activated (GtkTreeView * treeview, GtkTreePath * path, GtkTreeViewColumn * column, XfburnDataComposition * composition);
-static void cb_selection_changed (GtkTreeSelection *selection, XfburnDataComposition * dc);
-static void cb_begin_burn (XfburnDataDiscUsage * du, XfburnDataComposition * dc);
-static void cb_cell_file_edited (GtkCellRenderer * renderer, gchar * path, gchar * newtext, XfburnDataComposition * dc);
+static void tracks_changed (XfburnAudioComposition *ac);
+static gboolean cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, XfburnAudioComposition * dc);
+static void cb_selection_changed (GtkTreeSelection *selection, XfburnAudioComposition * dc);
+static void cb_begin_burn (XfburnDataDiscUsage * du, XfburnAudioComposition * dc);
+//static void cb_cell_file_edited (GtkCellRenderer * renderer, gchar * path, gchar * newtext, XfburnAudioComposition * dc);
static void cb_content_drag_data_rcv (GtkWidget * widget, GdkDragContext * dc, guint x, guint y, GtkSelectionData * sd,
- guint info, guint t, XfburnDataComposition * composition);
+ guint info, guint t, XfburnAudioComposition * composition);
static void cb_content_drag_data_get (GtkWidget * widget, GdkDragContext * dc, GtkSelectionData * data, guint info,
- guint time, XfburnDataComposition * content);
-static void cb_adding_done (XfburnAddingProgress *progress, XfburnDataComposition *dc);
+ guint time, XfburnAudioComposition * content);
+static void cb_adding_done (XfburnAddingProgress *progress, XfburnAudioComposition *dc);
/* thread entry points */
static void thread_add_files_cli (ThreadAddFilesCLIParams *params);
@@ -135,19 +135,18 @@
static void thread_add_files_drag (ThreadAddFilesDragParams *params);
/* thread helpers */
-static gboolean thread_add_file_to_list_with_name (const gchar *name, XfburnDataComposition * dc,
+static gboolean thread_add_file_to_list_with_name (const gchar *name, XfburnAudioComposition * dc,
GtkTreeModel * model, const gchar * path, GtkTreeIter * iter,
GtkTreeIter * insertion, GtkTreeViewDropPosition position);
-static gboolean thread_add_file_to_list (XfburnDataComposition * dc, GtkTreeModel * model, const gchar * path,
+static gboolean thread_add_file_to_list (XfburnAudioComposition * dc, GtkTreeModel * model, const gchar * path,
GtkTreeIter * iter, GtkTreeIter * insertion, GtkTreeViewDropPosition position);
-static IsoImage * generate_iso_image (XfburnDataComposition * dc);
typedef struct
{
gchar *filename;
gboolean modified;
- guint n_new_directory;
+ guint n_tracks;
GList *full_paths_to_add;
gchar *selected_files;
@@ -169,7 +168,7 @@
GtkWidget *disc_usage;
GtkWidget *progress;
-} XfburnDataCompositionPrivate;
+} XfburnAudioCompositionPrivate;
/* globals */
static GtkHPanedClass *parent_class = NULL;
@@ -178,8 +177,6 @@
static const GtkActionEntry action_entries[] = {
{"add-file", GTK_STOCK_ADD, N_("Add"), NULL, N_("Add the selected file(s) to the composition"),
G_CALLBACK (action_add_selected_files),},
- {"create-dir", GTK_STOCK_NEW, N_("Create directory"), NULL, N_("Add a new directory to the composition"),
- G_CALLBACK (action_create_directory),},
{"remove-file", GTK_STOCK_REMOVE, N_("Remove"), NULL, N_("Remove the selected file(s) from the composition"),
G_CALLBACK (action_remove_selection),},
{"clear", GTK_STOCK_CLEAR, N_("Clear"), NULL, N_("Clear the content of the composition"),
@@ -192,32 +189,31 @@
static const gchar *toolbar_actions[] = {
"add-file",
"remove-file",
- "create-dir",
"clear",
"import-session",
};
static GdkPixbuf *icon_directory = NULL, *icon_file = NULL;
-/***************************/
-/* XfburnDataComposition class */
-/***************************/
+/********************************/
+/* XfburnAudioComposition class */
+/********************************/
GtkType
-xfburn_data_composition_get_type (void)
+xfburn_audio_composition_get_type (void)
{
- static GtkType data_composition_type = 0;
+ static GtkType audio_composition_type = 0;
- if (!data_composition_type) {
- static const GTypeInfo data_composition_info = {
- sizeof (XfburnDataCompositionClass),
+ if (!audio_composition_type) {
+ static const GTypeInfo audio_composition_info = {
+ sizeof (XfburnAudioCompositionClass),
NULL,
NULL,
- (GClassInitFunc) xfburn_data_composition_class_init,
+ (GClassInitFunc) xfburn_audio_composition_class_init,
NULL,
NULL,
- sizeof (XfburnDataComposition),
+ sizeof (XfburnAudioComposition),
0,
- (GInstanceInitFunc) xfburn_data_composition_init
+ (GInstanceInitFunc) xfburn_audio_composition_init
};
static const GInterfaceInfo composition_info = {
@@ -226,24 +222,24 @@
NULL /* interface_data */
};
- data_composition_type = g_type_register_static (GTK_TYPE_VBOX, "XfburnDataComposition", &data_composition_info, 0);
+ audio_composition_type = g_type_register_static (GTK_TYPE_VBOX, "XfburnAudioComposition", &audio_composition_info, 0);
- g_type_add_interface_static (data_composition_type, XFBURN_TYPE_COMPOSITION, &composition_info);
+ g_type_add_interface_static (audio_composition_type, XFBURN_TYPE_COMPOSITION, &composition_info);
}
- return data_composition_type;
+ return audio_composition_type;
}
static void
-xfburn_data_composition_class_init (XfburnDataCompositionClass * klass)
+xfburn_audio_composition_class_init (XfburnAudioCompositionClass * klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- g_type_class_add_private (klass, sizeof (XfburnDataCompositionPrivate));
+ g_type_class_add_private (klass, sizeof (XfburnAudioCompositionPrivate));
parent_class = g_type_class_peek_parent (klass);
- object_class->finalize = xfburn_data_composition_finalize;
+ object_class->finalize = xfburn_audio_composition_finalize;
}
static void
@@ -256,32 +252,31 @@
}
static void
-xfburn_data_composition_init (XfburnDataComposition * composition)
+xfburn_audio_composition_init (XfburnAudioComposition * composition)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (composition);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (composition);
gint x, y;
ExoToolbarsModel *model_toolbar;
gint toolbar_position;
GtkWidget *hbox_toolbar;
- GtkWidget *hbox, *label;
+ //GtkWidget *hbox, *label;
GtkWidget *scrolled_window;
GtkTreeStore *model;
- GtkTreeViewColumn *column_file;
- GtkCellRenderer *cell_icon, *cell_file;
+ //GtkTreeViewColumn *column_file;
+ //GtkCellRenderer *cell_icon, *cell_file;
GtkTreeSelection *selection;
GtkAction *action = NULL;
GdkScreen *screen;
GtkIconTheme *icon_theme;
const gchar ui_string[] = "<ui> <popup name=\"popup-menu\">"
- "<menuitem action=\"create-dir\"/>" "<separator/>"
"<menuitem action=\"rename-file\"/>" "<menuitem action=\"remove-file\"/>" "</popup></ui>";
- GtkTargetEntry gte_src[] = { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, DATA_COMPOSITION_DND_TARGET_INSIDE } };
- GtkTargetEntry gte_dest[] = { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, DATA_COMPOSITION_DND_TARGET_INSIDE },
- { "text/plain", 0, DATA_COMPOSITION_DND_TARGET_TEXT_PLAIN },
- { "text/uri-list", 0, DATA_COMPOSITION_DND_TARGET_TEXT_URI_LIST },
+ GtkTargetEntry gte_src[] = { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, AUDIO_COMPOSITION_DND_TARGET_INSIDE } };
+ GtkTargetEntry gte_dest[] = { { "XFBURN_TREE_PATHS", GTK_TARGET_SAME_WIDGET, AUDIO_COMPOSITION_DND_TARGET_INSIDE },
+ { "text/plain", 0, AUDIO_COMPOSITION_DND_TARGET_TEXT_PLAIN },
+ { "text/uri-list", 0, AUDIO_COMPOSITION_DND_TARGET_TEXT_URI_LIST },
};
priv->full_paths_to_add = NULL;
@@ -299,7 +294,7 @@
icon_file = gtk_icon_theme_load_icon (icon_theme, "gnome-fs-regular", x, 0, NULL);
/* create ui manager */
- priv->action_group = gtk_action_group_new ("xfburn-data-composition");
+ priv->action_group = gtk_action_group_new ("xfburn-audio-composition");
gtk_action_group_set_translation_domain (priv->action_group, GETTEXT_PACKAGE);
gtk_action_group_add_actions (priv->action_group, action_entries, G_N_ELEMENTS (action_entries),
GTK_WIDGET (composition));
@@ -320,7 +315,6 @@
exo_toolbars_model_set_style (model_toolbar, GTK_TOOLBAR_BOTH, toolbar_position);
exo_toolbars_model_add_item (model_toolbar, toolbar_position, -1, "add-file", EXO_TOOLBARS_ITEM_TYPE);
- exo_toolbars_model_add_item (model_toolbar, toolbar_position, -1, "create-dir", EXO_TOOLBARS_ITEM_TYPE);
exo_toolbars_model_add_separator (model_toolbar, toolbar_position, -1);
exo_toolbars_model_add_item (model_toolbar, toolbar_position, -1, "remove-file", EXO_TOOLBARS_ITEM_TYPE);
exo_toolbars_model_add_item (model_toolbar, toolbar_position, -1, "clear", EXO_TOOLBARS_ITEM_TYPE);
@@ -332,21 +326,6 @@
gtk_widget_show (priv->toolbar);
- /* volume name */
- hbox = gtk_hbox_new (FALSE, 5);
- gtk_container_set_border_width (GTK_CONTAINER (hbox), 10);
- gtk_box_pack_start (GTK_BOX (hbox_toolbar), hbox, FALSE, FALSE, 0);
- gtk_widget_show (hbox);
-
- label = gtk_label_new (_("Volume name :"));
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
- gtk_widget_show (label);
-
- priv->entry_volume_name = gtk_entry_new ();
- gtk_entry_set_text (GTK_ENTRY (priv->entry_volume_name), _(DATA_COMPOSITION_DEFAULT_NAME));
- gtk_box_pack_start (GTK_BOX (hbox), priv->entry_volume_name, FALSE, FALSE, 0);
- gtk_widget_show (priv->entry_volume_name);
-
/* content treeview */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -355,12 +334,14 @@
gtk_box_pack_start (GTK_BOX (composition), scrolled_window, TRUE, TRUE, 0);
priv->content = exo_tree_view_new ();
- model = gtk_tree_store_new (DATA_COMPOSITION_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_UINT64, G_TYPE_STRING, G_TYPE_UINT);
+ model = gtk_tree_store_new (AUDIO_COMPOSITION_N_COLUMNS, GDK_TYPE_PIXBUF, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_STRING,
+ G_TYPE_UINT64, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_UINT);
- gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), DATA_COMPOSITION_COLUMN_CONTENT,
- directory_tree_sortfunc, NULL, NULL);
- gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), DATA_COMPOSITION_COLUMN_CONTENT, GTK_SORT_ASCENDING);
+ /*
+ gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), AUDIO_COMPOSITION_COLUMN_POS,
+ song_tree_sortfunc, NULL, NULL);
+ gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), AUDIO_COMPOSITION_COLUMN_CONTENT, GTK_SORT_ASCENDING);
+ */
gtk_tree_view_set_model (GTK_TREE_VIEW (priv->content), GTK_TREE_MODEL (model));
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (priv->content), TRUE);
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->content));
@@ -368,39 +349,33 @@
gtk_widget_show (priv->content);
gtk_container_add (GTK_CONTAINER (scrolled_window), priv->content);
- column_file = gtk_tree_view_column_new ();
- gtk_tree_view_column_set_title (column_file, _("Contents"));
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->content), -1, _("Pos"),
+ gtk_cell_renderer_text_new (), "text", AUDIO_COMPOSITION_COLUMN_POS, NULL);
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->content), -1, _("Length"),
+ gtk_cell_renderer_text_new (), "text", AUDIO_COMPOSITION_COLUMN_HUMANLENGTH, NULL);
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->content), -1, _("Artist"),
+ gtk_cell_renderer_text_new (), "text", AUDIO_COMPOSITION_COLUMN_ARTIST, NULL);
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->content), -1, _("Song Name"),
+ gtk_cell_renderer_text_new (), "text", AUDIO_COMPOSITION_COLUMN_SONG, NULL);
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->content), -1, _("Filename"),
+ gtk_cell_renderer_text_new (), "text", AUDIO_COMPOSITION_COLUMN_PATH, NULL);
- cell_icon = gtk_cell_renderer_pixbuf_new ();
- gtk_tree_view_column_pack_start (column_file, cell_icon, FALSE);
- gtk_tree_view_column_set_attributes (column_file, cell_icon, "pixbuf", DATA_COMPOSITION_COLUMN_ICON, NULL);
- g_object_set (cell_icon, "xalign", 0.0, "ypad", 0, NULL);
-
- cell_file = gtk_cell_renderer_text_new ();
- gtk_tree_view_column_pack_start (column_file, cell_file, TRUE);
- gtk_tree_view_column_set_attributes (column_file, cell_file, "text", DATA_COMPOSITION_COLUMN_CONTENT, NULL);
- g_signal_connect (G_OBJECT (cell_file), "edited", G_CALLBACK (cb_cell_file_edited), composition);
- g_object_set (G_OBJECT (cell_file), "editable", TRUE, NULL);
-
- gtk_tree_view_append_column (GTK_TREE_VIEW (priv->content), column_file);
-
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->content), -1, _("Size"),
- gtk_cell_renderer_text_new (), "text", DATA_COMPOSITION_COLUMN_HUMANSIZE,
- NULL);
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (priv->content), -1, _("Local Path"),
- gtk_cell_renderer_text_new (), "text", DATA_COMPOSITION_COLUMN_PATH, NULL);
-
- /* Contents column */
- gtk_tree_view_column_set_resizable (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 0), 1);
- gtk_tree_view_column_set_min_width (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 0), 200);
- /* Size (HUMANSIZE) column */
- gtk_tree_view_column_set_resizable (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 1), 1);
+ /* Position */
+ gtk_tree_view_column_set_resizable (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 0), FALSE);
+ gtk_tree_view_column_set_min_width (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 0), 20);
+ /* Length */
+ gtk_tree_view_column_set_resizable (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 1), FALSE);
gtk_tree_view_column_set_min_width (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 1), 60);
+ /* Artist */
+ gtk_tree_view_column_set_resizable (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 2), TRUE);
+ gtk_tree_view_column_set_min_width (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 2), 80);
+ /* Song Name */
+ gtk_tree_view_column_set_resizable (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 3), TRUE);
+ gtk_tree_view_column_set_min_width (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 3), 100);
/* Local Path (PATH) column */
- gtk_tree_view_column_set_resizable (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 2), 1);
+ gtk_tree_view_column_set_resizable (gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), 4), TRUE);
- g_signal_connect (G_OBJECT (priv->content), "row-activated", G_CALLBACK (cb_treeview_row_activated), composition);
g_signal_connect (G_OBJECT (priv->content), "button-press-event",
G_CALLBACK (cb_treeview_button_pressed), composition);
g_signal_connect (G_OBJECT (selection), "changed", G_CALLBACK (cb_selection_changed), composition);
@@ -412,7 +387,7 @@
/* FIXME: progress should have a busy cursor */
/* disc usage */
- priv->disc_usage = xfburn_data_disc_usage_new ();
+ priv->disc_usage = xfburn_disc_usage_new ();
gtk_box_pack_start (GTK_BOX (composition), priv->disc_usage, FALSE, FALSE, 5);
gtk_widget_show (priv->disc_usage);
g_signal_connect (G_OBJECT (priv->disc_usage), "begin-burn", G_CALLBACK (cb_begin_burn), composition);
@@ -432,9 +407,9 @@
}
static void
-xfburn_data_composition_finalize (GObject * object)
+xfburn_audio_composition_finalize (GObject * object)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (object);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (object);
g_free (priv->filename);
@@ -470,8 +445,9 @@
}
static void
-cb_begin_burn (XfburnDataDiscUsage * du, XfburnDataComposition * dc)
+cb_begin_burn (XfburnDataDiscUsage * du, XfburnAudioComposition * dc)
{
+ /*
XfburnMainWindow *mainwin = xfburn_main_window_get_instance ();
GtkWidget *dialog = NULL;
IsoImage *image = NULL;
@@ -481,7 +457,7 @@
return;
}
- image = generate_iso_image (XFBURN_DATA_COMPOSITION (dc));
+ image = generate_iso_image (XFBURN_AUDIO_COMPOSITION (dc));
switch (xfburn_data_disc_usage_get_disc_type (du)) {
case CD_DISC:
@@ -495,19 +471,13 @@
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (mainwin));
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
+ */
}
static void
-cb_treeview_row_activated (GtkTreeView * treeview, GtkTreePath * path, GtkTreeViewColumn * column,
- XfburnDataComposition * composition)
+cb_selection_changed (GtkTreeSelection *selection, XfburnAudioComposition * dc)
{
- gtk_tree_view_expand_row (treeview, path, FALSE);
-}
-
-static void
-cb_selection_changed (GtkTreeSelection *selection, XfburnDataComposition * dc)
-{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
gint n_selected_rows;
GtkAction *action = NULL;
@@ -516,31 +486,25 @@
if (n_selected_rows == 0) {
action = gtk_action_group_get_action (priv->action_group, "add-file");
gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
- action = gtk_action_group_get_action (priv->action_group, "create-dir");
- gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
action = gtk_action_group_get_action (priv->action_group, "remove-file");
gtk_action_set_sensitive (GTK_ACTION (action), FALSE);
} else if (n_selected_rows == 1) {
action = gtk_action_group_get_action (priv->action_group, "add-file");
gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
- action = gtk_action_group_get_action (priv->action_group, "create-dir");
- gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
action = gtk_action_group_get_action (priv->action_group, "remove-file");
gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
} else {
action = gtk_action_group_get_action (priv->action_group, "add-file");
gtk_action_set_sensitive (GTK_ACTION (action), FALSE);
- action = gtk_action_group_get_action (priv->action_group, "create-dir");
- gtk_action_set_sensitive (GTK_ACTION (action), FALSE);
action = gtk_action_group_get_action (priv->action_group, "remove-file");
gtk_action_set_sensitive (GTK_ACTION (action), TRUE);
}
}
static gboolean
-cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, XfburnDataComposition * dc)
+cb_treeview_button_pressed (GtkTreeView * treeview, GdkEventButton * event, XfburnAudioComposition * dc)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
if ((event->button == 1) && (event->type == GDK_BUTTON_PRESS)) {
GtkTreePath *path;
@@ -592,29 +556,22 @@
return FALSE;
}
+/*
static gint
-directory_tree_sortfunc (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data)
+song_tree_sortfunc (GtkTreeModel * model, GtkTreeIter * a, GtkTreeIter * b, gpointer user_data)
{
- /* adapted from gnomebaker */
- gchar *aname, *bname;
- DataCompositionEntryType atype = -1, btype = -1;
+ guint *apos, *bpos;
+ AudioCompositionEntryType atype = -1, btype = -1;
gint result = 0;
- gtk_tree_model_get (model, a, DATA_COMPOSITION_COLUMN_CONTENT, &aname, DATA_COMPOSITION_COLUMN_TYPE, &atype, -1);
- gtk_tree_model_get (model, b, DATA_COMPOSITION_COLUMN_CONTENT, &bname, DATA_COMPOSITION_COLUMN_TYPE, &btype, -1);
+ gtk_tree_model_get (model, a, AUDIO_COMPOSITION_COLUMN_POS, &apos, AUDIO_COMPOSITION_COLUMN_TYPE, &atype, -1);
+ gtk_tree_model_get (model, b, AUDIO_COMPOSITION_COLUMN_POS, &bpos, AUDIO_COMPOSITION_COLUMN_TYPE, &btype, -1);
- if ( (atype == DATA_COMPOSITION_TYPE_DIRECTORY) && (btype != DATA_COMPOSITION_TYPE_DIRECTORY) )
- result = -1;
- else if ( (atype != DATA_COMPOSITION_TYPE_DIRECTORY) && (btype == DATA_COMPOSITION_TYPE_DIRECTORY) )
- result = 1;
- else
- result = g_ascii_strcasecmp (aname, bname);
+ result = apos - bpos;
- g_free (aname);
- g_free (bname);
-
return result;
}
+*/
static gboolean
file_exists_on_same_level (GtkTreeModel * model, GtkTreePath * path, gboolean skip_path, const gchar *filename)
@@ -634,7 +591,7 @@
continue;
}
- gtk_tree_model_get (model, ¤t_iter, DATA_COMPOSITION_COLUMN_CONTENT, ¤t_filename, -1);
+ gtk_tree_model_get (model, ¤t_iter, AUDIO_COMPOSITION_COLUMN_CONTENT, ¤t_filename, -1);
if (strcmp (current_filename, filename) == 0) {
g_free (current_filename);
gtk_tree_path_free (current_path);
@@ -650,10 +607,11 @@
return FALSE;
}
+/*
static void
-cb_cell_file_edited (GtkCellRenderer * renderer, gchar * path, gchar * newtext, XfburnDataComposition * dc)
+cb_cell_file_edited (GtkCellRenderer * renderer, gchar * path, gchar * newtext, XfburnAudioComposition * dc)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
GtkTreeIter iter;
GtkTreeModel *model;
@@ -672,18 +630,36 @@
xfce_err (_("A file with the same name is already present in the composition"));
}
else {
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter, DATA_COMPOSITION_COLUMN_CONTENT, newtext, -1);
+ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, AUDIO_COMPOSITION_COLUMN_CONTENT, newtext, -1);
}
}
gtk_tree_path_free (real_path);
}
+*/
static void
-cb_adding_done (XfburnAddingProgress *progress, XfburnDataComposition *dc)
+tracks_changed (XfburnAudioComposition *ac)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (ac);
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ int i=0;
+ /* fix up position numbers based on the tree model */
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->content));
+ if (gtk_tree_model_get_iter_first (model, &iter)) {
+ do {
+ gtk_tree_store_set (GTK_TREE_STORE (model), &iter, AUDIO_COMPOSITION_COLUMN_POS, ++i, -1);
+ } while (gtk_tree_model_iter_next (model, &iter));
+ }
+}
+
+static void
+cb_adding_done (XfburnAddingProgress *progress, XfburnAudioComposition *dc)
+{
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
+
gtk_widget_hide (priv->progress);
if (priv->selected_files) {
@@ -703,13 +679,16 @@
}
g_free (priv->thread_params);
+
+ tracks_changed (dc);
+
xfburn_default_cursor (priv->content);
}
static void
-action_rename_selection (GtkAction * action, XfburnDataComposition * dc)
+action_rename_selection (GtkAction * action, XfburnAudioComposition * dc)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
GtkTreeSelection *selection;
GtkTreeModel *model;
@@ -721,7 +700,7 @@
list = gtk_tree_selection_get_selected_rows (selection, &model);
path = (GtkTreePath *) list->data;
- column = gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), DATA_COMPOSITION_COLUMN_CONTENT - 1);
+ column = gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), AUDIO_COMPOSITION_COLUMN_CONTENT - 1);
/* -1 because of COLUMN_ICON */
gtk_tree_view_set_cursor (GTK_TREE_VIEW (priv->content), path, column, TRUE);
@@ -731,84 +710,9 @@
}
static void
-action_create_directory (GtkAction * action, XfburnDataComposition * dc)
+remove_row_reference (GtkTreeRowReference *reference, XfburnAudioCompositionPrivate *priv)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
-
- GtkTreeModel *model;
- GtkTreeSelection *selection;
- GList *selected_paths = NULL;
- GtkTreePath *path_where_insert = NULL;
- GtkTreeIter iter_where_insert, iter_directory;
- DataCompositionEntryType type = -1;
- gchar *humansize = NULL;
-
- GtkTreePath *inserted_path = NULL;
- gchar *directory_text = NULL;
-
- GtkTreeViewColumn *column;
GtkTreePath *path = NULL;
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->content));
- selected_paths = gtk_tree_selection_get_selected_rows (selection, NULL);
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->content));
-
- if (selected_paths) {
- path_where_insert = (GtkTreePath *) (selected_paths->data);
-
- gtk_tree_model_get_iter (model, &iter_where_insert, path_where_insert);
- gtk_tree_model_get (model, &iter_where_insert, DATA_COMPOSITION_COLUMN_TYPE, &type, -1);
- }
-
- if (type == DATA_COMPOSITION_TYPE_DIRECTORY) {
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter_directory, &iter_where_insert);
- gtk_tree_view_expand_row (GTK_TREE_VIEW (priv->content), path_where_insert, FALSE);
- } else if (type == DATA_COMPOSITION_TYPE_FILE) {
- GtkTreeIter parent;
-
- if (gtk_tree_model_iter_parent (model, &parent, &iter_where_insert))
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter_directory, &parent);
- else
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter_directory, NULL);
- } else {
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter_directory, NULL);
- }
-
- humansize = xfburn_humanreadable_filesize (4);
-
- inserted_path = gtk_tree_model_get_path (model, &iter_directory);
- if (file_exists_on_same_level (model, inserted_path, TRUE, _("New directory")))
- directory_text = g_strdup_printf ("%s %d", _("New directory"), ++(priv->n_new_directory));
- else
- directory_text = g_strdup (_("New directory"));
- gtk_tree_path_free (inserted_path);
-
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter_directory,
- DATA_COMPOSITION_COLUMN_ICON, icon_directory,
- DATA_COMPOSITION_COLUMN_CONTENT, directory_text,
- DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize,
- DATA_COMPOSITION_COLUMN_SIZE, (guint64) 4,
- DATA_COMPOSITION_COLUMN_TYPE, DATA_COMPOSITION_TYPE_DIRECTORY, -1);
- g_free (directory_text);
- g_free (humansize);
-
- xfburn_data_disc_usage_add_size (XFBURN_DATA_DISC_USAGE (priv->disc_usage), 4);
-
- gtk_widget_realize (priv->content);
-
- /* put the cell renderer in edition mode */
- column = gtk_tree_view_get_column (GTK_TREE_VIEW (priv->content), DATA_COMPOSITION_COLUMN_CONTENT - 1);
- /* -1 because of COLUMN_ICON */
- path = gtk_tree_model_get_path (model, &iter_directory);
-
- gtk_tree_view_set_cursor (GTK_TREE_VIEW (priv->content), path, column, TRUE);
- gtk_tree_path_free (path);
-}
-
-static void
-remove_row_reference (GtkTreeRowReference *reference, XfburnDataCompositionPrivate *priv)
-{
- GtkTreePath *path = NULL;
GtkTreeModel *model;
model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->content));
@@ -821,8 +725,8 @@
GtkTreeIter parent, iter_temp;
guint64 size = 0;
- gtk_tree_model_get (model, &iter, DATA_COMPOSITION_COLUMN_SIZE, &size, -1);
- xfburn_data_disc_usage_sub_size (XFBURN_DATA_DISC_USAGE (priv->disc_usage), size);
+ gtk_tree_model_get (model, &iter, AUDIO_COMPOSITION_COLUMN_SIZE, &size, -1);
+ xfburn_disc_usage_sub_size (XFBURN_DISC_USAGE (priv->disc_usage), size);
iter_temp = iter;
while (gtk_tree_model_iter_parent (model, &parent, &iter_temp)) {
@@ -830,12 +734,11 @@
gchar *humansize = NULL;
/* updates parent directories size */
- gtk_tree_model_get (model, &parent, DATA_COMPOSITION_COLUMN_SIZE, &old_size, -1);
+ gtk_tree_model_get (model, &parent, AUDIO_COMPOSITION_COLUMN_SIZE, &old_size, -1);
humansize = xfburn_humanreadable_filesize (old_size - size);
gtk_tree_store_set (GTK_TREE_STORE (model), &parent,
- DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize,
- DATA_COMPOSITION_COLUMN_SIZE, old_size - size, -1);
+ AUDIO_COMPOSITION_COLUMN_SIZE, old_size - size, -1);
iter_temp = parent;
@@ -852,9 +755,9 @@
}
static void
-action_remove_selection (GtkAction * action, XfburnDataComposition * dc)
+action_remove_selection (GtkAction * action, XfburnAudioComposition * dc)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
GtkTreeSelection *selection;
GtkTreeModel *model;
@@ -886,9 +789,9 @@
static void
-action_add_selected_files (GtkAction *action, XfburnDataComposition *dc)
+action_add_selected_files (GtkAction *action, XfburnAudioComposition *dc)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
XfburnFileBrowser *browser = xfburn_main_window_get_file_browser (xfburn_main_window_get_instance ());
gchar *selected_files = NULL;
@@ -916,7 +819,7 @@
priv->path_where_insert = (GtkTreePath *) (selected_paths->data);
gtk_tree_model_get_iter (params->model, ¶ms->iter_where_insert, priv->path_where_insert);
- gtk_tree_model_get (params->model, ¶ms->iter_where_insert, DATA_COMPOSITION_COLUMN_TYPE, ¶ms->type, -1);
+ gtk_tree_model_get (params->model, ¶ms->iter_where_insert, AUDIO_COMPOSITION_COLUMN_TYPE, ¶ms->type, -1);
}
priv->selected_files = selected_files;
@@ -930,25 +833,23 @@
}
static void
-action_clear (GtkAction * action, XfburnDataComposition * dc)
+action_clear (GtkAction * action, XfburnAudioComposition * dc)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
GtkTreeModel *model;
model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->content));
gtk_tree_store_clear (GTK_TREE_STORE (model));
- gtk_entry_set_text (GTK_ENTRY (priv->entry_volume_name), _(DATA_COMPOSITION_DEFAULT_NAME));
-
- xfburn_data_disc_usage_set_size (XFBURN_DATA_DISC_USAGE (priv->disc_usage), 0);
+ xfburn_disc_usage_set_size (XFBURN_DISC_USAGE (priv->disc_usage), 0);
}
static void
cb_content_drag_data_get (GtkWidget * widget, GdkDragContext * dc,
- GtkSelectionData * data, guint info, guint time, XfburnDataComposition * content)
+ GtkSelectionData * data, guint info, guint time, XfburnAudioComposition * content)
{
- if (info == DATA_COMPOSITION_DND_TARGET_INSIDE) {
+ if (info == AUDIO_COMPOSITION_DND_TARGET_INSIDE) {
GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
GtkTreeModel *model;
GList *selected_rows = NULL, *row = NULL;
@@ -979,7 +880,7 @@
}
static void
-set_modified (XfburnDataCompositionPrivate *priv)
+set_modified (XfburnAudioCompositionPrivate *priv)
{
if (!(priv->modified)) {
XfburnMainWindow *mainwin;
@@ -1000,18 +901,17 @@
}
static gboolean
-thread_add_file_to_list_with_name (const gchar *name, XfburnDataComposition * dc,
+thread_add_file_to_list_with_name (const gchar *name, XfburnAudioComposition * dc,
GtkTreeModel * model, const gchar * path,
GtkTreeIter * iter, GtkTreeIter * insertion, GtkTreeViewDropPosition position)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
struct stat s;
if ((stat (path, &s) == 0)) {
gchar *basename = NULL;
- gchar *humansize = NULL;
- GtkTreeIter *parent = NULL;
+ //gchar *humansize = NULL;
GtkTreePath *tree_path = NULL;
if (!S_ISDIR (s.st_mode) && !S_ISREG (s.st_mode)) {
@@ -1030,36 +930,9 @@
xfburn_adding_progress_pulse (XFBURN_ADDING_PROGRESS (priv->progress));
- /* find parent */
- switch (position){
- case GTK_TREE_VIEW_DROP_BEFORE:
- case GTK_TREE_VIEW_DROP_AFTER:
- if (insertion) {
- GtkTreeIter iter_parent;
-
- gdk_threads_enter ();
- if (gtk_tree_model_iter_parent (model, &iter_parent, insertion)) {
- parent = g_new0 (GtkTreeIter, 1);
- memcpy (parent, &iter_parent, sizeof (GtkTreeIter));
- }
- gdk_threads_leave ();
- }
- break;
- case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
- case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
- parent = g_new0 (GtkTreeIter, 1);
- memcpy (parent, insertion, sizeof (GtkTreeIter));
- break;
- }
-
/* check if the filename is valid */
gdk_threads_enter ();
- if (parent) {
- tree_path = gtk_tree_model_get_path (model, parent);
- gtk_tree_path_down (tree_path);
- } else {
- tree_path = gtk_tree_path_new_first ();
- }
+ tree_path = gtk_tree_path_new_first ();
gdk_threads_leave ();
gdk_threads_enter ();
@@ -1068,7 +941,6 @@
gtk_tree_path_free (tree_path);
gdk_threads_leave ();
- g_free (parent);
return FALSE;
}
gtk_tree_path_free (tree_path);
@@ -1080,28 +952,20 @@
GError *error = NULL;
const gchar *filename = NULL;
guint64 total_size = 4;
+ GtkTreeIter *iter_last;
dir = g_dir_open (path, 0, &error);
if (!dir) {
g_warning ("unable to open directory : %s", error->message);
g_error_free (error);
- g_free (parent);
return FALSE;
}
- gdk_threads_enter ();
- gtk_tree_store_append (GTK_TREE_STORE (model), iter, parent);
+ /* FIXME: if insertion != NULL, we will overwrite its contents, is that OK? */
+ iter_last = insertion;
- gtk_tree_store_set (GTK_TREE_STORE (model), iter,
- DATA_COMPOSITION_COLUMN_ICON, icon_directory,
- DATA_COMPOSITION_COLUMN_CONTENT, name,
- DATA_COMPOSITION_COLUMN_TYPE, DATA_COMPOSITION_TYPE_DIRECTORY,
- DATA_COMPOSITION_COLUMN_SIZE, (guint64) 4, -1);
- xfburn_data_disc_usage_add_size (XFBURN_DATA_DISC_USAGE (priv->disc_usage), (guint64) 4);
- gdk_threads_leave ();
-
while ((filename = g_dir_read_name (dir))) {
GtkTreeIter new_iter;
gchar *new_path = NULL;
@@ -1110,79 +974,61 @@
if (new_path) {
guint64 size;
- if (thread_add_file_to_list (dc, model, new_path, &new_iter, iter, GTK_TREE_VIEW_DROP_INTO_OR_AFTER)) {
+ if (thread_add_file_to_list (dc, model, new_path, &new_iter, iter_last, position)) {
gdk_threads_enter ();
- gtk_tree_model_get (model, &new_iter, DATA_COMPOSITION_COLUMN_SIZE, &size, -1);
+ gtk_tree_model_get (model, &new_iter, AUDIO_COMPOSITION_COLUMN_SIZE, &size, -1);
gdk_threads_leave ();
total_size += size;
+ if (iter_last == NULL)
+ iter_last = g_new (GtkTreeIter, 1);
+ *iter_last = new_iter;
+ position = GTK_TREE_VIEW_DROP_AFTER;
}
g_free (new_path);
}
}
- humansize = xfburn_humanreadable_filesize (total_size);
- gdk_threads_enter ();
- gtk_tree_store_set (GTK_TREE_STORE (model), iter,
- DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize, DATA_COMPOSITION_COLUMN_SIZE, total_size, -1);
- gdk_threads_leave ();
+ if (insertion == NULL)
+ g_free (iter_last);
g_dir_close (dir);
}
/* new file */
else if (S_ISREG (s.st_mode)) {
-#ifdef HAVE_THUNAR_VFS
- GdkScreen *screen;
- GtkIconTheme *icon_theme;
- ThunarVfsMimeDatabase *mime_database = NULL;
- ThunarVfsMimeInfo *mime_info = NULL;
- const gchar *mime_icon_name = NULL;
- GdkPixbuf *mime_icon = NULL;
- gint x,y;
-
gdk_threads_enter ();
- screen = gtk_widget_get_screen (GTK_WIDGET (dc));
- icon_theme = gtk_icon_theme_get_for_screen (screen);
-
- mime_database = thunar_vfs_mime_database_get_default ();
- mime_info = thunar_vfs_mime_database_get_info_for_file (mime_database, path, NULL);
-
- gtk_icon_size_lookup (GTK_ICON_SIZE_SMALL_TOOLBAR, &x, &y);
- mime_icon_name = thunar_vfs_mime_info_lookup_icon_name (mime_info, icon_theme);
- mime_icon = gtk_icon_theme_load_icon (icon_theme, mime_icon_name, x, 0, NULL);
-#endif
-
- gtk_tree_store_append (GTK_TREE_STORE (model), iter, parent);
+ if (insertion != NULL) {
+ if (position == GTK_TREE_VIEW_DROP_AFTER)
+ gtk_tree_store_insert_after (GTK_TREE_STORE (model), iter, NULL, insertion);
+ else if (position == GTK_TREE_VIEW_DROP_BEFORE)
+ gtk_tree_store_insert_before (GTK_TREE_STORE (model), iter, NULL, insertion);
+ else
+ g_error ("I wasn't expecting this position!");
+ } else
+ gtk_tree_store_append (GTK_TREE_STORE (model), iter, NULL);
+ gdk_threads_leave ();
- humansize = xfburn_humanreadable_filesize (s.st_size);
+ //humansize = xfburn_humanreadable_filesize (s.st_size);
-#ifdef HAVE_THUNAR_VFS
- gtk_tree_store_set (GTK_TREE_STORE (model), iter,
- DATA_COMPOSITION_COLUMN_ICON, (G_IS_OBJECT (mime_icon) ? mime_icon : icon_file),
- DATA_COMPOSITION_COLUMN_CONTENT, name,
- DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize,
- DATA_COMPOSITION_COLUMN_SIZE, (guint64) s.st_size, DATA_COMPOSITION_COLUMN_PATH, path,
- DATA_COMPOSITION_COLUMN_TYPE, DATA_COMPOSITION_TYPE_FILE, -1);
-#else
- gtk_tree_store_set (GTK_TREE_STORE (model), iter,
- DATA_COMPOSITION_COLUMN_ICON, icon_file,
- DATA_COMPOSITION_COLUMN_CONTENT, name,
- DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize,
- DATA_COMPOSITION_COLUMN_SIZE, (guint64) s.st_size, DATA_COMPOSITION_COLUMN_PATH, path,
- DATA_COMPOSITION_COLUMN_TYPE, DATA_COMPOSITION_TYPE_FILE, -1);
-#endif
+ if (priv->n_tracks == 99) {
+ gdk_threads_enter ();
+ xfce_err (_("You can only have a maximum of 99 tracks!"));
+ gdk_threads_leave ();
+ return FALSE;
+ }
- xfburn_data_disc_usage_add_size (XFBURN_DATA_DISC_USAGE (priv->disc_usage), s.st_size);
-#ifdef HAVE_THUNAR_VFS
- if (G_LIKELY (G_IS_OBJECT (mime_icon)))
- g_object_unref (mime_icon);
- thunar_vfs_mime_info_unref (mime_info);
- g_object_unref (mime_database);
+ gdk_threads_enter ();
+ gtk_tree_store_set (GTK_TREE_STORE (model), iter,
+ AUDIO_COMPOSITION_COLUMN_POS, ++priv->n_tracks,
+ AUDIO_COMPOSITION_COLUMN_CONTENT, name,
+ AUDIO_COMPOSITION_COLUMN_SIZE, (guint64) s.st_size, AUDIO_COMPOSITION_COLUMN_PATH, path,
+ AUDIO_COMPOSITION_COLUMN_HUMANLENGTH, "00:00",
+ AUDIO_COMPOSITION_COLUMN_TYPE, AUDIO_COMPOSITION_TYPE_RAW, -1);
gdk_threads_leave ();
-#endif
+
+ //xfburn_disc_usage_add_size (XFBURN_DISC_USAGE (priv->disc_usage), s.st_size);
}
- g_free (humansize);
- g_free (parent);
+ //g_free (humansize);
set_modified (priv);
return TRUE;
@@ -1195,7 +1041,7 @@
static void
thread_add_files_cli (ThreadAddFilesCLIParams *params)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (params->dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (params->dc);
GtkTreeIter iter;
GtkTreeModel *model;
@@ -1237,11 +1083,11 @@
static void
thread_add_files_action (ThreadAddFilesActionParams *params)
{
- XfburnDataComposition *dc = params->dc;
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioComposition *dc = params->dc;
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
GtkTreeModel *model = params->model;
GtkTreeIter iter_where_insert = params->iter_where_insert;
- GtkTreePath *path_where_insert = priv->path_where_insert;
+ //GtkTreePath *path_where_insert = priv->path_where_insert;
const gchar * file = NULL;
@@ -1268,29 +1114,7 @@
}
/* add files to the disc content */
- if (params->type == DATA_COMPOSITION_TYPE_DIRECTORY) {
- guint64 old_size, size;
- gchar *humansize = NULL;
-
- thread_add_file_to_list (dc, model, full_path, &iter, &iter_where_insert, GTK_TREE_VIEW_DROP_INTO_OR_AFTER);
- gdk_threads_enter ();
- gtk_tree_view_expand_row (GTK_TREE_VIEW (priv->content), path_where_insert, FALSE);
-
- /* update parent directory size */
- gtk_tree_model_get (model, &iter_where_insert, DATA_COMPOSITION_COLUMN_SIZE, &old_size, -1);
- gtk_tree_model_get (model, &iter, DATA_COMPOSITION_COLUMN_SIZE, &size, -1);
- gdk_threads_leave ();
-
- humansize = xfburn_humanreadable_filesize (old_size + size);
-
- gdk_threads_enter ();
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter_where_insert,
- DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize,
- DATA_COMPOSITION_COLUMN_SIZE, old_size + size, -1);
- gdk_threads_leave ();
-
- g_free (humansize);
- } else if (params->type == DATA_COMPOSITION_TYPE_FILE) {
+ if (params->type == AUDIO_COMPOSITION_TYPE_RAW) {
GtkTreeIter parent;
gboolean has_parent;
@@ -1314,10 +1138,10 @@
}
static gboolean
-thread_add_file_to_list (XfburnDataComposition * dc, GtkTreeModel * model,
+thread_add_file_to_list (XfburnAudioComposition * dc, GtkTreeModel * model,
const gchar * path, GtkTreeIter * iter, GtkTreeIter * insertion, GtkTreeViewDropPosition position)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
struct stat s;
gboolean ret = FALSE;
@@ -1341,42 +1165,52 @@
return ret;
}
-static gboolean
-copy_entry_to (XfburnDataComposition *dc, GtkTreeIter *src, GtkTreeIter *dest, GtkTreeViewDropPosition position)
+static GtkTreeIter *
+copy_entry_to (XfburnAudioComposition *dc, GtkTreeIter *src, GtkTreeIter *dest, GtkTreeViewDropPosition position)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
- gboolean ret = FALSE;
-
GtkTreeModel *model;
- GtkTreeIter iter_new;
+ GtkTreeIter *iter_new = g_new0 (GtkTreeIter, 1);
GdkPixbuf *icon = NULL;
+ gint pos = 0;
gchar *name = NULL;
- gchar *humansize = NULL;
guint64 size = 0;
gchar *path = NULL;
- DataCompositionEntryType type;
+ gchar *humanlength;
+ AudioCompositionEntryType type;
GtkTreePath *path_level = NULL;
- guint n_children = 0;
- guint i;
+ //guint n_children = 0;
+ //guint i;
GtkTreePath *path_src = NULL;
model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->content));
- gtk_tree_model_get (model, src, DATA_COMPOSITION_COLUMN_ICON, &icon, DATA_COMPOSITION_COLUMN_CONTENT, &name,
- DATA_COMPOSITION_COLUMN_HUMANSIZE, &humansize, DATA_COMPOSITION_COLUMN_SIZE, &size,
- DATA_COMPOSITION_COLUMN_PATH, &path, DATA_COMPOSITION_COLUMN_TYPE, &type, -1);
+ gtk_tree_model_get (model, src,
+ AUDIO_COMPOSITION_COLUMN_POS, &pos,
+ AUDIO_COMPOSITION_COLUMN_CONTENT, &name,
+ AUDIO_COMPOSITION_COLUMN_SIZE, &size,
+ AUDIO_COMPOSITION_COLUMN_PATH, &path,
+ AUDIO_COMPOSITION_COLUMN_HUMANLENGTH, &humanlength,
+ AUDIO_COMPOSITION_COLUMN_TYPE, &type,
+ -1);
- switch (position) {
+ DBG ("dest = %p", dest);
+ if (dest == NULL)
+ gtk_tree_store_append (GTK_TREE_STORE (model), iter_new, dest);
+ else switch (position) {
case GTK_TREE_VIEW_DROP_BEFORE:
+ gtk_tree_store_insert_before (GTK_TREE_STORE (model), iter_new, NULL, dest);
+ break;
case GTK_TREE_VIEW_DROP_AFTER:
- gtk_tree_store_insert_before (GTK_TREE_STORE (model), &iter_new, NULL, dest);
+ gtk_tree_store_insert_after (GTK_TREE_STORE (model), iter_new, NULL, dest);
break;
case GTK_TREE_VIEW_DROP_INTO_OR_BEFORE:
case GTK_TREE_VIEW_DROP_INTO_OR_AFTER:
+ /* FIXME: do we still need this case? */
if (dest) {
path_level = gtk_tree_model_get_path (model, dest);
gtk_tree_path_down (path_level);
@@ -1384,65 +1218,71 @@
path_level = gtk_tree_path_new_first ();
}
+ /*
if (file_exists_on_same_level (model, path_level, FALSE, name)) {
xfce_warn (_("A file named \"%s\" already exists in this directory, the file hasn't been added"), name);
goto cleanup;
}
+ */
gtk_tree_path_free (path_level);
- gtk_tree_store_append (GTK_TREE_STORE (model), &iter_new, dest);
+ gtk_tree_store_append (GTK_TREE_STORE (model), iter_new, dest);
break;
}
- gtk_tree_store_set (GTK_TREE_STORE (model), &iter_new, DATA_COMPOSITION_COLUMN_ICON, icon,
- DATA_COMPOSITION_COLUMN_CONTENT, name, DATA_COMPOSITION_COLUMN_HUMANSIZE, humansize,
- DATA_COMPOSITION_COLUMN_SIZE, size, DATA_COMPOSITION_COLUMN_PATH, path,
- DATA_COMPOSITION_COLUMN_TYPE, type, -1);
+ gtk_tree_store_set (GTK_TREE_STORE (model), iter_new,
+ AUDIO_COMPOSITION_COLUMN_POS, pos,
+ AUDIO_COMPOSITION_COLUMN_CONTENT, name,
+ AUDIO_COMPOSITION_COLUMN_SIZE, size,
+ AUDIO_COMPOSITION_COLUMN_PATH, path,
+ AUDIO_COMPOSITION_COLUMN_HUMANLENGTH, humanlength,
+ AUDIO_COMPOSITION_COLUMN_TYPE, type,
+ -1);
/* copy children */
+ /*
n_children = gtk_tree_model_iter_n_children (model, src);
for (i = 0; i < n_children; i++) {
GtkTreeIter iter_child;
if (gtk_tree_model_iter_nth_child (model, &iter_child, src, i))
- copy_entry_to (dc, &iter_child, &iter_new, GTK_TREE_VIEW_DROP_INTO_OR_AFTER);
+ copy_entry_to (dc, &iter_child, iter_new, GTK_TREE_VIEW_DROP_INTO_OR_AFTER);
}
path_src = gtk_tree_model_get_path (model, src);
if (n_children > 0 && gtk_tree_view_row_expanded (GTK_TREE_VIEW (priv->content), path_src)) {
GtkTreePath *path_new = NULL;
- path_new = gtk_tree_model_get_path (model, &iter_new);
+ path_new = gtk_tree_model_get_path (model, iter_new);
gtk_tree_view_expand_row (GTK_TREE_VIEW (priv->content), path_new, FALSE);
gtk_tree_path_free (path_new);
}
+ */
gtk_tree_path_free (path_src);
- ret = TRUE;
-
-cleanup:
+//cleanup:
if (G_LIKELY (G_IS_OBJECT (icon)))
g_object_unref (icon);
g_free (name);
- g_free (humansize);
+ g_free (humanlength);
g_free (path);
- return ret;
+ return iter_new;
}
static void
cb_content_drag_data_rcv (GtkWidget * widget, GdkDragContext * dc, guint x, guint y, GtkSelectionData * sd,
- guint info, guint t, XfburnDataComposition * composition)
+ guint info, guint t, XfburnAudioComposition * composition)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (composition);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (composition);
GtkTreeModel *model;
GtkTreePath *path_where_insert = NULL;
GtkTreeViewDropPosition position;
- GtkTreeIter iter_where_insert;
+ GtkTreeIter *iter_where_insert;
g_return_if_fail (sd);
g_return_if_fail (sd->data);
@@ -1457,26 +1297,29 @@
if (sd->target == gdk_atom_intern ("XFBURN_TREE_PATHS", FALSE)) {
GList *row = NULL, *selected_rows = NULL;
GtkTreeIter *iter = NULL;
- DataCompositionEntryType type_dest = -1;
+ GtkTreeIter *iter_prev = NULL;
+ AudioCompositionEntryType type_dest = -1;
xfburn_adding_progress_show (XFBURN_ADDING_PROGRESS (priv->progress));
row = selected_rows = *((GList **) sd->data);
- if (path_where_insert) {
- gtk_tree_model_get_iter (model, &iter_where_insert, path_where_insert);
- iter = &iter_where_insert;
+ if (path_where_insert) {
+ iter_where_insert = g_new0 (GtkTreeIter, 1);
+ gtk_tree_model_get_iter (model, iter_where_insert, path_where_insert);
+ iter_prev = iter_where_insert;
- gtk_tree_model_get (model, &iter_where_insert, DATA_COMPOSITION_COLUMN_TYPE, &type_dest, -1);
+ gtk_tree_model_get (model, iter_where_insert, AUDIO_COMPOSITION_COLUMN_TYPE, &type_dest, -1);
- if (type_dest == DATA_COMPOSITION_TYPE_FILE) {
+ if (type_dest == AUDIO_COMPOSITION_TYPE_RAW) {
if (position == GTK_TREE_VIEW_DROP_INTO_OR_AFTER)
position = GTK_TREE_VIEW_DROP_AFTER;
else if (position == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)
position = GTK_TREE_VIEW_DROP_BEFORE;
}
} else {
- position = GTK_TREE_VIEW_DROP_INTO_OR_AFTER;
+ //position = GTK_TREE_VIEW_DROP_INTO_OR_AFTER;
+ position = GTK_TREE_VIEW_DROP_AFTER;
}
/* copy selection */
@@ -1484,7 +1327,7 @@
GtkTreePath *path_src = NULL;
GtkTreeIter iter_src;
GtkTreeRowReference *reference = NULL;
- DataCompositionEntryType type;
+ AudioCompositionEntryType type;
guint64 size = 0;
reference = (GtkTreeRowReference *) row->data;
@@ -1497,6 +1340,8 @@
continue;
}
+ /*
+ DBG ("path_where_insert = %p", path_where_insert);
if (path_where_insert && (position == GTK_TREE_VIEW_DROP_AFTER || position == GTK_TREE_VIEW_DROP_BEFORE)
&& (gtk_tree_path_get_depth (path_where_insert) == gtk_tree_path_get_depth (path_src))) {
gtk_tree_path_free (path_src);
@@ -1505,41 +1350,16 @@
row = g_list_next (row);
continue;
}
+ */
- if (path_where_insert && type == DATA_COMPOSITION_TYPE_DIRECTORY
- && gtk_tree_path_is_descendant (path_where_insert, path_src)) {
-
- gtk_tree_path_free (path_src);
- gtk_tree_path_free (path_where_insert);
- gtk_tree_row_reference_free (reference);
-
- gtk_drag_finish (dc, FALSE, FALSE, t);
- return;
- }
-
gtk_tree_model_get_iter (model, &iter_src, path_src);
- gtk_tree_model_get (model, &iter_src, DATA_COMPOSITION_COLUMN_TYPE, &type,
- DATA_COMPOSITION_COLUMN_SIZE, &size, -1);
+ gtk_tree_model_get (model, &iter_src, AUDIO_COMPOSITION_COLUMN_TYPE, &type,
+ AUDIO_COMPOSITION_COLUMN_SIZE, &size, -1);
/* copy entry */
- if (copy_entry_to (composition, &iter_src, iter, position)) {
+ if ((iter = copy_entry_to (composition, &iter_src, iter_prev, position)) != NULL) {
GtkTreePath *path_parent = gtk_tree_path_copy (path_src);
- /* update new parent size */
- if (iter && (position == GTK_TREE_VIEW_DROP_INTO_OR_AFTER
- || position == GTK_TREE_VIEW_DROP_INTO_OR_BEFORE)) {
- guint64 old_size = 0;
- gchar *parent_humansize = NULL;
-
- gtk_tree_model_get (model, iter, DATA_COMPOSITION_COLUMN_SIZE, &old_size, -1);
-
- parent_humansize = xfburn_humanreadable_filesize (old_size + size);
- gtk_tree_store_set (GTK_TREE_STORE (model), iter, DATA_COMPOSITION_COLUMN_HUMANSIZE, parent_humansize,
- DATA_COMPOSITION_COLUMN_SIZE, old_size + size, -1);
-
- g_free (parent_humansize);
- }
-
if (dc->action == GDK_ACTION_MOVE) {
/* remove source entry */
if (gtk_tree_path_up (path_parent) && path_where_insert &&
@@ -1547,24 +1367,24 @@
/* update parent size and humansize */
GtkTreeIter iter_parent;
guint64 old_size;
- gchar *parent_humansize = NULL;
gtk_tree_model_iter_parent (model, &iter_parent, &iter_src);
- gtk_tree_model_get (model, &iter_parent, DATA_COMPOSITION_COLUMN_SIZE, &old_size, -1);
+ gtk_tree_model_get (model, &iter_parent, AUDIO_COMPOSITION_COLUMN_SIZE, &old_size, -1);
- parent_humansize = xfburn_humanreadable_filesize (old_size - size);
gtk_tree_store_set (GTK_TREE_STORE (model), &iter_parent,
- DATA_COMPOSITION_COLUMN_HUMANSIZE, parent_humansize,
- DATA_COMPOSITION_COLUMN_SIZE, old_size - size, -1);
- g_free (parent_humansize);
+ AUDIO_COMPOSITION_COLUMN_SIZE, old_size - size, -1);
}
gtk_tree_store_remove (GTK_TREE_STORE (model), &iter_src);
} else {
- xfburn_data_disc_usage_add_size (XFBURN_DATA_DISC_USAGE (priv->disc_usage), size);
+ xfburn_disc_usage_add_size (XFBURN_DISC_USAGE (priv->disc_usage), size);
}
gtk_tree_path_free (path_parent);
+ g_free (iter_prev);
+ iter_prev = iter;
+ /* selection is in reverse order, so insert next item before */
+ position = GTK_TREE_VIEW_DROP_BEFORE;
}
gtk_tree_path_free (path_src);
@@ -1573,11 +1393,14 @@
row = g_list_next (row);
}
+ g_free (iter);
g_list_free (selected_rows);
gtk_drag_finish (dc, TRUE, FALSE, t);
if (path_where_insert)
gtk_tree_path_free (path_where_insert);
+
+ tracks_changed (composition);
gtk_widget_hide (priv->progress);
xfburn_default_cursor (priv->content);
}
@@ -1686,8 +1509,8 @@
static void
thread_add_files_drag (ThreadAddFilesDragParams *params)
{
- XfburnDataComposition *composition = params->composition;
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (composition);
+ XfburnAudioComposition *composition = params->composition;
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (composition);
GtkTreeViewDropPosition position = params->position;
GtkWidget *widget = params->widget;
@@ -1727,84 +1550,13 @@
xfburn_adding_progress_done (XFBURN_ADDING_PROGRESS (priv->progress));
}
-static void
-fill_image_with_composition (GtkTreeModel *model, IsoImage *image, IsoDir * parent, GtkTreeIter *iter)
-{
- do {
- DataCompositionEntryType type;
- gchar *name = NULL;
- gchar *src = NULL;
- IsoNode *node = NULL;
- IsoDir *dir = NULL;
- int r;
-
- gtk_tree_model_get (model, iter, DATA_COMPOSITION_COLUMN_TYPE, &type,
- DATA_COMPOSITION_COLUMN_CONTENT, &name, DATA_COMPOSITION_COLUMN_PATH, &src, -1);
-
- if (type == DATA_COMPOSITION_TYPE_DIRECTORY)
- r = iso_tree_add_new_dir (parent, name, &dir);
- else
- r = iso_tree_add_node (image, parent, src, &node);
-
- if (r < 0) {
- if (r == ISO_NULL_POINTER)
- g_error ("Failed adding %s as a node to the image: null pointer!", src);
- else if (r == ISO_NODE_NAME_NOT_UNIQUE)
- g_error ("Failed adding %s as a node to the image: node name not unique!", src);
- /* else if (r == ISO_MEM_ERROR)
- g_error ("Failed adding %s as a node to the image: memory error!", src); */
- else
- g_error ("Failed adding %s as a node to the image: code %d!", src, r);
- }
-
- /* FIXME: do we need to call iso_node_ref on node? Probably not... */
- if (type != DATA_COMPOSITION_TYPE_DIRECTORY)
- iso_node_set_name (node, name);
-
- g_free (name);
- g_free (src);
-
- if (type == DATA_COMPOSITION_TYPE_DIRECTORY && gtk_tree_model_iter_has_child (model, iter)) {
- GtkTreeIter child;
-
- /* FIXME: this should not cause a sigfault...
- if (iso_node_get_type(node) != LIBISO_DIR)
- g_error ("Expected %s to be a directory, but it isn't...\n", src);
- */
-
- gtk_tree_model_iter_children (model, &child, iter);
- fill_image_with_composition (model, image, dir, &child);
- }
- } while (gtk_tree_model_iter_next (model, iter));
-}
-
-static IsoImage *
-generate_iso_image (XfburnDataComposition * dc)
-{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
- IsoImage *image = NULL;
- GtkTreeModel *model;
- GtkTreeIter iter;
-
- iso_image_new (gtk_entry_get_text (GTK_ENTRY (priv->entry_volume_name)), &image);
- iso_image_set_application_id (image, "Xfburn");
- iso_image_set_data_preparer_id (image, "Xfburn");
-
- model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->content));
- if (gtk_tree_model_get_iter_first (model, &iter)) {
- fill_image_with_composition (model, image, iso_image_get_root (image), &iter);
- }
-
- return image;
-}
-
/****************/
/* loading code */
/****************/
typedef struct
{
gboolean started;
- XfburnDataComposition *dc;
+ XfburnAudioComposition *dc;
GQueue *queue_iter;
} LoadParserStruct;
@@ -1827,7 +1579,7 @@
gpointer data, GError ** error)
{
LoadParserStruct * parserinfo = (LoadParserStruct *) data;
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (parserinfo->dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (parserinfo->dc);
if (!(parserinfo->started) && !strcmp (element_name, "xfburn-composition"))
@@ -1921,7 +1673,7 @@
}
parserinfo.started = FALSE;
- parserinfo.dc = XFBURN_DATA_COMPOSITION (composition);
+ parserinfo.dc = XFBURN_AUDIO_COMPOSITION (composition);
parserinfo.queue_iter = g_queue_new ();
gpcontext = g_markup_parse_context_new (&gmparser, 0, &parserinfo, NULL);
if (!g_markup_parse_context_parse (gpcontext, file_contents, st.st_size, &err)) {
@@ -1968,7 +1720,7 @@
gint i;
gchar *name = NULL;
gchar *source_path = NULL;
- DataCompositionEntryType type;
+ AudioCompositionEntryType type;
space = g_strnfill (gtk_tree_path_get_depth (path), '\t');
@@ -1981,24 +1733,15 @@
g_free (space2);
}
- gtk_tree_model_get (model, iter, DATA_COMPOSITION_COLUMN_CONTENT, &name,
- DATA_COMPOSITION_COLUMN_PATH, &source_path,
- DATA_COMPOSITION_COLUMN_TYPE, &type, -1);
+ gtk_tree_model_get (model, iter, AUDIO_COMPOSITION_COLUMN_CONTENT, &name,
+ AUDIO_COMPOSITION_COLUMN_PATH, &source_path,
+ AUDIO_COMPOSITION_COLUMN_TYPE, &type, -1);
fprintf (info->file_content, "%s", space);
switch (type) {
- case DATA_COMPOSITION_TYPE_FILE:
+ case AUDIO_COMPOSITION_TYPE_RAW:
fprintf (info->file_content, "<file name=\"%s\" source=\"%s\" />\n", name, source_path);
break;
- case DATA_COMPOSITION_TYPE_DIRECTORY:
- fprintf (info->file_content, "<directory name=\"%s\" source=\"%s\"", name, source_path);
-
- if (gtk_tree_model_iter_has_child (model, iter))
- fprintf (info->file_content, ">\n");
- else
- fprintf (info->file_content, "/>\n");
-
- break;
}
@@ -2014,7 +1757,7 @@
static void
save_to_file (XfburnComposition * composition)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (composition);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (composition);
FILE *file_content;
GtkTreeModel *model;
CompositionSaveInfo info = {};
@@ -2052,15 +1795,15 @@
/* public methods */
/******************/
GtkWidget *
-xfburn_data_composition_new (void)
+xfburn_audio_composition_new (void)
{
- return g_object_new (xfburn_data_composition_get_type (), NULL);
+ return g_object_new (xfburn_audio_composition_get_type (), NULL);
}
void
-xfburn_data_composition_add_files (XfburnDataComposition *dc, int filec, char **filenames)
+xfburn_audio_composition_add_files (XfburnAudioComposition *dc, int filec, char **filenames)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (dc);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (dc);
ThreadAddFilesCLIParams *params;
if (filec > 0) {
@@ -2079,17 +1822,17 @@
}
void
-xfburn_data_composition_hide_toolbar (XfburnDataComposition * composition)
+xfburn_audio_composition_hide_toolbar (XfburnAudioComposition * composition)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (composition);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (composition);
gtk_widget_hide (priv->toolbar);
}
void
-xfburn_data_composition_show_toolbar (XfburnDataComposition * composition)
+xfburn_audio_composition_show_toolbar (XfburnAudioComposition * composition)
{
- XfburnDataCompositionPrivate *priv = XFBURN_DATA_COMPOSITION_GET_PRIVATE (composition);
+ XfburnAudioCompositionPrivate *priv = XFBURN_AUDIO_COMPOSITION_GET_PRIVATE (composition);
gtk_widget_show (priv->toolbar);
}
Modified: xfburn/trunk/xfburn/xfburn-audio-composition.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-audio-composition.h 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-audio-composition.h 2008-08-17 16:50:50 UTC (rev 5270)
@@ -17,8 +17,8 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#ifndef __XFBURN_DATA_COMPOSITION_H__
-#define __XFBURN_DATA_COMPOSITION_H__
+#ifndef __XFBURN_AUDIO_COMPOSITION_H__
+#define __XFBURN_AUDIO_COMPOSITION_H__
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -28,36 +28,36 @@
G_BEGIN_DECLS
-#define XFBURN_TYPE_DATA_COMPOSITION (xfburn_data_composition_get_type ())
-#define XFBURN_DATA_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DATA_COMPOSITION, XfburnDataComposition))
-#define XFBURN_DATA_COMPOSITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DATA_COMPOSITION, XfburnDataCompositionClass))
-#define XFBURN_IS_DATA_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DATA_COMPOSITION))
-#define XFBURN_IS_DATA_COMPOSITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DATA_COMPOSITION))
-#define XFBURN_DATA_COMPOSITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DATA_COMPOSITION, XfburnDataCompositionClass))
+#define XFBURN_TYPE_AUDIO_COMPOSITION (xfburn_audio_composition_get_type ())
+#define XFBURN_AUDIO_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFBURN_TYPE_DATA_COMPOSITION, XfburnAudioComposition))
+#define XFBURN_AUDIO_COMPOSITION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), XFBURN_TYPE_DATA_COMPOSITION, XfburnAudioCompositionClass))
+#define XFBURN_IS_AUDIO_COMPOSITION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFBURN_TYPE_DATA_COMPOSITION))
+#define XFBURN_IS_AUDIO_COMPOSITION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), XFBURN_TYPE_DATA_COMPOSITION))
+#define XFBURN_AUDIO_COMPOSITION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), XFBURN_TYPE_DATA_COMPOSITION, XfburnAudioCompositionClass))
typedef struct
{
GtkVBox vbox;
-} XfburnDataComposition;
+} XfburnAudioComposition;
typedef struct
{
GtkVBoxClass parent_class;
-} XfburnDataCompositionClass;
+} XfburnAudioCompositionClass;
enum
{
- DATA_COMPOSITION_DND_TARGET_INSIDE,
- DATA_COMPOSITION_DND_TARGET_TEXT_PLAIN,
- DATA_COMPOSITION_DND_TARGET_TEXT_URI_LIST,
+ AUDIO_COMPOSITION_DND_TARGET_INSIDE,
+ AUDIO_COMPOSITION_DND_TARGET_TEXT_PLAIN,
+ AUDIO_COMPOSITION_DND_TARGET_TEXT_URI_LIST,
};
-GtkType xfburn_data_composition_get_type (void);
+GtkType xfburn_audio_composition_get_type (void);
-GtkWidget *xfburn_data_composition_new (void);
-void xfburn_data_composition_add_files (XfburnDataComposition *content, int filec, char **filenames);
-void xfburn_data_composition_hide_toolbar (XfburnDataComposition *content);
-void xfburn_data_composition_show_toolbar (XfburnDataComposition *content);
+GtkWidget *xfburn_audio_composition_new (void);
+void xfburn_audio_composition_add_files (XfburnAudioComposition *content, int filec, char **filenames);
+void xfburn_audio_composition_hide_toolbar (XfburnAudioComposition *content);
+void xfburn_audio_composition_show_toolbar (XfburnAudioComposition *content);
G_END_DECLS
Modified: xfburn/trunk/xfburn/xfburn-compositions-notebook.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-compositions-notebook.c 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-compositions-notebook.c 2008-08-17 16:50:50 UTC (rev 5270)
@@ -30,6 +30,7 @@
#include "xfburn-notebook-tab.h"
#include "xfburn-welcome-tab.h"
#include "xfburn-data-composition.h"
+#include "xfburn-audio-composition.h"
#define XFBURN_COMPOSITIONS_NOTEBOOK_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), XFBURN_TYPE_COMPOSITIONS_NOTEBOOK, XfburnCompositionsNotebookPrivate))
@@ -168,7 +169,8 @@
label_text = g_strdup_printf ("%s %d", _("Data composition"), ++i);
break;
case XFBURN_AUDIO_COMPOSITION:
- DBG ("don't hurry ... it'll be implemented later");
+ composition = xfburn_audio_composition_new ();
+ label_text = g_strdup_printf ("%s %d", _("Audio composition"), ++i);
break;
}
Modified: xfburn/trunk/xfburn/xfburn-data-disc-usage.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-data-disc-usage.c 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-data-disc-usage.c 2008-08-17 16:50:50 UTC (rev 5270)
@@ -112,6 +112,7 @@
static void
xfburn_data_disc_usage_init (XfburnDataDiscUsage * disc_usage)
{
+ gtk_progress_bar_set_text (GTK_PROGRESS_BAR ( XFBURN_DISC_USAGE (disc_usage)->progress_bar), "0 B");
}
/* internals */
Modified: xfburn/trunk/xfburn/xfburn-disc-usage.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-disc-usage.c 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-disc-usage.c 2008-08-17 16:50:50 UTC (rev 5270)
@@ -132,7 +132,7 @@
disc_usage->size = 0;
disc_usage->progress_bar = gtk_progress_bar_new ();
- gtk_progress_bar_set_text (GTK_PROGRESS_BAR (disc_usage->progress_bar), "0 B");
+ gtk_progress_bar_set_text (GTK_PROGRESS_BAR (disc_usage->progress_bar), "0");
gtk_box_pack_start (GTK_BOX (disc_usage), disc_usage->progress_bar, TRUE, TRUE, BORDER);
gtk_widget_show (disc_usage->progress_bar);
Modified: xfburn/trunk/xfburn/xfburn-main-window.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-main-window.c 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-main-window.c 2008-08-17 16:50:50 UTC (rev 5270)
@@ -37,6 +37,7 @@
#include "xfburn-copy-cd-dialog.h"
#include "xfburn-copy-dvd-dialog.h"
#include "xfburn-burn-image-dialog.h"
+#include "xfburn-audio-composition.h"
#include "xfburn-progress-dialog.h"
#include "xfburn-settings.h"
#include "xfburn-main.h"
@@ -72,7 +73,7 @@
static void action_preferences (GtkAction *, XfburnMainWindow *);
static void action_new_data_composition (GtkAction *, XfburnMainWindow *);
-//static void action_new_audio_composition (GtkAction *, XfburnMainWindow *);
+static void action_new_audio_composition (GtkAction *, XfburnMainWindow *);
/*
static void action_load (GtkAction *, XfburnMainWindow *);
@@ -99,12 +100,12 @@
static const GtkActionEntry action_entries[] = {
{"file-menu", NULL, N_("_File"), NULL,},
/*{"new-composition", GTK_STOCK_NEW, N_("_New composition"), "", N_("Create a new composition"),},*/
- {"new-composition", GTK_STOCK_NEW, N_("_New composition"), NULL, N_("Create a new composition"),
+ /*{"new-composition", GTK_STOCK_NEW, N_("_New composition"), NULL, N_("Create a new composition"),
+ G_CALLBACK (action_new_data_composition),}, */
+ {"new-data-composition", GTK_STOCK_HARDDISK, N_("New data composition"), "<Control><Alt>e", N_("New data composition"),
G_CALLBACK (action_new_data_composition),},
- /*{"new-data-composition", GTK_STOCK_HARDDISK, N_("New data composition"), "<Control><Alt>e", N_("New data composition"),
- G_CALLBACK (action_new_data_composition),},
{"new-audio-composition", "audio-x-generic", N_("New audio composition"), "<Control><Alt>A", N_("New audio composition"),
- G_CALLBACK (action_new_audio_composition),},*/
+ G_CALLBACK (action_new_audio_composition),},
/*{"load-composition", GTK_STOCK_OPEN, N_("Load composition"), NULL, N_("Load composition"),
G_CALLBACK (action_load),},
{"save-composition", GTK_STOCK_SAVE, N_("Save composition"), NULL, N_("Save composition"),
@@ -147,7 +148,8 @@
};
static const gchar *toolbar_actions[] = {
- "new-composition",
+ "new-data-composition",
+ "new-audio-composition",
/* "load-composition",
"save-composition",
"close-composition",*/
@@ -475,14 +477,13 @@
xfburn_main_window_add_data_composition_with_files (window, 0, NULL);
}
-/*
static void
action_new_audio_composition (GtkAction *action, XfburnMainWindow * window)
{
- XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (window);
+ //XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (window);
+ xfburn_main_window_add_data_composition_with_files (window, 0, NULL);
}
-*/
static void
action_quit (GtkAction * action, XfburnMainWindow * window)
@@ -722,6 +723,16 @@
xfburn_data_composition_add_files (XFBURN_DATA_COMPOSITION (comp), filec, filenames);
}
+void
+xfburn_main_window_add_audio_composition_with_files (XfburnMainWindow *window, int filec, char **filenames)
+{
+ XfburnMainWindowPrivate *priv = XFBURN_MAIN_WINDOW_GET_PRIVATE (window);
+ XfburnComposition *comp;
+
+ comp = xfburn_compositions_notebook_add_composition (XFBURN_COMPOSITIONS_NOTEBOOK (priv->compositions_notebook), XFBURN_AUDIO_COMPOSITION);
+ xfburn_audio_composition_add_files (XFBURN_AUDIO_COMPOSITION (comp), filec, filenames);
+}
+
gboolean
xfburn_main_window_support_cdr (XfburnMainWindow *window)
{
Modified: xfburn/trunk/xfburn/xfburn-main-window.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-main-window.h 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-main-window.h 2008-08-17 16:50:50 UTC (rev 5270)
@@ -57,6 +57,7 @@
XfburnFileBrowser *xfburn_main_window_get_file_browser (XfburnMainWindow *window);
void xfburn_main_window_add_data_composition_with_files (XfburnMainWindow *window, int filec, char **filenames);
+void xfburn_main_window_add_audio_composition_with_files (XfburnMainWindow *window, int filec, char **filenames);
gboolean xfburn_main_window_support_cdr (XfburnMainWindow *window);
gboolean xfburn_main_window_support_cdrw (XfburnMainWindow *window);
Modified: xfburn/trunk/xfburn/xfburn-main.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-main.c 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-main.c 2008-08-17 16:50:50 UTC (rev 5270)
@@ -57,6 +57,7 @@
static gboolean other_action = FALSE;
static gboolean show_main = FALSE;
static gboolean add_data_composition = FALSE;
+static gboolean add_audio_composition = FALSE;
static gboolean blank = FALSE;
static GOptionEntry optionentries[] = {
@@ -66,6 +67,8 @@
"Open the blank disc dialog.", NULL },
{ "data-composition", 'd', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, &parse_option,
"Start a data composition. Optionally followed by files/directories to be added to the composition.", NULL },
+ { "audio-composition", 'a', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, &parse_option,
+ "Start an audio composition. Optionally followed by files/directories to be added to the composition.", NULL },
{ "version", 'V', G_OPTION_FLAG_NO_ARG , G_OPTION_ARG_NONE, &show_version,
"Display program version and exit", NULL },
{ "main", 'm', G_OPTION_FLAG_NO_ARG , G_OPTION_ARG_NONE, &show_main,
@@ -83,6 +86,8 @@
image_filename = g_strdup(value);
} else if (strcmp (option_name, "-d") == 0 || strcmp (option_name, "--data-composition") == 0) {
add_data_composition = TRUE;
+ } else if (strcmp (option_name, "-a") == 0 || strcmp (option_name, "--audio-composition") == 0) {
+ add_audio_composition = TRUE;
} else if (strcmp (option_name, "-b") == 0 || strcmp (option_name, "--blank") == 0) {
blank = TRUE;
} else {
@@ -297,6 +302,9 @@
if (add_data_composition)
xfburn_main_window_add_data_composition_with_files (XFBURN_MAIN_WINDOW (mainwin), argc-1, argv+1);
+
+ if (add_audio_composition)
+ xfburn_main_window_add_audio_composition_with_files (XFBURN_MAIN_WINDOW (mainwin), argc-1, argv+1);
}
gtk_main ();
Modified: xfburn/trunk/xfburn/xfburn-welcome-tab.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-welcome-tab.c 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn/xfburn-welcome-tab.c 2008-08-17 16:50:50 UTC (rev 5270)
@@ -51,6 +51,7 @@
GtkWidget *button_image;
GtkWidget *button_data_comp;
+ GtkWidget *button_audio_comp;
GtkWidget *button_blank;
} XfburnWelcomeTabPrivate;
@@ -59,6 +60,7 @@
static void burn_image (GtkButton *button, XfburnWelcomeTab *tab);
static void new_data_composition (GtkButton *button, XfburnWelcomeTab *tab);
+static void new_audio_cd (GtkButton *button, XfburnWelcomeTab *tab);
static void blank_disc (GtkButton *button, XfburnWelcomeTab *tab);
@@ -149,6 +151,11 @@
gtk_table_attach_defaults (GTK_TABLE (table), priv->button_blank, 0, 1, 1, 2);
gtk_widget_show (priv->button_blank);
g_signal_connect (G_OBJECT(priv->button_blank), "clicked", G_CALLBACK(blank_disc), obj);
+
+ priv->button_audio_comp = create_welcome_button (GTK_STOCK_CDROM, _("<big>_Audio CD</big>"), _("Audio CD playable in regular stereos"));
+ gtk_table_attach_defaults (GTK_TABLE (table), priv->button_audio_comp, 1, 2, 1, 2);
+ gtk_widget_show (priv->button_audio_comp);
+ g_signal_connect (G_OBJECT(priv->button_audio_comp), "clicked", G_CALLBACK(new_audio_cd), obj);
}
static void
@@ -226,6 +233,14 @@
xfburn_compositions_notebook_add_composition (XFBURN_COMPOSITIONS_NOTEBOOK (priv->notebook), XFBURN_DATA_COMPOSITION);
}
+static void
+new_audio_cd (GtkButton *button, XfburnWelcomeTab *tab)
+{
+ XfburnWelcomeTabPrivate *priv = XFBURN_WELCOME_TAB_GET_PRIVATE (tab);
+
+ xfburn_compositions_notebook_add_composition (XFBURN_COMPOSITIONS_NOTEBOOK (priv->notebook), XFBURN_AUDIO_COMPOSITION);
+}
+
/* */
/* public */
/* */
@@ -246,9 +261,12 @@
action = gtk_action_group_get_action (action_group, "burn-image");
gtk_widget_set_sensitive (priv->button_image, gtk_action_is_sensitive (action));
- action = gtk_action_group_get_action (action_group, "new-composition");
+ action = gtk_action_group_get_action (action_group, "new-data-composition");
gtk_widget_set_sensitive (priv->button_data_comp, gtk_action_is_sensitive (action));
+ action = gtk_action_group_get_action (action_group, "new-audio-composition");
+ gtk_widget_set_sensitive (priv->button_audio_comp, gtk_action_is_sensitive (action));
+
action = gtk_action_group_get_action (action_group, "blank-disc");
gtk_widget_set_sensitive (priv->button_blank, gtk_action_is_sensitive (action));
}
Modified: xfburn/trunk/xfburn-toolbars.ui
===================================================================
--- xfburn/trunk/xfburn-toolbars.ui 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn-toolbars.ui 2008-08-17 16:50:50 UTC (rev 5270)
@@ -3,7 +3,8 @@
<toolbars>
<toolbar name="main" style="both">
- <toolitem id="new-composition" />
+ <toolitem id="new-data-composition" />
+ <toolitem id="new-audio-composition" />
<!-- <toolitem id="load-composition" />-->
<!-- <toolitem id="save-composition" /> -->
<!-- <toolitem id="close-composition" />-->
Modified: xfburn/trunk/xfburn.ui
===================================================================
--- xfburn/trunk/xfburn.ui 2008-08-17 15:54:48 UTC (rev 5269)
+++ xfburn/trunk/xfburn.ui 2008-08-17 16:50:50 UTC (rev 5270)
@@ -10,11 +10,11 @@
<!-- The main menu bar -->
<menubar name="main-menu">
<menu action="file-menu">
+ <!--
<menuitem action="new-composition"/>
- <!--
- <menuitem action="new-data-composition"/>
- <menuitem action="new-audio-composition"/>
-->
+ <menuitem action="new-data-composition"/>
+ <menuitem action="new-audio-composition"/>
<!-- <menuitem action="load-composition"/> -->
<separator/>
<!--
More information about the Goodies-commits
mailing list