private static void LaunchUrl(string urlToLaunch, BrowserInfo[] browsers) { AppConfig appConfig = AppConfig.LoadOrDefault(GetConfigName()); SelectionRule matchedRule = null; if (Uri.IsWellFormedUriString(urlToLaunch, UriKind.Absolute)) { Uri uriToLaunch = new Uri(urlToLaunch); matchedRule = appConfig.SelectionRules.FirstOrDefault(rule => rule.Matches(uriToLaunch)); } if (matchedRule == null) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Launcher form = new Launcher(appConfig, browsers); form.UrlToLaunch = urlToLaunch; form.BringToFront(); Application.Run(form); if (form.DialogResult == DialogResult.OK) { appConfig.Save(GetConfigName()); } } else { BrowserInfo browser = browsers.First(bi => bi.Name == matchedRule.TargetBrowserId); browser.Launch(urlToLaunch); } }
private void btnAdd_Click(object sender, EventArgs e) { BrowserInfo bi = new BrowserInfo(); if (DialogResult.OK == EditCustomBrowser(bi)) { AddNewCustomBrowser(bi); } }
internal void UpdateCustomBrowser(BrowserInfo customBrowser) { customBrowser.Name = txtName.Text; customBrowser.Category = BrowserCategory.Custom; customBrowser.Executable = lblExe.Text; customBrowser.Arguments = "\"%1\""; customBrowser.IconLocation = lblIcon.Text; }
public Configurator(AppConfig config, BrowserInfo[] defaultBrowsers) { InitializeComponent(); AppConfig = config; DefaultBrowsers = defaultBrowsers; Text = Properties.Resources.AppName; Icon = Properties.Resources.AppIcon; }
public void LoadCustomBrowser(BrowserInfo browser) { txtName.Text = browser.Name; lblExe.Text = browser.Executable; lblIcon.Text = browser.IconLocation; if (browser.IconLocation != null) { UpdateIcon(browser); } }
private void btnRules_Click(object sender, EventArgs e) { BrowserInfo[] customBrowsers = AppConfig.CustomBrowsers.ToArray(); BrowserInfo[] browsers = new BrowserInfo[DefaultBrowsers.Length + customBrowsers.Length]; DefaultBrowsers.CopyTo(browsers, 0); customBrowsers.CopyTo(browsers, DefaultBrowsers.Length); Rules rules = new Rules(AppConfig, browsers); rules.ShowDialog(this); }
public RuleEditor(BrowserInfo[] browsers) { InitializeComponent(); ecbRuleType = new EnumComboBox<RuleType>(cmbRuleType); ecbRuleType.SelectedItem = RuleType.Regex; cmbRuleType = ecbRuleType; ShowBrowsers(browsers); }
public Rules(AppConfig config, BrowserInfo[] browsers) { AppConfig = config; Browsers = browsers; InitializeComponent(); DisplayRules(config.SelectionRules, browsers); listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); }
public Launcher(AppConfig config, BrowserInfo[] browsers) { AppConfig = config; Browsers = browsers; InitializeComponent(); Text = Properties.Resources.AppName; Icon = Properties.Resources.AppIcon; pbIcon.Image = Icon.ToBitmap(); }
private void ShowBrowsers(BrowserInfo[] browsers) { cmbBrowser.Items.Clear(); foreach (BrowserInfo browser in browsers) { cmbBrowser.Items.Add(browser); } if(cmbBrowser.Items.Count > 0) cmbBrowser.SelectedIndex = 0; }
private void AddNewCustomBrowser(BrowserInfo customBrowser) { System.Diagnostics.Debug.Assert(listView1.Items.Count == AppConfig.CustomBrowsers.Count); // Store the new rule AppConfig.UnsavedChanges = true; AppConfig.CustomBrowsers.Add(customBrowser); // Display the new rule BrowserInfoListViewItem lvi = new BrowserInfoListViewItem(customBrowser); listView1.Items.Add(lvi); System.Diagnostics.Debug.Assert(listView1.Items.Count == AppConfig.CustomBrowsers.Count); }
public void DisplayRules(IEnumerable<SelectionRule> rules, BrowserInfo[] browsers) { listView1.SmallImageList = new ImageList(); listView1.SmallImageList.ColorDepth = ColorDepth.Depth32Bit; listView1.SmallImageList.ImageSize = new System.Drawing.Size(16, 16); listView1.Items.Clear(); Dictionary<string, int> browserNameToIndex = new Dictionary<string, int>(); int n = 0; foreach (BrowserInfo browser in browsers) { browserNameToIndex.Add(browser.Name, n); listView1.SmallImageList.Images.Add(browser.Name, browser.Icon); n++; } foreach (SelectionRule rule in rules) { RuleListViewItem lvi = new RuleListViewItem(rule); listView1.Items.Add(lvi); } }
public BrowserInfoListViewItem(BrowserInfo browserInfo) { Browser = browserInfo; Update(); }
private DialogResult EditCustomBrowser(BrowserInfo customBrowser) { CustomBrowserEditor editor = new CustomBrowserEditor(); editor.LoadCustomBrowser(customBrowser); DialogResult answer = editor.ShowDialog(this); if (DialogResult.OK == answer) { AppConfig.UnsavedChanges = true; editor.UpdateCustomBrowser(customBrowser); listView1.SmallImageList.Images.RemoveByKey(customBrowser.Name); listView1.SmallImageList.Images.Add(customBrowser.Name, customBrowser.Icon); } return answer; }
private void UpdateIcon(BrowserInfo browserInfo) { lblIcon.Text = browserInfo.IconLocation; pbBrowserIcon.Image = browserInfo.Icon.ToBitmap(); }
internal BrowserInfo GetBrowserInfo() { BrowserInfo bi = new BrowserInfo(); UpdateCustomBrowser(bi); return bi; }
static void Main(string[] arguments) { //Debugger.Launch(); string configFileName = GetConfigName(); string urlToLaunch = null; int n = 0; for (; n < arguments.Length; ++n) { if (arguments[n] == "-d") { Debugger.Launch(); } else if(urlToLaunch == null) { urlToLaunch = arguments[n]; } } AppConfig appConfig = AppConfig.LoadOrDefault(configFileName); //TODO: find all browsers, not just handlers of http CustomBrowserHelper customBrowserHelper = new CustomBrowserHelper(appConfig); BrowserInfo[] defaultBrowsers = DefaultBrowserHelper.GetAvailableBrowsers(); if (urlToLaunch != null) { BrowserInfo[] customBrowsers = customBrowserHelper.GetAvailableBrowsers(); BrowserInfo[] browsers = new BrowserInfo[defaultBrowsers.Length + customBrowsers.Length]; defaultBrowsers.CopyTo(browsers, 0); customBrowsers.CopyTo(browsers, defaultBrowsers.Length); LaunchUrl(urlToLaunch, browsers); } else { if (UacHelper.ElevationRequired()) { UacHelper.Elevate(); } else { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Configurator(appConfig, defaultBrowsers)); } } }
public CustomBrowserEditor(BrowserInfo browser) : this() { LoadCustomBrowser(browser); }