private void LoadSearchEngines() { _searchEngines.Clear(); listSearchEngines.Items.Clear(); var searchPluginMap = new Dictionary <ITablatureSearchEngine, PluginInstance>(); foreach (var plugin in Program.GetPluginManager().GetPluginHosts()) { foreach (var engine in plugin.GetClassInstances <ITablatureSearchEngine>()) { _searchEngines.Add(engine); searchPluginMap[engine] = plugin; } } foreach (var searchPluginPair in searchPluginMap) { var enabled = !Settings.Default.DisabledSearchEngines.Contains(TabsterSettingsUtilities.GetSearchEngineIdentifier(searchPluginPair.Value, searchPluginPair.Key)); var lvi = new ListViewItem { Text = searchPluginPair.Key.Name, Checked = enabled, ForeColor = enabled ? _enabledColor : _disabledColor }; lvi.SubItems.Add(enabled ? "Yes" : "No"); listSearchEngines.Items.Add(lvi); } if (listSearchEngines.Items.Count == 0) { listSearchEngines.Dock = DockStyle.Fill; } else { listSearchEngines.Items[0].Selected = true; } }
private TablatureSearchRequest CreateSearchRequest() { var artist = txtSearchArtist.Text.Trim(); var title = txtSearchTitle.Text.Trim(); var type = searchTypeList.HasTypeSelected ? searchTypeList.SelectedType : null; var rating = cbSearchRating.SelectedRating; var searchEngines = new List <ITablatureSearchEngine>(); foreach (var engine in TabsterSettingsUtilities.GetEnabledSearchEngines()) { try { //check engine requirements if ((engine.RequiresArtistParameter && string.IsNullOrEmpty(artist)) || (engine.RequiresTitleParameter && string.IsNullOrEmpty(title)) || (engine.RequiresTypeParamter && type == null) || (!engine.SupportsRatings && rating != TablatureRating.None)) { continue; } //tablature type checking if (type != null && !engine.SupportsTabType(type)) { continue; } searchEngines.Add(engine); } catch { //unhandled } } return(new TablatureSearchRequest(artist, title, type, rating, searchEngines)); }
private void SavePreferences() { //search engines if (SearchEnginesModified) { foreach (ListViewItem lvi in listSearchEngines.Items) { var engine = _searchEngines[lvi.Index]; var plugin = Program.GetPluginManager().GetHostByType(engine.GetType()); var id = TabsterSettingsUtilities.GetSearchEngineIdentifier(plugin, engine); if (id == null) { continue; } var engineEnabled = lvi.Checked; Settings.Default.DisabledSearchEngines.Remove(id); if (!engineEnabled) { Settings.Default.DisabledSearchEngines.Add(id); } } } //printing Settings.Default.PrintColor = printColorPreview.BackColor; Settings.Default.PrintPageNumbers = chkPrintPageNumbers.Checked; Settings.Default.PrintTimestamp = chkPrintTimestamp.Checked; if (numMaxRecentItems.Value != Settings.Default.MaxRecentItems) { MaxRecentItemsModified = true; Settings.Default.MaxRecentItems = (int)numMaxRecentItems.Value; } //network var proxyConfig = ProxyConfiguration.None; if (radioNoProxy.Checked) { proxyConfig = ProxyConfiguration.None; } else if (radioSystemProxy.Checked) { proxyConfig = ProxyConfiguration.System; } else if (radioManualProxy.Checked) { proxyConfig = ProxyConfiguration.Manual; } var customProxy = GetProxyFromInput(); Settings.Default.ProxyConfig = proxyConfig.ToString(); if (customProxy != null) { Settings.Default.ProxyHost = customProxy.Address.Host; Settings.Default.ProxyPort = (ushort)customProxy.Address.Port; if (customProxy.Credentials != null) { var credentials = (NetworkCredential)customProxy.Credentials; Settings.Default.ProxyUsername = credentials.UserName != null ? ((NetworkCredential)customProxy.Credentials).UserName : null; Settings.Default.ProxyPassword = credentials.Password != null ? ((NetworkCredential)customProxy.Credentials).Password : null; } TabsterSettingsUtilities.ProxySettings.ManualProxyParameters = new ManualProxyParameters( customProxy.Address.Host, (ushort)customProxy.Address.Port, customProxy.Credentials); } //apply settings to active proxy config TabsterSettingsUtilities.ProxySettings.Configuration = proxyConfig; Settings.Default.StartupUpdate = chkUpdates.Checked; Settings.Default.StripVersionedNames = chkStripVersionedNames.Checked; Settings.Default.Save(); }