Changed file dialog behavior & 'Cancel' now works when reading

This commit is contained in:
Roman Belkov 2015-02-27 21:42:56 +03:00
parent 59fce6d44e
commit ceb320f40a
4 changed files with 729 additions and 733 deletions

View file

@ -291,24 +291,21 @@ namespace DynamicDevices.DiskWriter
{
((ZipOutputStream)fs).CloseEntry();
((ZipOutputStream)fs).Close();
}
if (fs is TarOutputStream)
} else if (fs is TarOutputStream)
{
((TarOutputStream)fs).CloseEntry();
fs.Close();
}
if (fs is GZipOutputStream)
} else if (fs is GZipOutputStream)
{
fs.Close();
}
if (fs is XZOutputStream)
} else if (fs is XZOutputStream)
{
fs.Close();
}
}
errored = false;
if (removeAfter)
if (removeAfter && !IsCancelling)
_diskAccess.UnmountDrive();
readfail1:
@ -542,17 +539,14 @@ namespace DynamicDevices.DiskWriter
{
((ZipOutputStream)fs).CloseEntry();
((ZipOutputStream)fs).Close();
}
if (fs is TarOutputStream)
} else if (fs is TarOutputStream)
{
((TarOutputStream) fs).CloseEntry();
fs.Close();
}
if (fs is GZipOutputStream)
} else if (fs is GZipOutputStream)
{
fs.Close();
}
if (fs is XZOutputStream)
} else if (fs is XZOutputStream)
{
fs.Close();
}

View file

@ -120,7 +120,8 @@ namespace DynamicDevices.DiskWriter
var drive = (string)checkedListBoxDrives.CheckedItems[0];
ClearLayoutPanels();
GetPathIfEmpty();
if (GetPathIfEmpty() == false)
return;
DisableButtons(true);
@ -135,6 +136,9 @@ namespace DynamicDevices.DiskWriter
Thread.CurrentThread.CurrentUICulture = CurrentLocale;
SendProgressToUI(disk);
DiskAccesses.Add(diskAccess);
_disks.Add(disk);
var res = false;
try
{
@ -177,7 +181,8 @@ namespace DynamicDevices.DiskWriter
}
ClearLayoutPanels();
GetPathIfEmpty();
if (GetPathIfEmpty() == false)
return;
DisableButtons(true);
@ -317,15 +322,24 @@ namespace DynamicDevices.DiskWriter
/// <summary>
/// Select the file for read / write and setup defaults for whether we're using compression based on extension
/// </summary>
private void ChooseFile()
private bool ChooseFile()
{
var dr = saveFileDialog1.ShowDialog();
if (dr != DialogResult.OK)
return;
return false;
textBoxFileName.Text = saveFileDialog1.FileName;
TextBoxFileNameTextChanged(this, null);
TextBoxFileNameTextChanged(this, null);
return true;
}
/// <summary>
/// Before writing / reading we should check that FileName is not empty
/// </summary>
private bool GetPathIfEmpty()
{
return !string.IsNullOrEmpty(textBoxFileName.Text) || ChooseFile();
}
/// <summary>
@ -346,15 +360,6 @@ namespace DynamicDevices.DiskWriter
});
}
/// <summary>
/// Before writing / reading we should check that FileName is not empty
/// </summary>
private void GetPathIfEmpty()
{
if (string.IsNullOrEmpty(textBoxFileName.Text))
ChooseFile();
}
/// <summary>
/// Flushes all existing controls from layout panels
/// </summary>

File diff suppressed because it is too large Load diff

View file

@ -130,6 +130,9 @@
<data name="buttonWrite.Text" xml:space="preserve">
<value>Запись</value>
</data>
<data name="buttonChooseFile.ToolTip" xml:space="preserve">
<value>Открыть диалог выбора файла</value>
</data>
<data name="saveFileDialog1.Filter" xml:space="preserve">
<value>Образы файлов (*.img,*.bin,*.sdcard)|*.img;*.bin;*.sdcard|Сжатые файлы (*.zip,*.gz,*tgz)|*.zip;*.gz;*.tgz|Все файлы (*.*)|*.*</value>
</data>
@ -157,11 +160,13 @@
<data name="groupBoxCompression.Text" xml:space="preserve">
<value>Сжатие</value>
</data>
<data name="optionsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 20</value>
</data>
<data name="optionsToolStripMenuItem.Text" xml:space="preserve">
<value>Опции</value>
<data name="groupBoxCompression.ToolTip" xml:space="preserve">
<value>Выбрать метод сжатия образа.
Для записи на диск не надо указывать формат, утилита сама распознает формат
архива/образа.
Для чтения с диска можно указать любой желаемый формат.
СОВЕТ: Если вы читаете с диска и не знаете, что выбрать, используйте XZ</value>
</data>
<data name="displayAllDrivesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>265, 22</value>
@ -169,12 +174,6 @@
<data name="displayAllDrivesToolStripMenuItem.Text" xml:space="preserve">
<value>Показать все диски ***ОПАСНО***</value>
</data>
<data name="languageToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>265, 22</value>
</data>
<data name="languageToolStripMenuItem.Text" xml:space="preserve">
<value>Язык</value>
</data>
<data name="englishToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>141, 22</value>
</data>
@ -187,11 +186,17 @@
<data name="russianToolStripMenuItem.Text" xml:space="preserve">
<value>Русский</value>
</data>
<data name="groupBoxTruncation.Size" type="System.Drawing.Size, System.Drawing">
<value>267, 78</value>
<data name="languageToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>265, 22</value>
</data>
<data name="groupBoxTruncation.Text" xml:space="preserve">
<value>Образ логических разделов</value>
<data name="languageToolStripMenuItem.Text" xml:space="preserve">
<value>Язык</value>
</data>
<data name="optionsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
<value>56, 20</value>
</data>
<data name="optionsToolStripMenuItem.Text" xml:space="preserve">
<value>Опции</value>
</data>
<data name="checkBoxUnmount.Size" type="System.Drawing.Size, System.Drawing">
<value>216, 17</value>
@ -219,6 +224,12 @@
СОВЕТ: Если не знаете, зачем это, оставьте отмеченным.</value>
</data>
<data name="groupBoxTruncation.Size" type="System.Drawing.Size, System.Drawing">
<value>267, 78</value>
</data>
<data name="groupBoxTruncation.Text" xml:space="preserve">
<value>Образ логических разделов</value>
</data>
<data name="checkedListBoxDrives.ToolTip" xml:space="preserve">
<value>Список дисков, подмонтированных системой.
По умолчанию показывает внешние диски, но можно
@ -230,15 +241,4 @@
<data name="label1.Text" xml:space="preserve">
<value>Прогресс</value>
</data>
<data name="buttonChooseFile.ToolTip" xml:space="preserve">
<value>Открыть диалог выбора файла</value>
</data>
<data name="groupBoxCompression.ToolTip" xml:space="preserve">
<value>Выбрать метод сжатия образа.
Для записи на диск не надо указывать формат, утилита сама распознает формат
архива/образа.
Для чтения с диска можно указать любой желаемый формат.
СОВЕТ: Если вы читаете с диска и не знаете, что выбрать, используйте XZ</value>
</data>
</root>