private void importToolStripMenuItem_Click(object sender, EventArgs e) { using (var ofd = new OpenFileDialog { Title = Resources.ImportTabDialogTitle, Filter = string.Format("{0} (*{1})|*{1}", Resources.TabsterFile, Constants.TablatureFileExtension), Multiselect = false }) { ofd.SetTabsterFilter(_fileImporters, allSupportedTypesOption: false, alphabeticalOrder: true); //todo implement "all supported types" handling if (ofd.ShowDialog() != DialogResult.Cancel) { //native file format if (ofd.FilterIndex == 1) { var file = _libraryManager.GetTablatureFileProcessor().Load(ofd.FileName); if (file != null) { _libraryManager.Add(file); } } else // third-party format { var importer = _fileImporters[ofd.FilterIndex - 2]; //FilterIndex is not 0-based and native Tabster format uses first index AttributedTablature importedTab = null; try { importedTab = importer.Import(ofd.FileName); } catch { MessageBox.Show(Resources.ImportErrorDialogCaption, Resources.ImportErrorDialogTitle, MessageBoxButtons.OK, MessageBoxIcon.Error); } if (importedTab != null) { using (var nd = new NewTabDialog(importedTab.Artist, importedTab.Title, importedTab.Type)) { if (nd.ShowDialog() == DialogResult.OK) { var tab = nd.Tab; tab.Contents = importedTab.Contents; tab.Source = new Uri(ofd.FileName); tab.SourceType = TablatureSourceType.FileImport; _libraryManager.Add(tab); UpdateDetails(); } } } } } } }
private void importToolStripMenuItem_Click(object sender, EventArgs e) { using (var ofd = new OpenFileDialog { Title = Resources.ImportTabDialogTitle, Filter = string.Format("{0} (*{1})|*{1}", Resources.TabsterFile, Constants.TablatureFileExtension), Multiselect = false }) { ofd.SetTabsterFilter(_fileImporters, allSupportedTypesOption: false, alphabeticalOrder: true); //todo implement "all supported types" handling if (ofd.ShowDialog() != DialogResult.Cancel) { //native file format if (ofd.FilterIndex == 1) { var file = _libraryManager.GetTablatureFileProcessor().Load(ofd.FileName); if (file != null) { _libraryManager.Add(file); } } else // third-party format { var importer = _fileImporters[ofd.FilterIndex - 2]; //FilterIndex is not 0-based and native Tabster format uses first index AttributedTablature importedTab = null; try { importedTab = importer.Import(ofd.FileName); } catch { MessageBox.Show(Resources.ImportErrorDialogCaption, Resources.ImportErrorDialogTitle, MessageBoxButtons.OK, MessageBoxIcon.Error); } if (importedTab != null) { using (var nd = new NewTabDialog(importedTab.Artist, importedTab.Title, importedTab.Type)) { if (nd.ShowDialog() == DialogResult.OK) { var tab = nd.Tab; tab.Contents = importedTab.Contents; tab.Source = new Uri(ofd.FileName); tab.SourceType = TablatureSourceType.FileImport; _libraryManager.Add(tab); UpdateDetails(); } } } } } } }