本文整理汇总了C++中BMailSettings::Save方法的典型用法代码示例。如果您正苦于以下问题:C++ BMailSettings::Save方法的具体用法?C++ BMailSettings::Save怎么用?C++ BMailSettings::Save使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BMailSettings
的用法示例。
在下文中一共展示了BMailSettings::Save方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: 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");
}
}
示例2: 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;
}
示例3: 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();
}
}
示例4: 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");
}
}