예제 #1
0
 private void UpdateButton_OnClick(object sender, RoutedEventArgs e)
 {
     if (ServerSubscribeListBox.SelectedItem is ServerSubscribe serverSubscribe)
     {
         if (Save())
         {
             ApplyButton.IsEnabled = false;
             _updateSubscribeManager.CreateTask(_modifiedConfiguration, _updateFreeNodeChecker, true, true, serverSubscribe);
         }
         else
         {
             SaveError();
         }
     }
 }
예제 #2
0
 private void updateFromSubscribeToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (ConnectTest.hasInternetAccess())
     {
         Thread t = new Thread(() =>
         {
             updateSubscribeManager.CreateTask(controller.GetCurrentConfiguration(), updateFreeNodeChecker, -1, false);
         });
         t.Start();
     }
 }
예제 #3
0
        private void CheckNodeUpdate_Click(object sender, EventArgs e)
        {
            Configuration config = controller.GetCurrentConfiguration();

            if (config.serverSubscribes.Count == 0)
            {
                MessageBox.Show(I18N.GetString("Please add at least one server subscribe"), "ShadowsocksR",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            updateSubscribeManager.CreateTask(config, updateNodeChecker);
        }
예제 #4
0
        public MenuViewController(ShadowsocksController controller)
        {
            this.controller = controller;

            LoadMenu();

            controller.ToggleModeChanged     += controller_ToggleModeChanged;
            controller.ToggleRuleModeChanged += controller_ToggleRuleModeChanged;
            controller.ConfigChanged         += controller_ConfigChanged;
            controller.Errored += controller_Errored;

            _notifyIcon = new NotifyIcon();
            UpdateTrayIcon();
            _notifyIcon.Visible     = true;
            _notifyIcon.ContextMenu = contextMenu1;
            _notifyIcon.MouseClick += notifyIcon1_Click;

            updateNodeChecker = new UpdateNode();
            updateNodeChecker.NewNodeFound += updateNodeChecker_NewNodeFound;
            updateSubscribeManager          = new UpdateSubscribeManager();

            updateChinaIPChecker = new UpdateChinaIP();
            updateChinaIPChecker.NewChinaIPFound += updateChinaIPChecker_NewChinaIPFound;
            updateChinaIPManager = new UpdateChinaIPManager();

            LoadCurrentConfiguration();

            Configuration config = controller.GetCurrentConfiguration();

            if (config.nodeFeedAutoUpdate)
            {
                updateSubscribeManager.CreateTask(config, updateNodeChecker);
            }

            timerDelayCheckUpdate          = new System.Timers.Timer(1000.0 * 10);
            timerDelayCheckUpdate.Elapsed += timer_Elapsed;
            timerDelayCheckUpdate.Start();
        }