Ignore:
Timestamp:
Nov 28, 2008, 12:30:42 AM (13 years ago)
Author:
Thomas Schmid
Message:
  • fixed bug: closing streams input streams.
  • user is now forced to select target file name
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/FileOutput/FileOutput.cs

    r4 r81  
    278278      set
    279279      {
    280         if (settings.TargetFilename == null) Progress(0.5, 1.0);
    281         if (value != null)
     280        Progress(0.5, 1.0);
     281        if (settings.TargetFilename == null || settings.TargetFilename == string.Empty)
    282282        {
     283          GuiLogMessage("You have to select a target filename before using this plugin as output.", NotificationLevel.Error);
     284        }
     285        else if (value != null)
     286        {         
     287          listCryptoolStreamsOut.Add(value);
    283288          GuiLogMessage("Received ICryptoolStream: " + value.FileName, NotificationLevel.Debug);
    284289          streamInput = value;
    285290          InputFile = value.FileName;
    286           OnPropertyChanged("StreamInput");         
     291          OnPropertyChanged("StreamInput");
    287292
    288293          // If target file was selected we have to copy the input to target.
     
    290295          if (settings.TargetFilename != null)
    291296          {
     297            listCryptoolStreamsOut.Add(value);
     298            InputFile = settings.TargetFilename;
    292299            try
    293300            {
     
    301308              byte[] byteValues = new byte[1024];
    302309              int byteRead;
    303              
     310
    304311              int position = 0;
    305312              GuiLogMessage("Start writing to target file now: " + settings.TargetFilename, NotificationLevel.Debug);
    306313              while ((byteRead = value.Read(byteValues, 0, byteValues.Length)) != 0)
    307               {                                                 
     314              {
    308315                fs.Write(byteValues, 0, byteRead);
    309316                if (OnPluginProgressChanged != null && value.Length > 0 &&
     
    315322              }
    316323              fs.Flush();
    317               fs.Close();             
    318              
     324              fs.Close();
     325
    319326              GuiLogMessage("Finished writing: " + settings.TargetFilename, NotificationLevel.Debug);
    320327            }
     
    332339            fileOutputPresentation.OpenPresentationFile();
    333340          }, null);
    334          
     341          Progress(1.0, 1.0);
    335342        }
    336343        else
    337344        {
    338345          GuiLogMessage("Received null value for ICryptoolStream.", NotificationLevel.Warning);
    339         }
    340         Progress(1.0, 1.0);
     346        }       
    341347      }
    342348    }
     
    376382      listCryptoolStreamsOut.Clear();
    377383
    378       fileOutputPresentation.ClosePresentationFile();
    379       settings.SaveAndRestoreState = InputFile;
     384      DispatcherHelper.ExecuteMethod(fileOutputPresentation.Dispatcher,
     385        fileOutputPresentation, "OpenPresentationFile", null);
    380386    }
    381387
     
    394400    public void PostExecution()
    395401    {
    396       foreach (CryptoolStream cryptoolStream in listCryptoolStreamsOut)
    397       {
    398         cryptoolStream.Close();
    399       }
    400       listCryptoolStreamsOut.Clear();
    401 
    402       DispatcherHelper.ExecuteMethod(fileOutputPresentation.Dispatcher,
    403         fileOutputPresentation, "OpenPresentationFile", null);
     402      Dispose();
    404403    }
    405404
Note: See TracChangeset for help on using the changeset viewer.