[rhythmbox] import-dialog: redesign a bit



commit 31fe3a28a9c1b23d801d60ba688781814d45c091
Author: Jonathan Matthew <jonathan d14n org>
Date:   Wed Aug 21 23:14:37 2013 +1000

    import-dialog: redesign a bit
    
    Now we have a single 'import' button that describes what will be
    imported, with separate options (only one so far, whether to copy
    files in to the library or not) determining what happens when it
    gets clicked.  The remove button has been removed.
    
    Closing the dialog now stops any scanning task that may have been
    in progress.

 data/ui/import-dialog.ui    |   88 +++++++++-----------
 sources/rb-library-source.c |   15 ----
 widgets/rb-import-dialog.c  |  192 +++++++++++++++++++++---------------------
 3 files changed, 135 insertions(+), 160 deletions(-)
---
diff --git a/data/ui/import-dialog.ui b/data/ui/import-dialog.ui
index 0f1bf58..4f632e2 100644
--- a/data/ui/import-dialog.ui
+++ b/data/ui/import-dialog.ui
@@ -7,20 +7,16 @@
     <property name="margin_top">6</property>
     <property name="row_spacing">6</property>
     <child>
-      <object class="GtkGrid" id="grid4">
+      <object class="GtkGrid" id="file-button-container">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
         <property name="halign">center</property>
         <property name="column_spacing">6</property>
         <child>
-          <object class="GtkFileChooserButton" id="file-chooser-button">
-            <property name="width_request">300</property>
+          <object class="GtkLabel" id="instructions">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="hexpand">True</property>
-            <property name="orientation">vertical</property>
-            <property name="action">select-folder</property>
-            <property name="local_only">False</property>
+            <property name="label" translatable="yes">Select a location containing music to add to your 
library:</property>
           </object>
           <packing>
             <property name="left_attach">0</property>
@@ -30,14 +26,13 @@
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="add-button">
-            <property name="label" translatable="yes">Add Tracks</property>
-            <property name="use_action_appearance">False</property>
+          <object class="GtkFileChooserButton" id="file-chooser-button">
+            <property name="width_request">300</property>
             <property name="visible">True</property>
-            <property name="can_focus">True</property>
-            <property name="receives_default">True</property>
-            <property name="tooltip_text" translatable="yes">Add tracks to the library</property>
-            <property name="use_action_appearance">False</property>
+            <property name="can_focus">False</property>
+            <property name="orientation">vertical</property>
+            <property name="action">select-folder</property>
+            <property name="local_only">False</property>
           </object>
           <packing>
             <property name="left_attach">1</property>
@@ -46,18 +41,29 @@
             <property name="height">1</property>
           </packing>
         </child>
+      </object>
+      <packing>
+        <property name="left_attach">0</property>
+        <property name="top_attach">0</property>
+        <property name="width">1</property>
+        <property name="height">1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkGrid" id="import-button-container">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="halign">center</property>
+        <property name="column_spacing">6</property>
         <child>
-          <object class="GtkButton" id="copy-button">
-            <property name="label" translatable="yes">Copy Tracks</property>
-            <property name="use_action_appearance">False</property>
+          <object class="GtkButton" id="import-button">
+            <property name="label" translatable="yes">Import</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
-            <property name="tooltip_text" translatable="yes">Copy tracks to the library location</property>
-            <property name="use_action_appearance">False</property>
           </object>
           <packing>
-            <property name="left_attach">2</property>
+            <property name="left_attach">1</property>
             <property name="top_attach">0</property>
             <property name="width">1</property>
             <property name="height">1</property>
@@ -66,31 +72,28 @@
         <child>
           <object class="GtkButton" id="close-button">
             <property name="label" translatable="yes">Close</property>
-            <property name="use_action_appearance">False</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
             <property name="receives_default">True</property>
-            <property name="use_action_appearance">False</property>
           </object>
           <packing>
-            <property name="left_attach">4</property>
+            <property name="left_attach">2</property>
             <property name="top_attach">0</property>
             <property name="width">1</property>
             <property name="height">1</property>
           </packing>
         </child>
         <child>
