Example #1
0
        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;
 }
Example #4
0
        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);
     }
 }
Example #6
0
        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);
        }
Example #7
0
        public RuleEditor(BrowserInfo[] browsers)
        {
            InitializeComponent();

            ecbRuleType = new EnumComboBox<RuleType>(cmbRuleType);
            ecbRuleType.SelectedItem = RuleType.Regex;
            cmbRuleType = ecbRuleType;

            ShowBrowsers(browsers);
        }
Example #8
0
        public Rules(AppConfig config, BrowserInfo[] browsers)
        {
            AppConfig = config;
            Browsers = browsers;

            InitializeComponent();

            DisplayRules(config.SelectionRules, browsers);

            listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
        }
Example #9
0
        public Launcher(AppConfig config, BrowserInfo[] browsers)
        {
            AppConfig = config;
            Browsers = browsers;
            InitializeComponent();

            Text = Properties.Resources.AppName;
            Icon = Properties.Resources.AppIcon;

            pbIcon.Image = Icon.ToBitmap();
        }
Example #10
0
        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;
        }
Example #11
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);
        }
Example #12
0
        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();
 }
Example #14
0
        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;
 }
Example #17
0
        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);
 }