public override void Dispose()
        {
            this.Settings.SetValue(CoreSettings.AutoDeleteFrequency, AutoDeleteFrequencyConverter.FromDescription(this.selectedAutoDelete));
            this.Settings.SetValue(CoreSettings.DefaultPriority, TaskPriorityConverter.FromDescription(this.selectedDefaultPriority));
            this.Settings.SetValue(CoreSettings.DefaultDueDate, DefaultDateConverter.FromDescription(this.selectedDefaultDueDate));
            this.Settings.SetValue(CoreSettings.DefaultStartDate, DefaultDateConverter.FromDescription(this.selectedDefaultStartDate));
            this.Settings.SetValue(CoreSettings.CompletedTasksMode, CompletedTaskModeConverter.FromDescription(this.selectedCompletedTaskMode));
            this.Settings.SetValue(CoreSettings.UseGroupedDates, this.useGroupedDates);
            this.Settings.SetValue(CoreSettings.ShowFutureStartDates, this.showFutureStartDates);
            this.Settings.SetValue(CoreSettings.IncludeNoDateInViews, this.showNoDueWithOther);
            this.Settings.SetValue(CoreSettings.AutoDeleteTags, this.autoDeleteTags);
            this.Settings.SetValue(CoreSettings.CompleteTaskSetProgress, this.completeTaskSetsProgress);

            if (this.selectedDefaultContext != null)
            {
                this.Settings.SetValue(CoreSettings.DefaultContext, this.selectedDefaultContext.Id);
            }
            else
            {
                this.Settings.SetValue(CoreSettings.DefaultContext, -1);
            }

            if (this.selectedBadgeValue != this.originalSelectedBadgeValue)
            {
                string settingValue = null;
                if (this.selectedBadgeValue != this.badgeValues[0])
                {
                    settingValue = LaunchArgumentsHelper.GetArgSelectFolder(this.selectedBadgeValue);
                }

                this.Settings.SetValue(CoreSettings.BadgeValue, settingValue);
                this.tileManager.UpdateTiles();
            }
        }
Ejemplo n.º 2
0
        public static SmartViewRule BuildRule(SmartViewFilter filter, SmartViewField field, object param)
        {
            var rule = GetSupportedRule(field);

            if (rule is SmartViewPriorityRule)
            {
                TaskPriority priority;
                if (param is TaskPriority)
                {
                    priority = (TaskPriority)param;
                }
                else
                {
                    priority = TaskPriorityConverter.FromDescription((string)param);
                }

                return(new SmartViewPriorityRule(filter, field, priority));
            }
            else if (rule is SmartViewStringRule)
            {
                return(new SmartViewStringRule(filter, field, (string)param));
            }
            else if (rule is SmartViewDateRule)
            {
                DateTime datetime = param is DateTime ? (DateTime)param : DateTime.MinValue;
                if (datetime != DateTime.MinValue)
                {
                    return(new SmartViewDateRule(filter, field, new SmartViewDateParameter(datetime)));
                }
                else
                {
                    int value = 0;
                    if (param is string)
                    {
                        string content = (string)param;
                        int.TryParse(content, out value);
                    }
                    else if (param is int)
                    {
                        value = (int)param;
                    }

                    value = Math.Max(0, value);
                    return(new SmartViewDateRule(filter, field, new SmartViewDateParameter(value)));
                }
            }
            else if (rule is SmartViewBoolRule)
            {
                bool value = false;
                if (param is bool)
                {
                    value = (bool)param;
                }

                return(new SmartViewBoolRule(filter, field, value));
            }
            else if (rule is SmartViewFolderRule)
            {
                return(new SmartViewFolderRule(filter, field, (string)param));
            }
            else if (rule is SmartViewContextRule)
            {
                string parameter = (string)param;
                if (string.IsNullOrWhiteSpace(parameter))
                {
                    parameter = "0";
                }

                return(new SmartViewContextRule(filter, field, parameter));
            }
            else if (rule is SmartViewProgressRule)
            {
                double value = 0;
                if (param is string)
                {
                    string content = (string)param;
                    double.TryParse(content, out value);
                }
                else if (param is int)
                {
                    value = (int)param;
                }
                else if (param is double)
                {
                    value = (double)param;
                }

                return(new SmartViewProgressRule(filter, field, value));
            }
            else if (rule is SmartViewTagRule)
            {
                string parameter = (string)param;
                if (string.IsNullOrWhiteSpace(parameter))
                {
                    parameter = "0";
                }

                return(new SmartViewTagRule(filter, field, parameter));
            }
            else
            {
                throw new ArgumentException();
            }
        }