mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 07:34:57 +00:00

Show "domain" and "path" as the first two columns. Since we're showing all cookies for all domains and all paths, you will probably want to see the domain and path before the actual cookie name and value.
79 lines
1.7 KiB
C++
79 lines
1.7 KiB
C++
/*
|
|
* Copyright (c) 2022, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include "CookiesModel.h"
|
|
|
|
namespace Browser {
|
|
|
|
void CookiesModel::add_item(Web::Cookie::Cookie const& item)
|
|
{
|
|
begin_insert_rows({}, m_cookies.size(), m_cookies.size());
|
|
m_cookies.append(item);
|
|
end_insert_rows();
|
|
|
|
did_update(DontInvalidateIndices);
|
|
}
|
|
|
|
void CookiesModel::clear_items()
|
|
{
|
|
begin_insert_rows({}, m_cookies.size(), m_cookies.size());
|
|
m_cookies.clear();
|
|
end_insert_rows();
|
|
|
|
did_update(DontInvalidateIndices);
|
|
}
|
|
|
|
String CookiesModel::column_name(int column) const
|
|
{
|
|
switch (column) {
|
|
case Column::Domain:
|
|
return "Domain";
|
|
case Column::Path:
|
|
return "Path";
|
|
case Column::Name:
|
|
return "Name";
|
|
case Column::Value:
|
|
return "Value";
|
|
case Column::ExpiryTime:
|
|
return "Expiry time";
|
|
case Column::__Count:
|
|
return {};
|
|
}
|
|
|
|
return {};
|
|
}
|
|
|
|
GUI::ModelIndex CookiesModel::index(int row, int column, GUI::ModelIndex const&) const
|
|
{
|
|
if (static_cast<size_t>(row) < m_cookies.size())
|
|
return create_index(row, column, &m_cookies.at(row));
|
|
return {};
|
|
}
|
|
|
|
GUI::Variant CookiesModel::data(GUI::ModelIndex const& index, GUI::ModelRole role) const
|
|
{
|
|
if (role != GUI::ModelRole::Display)
|
|
return {};
|
|
|
|
const auto& cookie = m_cookies[index.row()];
|
|
|
|
switch (index.column()) {
|
|
case Column::Domain:
|
|
return cookie.domain;
|
|
case Column::Path:
|
|
return cookie.path;
|
|
case Column::Name:
|
|
return cookie.name;
|
|
case Column::Value:
|
|
return cookie.value;
|
|
case Column::ExpiryTime:
|
|
return cookie.expiry_time.to_string();
|
|
}
|
|
|
|
VERIFY_NOT_REACHED();
|
|
}
|
|
|
|
}
|