Пример #1
0
        /// <summary>
        /// Removes a <see cref="FeedReference"/> from one or more <see cref="InterfacePreferences"/>.
        /// </summary>
        /// <returns>The interfaces that were actually affected.</returns>
        protected override ICollection <FeedUri> ApplyFeedToInterfaces(FeedUri feedUri, IEnumerable <FeedUri> interfaces)
        {
            #region Sanity checks
            if (feedUri == null)
            {
                throw new ArgumentNullException("feedUri");
            }
            if (interfaces == null)
            {
                throw new ArgumentNullException("interfaces");
            }
            #endregion

            var modified  = new List <FeedUri>();
            var reference = new FeedReference {
                Source = feedUri
            };
            foreach (var interfaceUri in interfaces)
            {
                var preferences = InterfacePreferences.LoadFor(interfaceUri);
                if (preferences.Feeds.Remove(reference))
                {
                    modified.Add(interfaceUri);
                }
                preferences.SaveFor(interfaceUri);
            }
            return(modified);
        }
Пример #2
0
        /// <inheritdoc/>
        public override ExitCode Execute()
        {
            var interfaceUri = GetCanonicalUri(AdditionalArgs[0]);
            var preferences  = InterfacePreferences.LoadFor(interfaceUri);

            Handler.Output(
                string.Format(Resources.FeedsRegistered, interfaceUri),
                preferences.Feeds.Select(x => x.Source));
            return(ExitCode.OK);
        }
Пример #3
0
        private void myContextMenuPopup(object sender, System.EventArgs e)
        {
            m_config = krnGateway.GetConfig();
            ContextMenuShared.MenuItems[0].DefaultItem = true;
            m_CheckPriority();
            MenuInfo.OnMenuInfoChange();

            if (SelectedItems.Count == 0)
            {
                ContextMenuShared.MenuItems[0].Enabled = false;
                ContextMenuShared.MenuItems[1].Enabled = false;
                ContextMenuShared.MenuItems[3].Enabled = false;
                ContextMenuShared.MenuItems[4].Enabled = false;
                ContextMenuShared.MenuItems[5].Enabled = false;
                ContextMenuShared.MenuItems[7].Enabled = false;
                ContextMenuShared.MenuItems[9].Enabled = false;
                PriorityMenu.MenuItems[0].Enabled      = false;
                PriorityMenu.MenuItems[1].Enabled      = false;
                PriorityMenu.MenuItems[2].Enabled      = false;
                PriorityMenu.MenuItems[3].Enabled      = false;
                PriorityMenu.MenuItems[4].Enabled      = false;
            }
            if (SelectedItems.Count == 1)
            {
                ContextMenuShared.MenuItems[0].Enabled = m_IsCompleted();
                ContextMenuShared.MenuItems[1].Enabled = m_IsCompleted();
                ContextMenuShared.MenuItems[3].Enabled = true;
                ContextMenuShared.MenuItems[4].Enabled = true;
                ContextMenuShared.MenuItems[5].Enabled = m_config.IsHighID;
                ContextMenuShared.MenuItems[7].Enabled = true;
                ContextMenuShared.MenuItems[9].Enabled = true;
                PriorityMenu.MenuItems[0].Enabled      = true;
                PriorityMenu.MenuItems[1].Enabled      = true;
                PriorityMenu.MenuItems[2].Enabled      = true;
                PriorityMenu.MenuItems[3].Enabled      = true;
                PriorityMenu.MenuItems[4].Enabled      = true;
            }

            if (SelectedItems.Count > 1)
            {
                ContextMenuShared.MenuItems[0].Enabled = false;
                ContextMenuShared.MenuItems[1].Enabled = true;
                ContextMenuShared.MenuItems[3].Enabled = false;
                ContextMenuShared.MenuItems[4].Enabled = false;
                ContextMenuShared.MenuItems[5].Enabled = false;
                ContextMenuShared.MenuItems[7].Enabled = true;
                ContextMenuShared.MenuItems[9].Enabled = false;
                PriorityMenu.MenuItems[0].Enabled      = true;
                PriorityMenu.MenuItems[1].Enabled      = true;
                PriorityMenu.MenuItems[2].Enabled      = true;
                PriorityMenu.MenuItems[3].Enabled      = true;
                PriorityMenu.MenuItems[4].Enabled      = true;
            }
        }
