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