[brasero] Improve button states management and display of help in the project interface
- From: Philippe Rouquier <philippr src gnome org>
- To: svn-commits-list gnome org
- Subject: [brasero] Improve button states management and display of help in the project interface
- Date: Wed, 15 Jul 2009 18:50:50 +0000 (UTC)
commit 85a56e3060634b1a155b3cf4eca353b39b865855
Author: Philippe Rouquier <bonfire-app wanadoo fr>
Date: Wed Jul 15 15:17:25 2009 +0200
Improve button states management and display of help in the project interface
libbrasero-burn/brasero-track-data-cfg.c | 3 +--
src/brasero-audio-disc.c | 11 +++++++++++
src/brasero-data-disc.c | 15 +++++++++++++++
src/brasero-disc.c | 18 ++++++++++++++++++
src/brasero-disc.h | 4 ++++
src/brasero-project-name.c | 5 ++---
src/brasero-project.c | 10 ++++++----
src/brasero-video-disc.c | 12 ++++++++++++
8 files changed, 69 insertions(+), 9 deletions(-)
---
diff --git a/libbrasero-burn/brasero-track-data-cfg.c b/libbrasero-burn/brasero-track-data-cfg.c
index b89b38a..6c902c8 100644
--- a/libbrasero-burn/brasero-track-data-cfg.c
+++ b/libbrasero-burn/brasero-track-data-cfg.c
@@ -2276,8 +2276,7 @@ brasero_track_data_cfg_get_status (BraseroTrack *track,
return BRASERO_BURN_ERR;
}
- if (brasero_data_session_get_loaded_medium (BRASERO_DATA_SESSION (priv->tree)) == NULL
- && brasero_data_project_is_empty (BRASERO_DATA_PROJECT (priv->tree))) {
+ if (brasero_data_project_is_empty (BRASERO_DATA_PROJECT (priv->tree))) {
if (status)
brasero_status_set_error (status,
g_error_new (BRASERO_BURN_ERROR,
diff --git a/src/brasero-audio-disc.c b/src/brasero-audio-disc.c
index e9c59af..ff8be03 100644
--- a/src/brasero-audio-disc.c
+++ b/src/brasero-audio-disc.c
@@ -225,12 +225,23 @@ G_DEFINE_TYPE_WITH_CODE (BraseroAudioDisc,
GTK_TYPE_VBOX,
G_IMPLEMENT_INTERFACE (BRASERO_TYPE_DISC,
brasero_audio_disc_iface_disc_init));
+static gboolean
+brasero_audio_disc_is_empty (BraseroDisc *disc)
+{
+ GtkTreeModel *model;
+
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (BRASERO_AUDIO_DISC (disc)->priv->tree));
+ return gtk_tree_model_iter_n_children (model, NULL) != 0;
+}
static void
brasero_audio_disc_iface_disc_init (BraseroDiscIface *iface)
{
iface->add_uri = brasero_audio_disc_add_uri;
iface->delete_selected = brasero_audio_disc_delete_selected;
+
+ iface->is_empty = brasero_audio_disc_is_empty;
+
iface->set_session_contents = brasero_audio_disc_set_session_contents;
iface->get_selected_uri = brasero_audio_disc_get_selected_uri;
iface->get_boundaries = brasero_audio_disc_get_boundaries;
diff --git a/src/brasero-data-disc.c b/src/brasero-data-disc.c
index a1b5822..e802ad8 100644
--- a/src/brasero-data-disc.c
+++ b/src/brasero-data-disc.c
@@ -2336,11 +2336,26 @@ brasero_data_disc_finalize (GObject *object)
G_OBJECT_CLASS (brasero_data_disc_parent_class)->finalize (object);
}
+static gboolean
+brasero_data_disc_is_empty (BraseroDisc *disc)
+{
+ BraseroDataDiscPrivate *priv;
+ GtkTreeModel *model;
+
+ priv = BRASERO_DATA_DISC_PRIVATE (disc);
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->tree));
+ if(!model)
+ return FALSE;
+
+ return gtk_tree_model_iter_n_children (model, NULL) != 0;
+}
+
static void
brasero_data_disc_iface_disc_init (BraseroDiscIface *iface)
{
iface->add_uri = brasero_data_disc_add_uri;
iface->delete_selected = brasero_data_disc_delete_selected;
+ iface->is_empty = brasero_data_disc_is_empty;
iface->clear = brasero_data_disc_clear;
iface->set_session_contents = brasero_data_disc_set_session_contents;
iface->get_selected_uri = brasero_data_disc_get_selected_uri;
diff --git a/src/brasero-disc.c b/src/brasero-disc.c
index 5f9e84e..6e8011d 100644
--- a/src/brasero-disc.c
+++ b/src/brasero-disc.c
@@ -203,6 +203,24 @@ brasero_disc_add_ui (BraseroDisc *disc, GtkUIManager *manager, GtkWidget *messag
return 0;
}
+gboolean
+brasero_disc_is_empty (BraseroDisc *disc)
+{
+ BraseroDiscIface *iface;
+
+ if (!disc)
+ return 0;
+
+ g_return_val_if_fail (BRASERO_IS_DISC (disc), 0);
+
+ iface = BRASERO_DISC_GET_IFACE (disc);
+ if (iface->is_empty)
+ return (* iface->is_empty) (disc);
+
+ return FALSE;
+
+}
+
void
brasero_disc_selection_changed (BraseroDisc *disc)
{
diff --git a/src/brasero-disc.h b/src/brasero-disc.h
index 60516b6..afcc8f1 100644
--- a/src/brasero-disc.h
+++ b/src/brasero-disc.h
@@ -80,6 +80,7 @@ struct _BraseroDiscIface {
BraseroDiscResult (*add_uri) (BraseroDisc *disc,
const gchar *uri);
+ gboolean (*is_empty) (BraseroDisc *disc);
gboolean (*get_selected_uri) (BraseroDisc *disc,
gchar **uri);
gboolean (*get_boundaries) (BraseroDisc *disc,
@@ -127,6 +128,9 @@ BraseroDiscResult
brasero_disc_set_session_contents (BraseroDisc *disc,
BraseroBurnSession *session);
+gboolean
+brasero_disc_is_empty (BraseroDisc *disc);
+
void
brasero_disc_selection_changed (BraseroDisc *disc);
diff --git a/src/brasero-project-name.c b/src/brasero-project-name.c
index 9fe234b..29b49a6 100644
--- a/src/brasero-project-name.c
+++ b/src/brasero-project-name.c
@@ -94,7 +94,7 @@ brasero_project_name_icon_update (BraseroProjectName *self,
gtk_entry_set_icon_from_pixbuf (GTK_ENTRY (self),
GTK_ENTRY_ICON_PRIMARY,
- NULL);
+ NULL);
gtk_entry_set_icon_from_icon_name (GTK_ENTRY (self),
GTK_ENTRY_ICON_PRIMARY,
NULL);
@@ -176,8 +176,6 @@ brasero_project_name_icon_button_clicked (BraseroProjectName *project,
if (!track)
return;
- filename = brasero_track_data_cfg_get_icon_path (track);
-
chooser = gtk_file_chooser_dialog_new (_("Medium Icon"),
GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (project))),
GTK_FILE_CHOOSER_ACTION_OPEN,
@@ -198,6 +196,7 @@ brasero_project_name_icon_button_clicked (BraseroProjectName *project,
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), filter);
+ filename = brasero_track_data_cfg_get_icon_path (track);
if (filename)
gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (chooser), filename);
diff --git a/src/brasero-project.c b/src/brasero-project.c
index c9b48ac..847e6ba 100644
--- a/src/brasero-project.c
+++ b/src/brasero-project.c
@@ -350,8 +350,8 @@ brasero_project_set_remove_button_state (BraseroProject *project)
gboolean sensitive;
sensitive = (project->priv->has_focus &&
- !project->priv->empty &&
- project->priv->selected_uris);
+ project->priv->selected_uris &&
+ !brasero_disc_is_empty (BRASERO_DISC (project->priv->current)));
action = gtk_action_group_get_action (project->priv->project_group, "DeleteProject");
gtk_action_set_sensitive (action, sensitive);
@@ -825,7 +825,7 @@ brasero_project_update_controls (BraseroProject *project)
brasero_project_set_add_button_state (project);
action = gtk_action_group_get_action (project->priv->project_group, "DeleteAll");
- gtk_action_set_sensitive (action, (project->priv->empty == FALSE));
+ gtk_action_set_sensitive (action, (brasero_disc_is_empty (BRASERO_DISC (project->priv->current))));
}
static void
@@ -980,7 +980,6 @@ brasero_project_is_valid (BraseroSessionCfg *session,
}
else if (valid == BRASERO_SESSION_EMPTY) {
project->priv->empty = TRUE;
- gtk_notebook_set_current_page (GTK_NOTEBOOK (project->priv->help), 1);
}
else if (valid == BRASERO_SESSION_NO_OUTPUT) {
brasero_notify_message_add (BRASERO_NOTIFY (project->priv->message),
@@ -1021,6 +1020,9 @@ brasero_project_is_valid (BraseroSessionCfg *session,
project->priv->empty = FALSE;
project->priv->oversized = FALSE;
}
+
+ gtk_notebook_set_current_page (GTK_NOTEBOOK (project->priv->help),
+ brasero_disc_is_empty (BRASERO_DISC (project->priv->current))? 0:1);
}
static void
diff --git a/src/brasero-video-disc.c b/src/brasero-video-disc.c
index 45de598..c23d837 100644
--- a/src/brasero-video-disc.c
+++ b/src/brasero-video-disc.c
@@ -1352,12 +1352,24 @@ brasero_video_disc_set_session_contents (BraseroDisc *self,
return BRASERO_DISC_OK;
}
+static gboolean
+brasero_video_disc_is_empty (BraseroDisc *disc)
+{
+ BraseroVideoDiscPrivate *priv;
+ GtkTreeModel *model;
+
+ priv = BRASERO_VIDEO_DISC_PRIVATE (disc);
+ model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->tree));
+ return gtk_tree_model_iter_n_children (model, NULL) != 0;
+}
+
static void
brasero_video_disc_iface_disc_init (BraseroDiscIface *iface)
{
iface->add_uri = brasero_video_disc_add_uri;
iface->delete_selected = brasero_video_disc_delete_selected;
+ iface->is_empty = brasero_video_disc_is_empty;
iface->set_session_contents = brasero_video_disc_set_session_contents;
iface->get_selected_uri = brasero_video_disc_get_selected_uri;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]