~ubuntu-branches/ubuntu/lucid/brasero/lucid-updates

« back to all changes in this revision

Viewing changes to src/brasero-data-disc.c

  • Committer: Bazaar Package Importer
  • Author(s): Didier Roche
  • Date: 2010-06-24 11:22:46 UTC
  • mfrom: (1.3.7 upstream)
  • Revision ID: james.westby@ubuntu.com-20100624112246-s5ubbf8tafqkir0m
Tags: 2.30.2-0ubuntu1
* New upstream release
  - Lot's of memleak fixes
  - Fixed a runtime warning related to cancelling tracker searches
  - Crash in brasero_data_project_node_removed at
    brasero-data-project.c:1163
  - brasero crashed with SIGSEGV in brasero_data_project_remove_node()
    (LP: #561319)
  - Fix a few runtime warnings with the Cover Editor
  - Text in cover editor does not show up automatically (LP: #469459)
  - Removed use of deprecated flags
  - Use accessor functions instead direct access (use GSEAL GnomeGoal)
  - Fix a bug in the layout on first start (side pane was hidden and
    remained so until the user moved it)
  - Save printer settings for cover printing
  - Write the contents of the GtkTextBuffer displayed line by displayed
    line which should improve the layout
  - "Write to Disc" button sensitivity regression
  - Fix flaw in mask that led libburn plugin not to work (not to be picked
    up actually) in some circumstances
  - Fails to burn ANY audio project
  - Move columns doesn't work (LP: #581759)
  - Brasero does not correctly handle double clicking on column separators
    (LP: #581885)
  - Bad info when burning, high CPU usage and slow burn
  - Change the priority for cdrdao and raised the one of cdda2wav plugin
  - brasero crashed with SIGSEGV in
    brasero_mmc3_get_performa nce_wrt_spd_desc() (LP: #564766)
  - brasero crashed with SIGSEGV in brasero_scsi_command_issue_sync()
    (LP: #444832)
  - Do not check for symlinks on cdda2wav so the plugin can use icedax.
  - Brasero's failure with some file names (LP: #380643)
  - Pressing create audio cd does nothing
  - Empty project not available
  - can't actually save error logs
  - doesn't handle incorrect temp dirs properly
  - Fix multi DND in GtkFileChooser
  - Displays "starting to record" during whole burn process
  - Fix wrong report of speed with both cdrecord and wodim
  - Disk project doesn't save the disk title (LP: #587924)
  - Brasero reports outdated cdrtools on cdrtools-3.00 (LP: #592075)
  - misc bug fixes
  - Updated Translations
* Removed upstream patches:
  - debian/patches/90_git_audio_project_creation.patch,
    debian/patches/91_git_audio_project_creation.patch,
    debian/patches/92_git_audio_cd_recording.patch,
    debian/patches/93_git_new_caps_function_definition.patch
* debian/patches/99_autoconf.patch:
  - refreshed

Show diffs side-by-side

added added

removed removed

Lines of Context:
1198
1198
        brasero_track_data_cfg_reset (priv->project);
1199
1199
}
1200
1200
 
 
1201
static GSList *
 
1202
brasero_data_disc_convert_tree_paths_to_references (GtkTreeModel *model,
 
1203
                                                    GList *treepaths)
 
1204
{
 
1205
        GList *iter;
 
1206
        GSList *retval = NULL;
 
1207
 
 
1208
        for (iter = treepaths; iter; iter = iter->next) {
 
1209
                GtkTreePath *treepath;
 
1210
                GtkTreeRowReference *reference;
 
1211
 
 
1212
                treepath = iter->data;
 
1213
                reference = gtk_tree_row_reference_new (model, treepath);
 
1214
                retval = g_slist_prepend (retval, reference);
 
1215
        }
 
1216
 
 
1217
        return retval;
 
1218
}
 
1219
 
1201
1220
static void
1202
1221
brasero_data_disc_delete_selected (BraseroDisc *disc)
1203
1222
{
1204
1223
        BraseroDataDiscPrivate *priv;
1205
1224
        GtkTreeSelection *selection;
1206
1225
        GtkTreePath *cursorpath;
1207
 
        GList *list, *iter;
 
1226
        GSList *references;
 
1227
        GSList *iter;
 
1228
        GList *list;
1208
1229
 
1209
1230
        priv = BRASERO_DATA_DISC_PRIVATE (disc);
1210
1231
 
1211
1232
        /* we must start by the end for the treepaths to point to valid rows */
1212
1233
        selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->tree));
1213
1234
        list = gtk_tree_selection_get_selected_rows (selection, NULL);
1214
 
        list = g_list_reverse (list);
1215
1235
 
1216
1236
        gtk_tree_view_get_cursor (GTK_TREE_VIEW (priv->tree),
1217
1237
                                  &cursorpath,
1218
1238
                                  NULL);
1219
1239
 
1220
 
        for (iter = list; iter; iter = iter->next) {
 
1240
        /* Since we are going to modify the model by suppressing the selected
 
1241
         * rows, take a safe approach and convert all tree paths into references */
 
1242
        references = brasero_data_disc_convert_tree_paths_to_references (GTK_TREE_MODEL (priv->project), list);
 
1243
        g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
 
1244
        g_list_free (list);
 
1245
 
 
1246
        for (iter = references; iter; iter = iter->next) {
 
1247
                GtkTreeRowReference *reference;
1221
1248
                GtkTreePath *treepath;
1222
1249
 
1223
 
                treepath = iter->data;
 
1250
                reference = iter->data;
 
1251
                treepath = gtk_tree_row_reference_get_path (reference);
 
1252
 
1224
1253
                if (cursorpath && !gtk_tree_path_compare (cursorpath, treepath)) {
1225
1254
                        GtkTreePath *tmp_path;
1226
1255
 
1236
1265
                }
1237
1266
 
1238
1267
                brasero_track_data_cfg_remove (BRASERO_TRACK_DATA_CFG (priv->project), treepath);
1239
 
                gtk_tree_path_free (treepath);
 
1268
 
 
1269
                gtk_tree_row_reference_free (reference);
 
1270
                gtk_tree_path_free (treepath);
1240
1271
        }
1241
 
        g_list_free (list);
 
1272
        g_slist_free (references);
1242
1273
 
1243
1274
        if (cursorpath)
1244
1275
                gtk_tree_path_free (cursorpath);
2082
2113
 
2083
2114
        priv = BRASERO_DATA_DISC_PRIVATE (self);
2084
2115
 
 
2116
        /* Avoid minding signals that happen out of the tree area (like in the 
 
2117
         * headers for example) */
 
2118
        if (event->window != gtk_tree_view_get_bin_window (GTK_TREE_VIEW (tree)))
 
2119
                return FALSE;
 
2120
 
2085
2121
        if (gtk_widget_get_realized (priv->tree)) {
2086
2122
                result = gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (priv->tree),
2087
2123
                                                        event->x,