Solve #4336 as suggested by Fredrik Modèen, using shared private code as suggested by Ryan Leavengood. Removed ProcessRefs code path.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32844 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jonas Sundström
2009-08-31 02:44:19 +00:00
parent 9eb3adda45
commit 91147eefd0
3 changed files with 7 additions and 45 deletions
+1 -27
View File
@@ -11,7 +11,7 @@
#include "BackgroundsView.h"
#include <Application.h>
#include <TrackerAddOn.h>
#include <TrackerAddOnAppLaunch.h>
#include <Window.h>
@@ -28,8 +28,6 @@ class BackgroundsWindow : public BWindow {
public:
BackgroundsWindow(BRect frame, bool standalone = true);
void ProcessRefs(entry_ref dir, BMessage* refs);
protected:
virtual bool QuitRequested();
virtual void WorkspaceActivated(int32 oldWorkspaces, bool active);
@@ -92,32 +90,9 @@ BackgroundsWindow::WorkspaceActivated(int32 oldWorkspaces, bool active)
}
void
BackgroundsWindow::ProcessRefs(entry_ref dir, BMessage* refs)
{
fBackgroundsView->ProcessRefs(dir, refs);
}
// #pragma mark -
/*!
\brief Tracker add-on entry
*/
void
process_refs(entry_ref dir, BMessage* refs, void* /*reserved*/)
{
BackgroundsWindow* window = new BackgroundsWindow(BRect(100, 100, 570, 325), false);
window->ProcessRefs(dir, refs);
snooze(500);
window->Show();
status_t status;
wait_for_thread(window->Thread(), &status);
}
int
main(int argc, char** argv)
{
@@ -130,4 +105,3 @@ main(int argc, char** argv)
return 0;
}
@@ -990,6 +990,12 @@ BackgroundsView::UpdateButtons()
void
BackgroundsView::RefsReceived(BMessage *msg)
{
if (!msg->HasRef("refs") && msg->HasRef("dir_ref")) {
entry_ref dirRef;
if (msg->FindRef("dir_ref", &dirRef) == B_OK)
msg->AddRef("refs", &dirRef);
}
entry_ref ref;
int32 i = 0;
BMimeType imageType("image");
@@ -1095,23 +1101,6 @@ BackgroundsView::AddImage(BPath path)
}
void
BackgroundsView::ProcessRefs(entry_ref dir, BMessage* refs)
{
fWorkspaceMenu->FindItem(kMsgDefaultFolder)->SetMarked(true);
BMessenger messenger(this);
messenger.SendMessage(kMsgDefaultFolder);
if (refs->CountNames(B_REF_TYPE) > 0) {
messenger.SendMessage(refs);
} else {
BMessage message(B_REFS_RECEIVED);
message.AddRef("refs", &dir);
messenger.SendMessage(&message);
}
}
Image*
BackgroundsView::GetImage(int32 imageIndex)
{
@@ -90,7 +90,6 @@ class BackgroundsView : public BBox {
void WorkspaceActivated(uint32 oldWorkspaces, bool active);
int32 AddImage(BPath path);
Image* GetImage(int32 imageIndex);
void ProcessRefs(entry_ref dir_ref, BMessage* msg);
void GetPreferredSize(float* _width, float* _height);