X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=src%2Fdocs.cpp;h=88e6ba59222e8f2f8c5dda1b7e6649bf73ace788;hp=daef2f4dfc897f89e26047e6457a846083b4a0f3;hb=cbcb02ba9b76a82c9a09ce1c7712431bb215575a;hpb=9646a9addabd213c5a810dad21ea8ca810698420 diff --git a/src/docs.cpp b/src/docs.cpp index daef2f4..88e6ba5 100644 --- a/src/docs.cpp +++ b/src/docs.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: docs.cpp,v 1.16 2001/01/28 19:10:18 kevin Exp $ +** $Id: docs.cpp,v 1.17 2001/01/30 02:20:50 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -68,17 +68,21 @@ bool ImageFileDocument::OnSaveDocument(const wxString& filename) bool ImageFileDocument::OnOpenDocument(const wxString& filename) { + if (! OnSaveModified()) + return false; + if (! m_imageFile.fileRead (filename.c_str())) { *theApp->getLog() << "Unable to read image file " << filename << "\n"; + m_bBadFileOpen = true; return false; } *theApp->getLog() << "Read image file " << filename << "\n"; - SetFilename(filename, true); - + SetFilename(filename, true); Modify(false); UpdateAllViews(); GetFirstView()->OnUpdate (GetFirstView(), NULL); - + m_bBadFileOpen = false; + return true; } @@ -115,8 +119,12 @@ bool ProjectionFileDocument::OnSaveDocument(const wxString& filename) bool ProjectionFileDocument::OnOpenDocument(const wxString& filename) { + if (! OnSaveModified()) + return false; + if (! m_projectionFile.read (filename.c_str())) { *theApp->getLog() << "Unable to read projection file " << filename << "\n"; + m_bBadFileOpen = true; return false; } *theApp->getLog() << "Read projection file " << filename << "\n"; @@ -124,6 +132,7 @@ bool ProjectionFileDocument::OnOpenDocument(const wxString& filename) Modify(false); UpdateAllViews(); GetFirstView()->OnUpdate (GetFirstView(), NULL); + m_bBadFileOpen = false; return true; } @@ -151,6 +160,9 @@ IMPLEMENT_DYNAMIC_CLASS(PhantomFileDocument, wxDocument) bool PhantomFileDocument::OnOpenDocument(const wxString& filename) { + if (! OnSaveModified()) + return false; + wxString myFilename = filename; if (wxFile::Exists (myFilename)) { m_phantom.createFromFile (myFilename); @@ -163,12 +175,14 @@ bool PhantomFileDocument::OnOpenDocument(const wxString& filename) SetFilename (myFilename, true); if (m_phantom.fail()) { *theApp->getLog() << "Failure creating phantom " << myFilename << "\n"; + m_bBadFileOpen = true; return false; } m_idPhantom = m_phantom.id(); Modify(false); UpdateAllViews(); GetFirstView()->OnUpdate (GetFirstView(), NULL); + m_bBadFileOpen = false; return true; } @@ -219,8 +233,12 @@ bool PlotFileDocument::OnSaveDocument(const wxString& filename) bool PlotFileDocument::OnOpenDocument(const wxString& filename) { + if (! OnSaveModified()) + return false; + if (! m_plot.fileRead (filename.c_str())) { *theApp->getLog() << "Unable to read plot file " << filename << "\n"; + m_bBadFileOpen = true; return false; } *theApp->getLog() << "Read plot file " << filename << "\n"; @@ -229,6 +247,7 @@ bool PlotFileDocument::OnOpenDocument(const wxString& filename) Modify (false); UpdateAllViews(); GetFirstView()->OnUpdate (NULL, NULL); + m_bBadFileOpen = false; return true; } @@ -273,12 +292,15 @@ bool TextFileDocument::OnOpenDocument(const wxString& filename) { TextFileView *view = getView(); - if (! view->getTextCtrl()->LoadFile(filename)) + if (! view->getTextCtrl()->LoadFile(filename)) { + m_bBadFileOpen = true; return false; + } SetFilename (filename, true); Modify (false); UpdateAllViews(); + m_bBadFileOpen = false; return true; } @@ -300,3 +322,10 @@ TextFileDocument::getView() const { return dynamic_cast(GetFirstView()); } + +wxTextCtrl* +TextFileDocument::getTextCtrl() +{ + return dynamic_cast(GetFirstView())->getTextCtrl(); +} +