-          <object class="GtkButton" id="remove-button">
-            <property name="label" translatable="yes">Remove Tracks</property>
-            <property name="use_action_appearance">False</property>
+          <object class="GtkCheckButton" id="copy-check">
+            <property name="label" translatable="yes">Copy files that are outside the music 
library</property>
             <property name="visible">True</property>
             <property name="can_focus">True</property>
-            <property name="receives_default">True</property>
-            <property name="tooltip_text" translatable="yes">Remove the selected tracks</property>
-            <property name="use_action_appearance">False</property>
+            <property name="receives_default">False</property>
+            <property name="xalign">0</property>
+            <property name="draw_indicator">True</property>
           </object>
           <packing>
-            <property name="left_attach">3</property>
+            <property name="left_attach">0</property>
             <property name="top_attach">0</property>
             <property name="width">1</property>
             <property name="height">1</property>
@@ -105,24 +108,9 @@
       </packing>
     </child>
     <child>
-      <object class="GtkLabel" id="instructions">
-        <property name="visible">True</property>
-        <property name="can_focus">False</property>
-        <property name="label" translatable="yes">Select a location containing music to add to your 
library.</property>
-      </object>
-      <packing>
-        <property name="left_attach">0</property>
-        <property name="top_attach">0</property>
-        <property name="width">1</property>
-        <property name="height">1</property>
-      </packing>
-    </child>
-    <child>
-      <object class="GtkGrid" id="entry-view-container">
+      <object class="GtkGrid" id="info-bar-container">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="hexpand">True</property>
-        <property name="vexpand">True</property>
         <child>
           <placeholder/>
         </child>
@@ -153,15 +141,17 @@
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">3</property>
+        <property name="top_attach">2</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
     </child>
     <child>
-      <object class="GtkGrid" id="info-bar-container">
+      <object class="GtkGrid" id="entry-view-container">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
+        <property name="hexpand">True</property>
+        <property name="vexpand">True</property>
         <child>
           <placeholder/>
         </child>
@@ -192,7 +182,7 @@
       </object>
       <packing>
         <property name="left_attach">0</property>
-        <property name="top_attach">2</property>
+        <property name="top_attach">3</property>
         <property name="width">1</property>
         <property name="height">1</property>
       </packing>
diff --git a/sources/rb-library-source.c b/sources/rb-library-source.c
index 1afc971..87233b0 100644
--- a/sources/rb-library-source.c
+++ b/sources/rb-library-source.c
@@ -87,7 +87,6 @@ static void rb_library_source_finalize (GObject *object);
 
 static GtkWidget *impl_get_config_widget (RBDisplayPage *source, RBShellPreferences *prefs);
 static gboolean impl_receive_drag (RBDisplayPage *source, GtkSelectionData *data);
-static void impl_get_status (RBDisplayPage *source, char **text, char **progress_text, float *progress);
 
 static gboolean impl_can_paste (RBSource *asource);
 static RBTrackTransferBatch *impl_paste (RBSource *source, GList *entries);
@@ -215,7 +214,6 @@ rb_library_source_class_init (RBLibrarySourceClass *klass)
 
        page_class->get_config_widget = impl_get_config_widget;
        page_class->receive_drag = impl_receive_drag;
-       page_class->get_status = impl_get_status;
 
        source_class->impl_can_copy = (RBSourceFeatureFunc) rb_true_function;
        source_class->impl_can_paste = (RBSourceFeatureFunc) impl_can_paste;
@@ -1999,19 +1997,6 @@ rb_library_source_sync_child_sources (RBLibrarySource *source)
 }
 
 static void
