chiark / gitweb /
Correct playlist delete button sensitivity
[disorder] / disobedience / playlists.c
index fca50ad3a88bf1760ce0bb032a26780c1238d8b5..0ca0aec08b64df3514241a94bd85a8e74e5da95f 100644 (file)
@@ -643,10 +643,15 @@ static void playlist_picker_selection_changed(GtkTreeSelection attribute((unused
   } else
     selected = 0;
   /* Set button sensitivity according to the new state */
-  if(selected)
-    gtk_widget_set_sensitive(playlist_picker_delete_button, 1);
-  else
-    gtk_widget_set_sensitive(playlist_picker_delete_button, 0);
+  int deletable = FALSE;
+  if(selected) {
+    if(strchr(selected, '.')) {
+      if(!strncmp(selected, config->username, strlen(config->username)))
+        deletable = TRUE;
+    } else
+      deletable = TRUE;
+  }
+  gtk_widget_set_sensitive(playlist_picker_delete_button, deletable);
   /* TODO delete should not be sensitive for public playlists owned by other
    * users */
   /* Eliminate no-change cases */