HaikuDepot: Extracted MessagePackageListener...
... from PackageInfoView into its own files.
This commit is contained in:
parent
7d0ce97b27
commit
73a3f44915
@ -39,11 +39,13 @@ Application HaikuDepot :
|
||||
BitmapButton.cpp
|
||||
BitmapView.cpp
|
||||
DecisionProvider.cpp
|
||||
FeaturedPackageView.cpp
|
||||
FilterView.cpp
|
||||
JobStateListener.cpp
|
||||
LinkView.cpp
|
||||
main.cpp
|
||||
MainWindow.cpp
|
||||
MessagePackageListener.cpp
|
||||
Model.cpp
|
||||
PackageAction.cpp
|
||||
PackageActionHandler.cpp
|
||||
|
64
src/apps/haikudepot/ui/MessagePackageListener.cpp
Normal file
64
src/apps/haikudepot/ui/MessagePackageListener.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright 2013-214, Stephan Aßmus <superstippi@gmx.de>.
|
||||
* All rights reserved. Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
|
||||
#include "MessagePackageListener.h"
|
||||
|
||||
#include <Messenger.h>
|
||||
#include <View.h>
|
||||
|
||||
#include "PackageInfo.h"
|
||||
|
||||
|
||||
MessagePackageListener::MessagePackageListener(BView* view)
|
||||
:
|
||||
fView(view)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
MessagePackageListener::~MessagePackageListener()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
MessagePackageListener::PackageChanged(const PackageInfoEvent& event)
|
||||
{
|
||||
BMessenger messenger(fView);
|
||||
if (!messenger.IsValid())
|
||||
return;
|
||||
|
||||
BMessage message(MSG_UPDATE_PACKAGE);
|
||||
message.AddString("title", event.Package()->Title());
|
||||
message.AddUInt32("changes", event.Changes());
|
||||
|
||||
messenger.SendMessage(&message);
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
MessagePackageListener::SetPackage(const PackageInfoRef& package)
|
||||
{
|
||||
if (fPackage == package)
|
||||
return;
|
||||
|
||||
PackageInfoListenerRef listener(this);
|
||||
|
||||
if (fPackage.Get() != NULL)
|
||||
fPackage->RemoveListener(listener);
|
||||
|
||||
fPackage = package;
|
||||
|
||||
if (fPackage.Get() != NULL)
|
||||
fPackage->AddListener(listener);
|
||||
}
|
||||
|
||||
|
||||
const PackageInfoRef&
|
||||
MessagePackageListener::Package() const
|
||||
{
|
||||
return fPackage;
|
||||
}
|
35
src/apps/haikudepot/ui/MessagePackageListener.h
Normal file
35
src/apps/haikudepot/ui/MessagePackageListener.h
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* Copyright 2013-214, Stephan Aßmus <superstippi@gmx.de>.
|
||||
* All rights reserved. Distributed under the terms of the MIT License.
|
||||
*/
|
||||
#ifndef MESSAGE_PACKAGE_LISTENER_H
|
||||
#define MESSAGE_PACKAGE_LISTENER_H
|
||||
|
||||
|
||||
#include "PackageInfoListener.h"
|
||||
|
||||
|
||||
enum {
|
||||
MSG_UPDATE_PACKAGE = 'updp'
|
||||
};
|
||||
|
||||
class BView;
|
||||
|
||||
|
||||
class MessagePackageListener : public PackageInfoListener {
|
||||
public:
|
||||
MessagePackageListener(BView* view);
|
||||
virtual ~MessagePackageListener();
|
||||
|
||||
virtual void PackageChanged(const PackageInfoEvent& event);
|
||||
|
||||
void SetPackage(const PackageInfoRef& package);
|
||||
const PackageInfoRef& Package() const;
|
||||
|
||||
private:
|
||||
BView* fView;
|
||||
PackageInfoRef fPackage;
|
||||
};
|
||||
|
||||
|
||||
#endif // MESSAGE_PACKAGE_LISTENER_H
|
@ -31,6 +31,7 @@
|
||||
#include "BitmapView.h"
|
||||
#include "LinkView.h"
|
||||
#include "MarkupParser.h"
|
||||
#include "MessagePackageListener.h"
|
||||
#include "PackageActionHandler.h"
|
||||
#include "PackageManager.h"
|
||||
#include "RatingView.h"
|
||||
@ -1318,68 +1319,6 @@ private:
|
||||
};
|
||||
|
||||
|
||||
// #pragma mark - PackageInfoViewListener
|
||||
|
||||
|
||||
enum {
|
||||
MSG_UPDATE_PACKAGE = 'updp'
|
||||
};
|
||||
|
||||
|
||||
class PackageInfoView::Listener : public PackageInfoListener {
|
||||
public:
|
||||
Listener(PackageInfoView* view)
|
||||
:
|
||||
fView(view)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~Listener()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void PackageChanged(const PackageInfoEvent& event)
|
||||
{
|
||||
BMessenger messenger(fView);
|
||||
if (!messenger.IsValid())
|
||||
return;
|
||||
|
||||
const PackageInfo& package = *event.Package().Get();
|
||||
|
||||
BMessage message(MSG_UPDATE_PACKAGE);
|
||||
message.AddString("title", package.Title());
|
||||
message.AddUInt32("changes", event.Changes());
|
||||
|
||||
messenger.SendMessage(&message);
|
||||
}
|
||||
|
||||
void SetPackage(const PackageInfoRef& package)
|
||||
{
|
||||
if (fPackage == package)
|
||||
return;
|
||||
|
||||
PackageInfoListenerRef listener(this);
|
||||
|
||||
if (fPackage.Get() != NULL)
|
||||
fPackage->RemoveListener(listener);
|
||||
|
||||
fPackage = package;
|
||||
|
||||
if (fPackage.Get() != NULL)
|
||||
fPackage->AddListener(listener);
|
||||
}
|
||||
|
||||
const PackageInfoRef& Package() const
|
||||
{
|
||||
return fPackage;
|
||||
}
|
||||
|
||||
private:
|
||||
PackageInfoView* fView;
|
||||
PackageInfoRef fPackage;
|
||||
};
|
||||
|
||||
|
||||
// #pragma mark - PackageInfoView
|
||||
|
||||
|
||||
@ -1388,7 +1327,7 @@ PackageInfoView::PackageInfoView(BLocker* modelLock,
|
||||
:
|
||||
BView("package info view", 0),
|
||||
fModelLock(modelLock),
|
||||
fPackageListener(new(std::nothrow) Listener(this))
|
||||
fPackageListener(new(std::nothrow) MessagePackageListener(this))
|
||||
{
|
||||
fCardLayout = new BCardLayout();
|
||||
SetLayout(fCardLayout);
|
||||
|
@ -13,6 +13,7 @@
|
||||
|
||||
class BCardLayout;
|
||||
class BLocker;
|
||||
class MessagePackageListener;
|
||||
class TitleView;
|
||||
class PackageActionHandler;
|
||||
class PackageActionView;
|
||||
@ -39,9 +40,6 @@ public:
|
||||
{ return fPackage; }
|
||||
void Clear();
|
||||
|
||||
private:
|
||||
class Listener;
|
||||
|
||||
private:
|
||||
BLocker* fModelLock;
|
||||
|
||||
@ -51,7 +49,7 @@ private:
|
||||
PagesView* fPagesView;
|
||||
|
||||
PackageInfoRef fPackage;
|
||||
Listener* fPackageListener;
|
||||
MessagePackageListener* fPackageListener;
|
||||
};
|
||||
|
||||
#endif // PACKAGE_INFO_VIEW_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user