Author: pollux
Date: 2006-12-24 16:13:31 +0000 (Sun, 24 Dec 2006)
New Revision: 24182
Modified:
xfburn/branches/libburn_trial/xfburn-toolbars.ui
xfburn/branches/libburn_trial/xfburn.ui
xfburn/branches/libburn_trial/xfburn/Makefile.am
xfburn/branches/libburn_trial/xfburn/xfburn-burn-image-dialog.c
xfburn/branches/libburn_trial/xfburn/xfburn-device-box.c
xfburn/branches/libburn_trial/xfburn/xfburn-device-box.h
xfburn/branches/libburn_trial/xfburn/xfburn-device-list.c
xfburn/branches/libburn_trial/xfburn/xfburn-device-list.h
xfburn/branches/libburn_trial/xfburn/xfburn-main-window.c
Log:
* remove dvd actions from GUI
* add filters in image selection dialog
* improve XfburnDeviceBox
Modified: xfburn/branches/libburn_trial/xfburn/Makefile.am
===================================================================
--- xfburn/branches/libburn_trial/xfburn/Makefile.am 2006-12-24 15:01:41 UTC
(rev 24181)
+++ xfburn/branches/libburn_trial/xfburn/Makefile.am 2006-12-24 16:13:31 UTC
(rev 24182)
@@ -44,6 +44,7 @@
$(xfburn_headers) \
xfburn-adding-progress.c \
xfburn-blank-cd-dialog.c \
+ xfburn-burn-image-dialog.c \
xfburn-composition.c \
xfburn-compositions-notebook.c \
xfburn-settings.c \
Modified: xfburn/branches/libburn_trial/xfburn/xfburn-burn-image-dialog.c
===================================================================
--- xfburn/branches/libburn_trial/xfburn/xfburn-burn-image-dialog.c
2006-12-24 15:01:41 UTC (rev 24181)
+++ xfburn/branches/libburn_trial/xfburn/xfburn-burn-image-dialog.c
2006-12-24 16:13:31 UTC (rev 24182)
@@ -95,6 +95,7 @@
XfburnBurnImageDialogPrivate *priv = XFBURN_BURN_IMAGE_DIALOG_GET_PRIVATE
(obj);
GdkPixbuf *icon = NULL;
+ GtkFileFilter *filter;
GtkWidget *frame;
GtkWidget *vbox;
GtkWidget *hbox;
@@ -111,6 +112,16 @@
priv->chooser_image = gtk_file_chooser_button_new (_("Image to burn"),
GTK_FILE_CHOOSER_ACTION_OPEN);
gtk_widget_show (priv->chooser_image);
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("All files"));
+ gtk_file_filter_add_pattern (filter, "*");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER(priv->chooser_image), filter);
+ filter = gtk_file_filter_new ();
+ gtk_file_filter_set_name (filter, _("ISO images"));
+ gtk_file_filter_add_pattern (filter, "*.iso");
+ gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (priv->chooser_image), filter);
+ gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (priv->chooser_image), filter);
+
frame = xfce_create_framebox_with_content (_("Image to burn"),
priv->chooser_image);
gtk_widget_show (frame);
gtk_box_pack_start (box, frame, FALSE, FALSE, BORDER);
@@ -179,6 +190,7 @@
static void
xfburn_burn_image_dialog_response_cb (XfburnBurnImageDialog * dialog, gint
response_id, gpointer user_data)
{
+ /*
if (response_id == GTK_RESPONSE_OK) {
XfburnBurnImageDialogPrivate *priv = XFBURN_BURN_IMAGE_DIALOG_GET_PRIVATE
(dialog);
XfburnDevice *device;
@@ -211,6 +223,7 @@
g_free (command);
}
+ */
}
/* public */
Modified: xfburn/branches/libburn_trial/xfburn/xfburn-device-box.c
===================================================================
--- xfburn/branches/libburn_trial/xfburn/xfburn-device-box.c 2006-12-24
15:01:41 UTC (rev 24181)
+++ xfburn/branches/libburn_trial/xfburn/xfburn-device-box.c 2006-12-24
16:13:31 UTC (rev 24182)
@@ -40,6 +40,18 @@
PROP_SHOW_SPEED_SELECTION,
};
+enum {
+ DEVICE_NAME_COLUMN,
+ DEVICE_POINTER_COLUMN,
+ DEVICE_N_COLUMNS,
+};
+
+enum {
+ SPEED_TEXT_COLUMN,
+ SPEED_VALUE_COLUMN,
+ SPEED_N_COLUMNS,
+};
+
/* private struct */
typedef struct
{
@@ -58,6 +70,7 @@
static void xfburn_device_box_get_property (GObject *object, guint prop_id,
GValue *value, GParamSpec *pspec);
static void xfburn_device_box_set_property (GObject *object, guint prop_id,
const GValue *value, GParamSpec *pspec);
+static void fill_combo_speed (XfburnDeviceBox *box);
static void cb_combo_device_changed (GtkComboBox *combo, XfburnDeviceBox *box);
/* globals */
@@ -124,12 +137,19 @@
{
XfburnDeviceBoxPrivate *priv = XFBURN_DEVICE_BOX_GET_PRIVATE (box);
- GtkWidget *label, *img, *button;
+ GtkWidget *label;
GList *device = NULL;
- gint i;
+ GtkListStore *store = NULL;
+ GtkCellRenderer *cell;
/* devices */
- priv->combo_device = gtk_combo_box_new_text ();
+ store = gtk_list_store_new (DEVICE_N_COLUMNS, G_TYPE_STRING, G_TYPE_POINTER);
+ priv->combo_device = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
+ g_object_unref (store);
+
+ cell = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (priv->combo_device), cell,
TRUE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (priv->combo_device), cell,
"text", DEVICE_NAME_COLUMN, NULL);
gtk_widget_show (priv->combo_device);
gtk_box_pack_start (GTK_BOX (box), priv->combo_device, FALSE, FALSE, BORDER);
@@ -137,15 +157,14 @@
while (device) {
XfburnDevice *device_data = (XfburnDevice *) device->data;
+ GtkTreeIter iter;
- gtk_combo_box_append_text (GTK_COMBO_BOX (priv->combo_device),
device_data->name);
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter, DEVICE_NAME_COLUMN, device_data->name,
DEVICE_POINTER_COLUMN, device_data, -1);
device = g_list_next (device);
}
- gtk_combo_box_set_active (GTK_COMBO_BOX (priv->combo_device), 0);
- g_signal_connect (G_OBJECT (priv->combo_device), "changed", G_CALLBACK
(cb_combo_device_changed), box);
-
/* speed */
priv->hbox_speed_selection = gtk_hbox_new (FALSE, 0);
gtk_widget_show (priv->hbox_speed_selection);
@@ -155,25 +174,18 @@
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (priv->hbox_speed_selection), label, FALSE,
FALSE, BORDER);
- priv->combo_speed = gtk_combo_box_new_text ();
+ store = gtk_list_store_new (SPEED_N_COLUMNS, G_TYPE_STRING, G_TYPE_INT);
+ priv->combo_speed = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store));
+ g_object_unref (store);
+
+ cell = gtk_cell_renderer_text_new ();
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (priv->combo_speed), cell, TRUE);
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (priv->combo_speed), cell,
"text", SPEED_TEXT_COLUMN, NULL);
gtk_widget_show (priv->combo_speed);
gtk_box_pack_start (GTK_BOX (priv->hbox_speed_selection), priv->combo_speed,
TRUE, TRUE, BORDER);
- for (i = 2; i <= 52; i += 2) {
- gchar *str = NULL;
-
- str = g_strdup_printf ("%d", i);
- gtk_combo_box_append_text (GTK_COMBO_BOX (priv->combo_speed), str);
- g_free (str);
- }
- gtk_combo_box_set_active (GTK_COMBO_BOX (priv->combo_speed), 19);
-
- img = gtk_image_new_from_stock (GTK_STOCK_REFRESH,
GTK_ICON_SIZE_SMALL_TOOLBAR);
- gtk_widget_show (img);
- button = gtk_button_new ();
- gtk_container_add (GTK_CONTAINER (button), img);
- gtk_widget_show (button);
- gtk_box_pack_start (GTK_BOX (priv->hbox_speed_selection), button, FALSE,
FALSE, 0);
+ g_signal_connect (G_OBJECT (priv->combo_device), "changed", G_CALLBACK
(cb_combo_device_changed), box);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->combo_device), 0);
}
static void
@@ -220,12 +232,36 @@
/* internals */
/*************/
static void
+fill_combo_speed (XfburnDeviceBox *box)
+{
+ XfburnDeviceBoxPrivate *priv = XFBURN_DEVICE_BOX_GET_PRIVATE (box);
+ XfburnDevice *device = xfburn_device_box_get_selected_device (box);
+ GtkTreeModel *model = gtk_combo_box_get_model (GTK_COMBO_BOX
(priv->combo_speed));
+ gint i;
+
+ gtk_list_store_clear (GTK_LIST_STORE (model));
+
+ for (i = device->min_cdr_speed; i <= device->max_cdr_speed; i += 2) {
+ GtkTreeIter iter;
+ gchar *str = NULL;
+
+ str = g_strdup_printf ("%d", i);
+
+ gtk_list_store_append (GTK_LIST_STORE (model), &iter);
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, SPEED_TEXT_COLUMN, str,
SPEED_VALUE_COLUMN, i, -1);
+ g_free (str);
+ }
+ gtk_combo_box_set_active (GTK_COMBO_BOX (priv->combo_speed),
gtk_tree_model_iter_n_children (model, NULL) - 1);
+}
+
+static void
cb_combo_device_changed (GtkComboBox *combo, XfburnDeviceBox *box)
{
gchar *device_name = NULL;
- gtk_combo_box_get_active_text (combo);
-
+ fill_combo_speed (box);
+
+ device_name = gtk_combo_box_get_active_text (combo);
g_signal_emit (G_OBJECT (box), signals[DEVICE_CHANGED], 0, device_name);
g_free (device_name);
@@ -249,32 +285,46 @@
xfburn_device_box_get_selected (XfburnDeviceBox *box)
{
XfburnDeviceBoxPrivate *priv = XFBURN_DEVICE_BOX_GET_PRIVATE (box);
-
- return gtk_combo_box_get_active_text (GTK_COMBO_BOX (priv->combo_device));
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gchar *name = NULL;
+
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->combo_device));
+ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->combo_device), &iter);
+ gtk_tree_model_get (model, &iter, DEVICE_NAME_COLUMN, &name, -1);
+
+ return name;
}
XfburnDevice *
xfburn_device_box_get_selected_device (XfburnDeviceBox *box)
{
XfburnDeviceBoxPrivate *priv = XFBURN_DEVICE_BOX_GET_PRIVATE (box);
- gchar *device_name = NULL;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
XfburnDevice * device = NULL;
-
- device_name = gtk_combo_box_get_active_text (GTK_COMBO_BOX
(priv->combo_device));
- device = xfburn_device_lookup_by_name (device_name);
- g_free (device_name);
-
+
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->combo_device));
+ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->combo_device), &iter);
+ gtk_tree_model_get (model, &iter, DEVICE_POINTER_COLUMN, &device, -1);
+
return device;
}
-gchar *
+gint
xfburn_device_box_get_speed (XfburnDeviceBox *box)
{
XfburnDeviceBoxPrivate *priv = XFBURN_DEVICE_BOX_GET_PRIVATE (box);
- g_return_val_if_fail (priv->show_speed_selection == TRUE, NULL);
- if (priv->show_speed_selection)
- return gtk_combo_box_get_active_text (GTK_COMBO_BOX (priv->combo_speed));
- else
- return NULL;
+ GtkTreeModel *model;
+ GtkTreeIter iter;
+ gint speed = -1;
+
+ g_return_val_if_fail (priv->show_speed_selection == TRUE, -1);
+
+ model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->combo_speed));
+ gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->combo_speed), &iter);
+ gtk_tree_model_get (model, &iter, SPEED_VALUE_COLUMN, &speed, -1);
+
+ return speed;
}
Modified: xfburn/branches/libburn_trial/xfburn/xfburn-device-box.h
===================================================================
--- xfburn/branches/libburn_trial/xfburn/xfburn-device-box.h 2006-12-24
15:01:41 UTC (rev 24181)
+++ xfburn/branches/libburn_trial/xfburn/xfburn-device-box.h 2006-12-24
16:13:31 UTC (rev 24182)
@@ -56,7 +56,7 @@
gchar *xfburn_device_box_get_selected (XfburnDeviceBox *box);
XfburnDevice *xfburn_device_box_get_selected_device (XfburnDeviceBox *box);
-gchar *xfburn_device_box_get_speed (XfburnDeviceBox *box);
+gint xfburn_device_box_get_speed (XfburnDeviceBox *box);
G_END_DECLS
#endif
Modified: xfburn/branches/libburn_trial/xfburn/xfburn-device-list.c
===================================================================
--- xfburn/branches/libburn_trial/xfburn/xfburn-device-list.c 2006-12-24
15:01:41 UTC (rev 24181)
+++ xfburn/branches/libburn_trial/xfburn/xfburn-device-list.c 2006-12-24
16:13:31 UTC (rev 24182)
@@ -35,6 +35,8 @@
#include "xfburn-device-list.h"
+#define CDR_1X_SPEED 150
+
/* private */
static GList *devices = NULL;
@@ -76,11 +78,15 @@
for (i = 0; i < n_drives; i++) {
XfburnDevice *device = g_new0 (XfburnDevice, 1);
gint ret = 0;
-
+
device->name = g_strconcat (drives[i].vendor, " ", drives[i].product,
NULL);
device->node_path = g_strdup (drives[i].location);
+
device->cdr = drives[i].write_cdr;
device->cdrw = drives[i].write_cdrw;
+ device->min_cdr_speed = 2;
+ device->max_cdr_speed = 48;
+
device->dvdr = drives[i].write_dvdr;
device->dvdram = drives[i].write_dvdram;
Modified: xfburn/branches/libburn_trial/xfburn/xfburn-device-list.h
===================================================================
--- xfburn/branches/libburn_trial/xfburn/xfburn-device-list.h 2006-12-24
15:01:41 UTC (rev 24181)
+++ xfburn/branches/libburn_trial/xfburn/xfburn-device-list.h 2006-12-24
16:13:31 UTC (rev 24182)
@@ -30,8 +30,12 @@
{
gchar *name;
gchar *node_path;
+
gboolean cdr;
gboolean cdrw;
+ gint min_cdr_speed;
+ gint max_cdr_speed;
+
gboolean dvdr;
gboolean dvdram;
Modified: xfburn/branches/libburn_trial/xfburn/xfburn-main-window.c
===================================================================
--- xfburn/branches/libburn_trial/xfburn/xfburn-main-window.c 2006-12-24
15:01:41 UTC (rev 24181)
+++ xfburn/branches/libburn_trial/xfburn/xfburn-main-window.c 2006-12-24
16:13:31 UTC (rev 24182)
@@ -391,12 +391,11 @@
action_burn_image (GtkAction * action, XfburnMainWindow * window)
{
GtkWidget *dialog;
- /*
+
dialog = xfburn_burn_image_dialog_new ();
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (window));
gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
- */
}
static void
Modified: xfburn/branches/libburn_trial/xfburn-toolbars.ui
===================================================================
--- xfburn/branches/libburn_trial/xfburn-toolbars.ui 2006-12-24 15:01:41 UTC
(rev 24181)
+++ xfburn/branches/libburn_trial/xfburn-toolbars.ui 2006-12-24 16:13:31 UTC
(rev 24182)
@@ -17,13 +17,13 @@
<!-- <toolitem id="copy-audio" /> -->
<toolitem id="burn-cd" />
-
+<!--
<separator />
<toolitem id="format-dvd" />
<toolitem id="copy-dvd" />
<toolitem id="burn-dvd" />
-
+-->
<separator />
<toolitem id="refresh" />
Modified: xfburn/branches/libburn_trial/xfburn.ui
===================================================================
--- xfburn/branches/libburn_trial/xfburn.ui 2006-12-24 15:01:41 UTC (rev
24181)
+++ xfburn/branches/libburn_trial/xfburn.ui 2006-12-24 16:13:31 UTC (rev
24182)
@@ -32,11 +32,13 @@
<menuitem action="copy-data"/>
<menuitem action="burn-cd"/>
<placeholder name="placeholder-action-cd"/>
+ <!--
<separator />
<menuitem action="format-dvd"/>
<menuitem action="copy-dvd"/>
<menuitem action="burn-dvd"/>
<placeholder name="placeholder-action-dvd"/>
+ -->
</menu>
<menu action="view-menu">
<menuitem action="refresh"/>
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits