Statistics
| Branch: | Revision:

root / trunk / Pithos.Client.WPF / Configuration / PithosSettings.cs @ 5d7b20e8

History | View | Annotate | Download (7 kB)

1 255f5f86 Panagiotis Kanavos
#region
2 255f5f86 Panagiotis Kanavos
/* -----------------------------------------------------------------------
3 255f5f86 Panagiotis Kanavos
 * <copyright file="PithosSettings.cs" company="GRNet">
4 255f5f86 Panagiotis Kanavos
 * 
5 255f5f86 Panagiotis Kanavos
 * Copyright 2011-2012 GRNET S.A. All rights reserved.
6 255f5f86 Panagiotis Kanavos
 *
7 255f5f86 Panagiotis Kanavos
 * Redistribution and use in source and binary forms, with or
8 255f5f86 Panagiotis Kanavos
 * without modification, are permitted provided that the following
9 255f5f86 Panagiotis Kanavos
 * conditions are met:
10 255f5f86 Panagiotis Kanavos
 *
11 255f5f86 Panagiotis Kanavos
 *   1. Redistributions of source code must retain the above
12 255f5f86 Panagiotis Kanavos
 *      copyright notice, this list of conditions and the following
13 255f5f86 Panagiotis Kanavos
 *      disclaimer.
14 255f5f86 Panagiotis Kanavos
 *
15 255f5f86 Panagiotis Kanavos
 *   2. Redistributions in binary form must reproduce the above
16 255f5f86 Panagiotis Kanavos
 *      copyright notice, this list of conditions and the following
17 255f5f86 Panagiotis Kanavos
 *      disclaimer in the documentation and/or other materials
18 255f5f86 Panagiotis Kanavos
 *      provided with the distribution.
19 255f5f86 Panagiotis Kanavos
 *
20 255f5f86 Panagiotis Kanavos
 *
21 255f5f86 Panagiotis Kanavos
 * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
22 255f5f86 Panagiotis Kanavos
 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
23 255f5f86 Panagiotis Kanavos
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24 255f5f86 Panagiotis Kanavos
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
25 255f5f86 Panagiotis Kanavos
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 255f5f86 Panagiotis Kanavos
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 255f5f86 Panagiotis Kanavos
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
28 255f5f86 Panagiotis Kanavos
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
29 255f5f86 Panagiotis Kanavos
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 255f5f86 Panagiotis Kanavos
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31 255f5f86 Panagiotis Kanavos
 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 255f5f86 Panagiotis Kanavos
 * POSSIBILITY OF SUCH DAMAGE.
33 255f5f86 Panagiotis Kanavos
 *
34 255f5f86 Panagiotis Kanavos
 * The views and conclusions contained in the software and
35 255f5f86 Panagiotis Kanavos
 * documentation are those of the authors and should not be
36 255f5f86 Panagiotis Kanavos
 * interpreted as representing official policies, either expressed
37 255f5f86 Panagiotis Kanavos
 * or implied, of GRNET S.A.
38 255f5f86 Panagiotis Kanavos
 * </copyright>
39 255f5f86 Panagiotis Kanavos
 * -----------------------------------------------------------------------
40 255f5f86 Panagiotis Kanavos
 */
