Hi
On 07.01.2017 19:51, waddlesplash@xxxxxxxxx wrote:
hrev50835 adds 1 changeset to branch 'master'
overview:
http://cgit.haiku-os.org/haiku/log/?qt=range&q=5bf2b6eb74cb+%5E564aac42098c
5bf2b6eb74cb: Add the new Repositories preflet.
Also includes changes to HaikuDepot to change wording and add the menu item
to open the Repositories preflet.
Signed-off-by: Augustin Cavalier <waddlesplash@xxxxxxxxx>
Closes #13147.
[ Brian Hill <supernova@xxxxxxxxxxxx> ]
+++ b/src/preferences/repositories/AddRepoWindow.cpp
diff --git a/src/preferences/repositories/AddRepoWindow.h
b/src/preferences/repositories/AddRepoWindow.h
new file mode 100644
index 0000000..c6c1758
--- /dev/null
+++ b/src/preferences/repositories/AddRepoWindow.h
@@ -0,0 +1,35 @@
+
+private:
+ BTextControl* fText;
+ BButton* fAddButton;
+ BButton* fCancelButton;
+ BMessenger fReplyMessenger;
+ status_t _GetClipboardData();
+};
diff --git a/src/preferences/repositories/RepositoriesSettings.cpp>
b/src/preferences/repositories/RepositoriesSettings.cpp
new file mode 100644
index 0000000..02629ee
--- /dev/null
+++ b/src/preferences/repositories/RepositoriesSettings.cpp
+RepositoriesSettings::RepositoriesSettings()>
+{
+ // Create default repos
+ BStringList nameList, urlList;
+ int32 count = (sizeof(kDefaultRepos) / sizeof(Repository));
+ for (int16 index = 0; index < count; index++) {
+ nameList.Add(kDefaultRepos[index].name);
+ urlList.Add(kDefaultRepos[index].url);
diff --git a/src/preferences/repositories/RepositoriesView.cpp>
b/src/preferences/repositories/RepositoriesView.cpp
new file mode 100644
index 0000000..27f7070
--- /dev/null
+++ b/src/preferences/repositories/RepositoriesView.cpp
+>
+ case STATUS_VIEW_COMPLETED_TIMEOUT: {
+ }
+ default:
+ BView::MessageReceived(message);
+ if (kNewRepoDefaultName.Compare(rowItem->Name()) == 0
+ && newName.Compare("") != 0)
+ rowItem->SetName(newName.String());
+BString
+RepositoriesView::_GetRootUrl(BString url)
+{
+ // Find the protocol if it exists
+ int32 ww = url.FindFirst("://");
+ if (ww == B_ERROR)
+ ww = 0;
+ else
+ ww += 3;
+ // Find second /
+ int32 rootEnd = url.FindFirst("/", ww + 1);
+ if (rootEnd == B_ERROR)
+ return url;
+ rootEnd = url.FindFirst("/", rootEnd + 1);
+ if (rootEnd == B_ERROR)
+ return url;
+ else
+ return url.Truncate(rootEnd);
+}
+status_t
+RepositoriesView::_EmptyList()
+{
+ BRow* row;
+ while ((row = fListView->RowAt((int32)0, NULL)) != NULL) {
+ fListView->RemoveRow(row);
+ delete row;
+ }
+ return B_OK;
+}
+RepoRow*>
+RepositoriesView::_AddRepo(BString name, BString url, bool enabled)
+{
+ // Find if the repo already exists in list
+ for (index = 0; index < listCount; index++) {
+ RepoRow* repoItem =
dynamic_cast<RepoRow*>(fListView->RowAt(index));
+ if (url.ICompare(repoItem->Url()) == 0) {
+ // update name and enabled values
+ if (name.Compare(repoItem->Name()) != 0)
+ repoItem->SetName(name.String());
+ repoItem->SetEnabled(enabled);
+ addedRow = repoItem;
+ }
+ }
+ if (addedRow == NULL) {
+ addedRow = new RepoRow(name, url, enabled);
+ fListView->AddRow(addedRow);
+ }
+ return addedRow;
+}
+void
+RepositoriesView::_UpdateButtons()
+{
+ RepoRow* rowItem =
dynamic_cast<RepoRow*>(fListView->CurrentSelection());
+ // At least one row is selected
+ if (rowItem) {
+ bool someAreEnabled = false,
+ someAreDisabled = false,
+ someAreInQueue = false;