HaikuDepot: Load Languages from HDS - Fixes
Follow-on changes from recent commit of the same title with some improvements and fixes. Change-Id: Ic4439966340578b920345332669591f6cdfcc203 Reviewed-on: https://review.haiku-os.org/c/1471 Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
committed by
waddlesplash
parent
38ce902686
commit
4f8d9e120f
@@ -39,7 +39,7 @@ LanguageModel::LanguageModel()
|
||||
{
|
||||
const Language defaultLanguage = _DeriveDefaultLanguage();
|
||||
fSupportedLanguages.Add(LanguageRef(
|
||||
new Language(defaultLanguage)));
|
||||
new Language(defaultLanguage), true));
|
||||
_SetPreferredLanguage(defaultLanguage);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
#include "ProcessCoordinatorFactory.h"
|
||||
|
||||
#include <Autolock.h>
|
||||
#include <AutoLocker.h>
|
||||
|
||||
#include <package/Context.h>
|
||||
#include <package/PackageRoster.h>
|
||||
@@ -78,6 +79,8 @@ ProcessCoordinatorFactory::CreateBulkLoadCoordinator(
|
||||
status_t repoNamesResult = roster.GetRepositoryNames(repoNames);
|
||||
|
||||
if (repoNamesResult == B_OK) {
|
||||
AutoLocker<BLocker> locker(model->Lock());
|
||||
|
||||
for (int32 i = 0; i < repoNames.CountStrings(); i++) {
|
||||
ProcessNode* processNode = new ProcessNode(
|
||||
new ServerPkgDataUpdateProcess(
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <time.h>
|
||||
|
||||
#include <AutoDeleter.h>
|
||||
#include <AutoLocker.h>
|
||||
#include <Catalog.h>
|
||||
#include <FileIO.h>
|
||||
#include <Url.h>
|
||||
@@ -63,6 +64,7 @@ BString
|
||||
ServerReferenceDataUpdateProcess::UrlPathComponent()
|
||||
{
|
||||
BString result;
|
||||
AutoLocker<BLocker> locker(fModel->Lock());
|
||||
result.SetToFormat("/__reference/all-%s.json.gz",
|
||||
fModel->Language().PreferredLanguage().Code());
|
||||
return result;
|
||||
@@ -128,7 +130,10 @@ ServerReferenceDataUpdateProcess::_ProcessNaturalLanguages(
|
||||
naturalLanguage->IsPopular())));
|
||||
}
|
||||
|
||||
fModel->Language().AddSupportedLanguages(result);
|
||||
{
|
||||
AutoLocker<BLocker> locker(fModel->Lock());
|
||||
fModel->Language().AddSupportedLanguages(result);
|
||||
}
|
||||
|
||||
printf("[%s] did add %" B_PRId32 " supported languages\n",
|
||||
Name(), result.CountItems());
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include <time.h>
|
||||
|
||||
#include <AutoDeleter.h>
|
||||
#include <AutoLocker.h>
|
||||
#include <Catalog.h>
|
||||
#include <FileIO.h>
|
||||
#include <Url.h>
|
||||
@@ -178,6 +179,7 @@ BString
|
||||
ServerRepositoryDataUpdateProcess::UrlPathComponent()
|
||||
{
|
||||
BString result;
|
||||
AutoLocker<BLocker> locker(fModel->Lock());
|
||||
result.SetToFormat("/__repository/all-%s.json.gz",
|
||||
fModel->Language().PreferredLanguage().Code());
|
||||
return result;
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
|
||||
#include <Alert.h>
|
||||
#include <Autolock.h>
|
||||
#include <AutoLocker.h>
|
||||
#include <Catalog.h>
|
||||
#include <Button.h>
|
||||
#include <CheckBox.h>
|
||||
@@ -191,7 +192,7 @@ RatePackageWindow::RatePackageWindow(BWindow* parent, BRect frame,
|
||||
fTextEditor(new TextEditor(), true),
|
||||
fRating(RATING_NONE),
|
||||
fRatingDeterminate(false),
|
||||
fCommentLanguageCode(fModel.Language().PreferredLanguage().Code()),
|
||||
fCommentLanguageCode(LANGUAGE_DEFAULT_CODE),
|
||||
fWorkerThread(-1)
|
||||
{
|
||||
AddToSubset(parent);
|
||||
@@ -242,17 +243,23 @@ RatePackageWindow::RatePackageWindow(BWindow* parent, BRect frame,
|
||||
fStability = fStabilityCodes.ItemAt(0).Name();
|
||||
stabilityMenu->ItemAt(0)->SetMarked(true);
|
||||
|
||||
// Construct languages popup
|
||||
BPopUpMenu* languagesMenu = new BPopUpMenu(B_TRANSLATE("Language"));
|
||||
fCommentLanguageField = new BMenuField("language",
|
||||
B_TRANSLATE("Comment language:"), languagesMenu);
|
||||
|
||||
LanguageMenuUtils::AddLanguagesToMenu(
|
||||
fModel.Language().SupportedLanguages(),
|
||||
languagesMenu);
|
||||
languagesMenu->SetTargetForItems(this);
|
||||
LanguageMenuUtils::MarkLanguageInMenu(fCommentLanguageCode,
|
||||
languagesMenu);
|
||||
{
|
||||
AutoLocker<BLocker> locker(fModel.Lock());
|
||||
fCommentLanguageCode = fModel.Language().PreferredLanguage().Code();
|
||||
|
||||
// Construct languages popup
|
||||
BPopUpMenu* languagesMenu = new BPopUpMenu(B_TRANSLATE("Language"));
|
||||
fCommentLanguageField = new BMenuField("language",
|
||||
B_TRANSLATE("Comment language:"), languagesMenu);
|
||||
|
||||
LanguageMenuUtils::AddLanguagesToMenu(
|
||||
fModel.Language().SupportedLanguages(),
|
||||
languagesMenu);
|
||||
languagesMenu->SetTargetForItems(this);
|
||||
LanguageMenuUtils::MarkLanguageInMenu(fCommentLanguageCode,
|
||||
languagesMenu);
|
||||
}
|
||||
|
||||
fRatingActiveCheckBox = new BCheckBox("rating active",
|
||||
B_TRANSLATE("Other users can see this rating"),
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
|
||||
#include <Alert.h>
|
||||
#include <Autolock.h>
|
||||
#include <AutoLocker.h>
|
||||
#include <Catalog.h>
|
||||
#include <Button.h>
|
||||
#include <LayoutBuilder.h>
|
||||
@@ -47,7 +48,7 @@ UserLoginWindow::UserLoginWindow(BWindow* parent, BRect frame, Model& model)
|
||||
B_FLOATING_WINDOW_LOOK, B_FLOATING_SUBSET_WINDOW_FEEL,
|
||||
B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS
|
||||
| B_NOT_RESIZABLE | B_NOT_ZOOMABLE),
|
||||
fPreferredLanguageCode(model.Language().PreferredLanguage().Code()),
|
||||
fPreferredLanguageCode(LANGUAGE_DEFAULT_CODE),
|
||||
fModel(model),
|
||||
fMode(NONE),
|
||||
fWorkerThread(-1)
|
||||
@@ -67,20 +68,24 @@ UserLoginWindow::UserLoginWindow(BWindow* parent, BRect frame, Model& model)
|
||||
"", new BMessage(MSG_VALIDATE_FIELDS));
|
||||
fRepeatPasswordField->TextView()->HideTyping(true);
|
||||
|
||||
// Construct languages popup
|
||||
BPopUpMenu* languagesMenu = new BPopUpMenu(B_TRANSLATE("Language"));
|
||||
fLanguageCodeField = new BMenuField("language",
|
||||
B_TRANSLATE("Preferred language:"), languagesMenu);
|
||||
{
|
||||
AutoLocker<BLocker> locker(fModel.Lock());
|
||||
fPreferredLanguageCode = fModel.Language().PreferredLanguage().Code();
|
||||
// Construct languages popup
|
||||
BPopUpMenu* languagesMenu = new BPopUpMenu(B_TRANSLATE("Language"));
|
||||
fLanguageCodeField = new BMenuField("language",
|
||||
B_TRANSLATE("Preferred language:"), languagesMenu);
|
||||
|
||||
LanguageMenuUtils::AddLanguagesToMenu(
|
||||
fModel.Language().SupportedLanguages(),
|
||||
languagesMenu);
|
||||
languagesMenu->SetTargetForItems(this);
|
||||
LanguageMenuUtils::AddLanguagesToMenu(
|
||||
fModel.Language().SupportedLanguages(),
|
||||
languagesMenu);
|
||||
languagesMenu->SetTargetForItems(this);
|
||||
|
||||
printf("using preferred language code [%s]\n",
|
||||
fPreferredLanguageCode.String());
|
||||
LanguageMenuUtils::MarkLanguageInMenu(fPreferredLanguageCode,
|
||||
languagesMenu);
|
||||
printf("using preferred language code [%s]\n",
|
||||
fPreferredLanguageCode.String());
|
||||
LanguageMenuUtils::MarkLanguageInMenu(fPreferredLanguageCode,
|
||||
languagesMenu);
|
||||
}
|
||||
|
||||
fEmailField = new BTextControl(B_TRANSLATE("Email address:"), "", NULL);
|
||||
fCaptchaView = new BitmapView("captcha view");
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
LanguageMenuUtils::AddLanguagesToMenu(
|
||||
const LanguageList& languages, BMenu* menu)
|
||||
{
|
||||
if (languages.IsEmpty())
|
||||
if (languages.IsEmpty() && Logger::IsInfoEnabled())
|
||||
printf("there are no languages defined\n");
|
||||
|
||||
int32 addedPopular = LanguageMenuUtils::_AddLanguagesToMenu(
|
||||
|
||||
Reference in New Issue
Block a user