public void Activate() { currentSong = null; txtSongsSearch.Text = ""; if (dvSongs.Table != null) { dvSongs.Sort = "Number ASC"; } this.Height = this.Parent.Height - this.Location.Y - 40; this.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Bottom; Program.Presenter.ShowPopupWindow(this, this.PointToScreen(Point.Empty)); this.Show(); if (!Program.Presenter.bwSongsInit.IsBusy) { // Select the first song g.CurrentCell = new DataGridCell(0, 1); g.Select(0); } UpdateUI(); txtSongsSearch.Focus(); Program.Presenter.ActivateKeyClient(this); }
/////////////////////////////////////////////////////// public SongProject(PresenterDataset.SongsRow currentSong) { Program.ConfigHelper.SongDefaultsChanged += new EventHandler(ConfigHelper_SongDefaultsChanged); this.currentSong = currentSong; this.name = currentSong.Number + ". " + currentSong.Title; LoadData(currentSong); PrepareForDisplay(); }
private void g_Click(object sender, System.EventArgs e) { if (g.CurrentCell.RowNumber > -1 && dvSongs.Count != 0) { g.Select(g.CurrentCell.RowNumber); g_CurrentCellChanged(null, null); } else { currentSong = null; } }
private void UpdateSearchDisplayer(int autoNumber, int songNumber) { SongProject.LoadVerses(lSearchResultVerses, autoNumber, true); fullSongPreview.Init(lSearchResultVerses, songNumber, SearchHelper.BreakSearchTerms(txtFulltextSearch.Text)); // Select the song behind the scenes dvSongs.RowFilter = "AutoNumber = " + autoNumber; if (dvSongs.Count > 0) { currentSong = (PresenterDataset.SongsRow)dvSongs[0].Row; UpdateUI(); } }
public static void AddUpdateSong(PresenterDataset.SongsRow song) { using (FBirdTask t = new FBirdTask()) { if (song.RowState == DataRowState.Added || song.RowState == DataRowState.Detached) { t.CommandText = t.CommandText = "INSERT INTO [Songs] " + "([AutoNumber], [Number], [Title], [Chorus], [Location], [DisplayDefault], [ImageId], [Overlay], [FontId]) VALUES " + "(@AutoNumber, @Number, @Title, @Chorus, @Location, @DisplayDefault, @ImageId, @Overlay, @FontId)"; } else { t.CommandText = "UPDATE [Songs] SET " + "[Number] = @Number, " + "[Title] = @Title, " + "[Chorus] = @Chorus, " + "[Location] = @Location, " + "[DisplayDefault] = @DisplayDefault, " + "[ImageId] = @ImageId, " + "[Overlay] = @Overlay WHERE [AutoNumber] = @AutoNumber"; } // HACK: M$ needs to fix up their parameters, regardless of name they are used in order if (t.CommandText.StartsWith("INSERT INTO")) { t.AddParameter("@AutoNumber", song.AutoNumber); } t.AddParameter("@Number", song.Number); t.AddParameter("@Title", 256, song.Title); t.AddParameter("@Chorus", 256, song.Chorus); t.AddParameter("@Location", 1024, song.Location); t.AddParameter("@DisplayDefault", song.DisplayDefault); t.AddParameter("@ImageId", song.Image); t.AddParameter("@Overlay", song.Overlay); if (t.CommandText.StartsWith("INSERT INTO")) { t.AddParameter("@FontId", -2); } // HACK: M$ needs to fix up their params if (t.CommandText.StartsWith("UPDATE")) { t.AddParameter("@AutoNumber", song.AutoNumber); } t.ExecuteNonQuery(); } }
private void txtSongsSearch_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == '*' || e.KeyChar == '%') { e.Handled = true; } if (e.KeyChar == (char)Keys.Enter) { e.Handled = true; if (dvSongs.Count > 0) { currentSong = (PresenterDataset.SongsRow)dvSongs[g.CurrentCell.RowNumber].Row; } StartProject(true); } }
private void llNewSong_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { int newAutoNumber = Data.Songs.GetNextAutoNumber(); PresenterDataset.SongsRow newSong = Program.SongsDS.Songs.NewSongsRow(); newSong.Image = -2; newSong.AutoNumber = newAutoNumber; newSong.Number = -1; newSong.FontId = -2; newSong.Title = ""; newSong.Chorus = ""; newSong.Overlay = 777; SongEditorForm sef = new SongEditorForm(newSong); sef.Show(); }
private void g_CurrentCellChanged(object sender, EventArgs e) { if (g.CurrentCell.RowNumber > -1 && dvSongs.Count != 0) { if (currentSong != (PresenterDataset.SongsRow)dvSongs[g.CurrentCell.RowNumber].Row) { g.Select(g.CurrentCell.RowNumber); currentSong = (PresenterDataset.SongsRow)dvSongs[g.CurrentCell.RowNumber].Row; } } else { currentSong = null; } g.Refresh(); UpdateUI(); }
private void lbSearchResults_DoubleClick(object sender, EventArgs e) { if (lbSearchResults.SelectedIndex == -1) { return; } // Start the song SongSearchResult ssr = (SongSearchResult)lbSearchResults.SelectedItem; int autoNumber = ssr.autoNumber; dvSongs.RowFilter = "AutoNumber = " + autoNumber; if (dvSongs.Count > 0) { currentSong = (PresenterDataset.SongsRow)dvSongs[0].Row; StartProject(true); } }
private void InternalLoadSongFromDB(PresenterDataset.SongsRow row, bool isNew) { dt = new PresenterDataset.SongVersesDataTable(); dt.Columns["AutoNumber"].DefaultValue = row.AutoNumber; if (!isNew) { using (FBirdTask t = new FBirdTask()) { t.CommandText = "SELECT [AutoNumber], [IsChorus], [Verse], [OrderNum] " + "FROM [SongVerses] " + "WHERE [AutoNumber] = @AutoNumber " + "ORDER BY [OrderNum]"; t.Parameters.Add("@AutoNumber", FbDbType.Integer); t.Parameters["@AutoNumber"].Value = row.AutoNumber; PresenterDataset.SongVersesRow r; t.ExecuteReader(); while (t.DR.Read()) { r = dt.NewSongVersesRow(); r.AutoNumber = t.GetInt32(0); r.IsChorus = t.GetInt32(1) == 1 ? true : false; r.Verse = t.GetString(2).Replace("\r\n", "\n").Replace("\n", "\r\n"); r.OrderNum = t.GetInt32(3); dt.AddSongVersesRow(r); } } } dt.AcceptChanges(); if (dt.Count == 0) { btnSave.Enabled = false; } dataView1.BeginInit(); dataView1.Table = dt; dataView1.EndInit(); dataGrid1.TableStyles[0].MappingName = dt.TableName; }
////////////////////////////////////////////////////////////////////// public SongEditorForm(PresenterDataset.SongsRow row) { if (row == null) { throw new ArgumentNullException("row"); } InitializeComponent(); LoadSong(row); dataGridTextBoxColumn1.TextBox.AcceptsReturn = true; dataGridTextBoxColumn1.TextBox.Multiline = true; dataGridTextBoxColumn1.TextBox.ScrollBars = ScrollBars.Vertical; dataGrid1.KeyEnter += new ProcessKeyPreviewMsgEventHandler(dataGrid1_KeyEnter); dt.SongVersesRowChanged += new EmpowerPresenter.PresenterDataset.SongVersesRowChangeEventHandler(dt_SongVersesRowChanged); dt.SongVersesRowDeleted += new EmpowerPresenter.PresenterDataset.SongVersesRowChangeEventHandler(dt_SongVersesRowDeleted); Program.Presenter.RegisterExKeyOwnerForm(this); }
private void deleteToolStripMenuItem_Click(object sender, EventArgs e) { if (currentSong == null) { return; } DialogResult result = MessageBox.Show(this, Loc.Get("Are you sure you want to delete") + " " + currentSong.Number + " - " + currentSong.Title + "?", Loc.Get("Confirm Deletion"), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2); if (result == DialogResult.Yes) { Data.Songs.DeleteSong(currentSong.AutoNumber); currentSong.Delete(); currentSong.AcceptChanges(); currentSong = null; } }
private void LoadData(PresenterDataset.SongsRow currentSong) { // Clear songVerses.Clear(); // Populate songVerses LoadVerses(songVerses, currentSong.AutoNumber, false); // Load other data currentSong.Image = Data.Songs.GetSongBackground(currentSong.AutoNumber); copyright = EmpowerPresenter.Data.Songs.GetSongCopyright(currentSong.AutoNumber); songFont = PresenterFont.GetFontFromDatabase(currentSong.FontId); graphicsContext.opacity = currentSong.Overlay; if (graphicsContext.opacity == 777) { graphicsContext.opacity = Program.ConfigHelper.SongDefaultOpacity; } // Load img into context if (graphicsContext.img == null) { PhotoInfo pi = new PhotoInfo(); pi.ImageId = currentSong.Image; graphicsContext.img = pi.FullSizeImage; } // Load formatting settings string settings = currentSong.Settings; if (settings == null || settings == "") { settings = Program.ConfigHelper.SongDefaultFormat; } string[] sparts = settings.Split("|".ToCharArray()); if (sparts.Length == 2) { stripFormatting = bool.Parse(sparts[0]); includeVerseNumbers = bool.Parse(sparts[1]); } }
public void Deactivate() { this.Hide(); // NOTE: it would be a good time to cancel the bg worker for search // Not impl currently // Clear search section ClearSearchResults(); lbSearchResults.Visible = false; fullSongPreview.Visible = false; lblSort.Visible = false; rNoSort.Visible = false; rRelevent.Visible = false; txtFulltextSearch.Text = ""; pnlSearchSelection.SendToBack(); pnlInitTumbler.Visible = false; // Clear grid selection and update button/link states currentSong = null; if (!Program.Presenter.bwSongsInit.IsBusy) { g.UnSelect(g.CurrentCell.RowNumber); } UpdateUI(); #if DEMO if (searchExpired) { txtSongsSearch.Enabled = false; } #endif Program.Presenter.ClearNavList(); Program.Presenter.UnregisterPopupWindow(this); Program.Presenter.DeactivateKeyClient(this); Program.Presenter.DeactiveSearcher(); }
// Song Information public void LoadSong(PresenterDataset.SongsRow row) { if (row == null) { this.Close(); return; } currentRow = row; // Accept changes if not new if (row.RowState == DataRowState.Detached) { this.Text = Loc.Get("Add a new song"); this.btnSave.Text = Loc.Get("Add"); // setup datatable InternalLoadSongFromDB(row, true); } else { this.btnSave.Text = Loc.Get("Save"); row.AcceptChanges(); // Load song verses from database InternalLoadSongFromDB(row, false); } // Set textboxes if (currentRow.Number != -1) { txtNumber.Text = currentRow.Number.ToString(); } else { txtNumber.Text = ""; } txtTitle.Text = currentRow.Title; txtChorus.Text = currentRow.Chorus; // Image and properties currentImage = new PhotoInfo(); if (currentRow.Image == -2) { currentImage.ImageId = Program.ConfigHelper.SongDefaultImage; } else { currentImage.ImageId = currentRow.Image; } sliderSuspendUpdate++; if (currentRow.Overlay == 777) { sliderOpacity.Value = 50; } else { sliderOpacity.Value = (int)(((double)currentRow.Overlay + 255) * 100 / 512); } sliderSuspendUpdate--; txtCopyright.Text = Data.Songs.GetSongCopyright(currentRow.AutoNumber); }