本文整理汇总了C++中BMailSettings类的典型用法代码示例。如果您正苦于以下问题:C++ BMailSettings类的具体用法?C++ BMailSettings怎么用?C++ BMailSettings使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了BMailSettings类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetToGeneralSettings
void
ConfigWindow::RevertToLastSettings()
{
// revert general settings
BMailSettings settings;
// restore status window look
settings.SetStatusWindowLook(settings.StatusWindowLook());
status_t status = SetToGeneralSettings(&settings);
if (status != B_OK) {
char text[256];
sprintf(text, B_TRANSLATE(
"\nThe general settings couldn't be reverted.\n\n"
"Error retrieving general settings:\n%s\n"),
strerror(status));
(new BAlert("Error", text, "OK", NULL, NULL, B_WIDTH_AS_USUAL,
B_WARNING_ALERT))->Go();
}
// revert account data
if (fAccountsListView->CurrentSelection() != -1)
((CenterContainer *)fConfigView)->DeleteChildren();
Accounts::Delete();
Accounts::Create(fAccountsListView,fConfigView);
if (fConfigView->CountChildren() == 0)
MakeHowToView();
}
示例2: screen
void
ConfigWindow::LoadSettings()
{
Accounts::Delete();
Accounts::Create(fAccountsListView, fConfigView);
// load in general settings
BMailSettings settings;
status_t status = SetToGeneralSettings(&settings);
if (status == B_OK) {
// move own window
MoveTo(settings.ConfigWindowFrame().LeftTop());
} else {
fprintf(stderr, B_TRANSLATE("Error retrieving general settings: %s\n"),
strerror(status));
}
BScreen screen(this);
BRect screenFrame(screen.Frame().InsetByCopy(0, 5));
if (!screenFrame.Contains(Frame().LeftTop())
|| !screenFrame.Contains(Frame().RightBottom()))
status = B_ERROR;
if (status != B_OK) {
// center window on screen
MoveTo((screenFrame.Width() - Frame().Width()) / 2,
(screenFrame.Height() - Frame().Height()) / 2);
}
}
示例3: _LoadAccounts
void
ConfigWindow::_LoadSettings()
{
// load accounts
for (int i = 0; i < fAccounts.CountItems(); i++)
delete fAccounts.ItemAt(i);
fAccounts.MakeEmpty();
_LoadAccounts();
// load in general settings
BMailSettings settings;
status_t status = _SetToGeneralSettings(&settings);
if (status == B_OK) {
// move own window
MoveTo(settings.ConfigWindowFrame().LeftTop());
} else {
fprintf(stderr, B_TRANSLATE("Error retrieving general settings: %s\n"),
strerror(status));
}
BScreen screen(this);
BRect screenFrame(screen.Frame().InsetByCopy(0, 5));
if (!screenFrame.Contains(Frame().LeftTop())
|| !screenFrame.Contains(Frame().RightBottom()))
status = B_ERROR;
if (status != B_OK) {
// center window on screen
MoveTo((screenFrame.Width() - Frame().Width()) / 2,
(screenFrame.Height() - Frame().Height()) / 2);
}
}
示例4: BMailSettings
void
ConfigWindow::LoadSettings()
{
Accounts::Delete();
Accounts::Create(fAccountsListView,fConfigView);
// load in general settings
BMailSettings *settings = new BMailSettings();
status_t status = SetToGeneralSettings(settings);
if (status == B_OK)
{
// adjust own window frame
BScreen screen(this);
BRect screenFrame(screen.Frame().InsetByCopy(0,5));
BRect frame(settings->ConfigWindowFrame());
if (screenFrame.Contains(frame.LeftTop()))
MoveTo(frame.LeftTop());
else // center on screen
MoveTo((screenFrame.Width() - frame.Width()) / 2,(screenFrame.Height() - frame.Height()) / 2);
}
else
fprintf(stderr, MDR_DIALECT_CHOICE (
"Error retrieving general settings: %s\n",
"一般設定の収得に失敗: %s\n"),
strerror(status));
delete settings;
}
示例5: BAlert
void
ConfigWindow::_RevertToLastSettings()
{
// revert general settings
BMailSettings settings;
// restore status window look
settings.SetStatusWindowLook(settings.StatusWindowLook());
status_t status = _SetToGeneralSettings(&settings);
if (status != B_OK) {
char text[256];
sprintf(text, B_TRANSLATE(
"\nThe general settings couldn't be reverted.\n\n"
"Error retrieving general settings:\n%s\n"),
strerror(status));
BAlert* alert = new BAlert(B_TRANSLATE("Error"), text,
B_TRANSLATE("OK"), NULL, NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT);
alert->SetFlags(alert->Flags() | B_CLOSE_ON_ESCAPE);
alert->Go();
}
// revert account data
if (fAccountsListView->CurrentSelection() != -1)
fConfigView->DeleteChildren();
for (int32 i = 0; i < fAccounts.CountItems(); i++) {
BMailAccountSettings* account = fAccounts.ItemAt(i);
_RemoveAccountFromListView(account);
delete account;
}
fAccounts.MakeEmpty();
_LoadAccounts();
if (fConfigView->CountChildren() == 0)
_MakeHowToView();
}
示例6: sscanf
void
ConfigWindow::SaveSettings()
{
// remove config views
((CenterContainer *)fConfigView)->DeleteChildren();
/*** save general settings ***/
// figure out time interval
float interval;
sscanf(fIntervalControl->Text(),"%f",&interval);
float multiplier = 0;
switch (fIntervalUnitField->Menu()->IndexOf(
fIntervalUnitField->Menu()->FindMarked())) {
case 1: // minutes
multiplier = 60;
break;
case 2: // hours
multiplier = 60 * 60;
break;
case 3: // days
multiplier = 24 * 60 * 60;
break;
}
time_t time = (time_t)(multiplier * interval);
// apply and save general settings
BMailSettings settings;
if (fSaveSettings) {
settings.SetAutoCheckInterval(time * 1e6);
settings.SetCheckOnlyIfPPPUp(fPPPActiveCheckBox->Value()
== B_CONTROL_ON);
settings.SetSendOnlyIfPPPUp(fPPPActiveSendCheckBox->Value()
== B_CONTROL_ON);
settings.SetDaemonAutoStarts(fAutoStartCheckBox->Value()
== B_CONTROL_ON);
// status mode (alway, fetching/retrieving, ...)
int32 index = fStatusModeField->Menu()->IndexOf(
fStatusModeField->Menu()->FindMarked());
settings.SetShowStatusWindow(index);
} else {
// restore status window look
settings.SetStatusWindowLook(settings.StatusWindowLook());
}
settings.SetConfigWindowFrame(Frame());
settings.Save();
/*** save accounts ***/
if (fSaveSettings)
Accounts::Save();
// start the mail_daemon if auto start was selected
if (fSaveSettings && fAutoStartCheckBox->Value() == B_CONTROL_ON
&& !be_roster->IsRunning("application/x-vnd.Be-POST"))
{
be_roster->Launch("application/x-vnd.Be-POST");
}
}
示例7: changedAccounts
void
ConfigWindow::_SaveSettings()
{
// collect changed accounts
BMessage changedAccounts(BPrivate::kMsgAccountsChanged);
for (int32 i = 0; i < fAccounts.CountItems(); i++) {
BMailAccountSettings* account = fAccounts.ItemAt(i);
if (account && account->HasBeenModified())
changedAccounts.AddInt32("account", account->AccountID());
}
for (int32 i = 0; i < fToDeleteAccounts.CountItems(); i++) {
BMailAccountSettings* account = fToDeleteAccounts.ItemAt(i);
changedAccounts.AddInt32("account", account->AccountID());
}
// cleanup account directory
for (int32 i = 0; i < fToDeleteAccounts.CountItems(); i++) {
BMailAccountSettings* account = fToDeleteAccounts.ItemAt(i);
BEntry entry(account->AccountFile());
entry.Remove();
delete account;
}
fToDeleteAccounts.MakeEmpty();
// Apply and save general settings
BMailSettings settings;
if (fSaveSettings) {
bigtime_t interval = 0;
if (fCheckMailCheckBox->Value() == B_CONTROL_ON) {
// figure out time interval
float floatInterval;
sscanf(fIntervalControl->Text(), "%f", &floatInterval);
interval = bigtime_t(60000000L * floatInterval);
}
settings.SetAutoCheckInterval(interval);
settings.SetDaemonAutoStarts(!fAccounts.IsEmpty());
// status mode (alway, fetching/retrieving, ...)
int32 index = fStatusModeField->Menu()->IndexOf(
fStatusModeField->Menu()->FindMarked());
settings.SetShowStatusWindow(index);
settings.Save();
}
// Save accounts
if (fSaveSettings) {
for (int i = 0; i < fAccounts.CountItems(); i++)
fAccounts.ItemAt(i)->Save();
}
BMessenger messenger(B_MAIL_DAEMON_SIGNATURE);
if (messenger.IsValid()) {
// server should reload general settings
messenger.SendMessage(BPrivate::kMsgSettingsUpdated);
// notify server about changed accounts
messenger.SendMessage(&changedAccounts);
}
// Start/stop the mail_daemon depending on the settings
BMailDaemon daemon;
if (fSaveSettings) {
if (settings.DaemonAutoStarts() && !daemon.IsRunning())
daemon.Launch();
else if (!settings.DaemonAutoStarts() && daemon.IsRunning())
daemon.Quit();
}
}
示例8: LoadOldSettings
status_t
TMailApp::LoadSettings()
{
BMailSettings accountSettings;
fDefaultAccount = accountSettings.DefaultOutboundAccount();
BPath path;
status_t status = GetSettingsPath(path);
if (status != B_OK)
return status;
path.Append("BeMail Settings");
BFile file;
status = file.SetTo(path.Path(), B_READ_ONLY);
if (status != B_OK)
return LoadOldSettings();
BMessage settings;
status = settings.Unflatten(&file);
if (status < B_OK || settings.what != 'BeMl') {
// the current settings are corrupted, try old ones
return LoadOldSettings();
}
BRect rect;
if (settings.FindRect("MailWindowSize", &rect) == B_OK)
fMailWindowFrame = rect;
int32 int32Value;
// if (settings.FindInt32("ExperienceLevel", &int32Value) == B_OK)
// level = int32Value;
const char *fontFamily;
if (settings.FindString("FontFamily", &fontFamily) == B_OK) {
const char *fontStyle;
if (settings.FindString("FontStyle", &fontStyle) == B_OK) {
float size;
if (settings.FindFloat("FontSize", &size) == B_OK) {
if (size >= 7)
fContentFont.SetSize(size);
if (fontFamily[0] && fontStyle[0]) {
fContentFont.SetFamilyAndStyle(fontFamily[0] ? fontFamily : NULL,
fontStyle[0] ? fontStyle : NULL);
}
}
}
}
if (settings.FindRect("SignatureWindowSize", &rect) == B_OK)
fSignatureWindowFrame = rect;
bool boolValue;
if (settings.FindBool("WordWrapMode", &boolValue) == B_OK)
fWrapMode = boolValue;
BPoint point;
if (settings.FindPoint("PreferencesWindowLocation", &point) == B_OK)
fPrefsWindowPos = point;
if (settings.FindBool("AutoMarkRead", &boolValue) == B_OK)
fAutoMarkRead = boolValue;
const char *string;
if (settings.FindString("SignatureText", &string) == B_OK) {
free(fSignature);
fSignature = strdup(string);
}
if (settings.FindInt32("CharacterSet", &int32Value) == B_OK)
fMailCharacterSet = int32Value;
if (fMailCharacterSet != B_MAIL_UTF8_CONVERSION
&& fMailCharacterSet != B_MAIL_US_ASCII_CONVERSION
&& BCharacterSetRoster::GetCharacterSetByConversionID(fMailCharacterSet) == NULL)
fMailCharacterSet = B_MS_WINDOWS_CONVERSION;
if (settings.FindString("FindString", &string) == B_OK)
FindWindow::SetFindString(string);
int8 int8Value;
if (settings.FindInt8("ShowButtonBar", &int8Value) == B_OK)
fShowToolBar = int8Value;
if (settings.FindInt32("UseAccountFrom", &int32Value) == B_OK)
fUseAccountFrom = int32Value;
if (fUseAccountFrom < ACCOUNT_USE_DEFAULT
|| fUseAccountFrom > ACCOUNT_FROM_MAIL)
fUseAccountFrom = ACCOUNT_USE_DEFAULT;
if (settings.FindBool("ColoredQuotes", &boolValue) == B_OK)
fColoredQuotes = boolValue;
if (settings.FindString("ReplyPreamble", &string) == B_OK) {
free(fReplyPreamble);
fReplyPreamble = strdup(string);
}
if (settings.FindBool("AttachAttributes", &boolValue) == B_OK)
fAttachAttributes = boolValue;
//.........这里部分代码省略.........
示例9: settings
status_t
TMailApp::SaveSettings()
{
BMailSettings accountSettings;
if (fDefaultAccount != ~0L) {
accountSettings.SetDefaultOutboundAccount(fDefaultAccount);
accountSettings.Save();
}
BPath path;
status_t status = GetSettingsPath(path);
if (status != B_OK)
return status;
path.Append("BeMail Settings~");
BFile file;
status = file.SetTo(path.Path(), B_READ_WRITE | B_CREATE_FILE | B_ERASE_FILE);
if (status != B_OK)
return status;
BMessage settings('BeMl');
settings.AddRect("MailWindowSize", fMailWindowFrame);
// settings.AddInt32("ExperienceLevel", level);
font_family fontFamily;
font_style fontStyle;
fContentFont.GetFamilyAndStyle(&fontFamily, &fontStyle);
settings.AddString("FontFamily", fontFamily);
settings.AddString("FontStyle", fontStyle);
settings.AddFloat("FontSize", fContentFont.Size());
settings.AddRect("SignatureWindowSize", fSignatureWindowFrame);
settings.AddBool("WordWrapMode", fWrapMode);
settings.AddPoint("PreferencesWindowLocation", fPrefsWindowPos);
settings.AddBool("AutoMarkRead", fAutoMarkRead);
settings.AddString("SignatureText", fSignature);
settings.AddInt32("CharacterSet", fMailCharacterSet);
settings.AddString("FindString", FindWindow::GetFindString());
settings.AddInt8("ShowButtonBar", fShowToolBar);
settings.AddInt32("UseAccountFrom", fUseAccountFrom);
settings.AddBool("ColoredQuotes", fColoredQuotes);
settings.AddString("ReplyPreamble", fReplyPreamble);
settings.AddBool("AttachAttributes", fAttachAttributes);
settings.AddBool("WarnAboutUnencodableCharacters", fWarnAboutUnencodableCharacters);
settings.AddBool("StartWithSpellCheck", fStartWithSpellCheckOn);
BEntry entry;
status = entry.SetTo(path.Path());
if (status != B_OK)
return status;
status = settings.Flatten(&file);
if (status == B_OK) {
// replace original settings file
status = entry.Rename("BeMail Settings", true);
} else
entry.Remove();
return status;
}
示例10: changedAccounts
void
ConfigWindow::_SaveSettings()
{
// remove config views (trigger view archive)
fConfigView->DeleteChildren();
// collect changed accounts
BMessage changedAccounts(kMsgAccountsChanged);
for (int32 i = 0; i < fAccounts.CountItems(); i++) {
BMailAccountSettings* account = fAccounts.ItemAt(i);
if (account && account->HasBeenModified())
changedAccounts.AddInt32("account", account->AccountID());
}
for (int32 i = 0; i < fToDeleteAccounts.CountItems(); i++) {
BMailAccountSettings* account = fToDeleteAccounts.ItemAt(i);
changedAccounts.AddInt32("account", account->AccountID());
}
// cleanup account directory
for (int32 i = 0; i < fToDeleteAccounts.CountItems(); i++) {
BMailAccountSettings* account = fToDeleteAccounts.ItemAt(i);
BEntry entry(account->AccountFile());
entry.Remove();
delete account;
}
fToDeleteAccounts.MakeEmpty();
/*** save general settings ***/
// figure out time interval
float interval;
sscanf(fIntervalControl->Text(),"%f",&interval);
float multiplier = 0;
switch (fIntervalUnitField->Menu()->IndexOf(
fIntervalUnitField->Menu()->FindMarked())) {
case 1: // minutes
multiplier = 60;
break;
case 2: // hours
multiplier = 60 * 60;
break;
case 3: // days
multiplier = 24 * 60 * 60;
break;
}
time_t time = (time_t)(multiplier * interval);
// apply and save general settings
BMailSettings settings;
if (fSaveSettings) {
settings.SetAutoCheckInterval(time * 1e6);
settings.SetCheckOnlyIfPPPUp(fPPPActiveCheckBox->Value()
== B_CONTROL_ON);
settings.SetSendOnlyIfPPPUp(fPPPActiveSendCheckBox->Value()
== B_CONTROL_ON);
settings.SetDaemonAutoStarts(fAutoStartCheckBox->Value()
== B_CONTROL_ON);
// status mode (alway, fetching/retrieving, ...)
int32 index = fStatusModeField->Menu()->IndexOf(
fStatusModeField->Menu()->FindMarked());
settings.SetShowStatusWindow(index);
} else {
// restore status window look
settings.SetStatusWindowLook(settings.StatusWindowLook());
}
settings.SetConfigWindowFrame(Frame());
settings.Save();
/*** save accounts ***/
if (fSaveSettings) {
for (int i = 0; i < fAccounts.CountItems(); i++)
fAccounts.ItemAt(i)->Save();
}
BMessenger messenger("application/x-vnd.Be-POST");
if (messenger.IsValid()) {
// server should reload general settings
messenger.SendMessage(kMsgSettingsUpdated);
// notify server about changed accounts
messenger.SendMessage(&changedAccounts);
}
// start the mail_daemon if auto start was selected
if (fSaveSettings && fAutoStartCheckBox->Value() == B_CONTROL_ON
&& !be_roster->IsRunning("application/x-vnd.Be-POST"))
{
be_roster->Launch("application/x-vnd.Be-POST");
}
}