-impl_get_status (RBDisplayPage *source, char **text, char **progress_text, float *progress)
-{
-       RBLibrarySource *lsource = RB_LIBRARY_SOURCE (source);
-
-       RB_DISPLAY_PAGE_CLASS (rb_library_source_parent_class)->get_status (source, text, progress_text, 
progress);
-
-       if (gtk_notebook_get_current_page (GTK_NOTEBOOK (lsource->priv->notebook)) == IMPORT_DIALOG_PAGE) {
-               g_free (*text);
-               g_object_get (lsource->priv->import_dialog, "status", text, NULL);
-       }
-}
-
-static void
 import_dialog_closed_cb (RBImportDialog *dialog, RBLibrarySource *source)
 {
        gtk_notebook_set_current_page (GTK_NOTEBOOK (source->priv->notebook), 0);
diff --git a/widgets/rb-import-dialog.c b/widgets/rb-import-dialog.c
index ff7bada..7c79a05 100644
--- a/widgets/rb-import-dialog.c
+++ b/widgets/rb-import-dialog.c
@@ -71,7 +71,6 @@ static void rb_import_dialog_init (RBImportDialog *dialog);
 enum {
        PROP_0,
        PROP_SHELL,
-       PROP_STATUS
 };
 
 enum {
@@ -92,20 +91,18 @@ struct RBImportDialogPrivate
        GtkWidget *info_bar;
        GtkWidget *info_bar_container;
        GtkWidget *file_chooser;
-       GtkWidget *add_button;
-       GtkWidget *copy_button;
-       GtkWidget *remove_button;
+       GtkWidget *copy_check;
+       GtkWidget *import_button;
 
        RhythmDBEntryType *entry_type;
        RhythmDBEntryType *ignore_type;
        RhythmDBImportJob *import_job;
        int entry_count;
-       gboolean can_copy;
-       gboolean can_add;
 
        GList *add_entry_list;
        guint add_entries_id;
        guint added_entries_id;
+       guint update_status_id;
 
        char *current_uri;
 };
@@ -156,6 +153,10 @@ static void
 impl_close (RBImportDialog *dialog)
 {
        hide_import_job (dialog);
+
+       if (dialog->priv->import_job) {
+               rhythmdb_import_job_cancel (dialog->priv->import_job);
+       }
        g_signal_emit (dialog, signals[CLOSED], 0);
 }
 
@@ -253,19 +254,6 @@ add_entries (RBImportDialog *dialog)
 }
 
 static void
-add_clicked_cb (GtkButton *button, RBImportDialog *dialog)
-{
-       GList *entries;
-
-       entries = get_entries (dialog);
-       dialog->priv->add_entry_list = g_list_concat (dialog->priv->add_entry_list, entries);
-
-       if (dialog->priv->add_entries_id == 0) {
-               dialog->priv->add_entries_id = g_idle_add ((GSourceFunc) add_entries, dialog);
-       }
-}
-
-static void
 copy_track_done_cb (RBTrackTransferBatch *batch,
                    RhythmDBEntry *entry,
                    const char *dest,
@@ -289,42 +277,41 @@ copy_complete_cb (RBTrackTransferBatch *batch, RBImportDialog *dialog)
 }
 
 static void
-copy_clicked_cb (GtkButton *button, RBImportDialog *dialog)
+import_clicked_cb (GtkButton *button, RBImportDialog *dialog)
 {
+       GList *entries;
        RBSource *library_source;
        RBTrackTransferBatch *batch;
-       GList *entries;
-       
-       g_object_get (dialog->priv->shell, "library-source", &library_source, NULL);
 
        entries = get_entries (dialog);
-       batch = rb_source_paste (library_source, entries);
-       g_list_free_full (entries, (GDestroyNotify) rhythmdb_entry_unref);
-       g_object_unref (library_source);
 
-       /* delete source entries as they finish being copied */
-       g_signal_connect (batch, "track-done", G_CALLBACK (copy_track_done_cb), dialog);
-       g_signal_connect (batch, "complete", G_CALLBACK (copy_complete_cb), dialog);
-}
+       if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->priv->copy_check)) == FALSE) {
+               dialog->priv->add_entry_list = g_list_concat (dialog->priv->add_entry_list, entries);
 
-static void
-remove_clicked_cb (GtkButton *button, RBImportDialog *dialog)
-{
-       GList *entries;
-       GList *l;
+               if (dialog->priv->add_entries_id == 0) {
+                       dialog->priv->add_entries_id = g_idle_add ((GSourceFunc) add_entries, dialog);
+               }
+       } else {
+               g_object_get (dialog->priv->shell, "library-source", &library_source, NULL);
+
+               batch = rb_source_paste (library_source, entries);
+               g_list_free_full (entries, (GDestroyNotify) rhythmdb_entry_unref);
+               g_object_unref (library_source);
 
-       entries = rb_entry_view_get_selected_entries (dialog->priv->entry_view);
-       for (l = entries; l != NULL; l = l->next) {
-               rhythmdb_entry_delete (dialog->priv->db, l->data);
+               /* delete source entries as they finish being copied */
+               g_signal_connect (batch, "track-done", G_CALLBACK (copy_track_done_cb), dialog);
+               g_signal_connect (batch, "complete", G_CALLBACK (copy_complete_cb), dialog);
        }
-       rhythmdb_commit (dialog->priv->db);
-       g_list_free_full (entries, (GDestroyNotify) rhythmdb_entry_unref);
+
 }
 
 static void
 close_clicked_cb (GtkButton *button, RBImportDialog *dialog)
 {
        hide_import_job (dialog);
+       if (dialog->priv->import_job) {
+               rhythmdb_import_job_cancel (dialog->priv->import_job);
+       }
        g_signal_emit (dialog, signals[CLOSED], 0);
 }
 
@@ -363,7 +350,7 @@ start_deferred_scan (RhythmDBImportJob *job, int total, RBImportDialog *dialog)
 }
 
 static void