Пример #4
0
        /// <inheritdoc/>
        protected override ExitCode ExecuteHelper(IEnumerable <FeedUri> interfaces, FeedReference source, Stability suggestedStabilityPolicy)
        {
            #region Sanity checks
            if (interfaces == null)
            {
                throw new ArgumentNullException(nameof(interfaces));
            }
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            #endregion

            var modifiedInterfaces = new List <FeedUri>();
            foreach (var interfaceUri in interfaces)
            {
                var preferences = InterfacePreferences.LoadFor(interfaceUri);
                if (preferences.Feeds.AddIfNew(source))
                {
                    modifiedInterfaces.Add(interfaceUri);
                }

                var effectiveStabilityPolicy = (preferences.StabilityPolicy == Stability.Unset)
                    ? (Config.HelpWithTesting ? Stability.Testing : Stability.Stable)
                    : preferences.StabilityPolicy;
                if (effectiveStabilityPolicy < suggestedStabilityPolicy)
                {
                    string stabilityMessage = string.Format(Resources.StabilityPolicySingleImplementation, suggestedStabilityPolicy);
                    if (Handler.Ask(
                            stabilityMessage + Environment.NewLine + string.Format(Resources.StabilityPolicyAutoSet, interfaceUri.ToStringRfc()),
                            defaultAnswer: false, alternateMessage: stabilityMessage))
                    {
                        preferences.StabilityPolicy = suggestedStabilityPolicy;
                    }
                }
                preferences.SaveFor(interfaceUri);
            }

            if (modifiedInterfaces.Count == 0)
            {
                Handler.OutputLow(Resources.FeedManagement, Resources.FeedAlreadyRegistered);
                return(ExitCode.NoChanges);
            }
            else
            {
                Handler.OutputLow(Resources.FeedManagement,
                                  Resources.FeedRegistered + Environment.NewLine +
                                  StringUtils.Join(Environment.NewLine, modifiedInterfaces.Select(x => x.ToStringRfc())));
                return(ExitCode.OK);
            }
        }
Пример #5
0
        private void InterfaceDialog_Load(object sender, EventArgs e)
        {
            Text = string.Format(Resources.PropertiesFor, _mainFeed.Name);

            _interfacePreferences = InterfacePreferences.LoadForSafe(_interfaceUri);
            if (_interfacePreferences.StabilityPolicy == Stability.Unset)
            {
                comboBoxStability.SelectedItem = Resources.UseDefaultSetting;
            }
            else
            {
                comboBoxStability.SelectedItem = _interfacePreferences.StabilityPolicy;
            }

            LoadFeeds();
            Solve();
        }
Пример #6
0
        /// <inheritdoc/>
        protected override ExitCode ExecuteHelper(IEnumerable <FeedUri> interfaces, FeedReference source, Stability suggestedStabilityPolicy)
        {
            #region Sanity checks
            if (interfaces == null)
            {
                throw new ArgumentNullException(nameof(interfaces));
            }
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            #endregion

            var modifiedInterfaces = new List <FeedUri>();
            foreach (var interfaceUri in interfaces)
            {
                var preferences = InterfacePreferences.LoadFor(interfaceUri);
                if (preferences.Feeds.Remove(source))
                {
                    modifiedInterfaces.Add(interfaceUri);
                    if (preferences.StabilityPolicy == suggestedStabilityPolicy && suggestedStabilityPolicy != Stability.Unset)
                    {
                        if (Handler.Ask(string.Format(Resources.StabilityPolicyReset, interfaceUri.ToStringRfc()), defaultAnswer: false))
                        {
                            preferences.StabilityPolicy = Stability.Unset;
                        }
                    }
                    preferences.SaveFor(interfaceUri);
                }
            }

            if (modifiedInterfaces.Count == 0)
            {
                Handler.OutputLow(Resources.FeedManagement, Resources.FeedNotRegistered);
                return(ExitCode.NoChanges);
            }
            else
            {
                Handler.OutputLow(Resources.FeedManagement,
                                  Resources.FeedUnregistered + Environment.NewLine +
                                  StringUtils.Join(Environment.NewLine, modifiedInterfaces.Select(x => x.ToStringRfc())));
                return(ExitCode.OK);
            }
        }
Пример #7
0
        public void DisplayPreferences(InterfacePreferences preferences)
        {
            txtNick.Text           = preferences.UserName;
            txtMaxConnections.Text = preferences.maxConnexions.ToString();
            txtMaxDown.Text        = preferences.maxDownloadRate.ToString();
            txtMaxUp.Text          = preferences.maxUploadRate.ToString();
            txtMaxSources.Text     = preferences.maxSources.ToString();
            txtTcpPort.Text        = preferences.TCPPort.ToString();
            txtUdpPort.Text        = preferences.UDPPort.ToString();

            foreach (string sharedFolder in preferences.sharedFolders)
            {
                if (sharedFolder == preferences.sharedFolders[0])
                {
                    txtIncomingFolder.Text = sharedFolder;
                }
                else
                {
                    stSharedFolders.AppendValues(sharedFolder);
                }
            }

            foreach (string tmpFolder in preferences.TempFolders)
            {
                stTempFolders.AppendValues(tmpFolder);
            }

            chbEnableICH.Active   = preferences.ICHEnabled;
            chbAutoConnect.Active = preferences.Autoreconect;
            chbIpFilter.Active    = preferences.IPFilterEnabled;

            radioShareAll.Active     = (preferences.AllowViewShared == Constants.AllowViewShared.All);
            radioShareFriends.Active = (preferences.AllowViewShared == Constants.AllowViewShared.Friends);
            radioShareNobody.Active  = (preferences.AllowViewShared == Constants.AllowViewShared.Nobody);

            txtServerList.Text   = preferences.ServerMetUri;
            chbServerList.Active = preferences.DownloadServerMet;
        }
