* Inherit from SimpleFileSaver, which enables the logic in
the application to set the file panel save text to the previous ref name. * Wait for the export thread to finish writing the file before trying to set the icon attribute. Usually it never worked when saving a file for the first time, since the file did not yet exist. * Report errors to std::err. * Code style cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41178 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
1c4001e299
commit
e62d9c79e1
@ -1,34 +1,48 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2007, Haiku. All rights reserved.
|
* Copyright 2007, 2011, Stephan Aßmus <superstippi@gmx.de>.
|
||||||
* Distributed under the terms of the MIT License.
|
* All rights reserved. Distributed under the terms of the MIT License.
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Stephan Aßmus <superstippi@gmx.de>
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "NativeSaver.h"
|
#include "NativeSaver.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include "FlatIconFormat.h"
|
#include "FlatIconFormat.h"
|
||||||
#include "MessageExporter.h"
|
#include "MessageExporter.h"
|
||||||
|
|
||||||
// constructor
|
|
||||||
NativeSaver::NativeSaver(const entry_ref& ref)
|
NativeSaver::NativeSaver(const entry_ref& ref)
|
||||||
: fAttrSaver(ref, kVectorAttrNodeName),
|
:
|
||||||
fFileSaver(new MessageExporter(), ref)
|
SimpleFileSaver(new MessageExporter(), ref),
|
||||||
|
fAttrSaver(ref, kVectorAttrNodeName)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// destructor
|
|
||||||
NativeSaver::~NativeSaver()
|
NativeSaver::~NativeSaver()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save
|
|
||||||
status_t
|
status_t
|
||||||
NativeSaver::Save(Document* document)
|
NativeSaver::Save(Document* document)
|
||||||
{
|
{
|
||||||
status_t ret = fFileSaver.Save(document);
|
status_t ret = SimpleFileSaver::Save(document);
|
||||||
if (ret < B_OK)
|
if (ret != B_OK) {
|
||||||
|
fprintf(stderr, "Error saving icon: %s\n", strerror(ret));
|
||||||
return ret;
|
return ret;
|
||||||
return fAttrSaver.Save(document);
|
}
|
||||||
|
|
||||||
|
WaitForExportThread();
|
||||||
|
|
||||||
|
ret = fAttrSaver.Save(document);
|
||||||
|
if (ret != B_OK) {
|
||||||
|
fprintf(stderr, "Error saving icon attribute: %s\n", strerror(ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +1,16 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2007, Haiku. All rights reserved.
|
* Copyright 2007, 2011, Stephan Aßmus <superstippi@gmx.de>.
|
||||||
* Distributed under the terms of the MIT License.
|
* All rights reserved. Distributed under the terms of the MIT License.
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Stephan Aßmus <superstippi@gmx.de>
|
|
||||||
*/
|
*/
|
||||||
#ifndef NATIVE_SAVER_H
|
#ifndef NATIVE_SAVER_H
|
||||||
#define NATIVE_SAVER_H
|
#define NATIVE_SAVER_H
|
||||||
|
|
||||||
|
|
||||||
#include "AttributeSaver.h"
|
#include "AttributeSaver.h"
|
||||||
#include "SimpleFileSaver.h"
|
#include "SimpleFileSaver.h"
|
||||||
|
|
||||||
class NativeSaver : public DocumentSaver {
|
|
||||||
|
class NativeSaver : public SimpleFileSaver {
|
||||||
public:
|
public:
|
||||||
NativeSaver(const entry_ref& ref);
|
NativeSaver(const entry_ref& ref);
|
||||||
virtual ~NativeSaver();
|
virtual ~NativeSaver();
|
||||||
@ -20,7 +19,7 @@ class NativeSaver : public DocumentSaver {
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
AttributeSaver fAttrSaver;
|
AttributeSaver fAttrSaver;
|
||||||
SimpleFileSaver fFileSaver;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#endif // NATIVE_SAVER_H
|
#endif // NATIVE_SAVER_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user