private void FillSoundCombobox() { //Fill the list with all the sounds from the Database(non default windows ones) List <Songs> sounds = BLSongs.GetSongs().Where(s => Path.GetDirectoryName(s.SongFilePath).ToLower() != "c:\\windows\\media").OrderBy(s => s.SongFileName).ToList(); cbSound.Items.Clear(); ComboBoxItemManager.ClearComboboxItems(); if (sounds != null) { foreach (Songs item in sounds) { if (item.SongFileName != "") { cbSound.Items.Add(new ComboBoxItem(System.IO.Path.GetFileNameWithoutExtension(item.SongFileName), item)); } } } //Let's make sure the default windows System sounds are placed at the bottom List <Songs> windowsDefaultSongs = BLSongs.GetSongs().Where(s => Path.GetDirectoryName(s.SongFilePath).ToLower() == "c:\\windows\\media").OrderBy(s => s.SongFileName).ToList(); if (windowsDefaultSongs != null) { foreach (Songs item in windowsDefaultSongs) { if (item.SongFileName != "") { cbSound.Items.Add(new ComboBoxItem(System.IO.Path.GetFileNameWithoutExtension(item.SongFileName), item)); } } } }
private void LoadSongs() { lvSoundFiles.Items.Clear(); List <Songs> songs = BLSongs.GetSongs().Where(s => Path.GetDirectoryName(s.SongFilePath).ToLower() != "c:\\windows\\media").ToList(); songs = songs.OrderBy(s => s.SongFilePath).ToList(); if (songs != null && songs.Count > 0) { foreach (Songs sng in songs) { ListViewItem item = new ListViewItem(sng.SongFilePath); item.Tag = sng.Id; lvSoundFiles.Items.Add(item); } } }
private void ShowFilePath(bool showPath) { foreach (ListViewItem item in lvSoundFiles.Items) { Songs theSong = BLSongs.GetSongById((long)item.Tag); if (showPath) { item.Text = theSong.SongFilePath; } else { item.Text = theSong.SongFileName; } } }
private void btnPreview_Click(object sender, EventArgs e) { if (lvSoundFiles.SelectedItems.Count == 1) { Songs selectedSong = BLSongs.GetSongById((long)lvSoundFiles.SelectedItems[0].Tag); BLIO.Log("Attempting to preview sound file with id " + selectedSong.Id); if (btnPreview.Iconimage == imgPlay) { if (System.IO.File.Exists(selectedSong.SongFilePath)) { BLIO.Log("Sound file exists on the hard drive"); btnPreview.Iconimage = imgStop; myPlayer.URL = selectedSong.SongFilePath; mediaInfo = myPlayer.newMedia(myPlayer.URL); //Start the timer. the timer ticks when the song ends. The timer will then reset the picture of the play button if (mediaInfo.duration > 0) { tmrMusic.Interval = (int)(mediaInfo.duration * 1000); } else { tmrMusic.Interval = 1000; } tmrMusic.Start(); myPlayer.controls.play(); BLIO.Log("Playing sound."); } else { RemindMeMessageFormManager.MakeMessagePopup("Could not preview the selected song. Does it still exist?", 4); } } else { BLIO.Log("Stopping sound"); btnPreview.Iconimage = imgPlay; myPlayer.controls.stop(); tmrMusic.Stop(); } } }
private void btnRemoveFiles_Click(object sender, EventArgs e) { List <Songs> toRemoveSongs = new List <Songs>(); foreach (ListViewItem selectedItem in lvSoundFiles.SelectedItems) { toRemoveSongs.Add(BLSongs.GetSongById(Convert.ToInt32(selectedItem.Tag))); lvSoundFiles.Items.Remove(selectedItem); } BLSongs.RemoveSongs(toRemoveSongs); if (toRemoveSongs.Count > 0) { RemindMeMessageFormManager.MakeMessagePopup(toRemoveSongs.Count + " Files removed from RemindMe.", 4); } }
private void btnAddFiles_Click(object sender, EventArgs e) { int songsAdded = 0; List <string> songPaths = FSManager.Files.GetSelectedFilesWithPath("", "*.mp3; *.wav;").ToList(); if (songPaths.Count == 1 && songPaths[0] == "")//The user canceled out { return; } BLIO.Log("user selected " + songPaths.Count + " mp3 / wav files."); List <Songs> songs = new List <Songs>(); foreach (string songPath in songPaths) { Songs song = new Songs(); song.SongFileName = Path.GetFileName(songPath); song.SongFilePath = songPath; songs.Add(song); } BLSongs.InsertSongs(songs); BLIO.Log("Inserted " + songs.Count + " sound files into RemindMe"); foreach (Songs song in songs) { if (!ListViewContains(song.SongFilePath)) { songsAdded++; ListViewItem item = new ListViewItem(song.SongFilePath); item.Tag = song.Id; lvSoundFiles.Items.Add(item); } } RemindMeMessageFormManager.MakeMessagePopup(songsAdded + " Files added to RemindMe.", 4); LoadSongs(); }
private void UCWindowOverlay_Load(object sender, EventArgs e) { if (BLSettings.GetSettings() == null) { Settings set = new Settings(); set.AlwaysOnTop = alwaysOnTop; set.StickyForm = 0; set.EnableHourBeforeReminder = 1; set.EnableReminderCountPopup = 1; set.EnableQuickTimer = 1; BLSettings.UpdateSettings(set); } //Since we're not going to change the contents of this combobox anyway, we're just going to do it like this if (BLSettings.IsAlwaysOnTop()) { cbPopupType.SelectedItem = cbPopupType.Items[0]; } else { cbPopupType.SelectedItem = cbPopupType.Items[1]; } cbRemindMeMessages.Checked = BLSettings.IsReminderCountPopupEnabled(); cbOneHourBeforeNotification.Checked = BLSettings.IsHourBeforeNotificationEnabled(); cbQuicktimer.Checked = BLSettings.GetSettings().EnableQuickTimer == 1; cbAdvancedReminders.Checked = BLSettings.GetSettings().EnableAdvancedReminders == 1; Hotkeys timerKey = BLHotkeys.TimerPopup; foreach (string m in timerKey.Modifiers.Split(',')) { tbTimerHotkey.Text += m + " + "; } tbTimerHotkey.Text += timerKey.Key; //Fill the combobox to select a timer popup sound with data FillSoundCombobox(); //Set the item the user selected as text string def = BLSettings.GetSettings().DefaultTimerSound; if (def == null) //User has no default sound combobox { foreach (ComboBoxItem itm in cbSound.Items) { if (itm.Text.ToLower().Contains("unlock")) //Set the default timer sound to windows unlock { Songs sng = (Songs)itm.Value; Settings set = BLSettings.GetSettings(); set.DefaultTimerSound = sng.SongFilePath; BLSettings.UpdateSettings(set); } } } if (BLSettings.GetSettings().DefaultTimerSound == null)//Still null? well damn. { return; } cbSound.Items.Add(new ComboBoxItem(Path.GetFileNameWithoutExtension(BLSettings.GetSettings().DefaultTimerSound), BLSongs.GetSongByFullPath(BLSettings.GetSettings().DefaultTimerSound))); cbSound.Text = Path.GetFileNameWithoutExtension(BLSettings.GetSettings().DefaultTimerSound); }
/// <summary> /// Alternative Form_load method since form_load doesnt get called until you first double-click the RemindMe icon due to override SetVisibleCore /// </summary> private async Task formLoadAsync() { BLIO.Log("RemindMe_Load"); BLIO.WriteUpdateBatch(Application.StartupPath); lblVersion.Text = "Version " + IOVariables.RemindMeVersion; Settings set = BLSettings.GetSettings(); if (set.LastVersion != null && (new Version(set.LastVersion) < new Version(IOVariables.RemindMeVersion))) { //User has a new RemindMe version! string releaseNotesString = ""; foreach (KeyValuePair <string, string> entry in UpdateInformation.ReleaseNotes) { if (new Version(entry.Key) > new Version(set.LastVersion)) { releaseNotesString += "Version " + entry.Key + "\r\n" + entry.Value + "\r\n\r\n\r\n"; } } WhatsNew wn = new WhatsNew(set.LastVersion, releaseNotesString); wn.Show(); //Update lastVersion set.LastVersion = IOVariables.RemindMeVersion; BLSettings.UpdateSettings(set); } //Default view should be reminders pnlMain.Controls.Add(ucReminders); MessageFormManager.MakeTodaysRemindersPopup(); BLIO.Log("Today's reminders popup created"); //Create an shortcut in the windows startup folder if it doesn't already exist if (!File.Exists(IOVariables.startupFolderPath + "\\RemindMe" + ".lnk")) { FSManager.Shortcuts.CreateShortcut(IOVariables.startupFolderPath, "RemindMe", System.Windows.Forms.Application.StartupPath + "\\" + "RemindMe.exe", "Shortcut of RemindMe"); } if (Debugger.IsAttached) {//Debugging ? show extra option btnDebugMode.Visible = true; } BLSongs.InsertWindowsSystemSounds(); BLIO.Log("RemindMe loaded"); Cleanup(); tmrUpdateRemindMe.Start(); //If the setup still exists, delete it File.Delete(IOVariables.rootFolder + "SetupRemindMe.msi"); //Call the timer once Thread tr = new Thread(() => { //wait a bit, then call the update timer once. It then runs every 5 minutes Thread.Sleep(5000); tmrUpdateRemindMe_Tick(null, null); }); tr.Start(); this.Opacity = 0; this.ShowInTaskbar = true; this.Show(); tmrInitialHide.Start(); }
/// <summary> /// Alternative Form_load method since form_load doesnt get called until you first double-click the RemindMe icon due to override SetVisibleCore /// </summary> private async Task formLoadAsync() { BLIO.Log("RemindMe_Load"); BLIO.WriteUpdateBatch(Application.StartupPath); lblVersion.Text = "Version " + IOVariables.RemindMeVersion; Settings set = BLSettings.Settings; //set unique user string if (string.IsNullOrWhiteSpace(set.UniqueString)) { if (File.Exists(IOVariables.uniqueString)) { set.UniqueString = File.ReadAllText(IOVariables.uniqueString); BLSettings.UpdateSettings(set); } File.Delete(IOVariables.uniqueString); } BLIO.WriteUniqueString(); if (set.LastVersion != null && (new Version(set.LastVersion) < new Version(IOVariables.RemindMeVersion))) { BLIO.Log("[VERSION CHECK] New version! last version: " + set.LastVersion + " New version: " + IOVariables.RemindMeVersion); //User has a new RemindMe version! string releaseNotesString = ""; foreach (KeyValuePair <string, string> entry in UpdateInformation.ReleaseNotes) { if (new Version(entry.Key) > new Version(set.LastVersion)) { releaseNotesString += "Version " + entry.Key + "\r\n" + entry.Value + "\r\n\r\n\r\n"; } } WhatsNew wn = new WhatsNew(set.LastVersion, releaseNotesString); wn.Show(); //Before updating the lastVersion, log the update in the db BLOnlineDatabase.AddNewUpgrade(DateTime.Now, set.LastVersion, IOVariables.RemindMeVersion); //Update the lastVersion set.LastVersion = IOVariables.RemindMeVersion; } else { BLIO.Log("[VERSION CHECK] No new version! lastVersion: " + set.LastVersion + " New version: " + IOVariables.RemindMeVersion); } //Default view should be reminders pnlMain.Controls.Add(ucReminders); RemindMeMessageFormManager.MakeTodaysRemindersPopup(); BLIO.Log("Today's reminders popup created"); //Create an shortcut in the windows startup folder if it doesn't already exist if (!File.Exists(IOVariables.startupFolderPath + "\\RemindMe" + ".lnk")) { FSManager.Shortcuts.CreateShortcut(IOVariables.startupFolderPath, "RemindMe", System.Windows.Forms.Application.StartupPath + "\\" + "RemindMe.exe", "Shortcut of RemindMe"); } if (Debugger.IsAttached) //Debugging ? show extra option { btnDebugMode.Visible = true; } BLSongs.InsertWindowsSystemSounds(); tmrUpdateRemindMe.Start(); //If the setup still exists, delete it File.Delete(IOVariables.rootFolder + "SetupRemindMe.msi"); //Call the timer once Thread tr = new Thread(() => { //wait a bit, then call the update timer once. It then runs every 5 minutes Thread.Sleep(5000); tmrUpdateRemindMe_Tick(null, null); BLOnlineDatabase.InsertOrUpdateUser(set.UniqueString); Thread.Sleep(1500); if (set.LastVersion == null) { //First time user! log it in the db BLOnlineDatabase.InsertFirstTimeUser(set.UniqueString); set.LastVersion = IOVariables.RemindMeVersion; } BLSettings.UpdateSettings(set); }); tr.Start(); this.Opacity = 0; this.ShowInTaskbar = true; this.Show(); tmrInitialHide.Start(); //Insert the errorlog.txt into the DB if it is not empty if (new FileInfo(IOVariables.errorLog).Length > 0) { BLOnlineDatabase.InsertLocalErrorLog(set.UniqueString, File.ReadAllText(IOVariables.errorLog), File.ReadLines(IOVariables.errorLog).Count()); File.WriteAllText(IOVariables.errorLog, ""); } Random r = new Random(); tmrCheckRemindMeMessages.Interval = (r.Next(60, 300)) * 1000; //Random interval between 1 and 5 minutes tmrCheckRemindMeMessages.Start(); BLIO.Log("tmrCheckRemindMeMessages.Interval = " + tmrCheckRemindMeMessages.Interval / 1000 + " seconds."); BLIO.Log("RemindMe loaded"); Cleanup(); }