/// <summary> /// Handles the Click event of OkButton object. /// </summary> private void okButton_Click(object sender, EventArgs e) { // update undo manager level _undoManager.UndoLevel = (int)undoLevelNumericUpDown.Value; // if compressed data storage in memory must be used if (compressedVintasoftImageInMemoryRadioButton.Checked) { if (!(_dataStorage is CompressedImageStorageInMemory)) { _dataStorage = new CompressedImageStorageInMemory(); } } // if compressed data storage on disk must be used else if (compressedVintasoftImageOnDiskRadioButton.Checked) { CompressedImageStorageOnDisk prevDataStorage = _dataStorage as CompressedImageStorageOnDisk; // if data storage is changed if (prevDataStorage == null || !prevDataStorage.StoragePath.Equals(storagePathTextBox.Text, StringComparison.InvariantCultureIgnoreCase)) { _dataStorage = new CompressedImageStorageOnDisk(storagePathTextBox.Text); } } else { _dataStorage = null; } }
/// <summary> /// Initializes a new instance of the <see cref="UndoManagerSettingsForm"/> class. /// </summary> /// <param name="undoManager">The undo manager.</param> /// <param name="dataStorage">The data storage, where data are stored.</param> public UndoManagerSettingsForm( UndoManager undoManager, IDataStorage dataStorage) { InitializeComponent(); _undoManager = undoManager; _dataStorage = dataStorage; undoLevelNumericUpDown.Value = _undoManager.UndoLevel; storageGroupBox.Enabled = false; Type type = this.GetType(); string storagePath = Path.GetDirectoryName(type.Assembly.Location); storagePath = Path.Combine(storagePath, "Undo"); if (!Directory.Exists(storagePath)) { Directory.CreateDirectory(storagePath); } if (dataStorage is CompressedImageStorageInMemory) { compressedVintasoftImageInMemoryRadioButton.Checked = true; } else if (dataStorage is CompressedImageStorageOnDisk) { storageGroupBox.Enabled = true; compressedVintasoftImageOnDiskRadioButton.Checked = true; CompressedImageStorageOnDisk dataStorageOnDisk = (CompressedImageStorageOnDisk)dataStorage; storagePath = dataStorageOnDisk.StoragePath; } else { vintasoftImageInMemoryRadioButton.Checked = true; } storagePathTextBox.Text = storagePath; }