Minor MailNotifier cleanup.

* Renamed to BMailNotifier, as it's part of the public API.
* Renamed Notifier.{cpp|h} to DefaultNotifier.{cpp|h} as that's the class it
  implements.
* Made the mail counts uint32, and the byte counts uint64.
This commit is contained in:
Axel Dörfler
2015-01-06 15:21:31 +01:00
parent e0676bb982
commit 0f11280e6d
5 changed files with 39 additions and 41 deletions
@@ -21,18 +21,18 @@
#include <MailSettings.h> #include <MailSettings.h>
class MailNotifier { class BMailNotifier {
public: public:
virtual ~MailNotifier() {} virtual ~BMailNotifier() {}
virtual MailNotifier* Clone() = 0; virtual BMailNotifier* Clone() = 0;
virtual void ShowError(const char* error) = 0; virtual void ShowError(const char* error) = 0;
virtual void ShowMessage(const char* message) = 0; virtual void ShowMessage(const char* message) = 0;
virtual void SetTotalItems(int32 items) = 0; virtual void SetTotalItems(uint32 items) = 0;
virtual void SetTotalItemsSize(int32 size) = 0; virtual void SetTotalItemsSize(uint64 size) = 0;
virtual void ReportProgress(int bytes, int messages, virtual void ReportProgress(uint32 messages, uint64 bytes,
const char* message = NULL) = 0; const char* message = NULL) = 0;
virtual void ResetProgress(const char* message = NULL) = 0; virtual void ResetProgress(const char* message = NULL) = 0;
}; };
@@ -86,7 +86,7 @@ public:
//! Does not delete handler //! Does not delete handler
bool RemoveHandler(BHandler* handler); bool RemoveHandler(BHandler* handler);
void SetMailNotifier(MailNotifier* mailNotifier); void SetMailNotifier(BMailNotifier* mailNotifier);
virtual void ShowError(const char* error); virtual void ShowError(const char* error);
virtual void ShowMessage(const char* message); virtual void ShowMessage(const char* message);
@@ -126,7 +126,7 @@ protected:
void LoadFilters(MailAddonSettings& settings); void LoadFilters(MailAddonSettings& settings);
BMailAccountSettings fAccountSettings; BMailAccountSettings fAccountSettings;
MailNotifier* fMailNotifier; BMailNotifier* fMailNotifier;
private: private:
MailFilter* _LoadFilter(AddonSettings* filterSettings); MailFilter* _LoadFilter(AddonSettings* filterSettings);
+1 -1
View File
@@ -185,7 +185,7 @@ MailProtocol::RemoveHandler(BHandler* handler)
void void
MailProtocol::SetMailNotifier(MailNotifier* mailNotifier) MailProtocol::SetMailNotifier(BMailNotifier* mailNotifier)
{ {
delete fMailNotifier; delete fMailNotifier;
fMailNotifier = mailNotifier; fMailNotifier = mailNotifier;
@@ -1,17 +1,17 @@
/* /*
* Copyright 2011, Haiku, Inc. All rights reserved. * Copyright 2011-2012, Haiku, Inc. All rights reserved.
* Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de> * Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de>
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
*/ */
#include "DefaultNotifier.h"
#include <Catalog.h> #include <Catalog.h>
#include <IconUtils.h> #include <IconUtils.h>
#include <MailDaemon.h> #include <MailDaemon.h>
#include <Roster.h> #include <Roster.h>
#include "Notifier.h"
#undef B_TRANSLATION_CONTEXT #undef B_TRANSLATION_CONTEXT
#define B_TRANSLATION_CONTEXT "Notifier" #define B_TRANSLATION_CONTEXT "Notifier"
@@ -30,12 +30,9 @@ DefaultNotifier::DefaultNotifier(const char* accountName, bool inbound,
fTotalSize(0), fTotalSize(0),
fSizeDone(0) fSizeDone(0)
{ {
BString desc; BString desc(fIsInbound ? B_TRANSLATE("Fetching mail for %name")
if (fIsInbound == true) : B_TRANSLATE("Sending mail for %name"));
desc << B_TRANSLATE("Fetching mail for %name"); desc.ReplaceFirst("%name", fAccountName);
else
desc << B_TRANSLATE("Sending mail for %name");
desc.ReplaceFirst("%name", fAccountName);
BString identifier; BString identifier;
identifier << accountName << inbound; identifier << accountName << inbound;
@@ -59,10 +56,11 @@ DefaultNotifier::~DefaultNotifier()
} }
MailNotifier* BMailNotifier*
DefaultNotifier::Clone() DefaultNotifier::Clone()
{ {
return new DefaultNotifier(fAccountName, fIsInbound, fErrorWindow, fShowMode); return new DefaultNotifier(fAccountName, fIsInbound, fErrorWindow,
fShowMode);
} }
@@ -81,7 +79,7 @@ DefaultNotifier::ShowMessage(const char* message)
void void
DefaultNotifier::SetTotalItems(int32 items) DefaultNotifier::SetTotalItems(uint32 items)
{ {
fTotalItems = items; fTotalItems = items;
BString progress; BString progress;
@@ -91,7 +89,7 @@ DefaultNotifier::SetTotalItems(int32 items)
void void
DefaultNotifier::SetTotalItemsSize(int32 size) DefaultNotifier::SetTotalItemsSize(uint64 size)
{ {
fTotalSize = size; fTotalSize = size;
fNotification.SetProgress(fSizeDone / (float)fTotalSize); fNotification.SetProgress(fSizeDone / (float)fTotalSize);
@@ -99,7 +97,8 @@ DefaultNotifier::SetTotalItemsSize(int32 size)
void void
DefaultNotifier::ReportProgress(int bytes, int messages, const char* message) DefaultNotifier::ReportProgress(uint32 messages, uint64 bytes,
const char* message)
{ {
fSizeDone += bytes; fSizeDone += bytes;
if (fTotalSize > 0) if (fTotalSize > 0)
@@ -107,11 +106,10 @@ DefaultNotifier::ReportProgress(int bytes, int messages, const char* message)
else if (fTotalItems > 0) { else if (fTotalItems > 0) {
// No size information available // No size information available
// Report progress in terms of message count instead // Report progress in terms of message count instead
fNotification.SetProgress(fItemsDone / (float)fTotalItems); fNotification.SetProgress(fItemsDone / (float)fTotalItems);
} else { } else {
// No message count information either // No message count information either
// TODO we should use a B_INFORMATION_NOTIFICATION here, but it is not // TODO: we should use a B_INFORMATION_NOTIFICATION here, but it is not
// possible to change the BNotification type after creating it... // possible to change the BNotification type after creating it...
fNotification.SetProgress(0); fNotification.SetProgress(0);
} }
@@ -119,7 +117,6 @@ DefaultNotifier::ReportProgress(int bytes, int messages, const char* message)
fItemsDone += messages; fItemsDone += messages;
BString progress; BString progress;
progress << message << "\t"; progress << message << "\t";
if (fTotalItems > 0) if (fTotalItems > 0)
@@ -1,10 +1,10 @@
/* /*
* Copyright 2011, Haiku, Inc. All rights reserved. * Copyright 2011-2012, Haiku, Inc. All rights reserved.
* Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de> * Copyright 2011, Clemens Zeidler <haiku@clemens-zeidler.de>
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
*/ */
#ifndef NOTIFIER_H #ifndef DEFAULT_NOTIFIER_H
#define NOTIFIER_H #define DEFAULT_NOTIFIER_H
#include <Notification.h> #include <Notification.h>
@@ -16,21 +16,21 @@
#include "StatusWindow.h" #include "StatusWindow.h"
class DefaultNotifier : public MailNotifier { class DefaultNotifier : public BMailNotifier {
public: public:
DefaultNotifier(const char* accountName, DefaultNotifier(const char* accountName,
bool inbound, ErrorLogWindow* errorWindow, bool inbound, ErrorLogWindow* errorWindow,
uint32& showMode); uint32& showMode);
~DefaultNotifier(); ~DefaultNotifier();
MailNotifier* Clone(); BMailNotifier* Clone();
void ShowError(const char* error); void ShowError(const char* error);
void ShowMessage(const char* message); void ShowMessage(const char* message);
void SetTotalItems(int32 items); void SetTotalItems(uint32 items);
void SetTotalItemsSize(int32 size); void SetTotalItemsSize(uint64 size);
void ReportProgress(int bytes, int messages, void ReportProgress(uint32 messages, uint64 bytes,
const char* message = NULL); const char* message = NULL);
void ResetProgress(const char* message = NULL); void ResetProgress(const char* message = NULL);
@@ -41,10 +41,11 @@ private:
BNotification fNotification; BNotification fNotification;
uint32& fShowMode; uint32& fShowMode;
int fTotalItems; uint32 fTotalItems;
int fItemsDone; uint32 fItemsDone;
int fTotalSize; uint64 fTotalSize;
int fSizeDone; uint64 fSizeDone;
}; };
#endif //NOTIFIER_H
#endif // DEFAULT_NOTIFIER_H
+2 -2
View File
@@ -18,7 +18,7 @@ Server mail_daemon :
LEDAnimation.cpp LEDAnimation.cpp
MailDaemon.cpp MailDaemon.cpp
main.cpp main.cpp
Notifier.cpp DefaultNotifier.cpp
: be libmail.so tracker localestub [ TargetLibstdc++ ] : be libmail.so tracker localestub [ TargetLibstdc++ ]
$(TARGET_NETWORK_LIBS) $(TARGET_NETWORK_LIBS)
; ;
@@ -28,5 +28,5 @@ DoCatalogs mail_daemon :
: :
DeskbarView.cpp DeskbarView.cpp
MailDaemon.cpp MailDaemon.cpp
Notifier.cpp DefaultNotifier.cpp
; ;