#include "popup.h"
#include "validity.h"
-#if PLAYLISTS
-
static void playlist_list_received_playlists(void *v,
const char *err,
int nvec, char **vec);
static void playlist_menu_playing(void attribute((unused)) *v,
const char *err) {
if(err)
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
}
/** @brief Play received playlist contents
const char *err,
int nvec, char **vec) {
if(err) {
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
return;
}
for(int n = 0; n < nvec; ++n)
static void playlist_new_locked(void *v, const char *err) {
char *fullname = v;
if(err) {
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
return;
}
disorder_eclient_playlist_get(client, playlist_new_retrieved,
/* A rare case but not in principle impossible */
err = "A playlist with that name already exists.";
if(err) {
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
disorder_eclient_playlist_unlock(client, playlist_new_unlocked, fullname);
return;
}
/** @brief Called when the new playlist has been created */
static void playlist_new_created(void attribute((unused)) *v, const char *err) {
if(err) {
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
return;
}
disorder_eclient_playlist_unlock(client, playlist_new_unlocked, NULL);
/** @brief Called when the newly created playlist has unlocked */
static void playlist_new_unlocked(void attribute((unused)) *v, const char *err) {
if(err)
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
/* Pop down the creation window */
gtk_widget_destroy(playlist_new_window);
}
} 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);
- /* TODO delete should not be sensitive for public playlists owned by other
- * users */
+ 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);
/* Eliminate no-change cases */
if(!selected && !playlist_picker_selected)
return;
static void playlists_picker_delete_completed(void attribute((unused)) *v,
const char *err) {
if(err)
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
}
/** @brief Called when the 'Delete' button is pressed */
static void playlist_editor_share_set(void attribute((unused)) *v,
const attribute((unused)) char *err) {
if(err)
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
}
/** @brief Set the editor button state and sensitivity */
const char *value) {
const char *playlist = v;
if(err) {
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
value = NULL;
}
/* Set the currently active button */
int nvec, char **vec) {
const char *playlist = v;
if(err) {
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
return;
}
if(!playlist_picker_selected
static void playlist_modify_locked(void *v, const char *err) {
struct playlist_modify_data *mod = v;
if(err) {
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
return;
}
disorder_eclient_playlist_get(client, playlist_modify_retrieved,
char **vec) {
struct playlist_modify_data *mod = v;
if(err) {
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
disorder_eclient_playlist_unlock(client, playlist_modify_unlocked, NULL);
return;
}
static void playlist_modify_updated(void attribute((unused)) *v,
const char *err) {
if(err)
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
disorder_eclient_playlist_unlock(client, playlist_modify_unlocked, NULL);
}
static void playlist_modify_unlocked(void attribute((unused)) *v,
const char *err) {
if(err)
- popup_protocol_error(0, err);
+ popup_submsg(playlist_window, GTK_MESSAGE_ERROR, err);
}
/* Drop tracks into a playlist ---------------------------------------------- */
event_register("playlist-modified", playlist_editor_set_buttons, 0);
}
-#endif
-
/*
Local Variables:
c-basic-offset:2