-info_bar_response_cb (GtkInfoBar *bar, gint response, RBImportDialog *dialog)
+device_info_bar_response_cb (GtkInfoBar *bar, gint response, RBImportDialog *dialog)
 {
        RBSource *source;
        const char *uri;
@@ -382,7 +369,6 @@ current_folder_changed_cb (GtkFileChooser *chooser, RBImportDialog *dialog)
        GSettings *settings;
        RBSource *source;
        GtkWidget *label;
-       GtkWidget *content;
        const char *uri;
        char **locations;
        int i;
@@ -403,26 +389,12 @@ current_folder_changed_cb (GtkFileChooser *chooser, RBImportDialog *dialog)
 
        clear_info_bar (dialog);
 
-       /* disable copy if the selected location is already inside the library */
-       settings = g_settings_new ("org.gnome.rhythmbox.rhythmdb");
-       locations = g_settings_get_strv (settings, "locations");
-       dialog->priv->can_copy = TRUE;
-       for (i = 0; locations[i] != NULL; i++) {
-               if (g_str_has_prefix (uri, locations[i])) {
-                       dialog->priv->can_copy = FALSE;
-                       break;
-               }
-       }
-       g_strfreev (locations);
-       g_object_unref (settings);
-
-       dialog->priv->can_add = TRUE;
-
        source = rb_shell_guess_source_for_uri (dialog->priv->shell, uri);
        if (source != NULL) {
                if (RB_IS_DEVICE_SOURCE (source)) {
                        char *msg;
                        char *name;
+                       GtkWidget *content;
 
                        dialog->priv->info_bar = gtk_info_bar_new ();
                        g_object_set (dialog->priv->info_bar, "hexpand", TRUE, NULL);
@@ -440,7 +412,7 @@ current_folder_changed_cb (GtkFileChooser *chooser, RBImportDialog *dialog)
                        gtk_info_bar_add_button (GTK_INFO_BAR (dialog->priv->info_bar), msg, 
GTK_RESPONSE_ACCEPT);
                        g_free (msg);
 
-                       g_signal_connect (dialog->priv->info_bar, "response", G_CALLBACK 
(info_bar_response_cb), dialog);
+                       g_signal_connect (dialog->priv->info_bar, "response", G_CALLBACK 
(device_info_bar_response_cb), dialog);
 
                        gtk_widget_show_all (dialog->priv->info_bar);
                        gtk_container_add (GTK_CONTAINER (dialog->priv->info_bar_container), 
dialog->priv->info_bar);
@@ -448,6 +420,19 @@ current_folder_changed_cb (GtkFileChooser *chooser, RBImportDialog *dialog)
                }
        }
 
+       /* disable copy if the selected location is already inside the library */
+       settings = g_settings_new ("org.gnome.rhythmbox.rhythmdb");
+       locations = g_settings_get_strv (settings, "locations");
+       gtk_widget_set_sensitive (dialog->priv->copy_check, TRUE);
+       for (i = 0; locations[i] != NULL; i++) {
+               if (g_str_has_prefix (uri, locations[i])) {
+                       gtk_widget_set_sensitive (dialog->priv->copy_check, FALSE);
+                       break;
+               }
+       }
+       g_strfreev (locations);
+       g_object_unref (settings);
+
        if (dialog->priv->import_job != NULL) {
                /* wait for the previous job to finish up */
                rb_debug ("need to wait for previous import job to finish");
@@ -457,16 +442,52 @@ current_folder_changed_cb (GtkFileChooser *chooser, RBImportDialog *dialog)
        }
 }
 
