r464: no message
authorKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 28 Jan 2001 21:57:09 +0000 (21:57 +0000)
committerKevin M. Rosenberg <kevin@rosenberg.net>
Sun, 28 Jan 2001 21:57:09 +0000 (21:57 +0000)
msvc/ctsim/ctsim.plg
src/ctsim.cpp
src/views.cpp

index c717696644a61be838d9439fc06ee900aee511d8..833213afc039deaa790be9c32321554d84fd8b27 100644 (file)
 <pre>
 <h1>Build Log</h1>
 <h3>
---------------------Configuration: libctsim - Win32 Debug--------------------
-</h3>
-<h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1490.tmp" with contents
-[
-/nologo /G6 /MTd /W3 /Gm /GR /GX /Zi /Od /I "..\..\..\zlib" /I "..\..\INCLUDE" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /I "..\..\..\wx2\include" /D "_DEBUG" /D "HAVE_WXWIN" /D "HAVE_STRING_H" /D "HAVE_GETOPT_H" /D "WIN32" /D "_MBCS" /D "_LIB" /D "MSVC" /D "HAVE_FFTW" /D "HAVE_PNG" /D "HAVE_SGP" /D "HAVE_WXWINDOWS" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /FR"Debug/" /Fp"Debug/libctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
-"D:\ctsim\libctsim\backprojectors.cpp"
-"D:\ctsim\libctgraphics\dlgezplot.cpp"
-"D:\ctsim\libctsim\filter.cpp"
-"D:\ctsim\libctsim\fourier.cpp"
-"D:\ctsim\libctsim\globalvars.cpp"
-"D:\ctsim\libctsupport\hashtable.cpp"
-"D:\ctsim\libctsim\imagefile.cpp"
-"D:\ctsim\libctsim\phantom.cpp"
-"D:\ctsim\libctsupport\plotfile.cpp"
-"D:\ctsim\libctgraphics\pol.cpp"
-"D:\ctsim\libctsim\procsignal.cpp"
-"D:\ctsim\libctsim\projections.cpp"
-"D:\ctsim\libctsim\reconstruct.cpp"
-"D:\ctsim\libctsim\scanner.cpp"
-"D:\ctsim\libctsupport\syserror.cpp"
-"D:\ctsim\libctsim\trace.cpp"
-]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1490.tmp" 
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1491.tmp" with contents
-[
-/nologo /out:"Debug\libctsim.lib" 
-.\Debug\array2dfile.obj
-.\Debug\backprojectors.obj
-.\Debug\clip.obj
-.\Debug\consoleio.obj
-.\Debug\dlgezplot.obj
-.\Debug\ezplot.obj
-.\Debug\ezset.obj
-.\Debug\ezsupport.obj
-.\Debug\filter.obj
-.\Debug\fnetorderstream.obj
-.\Debug\fourier.obj
-.\Debug\getopt.obj
-.\Debug\getopt1.obj
-.\Debug\globalvars.obj
-.\Debug\hashtable.obj
-.\Debug\imagefile.obj
-.\Debug\mathfuncs.obj
-.\Debug\phantom.obj
-.\Debug\plotfile.obj
-.\Debug\pol.obj
-.\Debug\procsignal.obj
-.\Debug\projections.obj
-.\Debug\reconstruct.obj
-.\Debug\scanner.obj
-.\Debug\sgp.obj
-.\Debug\strfuncs.obj
-.\Debug\syserror.obj
-.\Debug\trace.obj
-.\Debug\transformmatrix.obj
-.\Debug\xform.obj
-]
-Creating command line "link.exe -lib @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1491.tmp"
-<h3>Output Window</h3>
-Compiling...
-backprojectors.cpp
-dlgezplot.cpp
-filter.cpp
-fourier.cpp
-globalvars.cpp
-hashtable.cpp
-imagefile.cpp
-phantom.cpp
-plotfile.cpp
-pol.cpp
-procsignal.cpp
-projections.cpp
-reconstruct.cpp
-scanner.cpp
-syserror.cpp
-trace.cpp
-Creating library...
-<h3>
 --------------------Configuration: ctsim - Win32 Debug--------------------
 </h3>
 <h3>Command Lines</h3>
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1492.tmp" with contents
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5BC.tmp" with contents
 [
 /nologo /G6 /MTd /W3 /Gm /GR /GX /Zi /Od /I "\wx2\include" /I "." /I "..\..\include" /I "..\..\getopt" /I "..\..\..\lpng108" /I "..\..\..\zlib" /I "..\..\..\fftw-2.1.3\fftw" /I "..\..\..\fftw-2.1.3\rfftw" /D VERSION=\"2.5.0\" /D "_DEBUG" /D "__WXMSW__" /D "HAVE_SGP" /D "HAVE_PNG" /D "HAVE_WXWINDOWS" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "HAVE_STRING_H" /D "HAVE_FFTW" /D "HAVE_RFFTW" /D "HAVE_GETOPT_H" /D "MSVC" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D CTSIMVERSION=\"3.0.0alpha5\" /FR"Debug/" /Fp"Debug/ctsim.pch" /YX /Fo"Debug/" /Fd"Debug/" /FD /GZ /c 
-"D:\ctsim\src\ctsim.cpp"
-"D:\ctsim\src\dialogs.cpp"
-"D:\ctsim\src\dlgprojections.cpp"
-"D:\ctsim\src\dlgreconstruct.cpp"
-"D:\ctsim\src\docs.cpp"
-"D:\ctsim\src\views.cpp"
+"C:\ctsim\src\views.cpp"
 ]
-Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1492.tmp" 
-Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1493.tmp" with contents
+Creating command line "cl.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5BC.tmp" 
+Creating temporary file "C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5BD.tmp" with contents
 [
 comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ../libctsim/Debug/libctsim.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ..\..\..\lpng108\msvc\win32\libpng\lib_dbg\libpng.lib ..\..\..\lpng108\msvc\win32\zlib\lib_dbg\zlib.lib libcmtd.lib ..\..\..\fftw-2.1.3\Win32\FFTW2st\Debug\FFTW2st.lib ..\..\..\fftw-2.1.3\Win32\RFFTW2st\Debug\RFFTW2st.lib ../../../wx2/lib/wxd.lib xpmd.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/ctsim.pdb" /debug /machine:I386 /out:"Debug/ctsim.exe" /pdbtype:sept /libpath:"..\..\..\lpng108\msvc\win32\libpng\lib" /libpath:"..\..\..\lpng108\msvc\win32\zlib\lib" /libpath:"..\..\..\wx2\lib" 
 .\Debug\ctsim.obj
@@ -112,15 +28,10 @@ comctl32.lib winmm.lib rpcrt4.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib w
 \wx2\lib\wxd.lib
 \wx2\lib\xpmd.lib
 ]
-Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP1493.tmp"
+Creating command line "link.exe @C:\DOCUME~1\kevin\LOCALS~1\Temp\RSP5BD.tmp"
 <h3>Output Window</h3>
 Compiling...
 views.cpp
-ctsim.cpp
-dialogs.cpp
-dlgprojections.cpp
-dlgreconstruct.cpp
-docs.cpp
 Linking...
 
 
index fe9586754b741a0fcaaf3da6e77db9b817f28b13..f18a0eebb0403a9f6bdb0ebab13e20635fab268a 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ctsim.cpp,v 1.54 2001/01/28 19:10:18 kevin Exp $
+**  $Id: ctsim.cpp,v 1.55 2001/01/28 21:57:09 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
@@ -70,7 +70,7 @@
 #endif
 #endif
 