Пример #8
0
        private void InterfaceDialog_Load(object sender, EventArgs e)
        {
            Text = string.Format(Resources.PropertiesFor, _mainFeed.Name);

            _interfacePreferences = InterfacePreferences.LoadForSafe(_interfaceUri);
            if (_interfacePreferences.StabilityPolicy == Stability.Unset) comboBoxStability.SelectedItem = Resources.UseDefaultSetting;
            else comboBoxStability.SelectedItem = _interfacePreferences.StabilityPolicy;

            LoadFeeds();
            Solve();
        }
Пример #9
0
 public void SetPreferences()
 {
     int i, num_rows;
     bool exists_iter;
     Gtk.TreeIter iter;
     Gtk.TreeView tv;
     m_CheckPreferences();
     InterfacePreferences preferences = new InterfacePreferences();
     exists_iter = stSharedFolders.GetIterFirst (out iter);
     num_rows=0;
     /* Get the number of rows */
     while (exists_iter==true)
     {
     exists_iter = stSharedFolders.IterNext (ref iter);
     num_rows++;
     }
     preferences.sharedFolders = new string[num_rows+1];
     preferences.TempFolders = new string[1];
     preferences.sharedFolders[0] = txtIncomingFolder.Text;
     /* Save the shared folders */
     stSharedFolders.GetIterFirst (out iter);
     for (i=1; i<=num_rows; i++)
     {
     preferences.sharedFolders[i] = tvSharedFolders.Model.GetValue(iter,0).ToString();
     stSharedFolders.IterNext (ref iter);
     }
     exists_iter = stTempFolders.GetIterFirst (out iter);
     num_rows=0;
     /* Get the number of rows */
     while (exists_iter==true)
     {
     exists_iter = stTempFolders.IterNext (ref iter);
     num_rows++;
     }
     preferences.TempFolders = new string[num_rows];
     /* Save the temp folders */
     stTempFolders.GetIterFirst (out iter);
     for (i=0; i<num_rows; i++)
     {
     preferences.TempFolders[i] = tvTempFolders.Model.GetValue(iter,0).ToString();
     stTempFolders.IterNext (ref iter);
     }
     preferences.maxConnexions = Convert.ToInt32(txtMaxConnections.Text);
     preferences.maxDownloadRate = (float)Convert.ToDouble(txtMaxDown.Text);
     preferences.maxSources = Convert.ToInt32(txtMaxSources.Text);
     preferences.maxUploadRate = (float)Convert.ToDouble(txtMaxUp.Text);
     preferences.UserName = txtNick.Text;
     preferences.TCPPort = Convert.ToUInt16(txtTcpPort.Text);
     preferences.UDPPort = Convert.ToUInt16(txtUdpPort.Text);
     preferences.ICHEnabled = chbEnableICH.Active;
     preferences.Autoreconect = chbAutoConnect.Active;
     preferences.maxServerFails = 2;
     preferences.DownloadServerMet = chbServerList.Active;
     preferences.ServerMetUri = txtServerList.Text;
     preferences.RemoteControlEnabled=false;
     preferences.RemoteControlPort=Convert.ToInt32("4771");
     preferences.RemoteControlPassword="******";
     preferences.Language="en-US";
     preferences.OSigEnabled=true;
     if (radioShareAll.Active) preferences.AllowViewShared=Constants.AllowViewShared.All;
     else if (radioShareFriends.Active) preferences.AllowViewShared=Constants.AllowViewShared.Friends;
     else if (radioShareNobody.Active) preferences.AllowViewShared=Constants.AllowViewShared.Nobody;
     preferences.IPFilterEnabled=chbIpFilter.Active;
     krnGateway.SetConfig(preferences);
 }