+static gboolean
+update_status_idle (RBImportDialog *dialog)
+{
+       int count;
+       const char *fmt;
+       char *text;
+
+       if (rb_entry_view_have_selection (dialog->priv->entry_view)) {
+               GList *sel;
+
+               sel = rb_entry_view_get_selected_entries (dialog->priv->entry_view);
+               count = g_list_length (sel);
+               g_list_free_full (sel, (GDestroyNotify) rhythmdb_entry_unref);
+
+               fmt = ngettext ("Import %d selected track", "Import %d selected tracks", count);
+       } else {
+               count = gtk_tree_model_iter_n_children (GTK_TREE_MODEL (dialog->priv->query_model), NULL);
+               fmt = ngettext ("Import %d listed track", "Import %d listed tracks", count);
+       }
+       text = g_strdup_printf (fmt, count);
+       gtk_button_set_label (GTK_BUTTON (dialog->priv->import_button), text);
+       g_free (text);
+
+       dialog->priv->update_status_id = 0;
+       return FALSE;
+}
+
+static void
+update_status (RBImportDialog *dialog)
+{
+       if (dialog->priv->update_status_id != 0)
+               return;
+
+       dialog->priv->update_status_id = g_idle_add ((GSourceFunc) update_status_idle, dialog);
+}
+
+
 static void
 entry_inserted_cb (GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter, RBImportDialog *dialog)
 {
        if (dialog->priv->entry_count == 0) {
-               gtk_widget_set_sensitive (dialog->priv->add_button, dialog->priv->can_add);
-               gtk_widget_set_sensitive (dialog->priv->copy_button, dialog->priv->can_copy);
+               gtk_widget_set_sensitive (dialog->priv->import_button, TRUE);
        }
 
        dialog->priv->entry_count++;
-       g_object_notify (G_OBJECT (dialog), "status");
+       update_status (dialog);
 }
 
 static void
