Adapted POP3, and Fortune to the new MailSettingsView API.

This commit is contained in:
Axel Dörfler
2015-01-06 15:23:19 +01:00
parent 1da1e5a166
commit 006040d06e
4 changed files with 41 additions and 43 deletions
@@ -25,15 +25,17 @@ using namespace BPrivate;
class POP3ConfigView : public MailProtocolConfigView { class POP3ConfigView : public MailProtocolConfigView {
public: public:
POP3ConfigView(BMailAccountSettings& settings); POP3ConfigView(
status_t Archive(BMessage* into, bool deep = true) const; const BMailProtocolSettings& settings);
virtual status_t SaveInto(BMailAddOnSettings& settings) const;
private: private:
MailFileConfigView* fFileView; MailFileConfigView* fFileView;
}; };
POP3ConfigView::POP3ConfigView(BMailAccountSettings& settings) POP3ConfigView::POP3ConfigView(const BMailProtocolSettings& settings)
: :
MailProtocolConfigView(B_MAIL_PROTOCOL_HAS_USERNAME MailProtocolConfigView(B_MAIL_PROTOCOL_HAS_USERNAME
| B_MAIL_PROTOCOL_HAS_AUTH_METHODS | B_MAIL_PROTOCOL_HAS_PASSWORD | B_MAIL_PROTOCOL_HAS_AUTH_METHODS | B_MAIL_PROTOCOL_HAS_PASSWORD
@@ -53,11 +55,11 @@ POP3ConfigView::POP3ConfigView(BMailAccountSettings& settings)
AddFlavor(B_TRANSLATE("SSL")); AddFlavor(B_TRANSLATE("SSL"));
#endif #endif
SetTo(settings.InboundSettings()); SetTo(settings);
fFileView = new MailFileConfigView(B_TRANSLATE("Destination:"), fFileView = new MailFileConfigView(B_TRANSLATE("Destination:"),
"destination", false, BPrivate::default_mail_in_directory().Path()); "destination", false, BPrivate::default_mail_in_directory().Path());
fFileView->SetTo(&settings.InboundSettings(), NULL); fFileView->SetTo(&settings, NULL);
Layout()->AddView(fFileView, 0, Layout()->CountRows(), Layout()->AddView(fFileView, 0, Layout()->CountRows(),
Layout()->CountColumns()); Layout()->CountColumns());
@@ -65,18 +67,22 @@ POP3ConfigView::POP3ConfigView(BMailAccountSettings& settings)
status_t status_t
POP3ConfigView::Archive(BMessage* into, bool deep) const POP3ConfigView::SaveInto(BMailAddOnSettings& settings) const
{ {
fFileView->Archive(into, deep); status_t status = fFileView->SaveInto(settings);
return MailProtocolConfigView::Archive(into, deep); if (status != B_OK)
return status;
return MailProtocolConfigView::SaveInto(settings);
} }
// #pragma mark - // #pragma mark -
BView* BMailSettingsView*
instantiate_protocol_config_panel(BMailAccountSettings& settings) instantiate_protocol_settings_view(const BMailAccountSettings& accountSettings,
const BMailProtocolSettings& settings)
{ {
return new POP3ConfigView(settings); return new POP3ConfigView(settings);
} }
@@ -24,7 +24,7 @@ using namespace BPrivate;
ConfigView::ConfigView() ConfigView::ConfigView()
: :
BView("fortune_filter", 0) BMailSettingsView("fortune_filter")
{ {
SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
@@ -40,13 +40,12 @@ ConfigView::ConfigView()
void void
ConfigView::SetTo(const BMessage* archive) ConfigView::SetTo(const BMailAddOnSettings& settings)
{ {
fFileView->SetTo(archive, NULL); fFileView->SetTo(&settings, NULL);
BString path = archive->FindString("tag_line"); BString path = settings.GetString("tag_line",
if (!archive->HasString("tag_line")) B_TRANSLATE("Fortune cookie says:\n\n"));
path = B_TRANSLATE("Fortune cookie says:\n\n");
path.Truncate(path.Length() - 2); path.Truncate(path.Length() - 2);
fTagControl->SetText(path.String()); fTagControl->SetText(path.String());
@@ -54,15 +53,12 @@ ConfigView::SetTo(const BMessage* archive)
status_t status_t
ConfigView::Archive(BMessage* into, bool /*deep*/) const ConfigView::SaveInto(BMailAddOnSettings& settings) const
{ {
fFileView->Archive(into); fFileView->SaveInto(settings);
BString line = fTagControl->Text(); BString line = fTagControl->Text();
if (line != B_EMPTY_STRING) if (line != B_EMPTY_STRING)
line << "\n\n"; line << "\n\n";
if (into->ReplaceString("tag_line", line.String()) != B_OK) return settings.SetString("tag_line", line.String());
into->AddString("tag_line", line.String());
return B_OK;
} }
@@ -8,15 +8,18 @@
#define CONFIG_VIEW_H #define CONFIG_VIEW_H
#include <MailSettingsView.h>
#include <FileConfigView.h> #include <FileConfigView.h>
class ConfigView : public BView { class ConfigView : public BMailSettingsView {
public: public:
ConfigView(); ConfigView();
void SetTo(const BMessage* archive);
virtual status_t Archive(BMessage* into, bool deep = true) const; void SetTo(const BMailAddOnSettings& settings);
virtual status_t SaveInto(BMailAddOnSettings& settings) const;
private: private:
BPrivate::MailFileConfigView* fFileView; BPrivate::MailFileConfigView* fFileView;
@@ -30,9 +30,7 @@
class FortuneFilter : public BMailFilter { class FortuneFilter : public BMailFilter {
public: public:
FortuneFilter(BMailProtocol& protocol, FortuneFilter(BMailProtocol& protocol,
BMailAddOnSettings* settings); const BMailAddOnSettings& settings);
virtual BString DescriptiveName() const;
virtual void MessageReadyToSend(const entry_ref& ref, virtual void MessageReadyToSend(const entry_ref& ref,
BFile* file); BFile* file);
@@ -40,18 +38,10 @@ public:
FortuneFilter::FortuneFilter(BMailProtocol& protocol, FortuneFilter::FortuneFilter(BMailProtocol& protocol,
BMailAddOnSettings* settings) const BMailAddOnSettings& settings)
: :
BMailFilter(protocol, settings) BMailFilter(protocol, &settings)
{ {
}
BString
FortuneFilter::DescriptiveName() const
{
return filter_name();
} }
@@ -106,24 +96,27 @@ FortuneFilter::MessageReadyToSend(const entry_ref& ref, BFile* file)
BString BString
filter_name() filter_name(const BMailAccountSettings& accountSettings,
const BMailAddOnSettings* settings)
{ {
return B_TRANSLATE("Fortune"); return B_TRANSLATE("Fortune");
} }
BMailFilter* BMailFilter*
instantiate_filter(BMailProtocol& protocol, BMailAddOnSettings* settings) instantiate_filter(BMailProtocol& protocol,
const BMailAddOnSettings& settings)
{ {
return new FortuneFilter(protocol, settings); return new FortuneFilter(protocol, settings);
} }
BView* BMailSettingsView*
instantiate_filter_config_panel(BMailAddOnSettings& settings) instantiate_filter_settings_view(const BMailAccountSettings& accountSettings,
const BMailAddOnSettings& settings)
{ {
ConfigView* view = new ConfigView(); ConfigView* view = new ConfigView();
view->SetTo(&settings); view->SetTo(settings);
return view; return view;
} }