예제 #1
0
        public MainForm()
        {
            var tablatureDirectory = TabsterEnvironment.CreateEnvironmentDirectoryPath(TabsterEnvironmentDirectory.UserData, "Library");

            var databasePath = Path.Combine(TabsterEnvironment.GetEnvironmentDirectoryPath(TabsterEnvironmentDirectory.ApplicatonData), "library.db");

            var fileProcessor = new TabsterFileProcessor <TablatureFile>(Constants.TablatureFileVersion);

            Logging.GetLogger().Info(string.Format("Initializing database: {0}", databasePath));
            _databaseHelper = new TabsterDatabaseHelper(databasePath);

            _libraryManager     = new LibraryManager(_databaseHelper, fileProcessor, tablatureDirectory);
            _playlistManager    = new PlaylistManager(_databaseHelper, fileProcessor);
            _recentFilesManager = new RecentFilesManager(_databaseHelper, fileProcessor, Settings.Default.MaxRecentItems);

            InitializeComponent();

            Text = string.Format("{0} v{1}", Application.ProductName,
                                 TabsterEnvironment.GetVersion().ToString(TabsterVersionFormatFlags.BuildString | TabsterVersionFormatFlags.Truncated));
#if PORTABLE
            Text = Text.Replace("Build", "Portable Build");
#endif
            InitAspectGetters();

            UpdateSortColumnMenu(true);

            //tabviewermanager events
            TablatureViewForm.GetInstance(this).TabClosed += TabHandler_OnTabClosed;

            recentlyViewedMenuItem.MaxDisplayItems   = Settings.Default.MaxRecentItems;
            recentlyViewedMenuItem.ClearItemClicked += recentlyViewedMenuItem_OnClearItemClicked;

            previewToolStrip.Renderer = new ToolStripRenderer();

            if (Settings.Default.ClientState == FormWindowState.Maximized)
            {
                WindowState = FormWindowState.Maximized;
            }
            else
            {
                Size = Settings.Default.ClientSize;
            }

            ToggleEmptyLibraryOverlay(listViewLibrary, true);
            ToggleEmptyLibraryOverlay(listViewSearch, true);

            PreviewEditor.Font       = TablatureFontManager.GetFont();
            searchPreviewEditor.Font = TablatureFontManager.GetFont();
        }
예제 #2
0
        public TabInstance(ITablatureFile file, FileInfo fileInfo, BasicTablatureTextEditor editor = null)
        {
            File = file;

            FileInfo = fileInfo;

            Page = new EllipsizedTabPage {
                Text = file.ToFriendlyString(), ToolTipText = FileInfo.FullName
            };

            Editor = editor ?? new BasicTablatureTextEditor {
                Dock = DockStyle.Fill
            };
            Editor.Font = TablatureFontManager.GetFont();

            Page.Controls.Add(Editor);

            Editor.LoadTablature(file);
        }
예제 #3
0
        private void ExportTab(object sender, EventArgs e)
        {
            if (GetSelectedLibraryItem() != null)
            {
                using (var sfd = new SaveFileDialog
                {
                    Title = Resources.ExportTabDialogTitle,
                    AddExtension = true,
                    Filter = string.Format("{0} (*{1})|*{1}", Resources.TabsterFile, Constants.TablatureFileExtension),
                    FileName = GetSelectedLibraryItem().File.ToFriendlyString()
                })
                {
                    var filters = sfd.SetTabsterFilter(_fileExporters, alphabeticalOrder: true);

                    if (sfd.ShowDialog() != DialogResult.Cancel)
                    {
                        //native file format
                        if (sfd.FilterIndex == 1)
                        {
                            GetSelectedLibraryItem().File.Save(sfd.FileName);
                        }

                        else
                        {
                            var exporter = filters[sfd.FilterIndex - 2].Exporter; //FilterIndex is not 0-based and native Tabster format uses first index
                            var args     = new TablatureFileExportArguments(TablatureFontManager.GetFont());

                            try
                            {
                                exporter.Export(GetSelectedLibraryItem().File, sfd.FileName, args);
                            }

                            catch (Exception ex)
                            {
                                Logging.GetLogger().Error(Resources.ExportErrorDialogCaption, ex);
                                MessageBox.Show(Resources.ExportErrorDialogCaption, Resources.ExportErrorDialogTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                }
            }
        }