Major mail protocol/filter settings rework.
* Instead of abusing BArchive::Archive() we now use a BMailSettingsView as a base view for all filter/protocol settings that works with BMailAddOnSettings. * Cleanups in E-mail which is now completely layout friendly. But also still crashes when changing the views.
This commit is contained in:
@@ -11,17 +11,15 @@
|
||||
|
||||
|
||||
class BMailProtocol;
|
||||
class BView;
|
||||
class BMailSettingsView;
|
||||
|
||||
|
||||
class BMailFilter {
|
||||
public:
|
||||
BMailFilter(BMailProtocol& protocol,
|
||||
BMailAddOnSettings* settings);
|
||||
const BMailAddOnSettings* settings);
|
||||
virtual ~BMailFilter();
|
||||
|
||||
virtual BString DescriptiveName() const = 0;
|
||||
|
||||
// Message hooks if filter is installed to an inbound protocol
|
||||
virtual void HeaderFetched(const entry_ref& ref,
|
||||
BFile* file);
|
||||
@@ -36,15 +34,18 @@ public:
|
||||
|
||||
protected:
|
||||
BMailProtocol& fMailProtocol;
|
||||
BMailAddOnSettings* fSettings;
|
||||
const BMailAddOnSettings* fSettings;
|
||||
};
|
||||
|
||||
|
||||
// Your filter needs to export these hooks in order to be picked up
|
||||
extern "C" BView* instantiate_filter_config_panel(BMailAddOnSettings& settings);
|
||||
extern "C" BMailSettingsView* instantiate_filter_settings_view(
|
||||
const BMailAccountSettings& accountSettings,
|
||||
const BMailAddOnSettings& settings);
|
||||
extern "C" BString filter_name(const BMailAccountSettings& accountSettings,
|
||||
const BMailAddOnSettings* settings);
|
||||
extern "C" BMailFilter* instantiate_filter(BMailProtocol& protocol,
|
||||
BMailAddOnSettings* settings);
|
||||
extern "C" BString filter_name();
|
||||
const BMailAddOnSettings& settings);
|
||||
|
||||
|
||||
#endif // _MAIL_FILTER_H
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
|
||||
|
||||
class BMailFilter;
|
||||
class BMailSettingsView;
|
||||
class BView;
|
||||
|
||||
|
||||
@@ -103,7 +104,7 @@ protected:
|
||||
const BMailProtocolSettings& settings);
|
||||
|
||||
private:
|
||||
BMailFilter* _LoadFilter(BMailAddOnSettings* filterSettings);
|
||||
BMailFilter* _LoadFilter(const BMailAddOnSettings& settings);
|
||||
|
||||
protected:
|
||||
const BMailAccountSettings fAccountSettings;
|
||||
@@ -149,12 +150,14 @@ public:
|
||||
|
||||
|
||||
// Your protocol needs to export these hooks in order to be picked up
|
||||
extern "C" _EXPORT BInboundMailProtocol* instantiate_inbound_protocol(
|
||||
extern "C" BInboundMailProtocol* instantiate_inbound_protocol(
|
||||
const BMailAccountSettings& settings);
|
||||
extern "C" _EXPORT BOutboundMailProtocol* instantiate_outbound_protocol(
|
||||
extern "C" BOutboundMailProtocol* instantiate_outbound_protocol(
|
||||
const BMailAccountSettings& settings);
|
||||
extern "C" _EXPORT BView* instantiate_protocol_config_panel(
|
||||
BMailAccountSettings& settings);
|
||||
|
||||
extern "C" BMailSettingsView* instantiate_protocol_settings_view(
|
||||
const BMailAccountSettings& accountSettings,
|
||||
const BMailProtocolSettings& settings);
|
||||
|
||||
|
||||
#endif // _MAIL_PROTOCOL_H
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright 2012, Haiku, Inc. All Rights Reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef _MAIL_SETTINGS_VIEW_H
|
||||
#define _MAIL_SETTINGS_VIEW_H
|
||||
|
||||
|
||||
#include <MailSettings.h>
|
||||
#include <View.h>
|
||||
|
||||
|
||||
class BMailSettingsView : public BView {
|
||||
public:
|
||||
BMailSettingsView(const char* name);
|
||||
virtual ~BMailSettingsView();
|
||||
|
||||
// virtual BString DescriptiveName() const = 0;
|
||||
|
||||
virtual status_t SaveInto(
|
||||
BMailAddOnSettings& settings) const = 0;
|
||||
};
|
||||
|
||||
|
||||
#endif // _MAIL_SETTINGS_VIEW_H
|
||||
Reference in New Issue
Block a user