-static const char* rcsindent = "$Id: ctsim.cpp,v 1.54 2001/01/28 19:10:18 kevin Exp $";
+static const char* rcsindent = "$Id: ctsim.cpp,v 1.55 2001/01/28 21:57:09 kevin Exp $";
 
 struct option CTSimApp::ctsimOptions[] = 
 {
@@ -101,10 +101,10 @@ CTSimApp::OnInit()
 #ifdef HAVE_SETPRIORITY
   setpriority (PRIO_PROCESS, 0, 15);  // set to low scheduling priority
 #endif
-
+  
   m_pConfig = new wxConfig("ctsim");
   wxConfigBase::Set(m_pConfig);
-
+  
   g_bRunningWXWindows = true;
   // process options
   while (1) {
@@ -157,7 +157,7 @@ CTSimApp::OnInit()
   m_pFrame->Centre(wxBOTH);
   m_pFrame->Show(true);  
   SetTopWindow (m_pFrame);
-
+  
   for (int i = optind + 1; i <= argc; i++) {
     wxString filename = argv [i - 1];
     m_docManager->CreateDocument (filename, wxDOC_SILENT);
@@ -165,7 +165,7 @@ CTSimApp::OnInit()
   
   if (m_pConfig)
     m_docManager->FileHistoryLoad(*m_pConfig);
-
+  
 #ifdef CTSIM_MDI
   TextFileDocument* pLogDoc = newTextDoc();
   if (pLogDoc) {
@@ -177,20 +177,20 @@ CTSimApp::OnInit()
     m_pFrame->GetClientSize(&xSize, &ySize);
     int yLogSize = ySize / 3;
     pLogDoc->getView()->getFrame()->SetSize (0, ySize - yLogSize, xSize, yLogSize);
-       pLogDoc->getView()->getFrame()->Show (true);
+    pLogDoc->getView()->getFrame()->Show (true);
   } else
 #else
     m_pLog = new wxTextCtrl (m_pFrame, -1, "Log Window\n", wxPoint(0, 0), wxSize(0,0), wxTE_MULTILINE | wxTE_READONLY);
 #endif
   wxLog::SetActiveTarget (new wxLogTextCtrl(m_pLog));
-
+  
 #ifdef CTSIM_WINHELP
   if (! m_pFrame->getWinHelpController().Initialize("ctsim"))
     *m_pLog << "Cannot initialize the Windows Help system" << "\n";
 #endif
   if (! m_pFrame->getHtmlHelpController().Initialize(::wxGetCwd() + "/ctsim"))
     *m_pLog << "Cannot initialize the HTML Help system" << "\n";
-
+  
   return true;
 }
 
@@ -306,12 +306,12 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
   //  history of files visited
   theApp->getDocManager()->FileHistoryAddFilesToMenu(file_menu);
   theApp->getDocManager()->FileHistoryUseMenu(file_menu);
-
+  
 #ifndef CTSIM_MDI
   m_pWindowMenu = new wxMenu;
   m_pWindowMenu->UpdateUI (this);
 #endif
-
+  
   wxMenu* help_menu = new wxMenu;
   help_menu->Append(MAINMENU_HELP_CONTENTS, "&Contents\tF1");
   help_menu->Append(MAINMENU_HELP_TOPICS, "&Topics\tCtrl-T");
@@ -338,7 +338,7 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
     m_pWindowMenu->Enable (MAINMENU_WINDOW_BASE+i, false);
   }
 #endif
-
+  
   m_iDefaultPhantomID = Phantom::PHM_HERMAN;
   m_iDefaultFilterID = SignalFilter::FILTER_BANDLIMIT;
   m_iDefaultFilterDomainID = SignalFilter::DOMAIN_FREQUENCY;
@@ -362,16 +362,16 @@ MainFrame::MainFrame(wxDocManager *manager, wxFrame *frame, wxWindowID id, const
 #else
   wxAcceleratorTable accelTable (4, accelEntries);
 #endif
-
+  
   SetAcceleratorTable (accelTable);
 }
 
 MainFrame::~MainFrame()
 {
-    if (theApp->getConfig())
-      theApp->getDocManager()->FileHistorySave (*theApp->getConfig());
-    delete theApp->getDocManager();
-
+  if (theApp->getConfig())
+    theApp->getDocManager()->FileHistorySave (*theApp->getConfig());
+  delete theApp->getDocManager();
+  
 }
 
 void
@@ -394,9 +394,9 @@ MainFrame::OnSize (wxSizeEvent& event)
   }
   sizeClient.x -= sizeLog.x;
   sizeClient.y -= sizeLog.y;
-//  m_pLog->SetSize (0, sizeClient.y, sizeLog.x, sizeLog.y);
-//  GetClientWindow()->SetSize (0, 0, sizeClient.x, sizeClient.y);
-//  GetClientWindow()->Refresh();
+  //  m_pLog->SetSize (0, sizeClient.y, sizeLog.x, sizeLog.y);
+  //  GetClientWindow()->SetSize (0, 0, sizeClient.x, sizeClient.y);
+  //  GetClientWindow()->Refresh();
 #if CTSIM_MDI
   wxDocMDIParentFrame::OnSize (event);
 #else
@@ -455,8 +455,8 @@ MainFrame::OnCreateFilter (wxCommandEvent& WXUNUSED(event))
       pFilterDoc->Modify (true);
     pFilterDoc->UpdateAllViews();
     pFilterDoc->GetFirstView()->OnUpdate (NULL, NULL);