@@ -474,17 +495,16 @@ entry_deleted_cb (GtkTreeModel *model, RhythmDBEntry *entry, RBImportDialog *dia
 {
        dialog->priv->entry_count--;
        if (dialog->priv->entry_count == 0) {
-               gtk_widget_set_sensitive (dialog->priv->add_button, FALSE);
-               gtk_widget_set_sensitive (dialog->priv->copy_button, FALSE);
+               gtk_widget_set_sensitive (dialog->priv->import_button, FALSE);
        }
 
-       g_object_notify (G_OBJECT (dialog), "status");
+       update_status (dialog);
 }
 
 static void
-have_selection_changed_cb (RBEntryView *view, gboolean have_selection, RBImportDialog *dialog)
+selection_changed_cb (RBEntryView *view, RBImportDialog *dialog)
 {
-       gtk_widget_set_sensitive (dialog->priv->remove_button, have_selection);
+       update_status (dialog);
 }
 
 static void
@@ -519,17 +539,11 @@ impl_constructed (GObject *object)
 
        builder = rb_builder_load ("import-dialog.ui", NULL);
 
-       dialog->priv->add_button = GTK_WIDGET (gtk_builder_get_object (builder, "add-button"));
-       g_signal_connect_object (dialog->priv->add_button, "clicked", G_CALLBACK (add_clicked_cb), dialog, 0);
-       gtk_widget_set_sensitive (dialog->priv->add_button, FALSE);
-       
-       dialog->priv->copy_button = GTK_WIDGET (gtk_builder_get_object (builder, "copy-button"));
-       g_signal_connect_object (dialog->priv->copy_button, "clicked", G_CALLBACK (copy_clicked_cb), dialog, 
0);
-       gtk_widget_set_sensitive (dialog->priv->copy_button, FALSE);
+       dialog->priv->import_button = GTK_WIDGET (gtk_builder_get_object (builder, "import-button"));
+       g_signal_connect_object (dialog->priv->import_button, "clicked", G_CALLBACK (import_clicked_cb), 
dialog, 0);
+       gtk_widget_set_sensitive (dialog->priv->import_button, FALSE);
 
-       dialog->priv->remove_button = GTK_WIDGET (gtk_builder_get_object (builder, "remove-button"));
-       g_signal_connect_object (dialog->priv->remove_button, "clicked", G_CALLBACK (remove_clicked_cb), 
dialog, 0);
-       gtk_widget_set_sensitive (dialog->priv->remove_button, FALSE);
+       dialog->priv->copy_check = GTK_WIDGET (gtk_builder_get_object (builder, "copy-check"));
 
        g_signal_connect (gtk_builder_get_object (builder, "close-button"),
                          "clicked",
@@ -537,6 +551,7 @@ impl_constructed (GObject *object)
                          dialog);
 
        dialog->priv->file_chooser = GTK_WIDGET (gtk_builder_get_object (builder, "file-chooser-button"));
+       
        /* select the first library location, since the default may be
         * the user's home dir or / or something that will take forever to scan.
         */
@@ -563,7 +578,7 @@ impl_constructed (GObject *object)
        dialog->priv->entry_view = rb_entry_view_new (dialog->priv->db, G_OBJECT 
(dialog->priv->shell_player), TRUE, FALSE);
 
        g_signal_connect (dialog->priv->entry_view, "entry-activated", G_CALLBACK (entry_activated_cb), 
dialog);
-       g_signal_connect (dialog->priv->entry_view, "have-selection-changed", G_CALLBACK 
(have_selection_changed_cb), dialog);
+       g_signal_connect (dialog->priv->entry_view, "selection-changed", G_CALLBACK (selection_changed_cb), 
dialog);
 
        rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_TRACK_NUMBER, FALSE);
        rb_entry_view_append_column (dialog->priv->entry_view, RB_ENTRY_VIEW_COL_TITLE, TRUE);
@@ -621,6 +636,10 @@ impl_dispose (GObject *object)
                g_source_remove (dialog->priv->added_entries_id);
                dialog->priv->added_entries_id = 0;
        }
+       if (dialog->priv->update_status_id) {
+               g_source_remove (dialog->priv->update_status_id);
+               dialog->priv->update_status_id = 0;
+       }
 
        if (dialog->priv->query_model != NULL) {
                g_object_unref (dialog->priv->query_model);
@@ -657,15 +676,6 @@ impl_set_property (GObject *object, guint prop_id, const GValue *value, GParamSp
        }
 }
 
-static char *
-get_status (RBImportDialog *dialog)
-{
-       if (dialog->priv->query_model == NULL)
-               return NULL;
-
-       return rhythmdb_query_model_compute_status_normal (dialog->priv->query_model, "%d song", "%d songs");
-}
-
 static void
 impl_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec)
 {
@@ -675,9 +685,6 @@ impl_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *ps
        case PROP_SHELL:
                g_value_set_object (value, dialog->priv->shell);
                break;
-       case PROP_STATUS:
-               g_value_take_string (value, get_status (dialog));
-               break;
        default:
                g_assert_not_reached ();
                break;
@@ -711,13 +718,6 @@ rb_import_dialog_class_init (RBImportDialogClass *klass)
                                                              "RBShell instance",
                                                              RB_TYPE_SHELL,
                                                              G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-       g_object_class_install_property (object_class,
-                                        PROP_STATUS,
-                                        g_param_spec_string ("status",
-                                                             "status",
-                                                             "status text",
-                                                             NULL,
-                                                             G_PARAM_READABLE));
 
        signals[CLOSE] = g_signal_new ("close",
                                       RB_TYPE_IMPORT_DIALOG,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]