Now passes FILE* to wxExprDatabase instead of ofstream to compy with recent
changes in wxExprDatabase. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2937 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -225,20 +225,20 @@ void wxDiagram::RecentreAll(wxDC& dc)
|
|||||||
bool wxDiagram::SaveFile(const wxString& filename)
|
bool wxDiagram::SaveFile(const wxString& filename)
|
||||||
{
|
{
|
||||||
wxBeginBusyCursor();
|
wxBeginBusyCursor();
|
||||||
|
|
||||||
wxExprDatabase *database = new wxExprDatabase;
|
wxExprDatabase *database = new wxExprDatabase;
|
||||||
|
|
||||||
// First write the diagram type
|
// First write the diagram type
|
||||||
wxExpr *header = new wxExpr("diagram");
|
wxExpr *header = new wxExpr("diagram");
|
||||||
OnHeaderSave(*database, *header);
|
OnHeaderSave(*database, *header);
|
||||||
|
|
||||||
database->Append(header);
|
database->Append(header);
|
||||||
|
|
||||||
wxNode *node = m_shapeList->First();
|
wxNode *node = m_shapeList->First();
|
||||||
while (node)
|
while (node)
|
||||||
{
|
{
|
||||||
wxShape *shape = (wxShape *)node->Data();
|
wxShape *shape = (wxShape *)node->Data();
|
||||||
|
|
||||||
if (!shape->IsKindOf(CLASSINFO(wxControlPoint)))
|
if (!shape->IsKindOf(CLASSINFO(wxControlPoint)))
|
||||||
{
|
{
|
||||||
wxExpr *expr = NULL;
|
wxExpr *expr = NULL;
|
||||||
@@ -252,19 +252,19 @@ bool wxDiagram::SaveFile(const wxString& filename)
|
|||||||
node = node->Next();
|
node = node->Next();
|
||||||
}
|
}
|
||||||
OnDatabaseSave(*database);
|
OnDatabaseSave(*database);
|
||||||
|
|
||||||
char tempFile[400];
|
char tempFile[400];
|
||||||
wxGetTempFileName("diag", tempFile);
|
wxGetTempFileName("diag", tempFile);
|
||||||
ofstream stream(tempFile);
|
FILE* file = fopen(tempFile, "w");
|
||||||
if (stream.bad())
|
if (! file)
|
||||||
{
|
{
|
||||||
wxEndBusyCursor();
|
wxEndBusyCursor();
|
||||||
delete database;
|
delete database;
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
database->Write(stream);
|
database->Write(file);
|
||||||
stream.close();
|
fclose(file);
|
||||||
delete database;
|
delete database;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -301,14 +301,14 @@ bool wxDiagram::SaveFile(const wxString& filename)
|
|||||||
bool wxDiagram::LoadFile(const wxString& filename)
|
bool wxDiagram::LoadFile(const wxString& filename)
|
||||||
{
|
{
|
||||||
wxBeginBusyCursor();
|
wxBeginBusyCursor();
|
||||||
|
|
||||||
wxExprDatabase database(wxExprInteger, "id");
|
wxExprDatabase database(wxExprInteger, "id");
|
||||||
if (!database.Read(filename))
|
if (!database.Read(filename))
|
||||||
{
|
{
|
||||||
wxEndBusyCursor();
|
wxEndBusyCursor();
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
DeleteAllShapes();
|
DeleteAllShapes();
|
||||||
|
|
||||||
database.BeginFind();
|
database.BeginFind();
|
||||||
@@ -331,7 +331,7 @@ bool wxDiagram::LoadFile(const wxString& filename)
|
|||||||
ReadNodes(database);
|
ReadNodes(database);
|
||||||
ReadContainerGeometry(database);
|
ReadContainerGeometry(database);
|
||||||
ReadLines(database);
|
ReadLines(database);
|
||||||
|
|
||||||
OnDatabaseLoad(database);
|
OnDatabaseLoad(database);
|
||||||
|
|
||||||
wxEndBusyCursor();
|
wxEndBusyCursor();
|
||||||
@@ -356,7 +356,7 @@ void wxDiagram::ReadNodes(wxExprDatabase& database)
|
|||||||
{
|
{
|
||||||
wxShape *shape = (wxShape *)classInfo->CreateObject();
|
wxShape *shape = (wxShape *)classInfo->CreateObject();
|
||||||
OnShapeLoad(database, *shape, *clause);
|
OnShapeLoad(database, *shape, *clause);
|
||||||
|
|
||||||
shape->SetCanvas(GetCanvas());
|
shape->SetCanvas(GetCanvas());
|
||||||
shape->Show(TRUE);
|
shape->Show(TRUE);
|
||||||
|
|
||||||
@@ -378,7 +378,7 @@ void wxDiagram::ReadNodes(wxExprDatabase& database)
|
|||||||
}
|
}
|
||||||
if (type)
|
if (type)
|
||||||
delete[] type;
|
delete[] type;
|
||||||
|
|
||||||
clause = database.FindClauseByFunctor("shape");
|
clause = database.FindClauseByFunctor("shape");
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user