41 255f5f86 Panagiotis Kanavos
#endregion
42 9bae55d1 Panagiotis Kanavos
using System.ComponentModel.Composition;
43 cd1bbba9 Panagiotis Kanavos
using System.Diagnostics;
44 9bae55d1 Panagiotis Kanavos
using Pithos.Client.WPF.Properties;
45 9bae55d1 Panagiotis Kanavos
using Pithos.Interfaces;
46 9bae55d1 Panagiotis Kanavos
47 9bae55d1 Panagiotis Kanavos
namespace Pithos.Client.WPF.Configuration
48 9bae55d1 Panagiotis Kanavos
{
49 9bae55d1 Panagiotis Kanavos
    using System;
50 9bae55d1 Panagiotis Kanavos
51 9bae55d1 Panagiotis Kanavos
    [Export(typeof(IPithosSettings))]
52 0c02aa65 Panagiotis Kanavos
    [Export]
53 5bcf6d70 Panagiotis Kanavos
    public class PithosSettings :  IPithosSettings
54 9bae55d1 Panagiotis Kanavos
    {
55 f734ab5b Panagiotis Kanavos
        private readonly Settings _settings = Settings.Default;
56 f734ab5b Panagiotis Kanavos
57 74d78c90 Panagiotis Kanavos
        public PithosSettings()
58 74d78c90 Panagiotis Kanavos
        {
59 cd1bbba9 Panagiotis Kanavos
            //Settings should already be upgraded by the time we reach this point
60 cd1bbba9 Panagiotis Kanavos
            Debug.Assert(!_settings.MustUpgrade);
61 cd1bbba9 Panagiotis Kanavos
            //_settings.Upgrade();
62 74d78c90 Panagiotis Kanavos
        }
63 74d78c90 Panagiotis Kanavos
64 5bcf6d70 Panagiotis Kanavos
        public bool UseDefaultProxy
65 5bcf6d70 Panagiotis Kanavos
        {
66 f734ab5b Panagiotis Kanavos
            get { return _settings.UseDefaultProxy; }
67 f734ab5b Panagiotis Kanavos
            set { _settings.UseDefaultProxy = value; }
68 5bcf6d70 Panagiotis Kanavos
        }
69 5bcf6d70 Panagiotis Kanavos
70 5bcf6d70 Panagiotis Kanavos
        public bool UseManualProxy
71 5bcf6d70 Panagiotis Kanavos
        {
72 f734ab5b Panagiotis Kanavos
            get { return _settings.UseManualProxy; }
73 f734ab5b Panagiotis Kanavos
            set { _settings.UseManualProxy = value; }
74 5bcf6d70 Panagiotis Kanavos
        }
75 5bcf6d70 Panagiotis Kanavos
76 5bcf6d70 Panagiotis Kanavos
        public bool UseNoProxy
77 5bcf6d70 Panagiotis Kanavos
        {
78 f734ab5b Panagiotis Kanavos
            get { return _settings.UseNoProxy; }
79 f734ab5b Panagiotis Kanavos
            set { _settings.UseNoProxy = value; }
80 5bcf6d70 Panagiotis Kanavos
        }
81 5bcf6d70 Panagiotis Kanavos
82 9bae55d1 Panagiotis Kanavos
        public string PithosPath
83 9bae55d1 Panagiotis Kanavos
        {
84 f734ab5b Panagiotis Kanavos
            get { return _settings.PithosPath; }
85 f734ab5b Panagiotis Kanavos
            set { _settings.PithosPath = value; }
86 9bae55d1 Panagiotis Kanavos
        }
87 9bae55d1 Panagiotis Kanavos
88 f734ab5b Panagiotis Kanavos
      /*  public string PithosSite
89 5bcf6d70 Panagiotis Kanavos
        {
90 f734ab5b Panagiotis Kanavos
            get { return _settings.PithosSite; }
91 f734ab5b Panagiotis Kanavos
        }*/
92 5bcf6d70 Panagiotis Kanavos
93 20e9a378 Panagiotis Kanavos
        public string PithosLoginUrl
94 20e9a378 Panagiotis Kanavos
        {
95 f734ab5b Panagiotis Kanavos
            get { return _settings.PithosLoginUrl; }
96 20e9a378 Panagiotis Kanavos
        }
97 20e9a378 Panagiotis Kanavos
98 9bae55d1 Panagiotis Kanavos
        public string IconsPath
99 9bae55d1 Panagiotis Kanavos
        {
100 f734ab5b Panagiotis Kanavos
            get { return _settings.IconPath; }
101 f734ab5b Panagiotis Kanavos
            set { _settings.IconPath = value; }
102 9bae55d1 Panagiotis Kanavos
        }
103 9bae55d1 Panagiotis Kanavos
104 9bae55d1 Panagiotis Kanavos
        public string UserName
105 9bae55d1 Panagiotis Kanavos
        {
106 f734ab5b Panagiotis Kanavos
            get { return _settings.UserName; }
107 f734ab5b Panagiotis Kanavos
            set { _settings.UserName = value; }
108 9bae55d1 Panagiotis Kanavos
        }
109 9bae55d1 Panagiotis Kanavos
110 9bae55d1 Panagiotis Kanavos
        public string ApiKey
111 9bae55d1 Panagiotis Kanavos
        {
112 f734ab5b Panagiotis Kanavos
            get { return _settings.ApiKey; }
113 f734ab5b Panagiotis Kanavos
            set { _settings.ApiKey = value; }
114 9bae55d1 Panagiotis Kanavos
        }
115 9bae55d1 Panagiotis Kanavos
116 9bae55d1 Panagiotis Kanavos
        public AccountsCollection Accounts
117 9bae55d1 Panagiotis Kanavos
        {
118 049333d2 Panagiotis Kanavos
            get { return _settings.Accounts ?? (_settings.Accounts = new AccountsCollection()); }
119 f734ab5b Panagiotis Kanavos
            set { _settings.Accounts = value; }
120 9bae55d1 Panagiotis Kanavos
        }
121 9bae55d1 Panagiotis Kanavos
122 9bae55d1 Panagiotis Kanavos
        public string ProxyServer
123 9bae55d1 Panagiotis Kanavos
        {
124 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyServer; }
125 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyServer = value; }
126 9bae55d1 Panagiotis Kanavos
        }
