1/*
2 * Copyright 2017 Haiku Inc. All rights reserved.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Brian Hill
7 */
8
9
10#include "RepoRow.h"
11
12#include <Catalog.h>
13#include <ColumnTypes.h>
14
15#include "constants.h"
16
17
18#undef B_TRANSLATION_CONTEXT
19#define B_TRANSLATION_CONTEXT "RepoRow"
20
21
22RepoRow::RepoRow(const char* repo_name, const char* repo_url, bool enabled)
23	:
24	BRow(),
25	fName(repo_name),
26	fUrl(repo_url),
27	fEnabled(enabled),
28	fTaskState(STATE_NOT_IN_QUEUE)
29{
30	SetField(new BStringField(""), kEnabledColumn);
31	SetField(new BStringField(fName.String()), kNameColumn);
32	SetField(new BStringField(fUrl.String()), kUrlColumn);
33	if (enabled)
34		SetEnabled(enabled);
35}
36
37
38void
39RepoRow::SetName(const char* name)
40{
41	BStringField* field = (BStringField*)GetField(kNameColumn);
42	field->SetString(name);
43	fName.SetTo(name);
44	Invalidate();
45}
46
47
48void
49RepoRow::SetEnabled(bool enabled)
50{
51	fEnabled = enabled;
52	RefreshEnabledField();
53}
54
55
56void
57RepoRow::RefreshEnabledField()
58{
59	BStringField* field = (BStringField*)GetField(kEnabledColumn);
60	if (fTaskState == STATE_NOT_IN_QUEUE)
61		field->SetString(fEnabled ? B_TRANSLATE_COMMENT("Enabled",
62			"Tag in the Status column") : "");
63	else
64		field->SetString(B_UTF8_ELLIPSIS);
65	Invalidate();
66}
67
68
69void
70RepoRow::SetTaskState(uint32 state)
71{
72	fTaskState = state;
73	RefreshEnabledField();
74}
75