Example #1
0
        void HandlePoliciesComboChanged(object sender, EventArgs e)
        {
            if (!loading)
            {
                if (currentSet != null)
                {
                    // Save current values
                    if (ValidateChanges())
                    {
                        base.ApplyChanges();
                        currentSet.CopyFrom(editingSet);
                    }
                    else
                    {
                        // There are validation errors. Cancel the policy switch
                        int last = policiesCombo.Active;
                        Application.Invoke(delegate {
                            loading = true;
                            policiesCombo.Active = last;
                            loading = false;
                        });
                        return;
                    }
                }

                if (policiesCombo.Active != -1 && policiesCombo.Active < sets.Count)
                {
                    // Load the new values
                    currentSet      = sets [policiesCombo.Active];
                    editingSet.Name = currentSet.Name;
                    editingSet.CopyFrom(currentSet);
                }
            }
        }
Example #2
0
        void HandleNewButtonClicked(object sender, EventArgs e)
        {
            HashSet <PolicySet> esets = new HashSet <PolicySet> (PolicyService.GetPolicySets());

            esets.ExceptWith(PolicyService.GetUserPolicySets());
            esets.UnionWith(sets);
            esets.RemoveWhere(p => !p.Visible);

            NewPolicySetDialog dlg = new NewPolicySetDialog(new List <PolicySet> (esets));

            try {
                if (MessageService.RunCustomDialog(dlg, this) == (int)ResponseType.Ok)
                {
                    PolicySet pset = new PolicySet();
                    pset.CopyFrom(dlg.SourceSet);
                    pset.Name = GetUnusedName(dlg.PolicyName);
                    sets.Add(pset);
                    FillPolicySets();
                    policiesCombo.Active = sets.IndexOf(pset);
                }
            } finally {
                dlg.Destroy();
                dlg.Dispose();
            }
        }
Example #3
0
        void FillPolicySets()
        {
            loading = true;
            int current = policiesCombo.Active;

            ((ListStore)policiesCombo.Model).Clear();
            policiesCombo.WidthRequest = -1;

            sets.Sort((p1, p2) => p1.Name.CompareTo(p2.Name));

            foreach (PolicySet pset in sets)
            {
                policiesCombo.AppendText(pset.Name ?? "");
            }
            if (current == -1 && sets.Count > 0)
            {
                policiesCombo.Active = 0;
            }
            else if (current >= sets.Count)
            {
                policiesCombo.Active = sets.Count - 1;
            }
            else
            {
                policiesCombo.Active = current;
            }

            if (policiesCombo.SizeRequest().Width < 200)
            {
                policiesCombo.WidthRequest = 200;
            }

            loading = false;

            if (policiesCombo.Active != -1 && sets [policiesCombo.Active] != currentSet)
            {
                currentSet      = sets [policiesCombo.Active];
                editingSet.Name = currentSet.Name;
                editingSet.CopyFrom(currentSet);
            }
            UpdateStatus();
        }
Example #4
0
        void HandleFromProject(object sender, EventArgs e)
        {
            ImportProjectPolicyDialog dlg = new ImportProjectPolicyDialog();

            try {
                if (MessageService.RunCustomDialog(dlg, this) == (int)Gtk.ResponseType.Ok)
                {
                    PolicySet pset = new PolicySet();
                    pset.CopyFrom(dlg.SelectedItem.Policies);
                    pset.Name = GetValidName(dlg.PolicyName);
                    sets.Add(pset);
                    FillPolicySets();
                    policiesCombo.Active = sets.IndexOf(pset);
                }
            } finally {
                dlg.Destroy();
            }
        }