127 9bae55d1 Panagiotis Kanavos
128 5bcf6d70 Panagiotis Kanavos
        public int ProxyPort
129 9bae55d1 Panagiotis Kanavos
        {
130 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyPort; }
131 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyPort = value; }
132 9bae55d1 Panagiotis Kanavos
        }
133 9bae55d1 Panagiotis Kanavos
134 9bae55d1 Panagiotis Kanavos
        public string ProxyUsername
135 9bae55d1 Panagiotis Kanavos
        {
136 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyUsername; }
137 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyUsername = value; }
138 9bae55d1 Panagiotis Kanavos
        }
139 9bae55d1 Panagiotis Kanavos
140 9bae55d1 Panagiotis Kanavos
141 9bae55d1 Panagiotis Kanavos
        public string ProxyPassword
142 9bae55d1 Panagiotis Kanavos
        {
143 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyPassword; }
144 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyPassword = value; }
145 9bae55d1 Panagiotis Kanavos
        }
146 9bae55d1 Panagiotis Kanavos
147 65282d58 Panagiotis Kanavos
        public string ProxyDomain
148 65282d58 Panagiotis Kanavos
        {
149 65282d58 Panagiotis Kanavos
            get { return _settings.ProxyDomain; }
150 65282d58 Panagiotis Kanavos
            set { _settings.ProxyDomain = value; }
151 65282d58 Panagiotis Kanavos
        }
152 65282d58 Panagiotis Kanavos
153 9bae55d1 Panagiotis Kanavos
        public bool ProxyAuthentication
154 9bae55d1 Panagiotis Kanavos
        {
155 9bae55d1 Panagiotis Kanavos
156 f734ab5b Panagiotis Kanavos
            get { return _settings.ProxyAuthentication; }
157 f734ab5b Panagiotis Kanavos
            set { _settings.ProxyAuthentication = value; }
158 9bae55d1 Panagiotis Kanavos
        }
159 20e9a378 Panagiotis Kanavos
160 20e9a378 Panagiotis Kanavos
        
161 9bae55d1 Panagiotis Kanavos
        
162 9bae55d1 Panagiotis Kanavos
        public bool ExtensionsActivated
163 9bae55d1 Panagiotis Kanavos
        {
164 9bae55d1 Panagiotis Kanavos
165 f734ab5b Panagiotis Kanavos
            get { return _settings.ExtensionsActivated; }
166 f734ab5b Panagiotis Kanavos
            set { _settings.ExtensionsActivated = value; }
167 9bae55d1 Panagiotis Kanavos
        }
168 9bae55d1 Panagiotis Kanavos
169 0c02aa65 Panagiotis Kanavos
        public bool ShowDesktopNotifications
170 0c02aa65 Panagiotis Kanavos
        {
171 f734ab5b Panagiotis Kanavos
            get { return _settings.ShowDesktopNotifications; }
172 f734ab5b Panagiotis Kanavos
            set { _settings.ShowDesktopNotifications = value; }
173 0c02aa65 Panagiotis Kanavos
        }
174 133f83c2 Panagiotis Kanavos
175 133f83c2 Panagiotis Kanavos
176 133f83c2 Panagiotis Kanavos
        public int PollingInterval
177 133f83c2 Panagiotis Kanavos
        {
178 133f83c2 Panagiotis Kanavos
            get { return _settings.PollingInterval; }
179 133f83c2 Panagiotis Kanavos
            set
180 133f83c2 Panagiotis Kanavos
            {
181 133f83c2 Panagiotis Kanavos
                if (value <= 0)
182 133f83c2 Panagiotis Kanavos
                    throw new ArgumentOutOfRangeException();
183 133f83c2 Panagiotis Kanavos
                _settings.PollingInterval = value;
184 133f83c2 Panagiotis Kanavos
            }
185 133f83c2 Panagiotis Kanavos
        }
186 29a6b387 Panagiotis Kanavos
187 759bd3c4 Panagiotis Kanavos
        public TimeSpan StartupDelay