-       pFilterDoc->getView()->getFrame()->SetClientSize(m_iDefaultFilterXSize, m_iDefaultFilterYSize);
-       pFilterDoc->getView()->getFrame()->Show(true);
+    pFilterDoc->getView()->getFrame()->SetClientSize(m_iDefaultFilterXSize, m_iDefaultFilterYSize);
+    pFilterDoc->getView()->getFrame()->Show(true);
   }
 }
 
@@ -494,7 +494,7 @@ MainFrame::OnHelpContents (wxCommandEvent& event)
 void
 MainFrame::OnHelpSecondary (wxCommandEvent& event)
 {
-    m_htmlHelp.DisplayContents();
+  m_htmlHelp.DisplayContents();
 }
 #endif
 
@@ -508,7 +508,7 @@ MainFrame::showHelp (int commandID)
 #endif
   
   switch (commandID) {
-
+    
   case MAINMENU_HELP_CONTENTS:
 #ifdef CTSIM_WINHELP
     m_winHelp.DisplayContents ();
@@ -516,7 +516,7 @@ MainFrame::showHelp (int commandID)
     m_htmlHelp.DisplayContents ();
 #endif
     break;
-
+    
   case MAINMENU_HELP_TOPICS:
 #ifdef CTSIM_WINHELP
     m_winHelp.DisplaySection (introduction);
@@ -524,7 +524,7 @@ MainFrame::showHelp (int commandID)
     m_htmlHelp.DisplayIndex();
 #endif
     break;
-
+    
   default:
     *theApp->getLog() << "Unknown help command # " << commandID << "\n";
     break;
@@ -568,9 +568,9 @@ MainFrame::OnUpdateUI (wxUpdateUIEvent& rEvent)
 void 
 MainFrame::OnMRUFile (wxCommandEvent& event)
 {
-   wxString fileName (theApp->getDocManager()->GetHistoryFile(event.GetId() - wxID_FILE1));
-   if (fileName != "")
-     theApp->getDocManager()->CreateDocument(fileName, wxDOC_SILENT);
+  wxString fileName (theApp->getDocManager()->GetHistoryFile(event.GetId() - wxID_FILE1));
+  if (fileName != "")
+    theApp->getDocManager()->CreateDocument(fileName, wxDOC_SILENT);
 }
 #endif
 
@@ -784,7 +784,7 @@ CTSimApp::newProjectionDoc()
     }
     newDoc->OnNewDocument();
   }
-
+  
   return newDoc;
 }
 
@@ -803,7 +803,7 @@ CTSimApp::newImageDoc()
     }
     newDoc->OnNewDocument();
   }
-
+  
   return newDoc;
 }
 
@@ -816,14 +816,14 @@ CTSimApp::newPlotDoc()
     if (pView) {
       wxFrame* pFrame = pView->getFrame();
       if (pFrame) {
-           wxSize size;
-               m_pFrame->GetClientSize (&size.x, &size.y);
+        wxSize size;
+        m_pFrame->GetClientSize (&size.x, &size.y);
         pFrame->SetSize (size.x / 2, size.y / 2);
-         }
+      }
     }
     newDoc->OnNewDocument();
   }
-
+  
   return newDoc;
 }
 
@@ -833,22 +833,22 @@ CTSimApp::newTextDoc()
 {
   wxString strFilename (getUntitledFilename());
   strFilename += ".txt";
-
+  
   TextFileDocument* newDoc = dynamic_cast<TextFileDocument*>(m_pDocTemplText->CreateDocument (""));
   if (newDoc) {
     TextFileView* pView = newDoc->getView();
     if (pView) {
       wxFrame* pFrame = pView->getFrame();
       if (pFrame) {
-           wxSize size;
-               m_pFrame->GetClientSize (&size.x, &size.y);;
+        wxSize size;
+        m_pFrame->GetClientSize (&size.x, &size.y);;
         pFrame->SetSize (size.x / 2, size.y / 2);
-               pFrame->Show (false);
-         }
+        pFrame->Show (false);
+      }
     }
     newDoc->OnNewDocument();
   }
-
+  
   return newDoc;
 }
 
@@ -866,6 +866,6 @@ CTSimApp::newPhantomDoc()
     }
     newDoc->OnNewDocument();
   }
