/*
* about:profiles
*
* Copyright (C) 2017 Patrick McDermott
*
* This file is part of Marquee.
*
* Marquee is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Marquee is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Marquee. If not, see .
*/
#include
#include
#include "../../application.h"
#include "../../config/profiles.h"
#include "../../utils/html.h"
#include "../../utils/profile-icon.h"
#include "../about.h"
#include "paths.h"
static gchar *
generate_div(MqProfiles *profiles, gchar *id)
{
gchar *name;
gchar *editing_str;
gchar *name_str;
gchar *default_str;
gchar *delete_str;
gchar *save_str;
gchar *div;
/* Freed by mq_html_container(). */
name = mq_profiles_get_name(profiles, id);
editing_str = g_strdup_printf("editing_%s", id);
name_str = g_strdup_printf("name_%s", id);
default_str = g_strdup_printf("default_%s", id);
delete_str = g_strdup_printf("delete_%s", id);
save_str = g_strdup_printf("save_%s", id);
div = mq_html_container("div", "profile",
mq_html_input_radio("editing", editing_str, id, NULL, FALSE),
mq_profile_icon_new(mq_profiles_get_color(profiles, id)),
mq_html_container("span", NULL, name, NULL),
mq_html_input_text(name_str, NULL, name),
mq_html_submit(default_str, "Make Default",
mq_profiles_is_default(profiles, id)),
mq_html_submit(delete_str, "Delete", FALSE),
mq_html_label(editing_str, "Edit", FALSE),
mq_html_submit(save_str, "Save", FALSE),
NULL);
g_free(editing_str);
g_free(name_str);
g_free(default_str);
g_free(delete_str);
g_free(save_str);
return div;
}
void
mq_about_profiles_response(MqApplication *application,
GHashTable G_GNUC_UNUSED *query,
WebKitURISchemeRequest *request)
{
MqProfiles *profiles;
gchar *document;
gchar **ids;
gsize length;
gchar **divs;
gsize i;
profiles = mq_application_get_profiles(application);
ids = mq_profiles_get_profiles(profiles, &length);
divs = g_new(gchar *, length);
for (i = 0; i < length; ++i) {
divs[i] = generate_div(profiles, ids[i]);
}
divs[i] = NULL;
g_strfreev(ids);
document = mq_html_document("Profiles",
mq_html_form_v("Add Profile", NULL, divs),
NULL);
mq_about_response(request, document);
}