188 759bd3c4 Panagiotis Kanavos
        {
189 759bd3c4 Panagiotis Kanavos
            get { return _settings.StartupDelay; }
190 759bd3c4 Panagiotis Kanavos
            set
191 759bd3c4 Panagiotis Kanavos
            {
192 759bd3c4 Panagiotis Kanavos
                if (value < TimeSpan.Zero)
193 759bd3c4 Panagiotis Kanavos
                    throw new ArgumentOutOfRangeException();
194 759bd3c4 Panagiotis Kanavos
                _settings.StartupDelay = value;
195 759bd3c4 Panagiotis Kanavos
            }
196 759bd3c4 Panagiotis Kanavos
        }
197 759bd3c4 Panagiotis Kanavos
198 759bd3c4 Panagiotis Kanavos
199 29a6b387 Panagiotis Kanavos
        public bool StartOnSystemStartup
200 29a6b387 Panagiotis Kanavos
        {
201 29a6b387 Panagiotis Kanavos
            get { return _settings.StartOnSystemStartup; }
202 29a6b387 Panagiotis Kanavos
            set
203 29a6b387 Panagiotis Kanavos
            {
204 29a6b387 Panagiotis Kanavos
                _settings.StartOnSystemStartup = value;
205 29a6b387 Panagiotis Kanavos
            }
206 29a6b387 Panagiotis Kanavos
        }
207 422c9598 Panagiotis Kanavos
208 422c9598 Panagiotis Kanavos
        public byte HashingParallelism
209 422c9598 Panagiotis Kanavos
        {
210 422c9598 Panagiotis Kanavos
            get { return _settings.HashingParallelism; }
211 422c9598 Panagiotis Kanavos
            set { _settings.HashingParallelism = value; }
212 422c9598 Panagiotis Kanavos
        }
213 9bae55d1 Panagiotis Kanavos
214 049333d2 Panagiotis Kanavos
        public string UpdateUrl
215 049333d2 Panagiotis Kanavos
        {
216 049333d2 Panagiotis Kanavos
            get { return _settings.UpdateUrl; }
217 049333d2 Panagiotis Kanavos
        }
218 049333d2 Panagiotis Kanavos
219 049333d2 Panagiotis Kanavos
        public bool UpdateDiagnostics
220 049333d2 Panagiotis Kanavos
        {
221 049333d2 Panagiotis Kanavos
            get { return _settings.UpdateDiagnostics; }
222 049333d2 Panagiotis Kanavos
        }
223 049333d2 Panagiotis Kanavos
224 049333d2 Panagiotis Kanavos
        public TimeSpan UpdateCheckInterval
225 049333d2 Panagiotis Kanavos
        {
226 049333d2 Panagiotis Kanavos
            get { return _settings.UpdateCheckInterval; }
227 049333d2 Panagiotis Kanavos
        }
228 049333d2 Panagiotis Kanavos
229 bb679ec8 Panagiotis Kanavos
        public TimeSpan FileIdleTimeout
230 bb679ec8 Panagiotis Kanavos
        {
231 bb679ec8 Panagiotis Kanavos
            get { return _settings.FileIdleTimeout; }
232 bb679ec8 Panagiotis Kanavos
        }
233 bb679ec8 Panagiotis Kanavos
234 5d7b20e8 Panagiotis Kanavos
        public bool UpdateForceCheck
235 5d7b20e8 Panagiotis Kanavos
        {
236 5d7b20e8 Panagiotis Kanavos
            get { return _settings.UpdateForceCheck; }
237 5d7b20e8 Panagiotis Kanavos
        }
238 5d7b20e8 Panagiotis Kanavos
239 9bae55d1 Panagiotis Kanavos
        public void Save()
240 9bae55d1 Panagiotis Kanavos
        {
241 f734ab5b Panagiotis Kanavos
            _settings.Save();
242 34bdb91d Panagiotis Kanavos
            Proxy.SetFromSettings(this);
243 9bae55d1 Panagiotis Kanavos
        }
244 9bae55d1 Panagiotis Kanavos
245 9bae55d1 Panagiotis Kanavos
        public void Reload()
246 9bae55d1 Panagiotis Kanavos
        {
247 f734ab5b Panagiotis Kanavos
            _settings.Reload();
248 9bae55d1 Panagiotis Kanavos
        }
249 174bbb6e Panagiotis Kanavos
250 174bbb6e Panagiotis Kanavos
        public void Reset()
251 174bbb6e Panagiotis Kanavos
        {
252 174bbb6e Panagiotis Kanavos
            _settings.Reset();
253 174bbb6e Panagiotis Kanavos
            _settings.Save();
254 174bbb6e Panagiotis Kanavos
        }
255 9bae55d1 Panagiotis Kanavos
    }
256 9bae55d1 Panagiotis Kanavos
}