-
+  
   return newDoc;
 }
index 3a6db53239f66d2a41e71578d6fca667eae89b4e..12eaf54ba97c87ce6f7169847d6311648b4dfabd 100644 (file)
@@ -9,7 +9,7 @@
 **  This is part of the CTSim program
 **  Copyright (c) 1983-2001 Kevin Rosenberg
 **
-**  $Id: views.cpp,v 1.85 2001/01/28 20:05:17 kevin Exp $
+**  $Id: views.cpp,v 1.86 2001/01/28 21:57:09 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
@@ -912,7 +912,7 @@ bool
 ImageFileView::OnCreate (wxDocument *doc, long WXUNUSED(flags) )
 {
   m_pFrame = CreateChildFrame(doc, this);
-     (m_pFrame);
+  (m_pFrame);
   
   m_bMinSpecified = false;
   m_bMaxSpecified = false;
@@ -1000,7 +1000,7 @@ ImageFileView::OnClose (bool deleteWindow)
     return false;
   
   if (m_pCanvas) {
-       m_pCanvas->Show(false);
+    m_pCanvas->Show(false);
     m_pCanvas->setView(NULL);
     m_pCanvas = NULL;
   }
@@ -1010,10 +1010,9 @@ ImageFileView::OnClose (bool deleteWindow)
   
   SetFrame(NULL);
   Activate(false);
-
+  
   if (deleteWindow) {
     m_pFrame->Show(false);
-       ::wxYield();
     m_pFrame->Destroy();
     m_pFrame = NULL;
   }
@@ -1822,7 +1821,13 @@ PhantomFileView::OnProjections (wxCommandEvent& event)
         for (int iView = 0; iView < rProj.nView(); iView++) {
           ::wxYield();
           if (dialogProjections.isCancelled() || ! dialogProjections.projectView (iView)) {
-            pProjectionDoc->getView()->getFrame()->Close(true);
+            pProjectionDoc->getView()->getFrame()->Show(true);
+            GetDocumentManager()->ActivateView (pProjectionDoc->getView(), true, false);
+            pProjectionDoc->getView()->getFrame()->SetFocus();
+            wxCommandEvent event;
+            GetDocumentManager()->OnFileClose (event);
+            GetDocumentManager()->ActivateView (this, true, false);
+            getFrame()->SetFocus();
             return;
           }
           ::wxYield();
@@ -1836,8 +1841,13 @@ PhantomFileView::OnProjections (wxCommandEvent& event)
         for (int i = 0; i < rProj.nView(); i++) {
           theScanner.collectProjections (rProj, rPhantom, i, 1, true, m_iDefaultTrace);
           if (! dlgProgress.Update (i+1)) {
-            pProjectionDoc->getView()->OnClose(true);
-                       delete pProjectionDoc;
+            pProjectionDoc->getView()->getFrame()->Show(true);
+            GetDocumentManager()->ActivateView (pProjectionDoc->getView(), true, false);
+            pProjectionDoc->getView()->getFrame()->SetFocus();
+            wxCommandEvent event;
+            GetDocumentManager()->OnFileClose (event);
+            GetDocumentManager()->ActivateView (this, true, false);
+            getFrame()->SetFocus();
             return;
           }
         }
@@ -1853,7 +1863,7 @@ PhantomFileView::OnProjections (wxCommandEvent& event)
       ProjectionFileView* projView = pProjectionDoc->getView();
       if (projView) {
         projView->OnUpdate (projView, NULL);
-               if (projView->getCanvas())
+        if (projView->getCanvas())
              projView->getCanvas()->SetClientSize (m_iDefaultNDet, m_iDefaultNView);
         if (wxFrame* pFrame = projView->getFrame()) {
           pFrame->Show(true);
@@ -1897,9 +1907,12 @@ PhantomFileView::OnRasterize (wxCommandEvent& event)
       for (unsigned int i = 0; i < imageFile.nx(); i++) {
         rPhantom.convertToImagefile (imageFile, m_iDefaultRasterNSamples, Trace::TRACE_NONE, i, 1, true);
         if (! dlgProgress.Update (i+1)) {
-          pRasterDoc->Close();
-          pRasterDoc->getView()->OnClose(true);
-                 delete pRasterDoc;
+          GetDocumentManager()->ActivateView (pRasterDoc->getView(), true, true);
+          pRasterDoc->getView()->getFrame()->SetFocus();
+          wxCommandEvent event;
+          GetDocumentManager()->OnFileClose (event);
+          GetDocumentManager()->ActivateView (this, true, false);
+          getFrame()->SetFocus();
           return;
         }
       }
@@ -2045,7 +2058,7 @@ PhantomFileView::OnClose (bool deleteWindow)
     return false;
   
   if (m_pCanvas) {
-       m_pCanvas->Show(false);
+    m_pCanvas->Show(false);
     m_pCanvas->setView(NULL);
     m_pCanvas = NULL;
   }
@@ -2057,9 +2070,8 @@ PhantomFileView::OnClose (bool deleteWindow)
   Activate(false);
   
   if (deleteWindow) {
-   m_pFrame->Show(false);
-       ::wxYield();
-     m_pFrame->Destroy();
+    m_pFrame->Show(false);
+    m_pFrame->Destroy();
     m_pFrame = NULL;
   }
   
@@ -2132,7 +2144,7 @@ ProjectionFileView::ProjectionFileView()
   m_iDefaultNX = 256;
   m_iDefaultNY = 256;
 #endif
-
+  
   m_iDefaultFilter = SignalFilter::FILTER_ABS_BANDLIMIT;
   m_dDefaultFilterParam = 1.;
 #if HAVE_FFTW
@@ -2308,8 +2320,12 @@ ProjectionFileView::OnReconstructFBP (wxCommandEvent& event)
           pReconstruct->reconstructView (i, 1);
           if (! dlgProgress.Update (i + 1)) {
             delete pReconstruct;
-            pReconDoc->getView()->OnClose(true);
-                       delete pReconDoc;
+            GetDocumentManager()->ActivateView (pReconDoc->getView(), true, true);
+            pReconDoc->getView()->getFrame()->SetFocus();
+            wxCommandEvent event;
+            GetDocumentManager()->OnFileClose (event);
+            GetDocumentManager()->ActivateView (this, true, false);
+            getFrame()->SetFocus();
             return;
           }
         }
@@ -2521,7 +2537,7 @@ ProjectionFileView::OnClose (bool deleteWindow)
     return false;
   
   if (m_pCanvas) {
-       m_pCanvas->Show(false);
+       m_pCanvas->Show(false);
     m_pCanvas->setView(NULL);
     m_pCanvas = NULL;
   }
@@ -2534,7 +2550,6 @@ ProjectionFileView::OnClose (bool deleteWindow)
   
   if (deleteWindow) {
     m_pFrame->Show(false);
-       ::wxYield();
     m_pFrame->Destroy();
     m_pFrame = NULL;
   }
@@ -2850,7 +2865,7 @@ PlotFileView::OnClose (bool deleteWindow)
     return false;
   
   if (m_pCanvas) {
-       m_pCanvas->Show(false);
+    m_pCanvas->Show(false);
     m_pCanvas->setView (NULL);
     m_pCanvas = NULL;
   }
@@ -2861,11 +2876,10 @@ PlotFileView::OnClose (bool deleteWindow)
   Activate(false);
   
   m_pFrame->SetView(NULL);
-   SetFrame(NULL);
+  SetFrame(NULL);
   if (deleteWindow) {
     m_pFrame->Show(false);
-       ::wxYield();
-     m_pFrame->Destroy();
+    m_pFrame->Destroy();
     m_pFrame = NULL;
   }
   return true;
@@ -2919,21 +2933,20 @@ void TextFileView::OnUpdate (wxView *WXUNUSED(sender), wxObject *WXUNUSED(hint)
 bool 
 TextFileView::OnClose (bool deleteWindow)
 {
- // if (m_pFrame && m_pFrame->GetTitle() == "Log")
-    return false;
 // if (m_pFrame && m_pFrame->GetTitle() == "Log")
+  return false;
   
   if (! GetDocument() || ! GetDocument()->Close())
     return false;
   
   m_pCanvas->Show(false);
   Activate(false);
-
+  
   SetFrame(NULL);
   m_pFrame->SetView(NULL);
   if (deleteWindow) {
     m_pFrame->Show(false);
-       ::wxYield();
-     m_pFrame->Destroy();
+    m_pFrame->Destroy();
     m_pFrame = NULL;
     
   }