Пример #10
0
 public void DisplayPreferences(InterfacePreferences preferences)
 {
     txtNick.Text = preferences.UserName;
     txtMaxConnections.Text = preferences.maxConnexions.ToString();
     txtMaxDown.Text = preferences.maxDownloadRate.ToString();
     txtMaxUp.Text = preferences.maxUploadRate.ToString();
     txtMaxSources.Text = preferences.maxSources.ToString();
     txtTcpPort.Text = preferences.TCPPort.ToString();
     txtUdpPort.Text = preferences.UDPPort.ToString();
     foreach (string sharedFolder in preferences.sharedFolders)
     {
     if (sharedFolder==preferences.sharedFolders[0])
     {
         txtIncomingFolder.Text = sharedFolder;
     }
     else
     {
         stSharedFolders.AppendValues (sharedFolder);
     }
     }
     foreach (string tmpFolder in preferences.TempFolders)
     {
     stTempFolders.AppendValues (tmpFolder);
     }
     chbEnableICH.Active = preferences.ICHEnabled;
     chbAutoConnect.Active = preferences.Autoreconect;
     chbIpFilter.Active = preferences.IPFilterEnabled;
     radioShareAll.Active = (preferences.AllowViewShared==Constants.AllowViewShared.All);
     radioShareFriends.Active = (preferences.AllowViewShared==Constants.AllowViewShared.Friends);
     radioShareNobody.Active = (preferences.AllowViewShared==Constants.AllowViewShared.Nobody);
     txtServerList.Text = preferences.ServerMetUri;
     chbServerList.Active = preferences.DownloadServerMet;
 }
Пример #11
0
 public void SetConfig(InterfacePreferences config)
 {
     krnGateway.SetConfig(config);
 }
Пример #12
0
        public void SetPreferences()
        {
            int  i, num_rows;
            bool exists_iter;

            Gtk.TreeIter iter;
            Gtk.TreeView tv;

            m_CheckPreferences();

            InterfacePreferences preferences = new InterfacePreferences();

            exists_iter = stSharedFolders.GetIterFirst(out iter);
            num_rows    = 0;

            /* Get the number of rows */
            while (exists_iter == true)
            {
                exists_iter = stSharedFolders.IterNext(ref iter);
                num_rows++;
            }

            preferences.sharedFolders = new string[num_rows + 1];
            preferences.TempFolders   = new string[1];

            preferences.sharedFolders[0] = txtIncomingFolder.Text;

            /* Save the shared folders */
            stSharedFolders.GetIterFirst(out iter);

            for (i = 1; i <= num_rows; i++)
            {
                preferences.sharedFolders[i] = tvSharedFolders.Model.GetValue(iter, 0).ToString();
                stSharedFolders.IterNext(ref iter);
            }

            exists_iter = stTempFolders.GetIterFirst(out iter);
            num_rows    = 0;

            /* Get the number of rows */
            while (exists_iter == true)
            {
                exists_iter = stTempFolders.IterNext(ref iter);
                num_rows++;
            }

            preferences.TempFolders = new string[num_rows];

            /* Save the temp folders */
            stTempFolders.GetIterFirst(out iter);

            for (i = 0; i < num_rows; i++)
            {
                preferences.TempFolders[i] = tvTempFolders.Model.GetValue(iter, 0).ToString();
                stTempFolders.IterNext(ref iter);
            }

            preferences.maxConnexions     = Convert.ToInt32(txtMaxConnections.Text);
            preferences.maxDownloadRate   = (float)Convert.ToDouble(txtMaxDown.Text);
            preferences.maxSources        = Convert.ToInt32(txtMaxSources.Text);
            preferences.maxUploadRate     = (float)Convert.ToDouble(txtMaxUp.Text);
            preferences.UserName          = txtNick.Text;
            preferences.TCPPort           = Convert.ToUInt16(txtTcpPort.Text);
            preferences.UDPPort           = Convert.ToUInt16(txtUdpPort.Text);
            preferences.ICHEnabled        = chbEnableICH.Active;
            preferences.Autoreconect      = chbAutoConnect.Active;
            preferences.maxServerFails    = 2;
            preferences.DownloadServerMet = chbServerList.Active;
            preferences.ServerMetUri      = txtServerList.Text;

            preferences.RemoteControlEnabled  = false;
            preferences.RemoteControlPort     = Convert.ToInt32("4771");
            preferences.RemoteControlPassword = "******";

            preferences.Language    = "en-US";
            preferences.OSigEnabled = true;

            if (radioShareAll.Active)
            {
                preferences.AllowViewShared = Constants.AllowViewShared.All;
            }
            else if (radioShareFriends.Active)
            {
                preferences.AllowViewShared = Constants.AllowViewShared.Friends;
            }
            else if (radioShareNobody.Active)
            {
                preferences.AllowViewShared = Constants.AllowViewShared.Nobody;
            }

            preferences.IPFilterEnabled = chbIpFilter.Active;

            krnGateway.SetConfig(preferences);
        }