Revision badcef63

b/trunk/NetSparkle/NetSparkleForm.cs
1 1
using System;
2 2
using System.Diagnostics;
3 3
using System.Drawing;
4
using System.Net;
4 5
using System.Windows.Forms;
5 6

  
6 7
namespace AppLimit.NetSparkle
......
35 36
            else
36 37
            {
37 38
                if (item.ReleaseNotesLink != null && item.ReleaseNotesLink.Length > 0)
38
                    NetSparkleBrowser.Navigate(item.ReleaseNotesLink);
39
                {
40
                    using (var client = new WebClient())
41
                    {
42
                        //Download the content instead of navigating to it, to bypass
43
                        //the Content-Disposition header
44
                        NetSparkleBrowser.DocumentText = client.DownloadString(item.ReleaseNotesLink);
45
                    }
46
                }
39 47
                else
40 48
                    RemoveReleaseNotesControls();
41 49
            }
b/trunk/Pithos.Client.WPF/Pithos.Client.WPF.csproj
307 307
      <DependentUpon>GroupsView.xaml</DependentUpon>
308 308
    </Compile>
309 309
    <Compile Include="Preferences\GroupsViewModel.cs" />
310
    <Compile Include="Preferences\LoginView.xaml.cs">
311
      <DependentUpon>LoginView.xaml</DependentUpon>
312
    </Compile>
310 313
    <Compile Include="Preferences\ProxyAccountView.xaml.cs">
311 314
      <DependentUpon>ProxyAccountView.xaml</DependentUpon>
312 315
    </Compile>
......
380 383
      <Generator>MSBuild:Compile</Generator>
381 384
      <SubType>Designer</SubType>
382 385
    </Page>
386
    <Page Include="Preferences\LoginView.xaml">
387
      <SubType>Designer</SubType>
388
      <Generator>MSBuild:Compile</Generator>
389
    </Page>
383 390
    <Page Include="Preferences\ProxyAccountView.xaml">
384 391
      <SubType>Designer</SubType>
385 392
      <Generator>MSBuild:Compile</Generator>
b/trunk/Pithos.Client.WPF/PithosAccount.cs
45 45

  
46 46
using System.IO;
47 47
using System.Reflection;
48
using Pithos.Client.WPF.Preferences;
48 49
using Pithos.Network;
49 50
using log4net;
50 51

  
......
75 76
        /// </summary>
76 77
        /// <param name="loginUrl">URL to retrieve the account info from PITHOS. Must end with =</param>
77 78
        /// <returns>The credentials wrapped in a Task</returns>
78
        public static Task<NetworkCredential> RetrieveCredentials(string loginUrl)
79
        public static NetworkCredential RetrieveCredentials(string loginUrl,string accountName=null)
79 80
        {
80 81
            Contract.Requires(Uri.IsWellFormedUriString(loginUrl, UriKind.Absolute));
81 82

  
82 83
            if (!Uri.IsWellFormedUriString(loginUrl, UriKind.Absolute))
83 84
                throw new ArgumentException("The pithosSite parameter must be a valid absolute URL", "loginUrl");
84 85
            
85
            int port = GetFreePort();
86
            //int port = GetFreePort();
86 87
            
87 88
            //TODO:Force logout here to take care of existing cookies
88 89

  
89 90

  
90
            var listenerUrl = String.Format("http://127.0.0.1:{0}", port);
91
            //var listenerUrl = String.Format("http://127.0.0.1:{0}", port);
92
            var listenerUrl = "pithos://127.0.0.1";
91 93

  
92 94
            
93 95

  
94
            var receiveCredentials = ListenForRedirectAsync(port);
96
            //var receiveCredentials = ListenForRedirectAsync(port);
95 97

  
96
            var logoutUrl = loginUrl.Replace("login", "im/logout");
97
            var logoutProcess=Process.Start(logoutUrl);            
98
            TaskEx.Delay(2000).Wait();
99
            var uriBuilder=new UriBuilder(loginUrl);                       
100
            uriBuilder.Query=String.Format("next={0}&force=", listenerUrl);
98
            //var logoutUrl = loginUrl.Replace("login", "im/logout");
99
            //var logoutProcess=Process.Start(logoutUrl);            
100
            //TaskEx.Delay(2000).Wait();
101
            var uriBuilder = new UriBuilder(loginUrl)
102
                                 {
103
                                     Query = String.Format("next={0}&force=", listenerUrl)
104
                                 };
101 105

  
102 106
            var retrieveUri = uriBuilder.Uri;
107

  
108

  
109
            var browser = new LoginView(retrieveUri,accountName);            
110
            if (true == browser.ShowDialog())
111
            {
112
                return new NetworkCredential(browser.Account, browser.Token);
113
            }
114
            return null;
115

  
116
/*
117

  
103 118
            Log.InfoFormat("[RETRIEVE] Open Browser at {0}", retrieveUri);
104 119
            Process.Start(retrieveUri.ToString());
105 120

  
106 121
            return receiveCredentials;
122
*/
107 123
        }
108 124

  
109 125
/*
b/trunk/Pithos.Client.WPF/Preferences/AddAccountViewModel.cs
199 199
        }
200 200

  
201 201

  
202
        public async void RetrieveCredentials()
202
        public void RetrieveCredentials()
203 203
        {
204 204
            SetBusy("Waiting for credentials.", "Please enter your credentials in the Pithos logon page");
205 205
            IsConfirmed = false;
206 206

  
207 207
            try
208 208
            {
209
                var credentials = await PithosAccount.RetrieveCredentials(Settings.Default.PithosLoginUrl);
209
                var credentials = PithosAccount.RetrieveCredentials(Settings.Default.PithosLoginUrl);
210
                if (credentials == null)
211
                    return;
210 212
                AccountName = credentials.UserName;
211 213
                Token = credentials.Password;
212 214

  
b/trunk/Pithos.Client.WPF/Preferences/LoginView.xaml
1
<Window x:Class="Pithos.Client.WPF.Preferences.LoginView"
2
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4
        Title="Astakos Login" Height="800" Width="1024" Icon="/PithosPlus;component/Images/PithosTaskbar.png"
5
        x:Name="TheView">
6
    <Grid>
7
        <Grid.RowDefinitions>
8
            <RowDefinition Height="Auto"/>
9
            <RowDefinition/>
10
        </Grid.RowDefinitions>
11
        <Grid Margin="5" Grid.Row="0">
12
            <Grid.ColumnDefinitions>                
13
                <ColumnDefinition Width="Auto"/>
14
                <ColumnDefinition Width="Auto"/>
15
                <ColumnDefinition/>
16
                <ColumnDefinition Width="Auto"/>
17
            </Grid.ColumnDefinitions>
18
            <Image Grid.Column="0" Width="16" Height="16" Source="/PithosPlus;component/Images/Tray.ico" />
19
            <TextBlock Text="URL:" Grid.Column="1" Margin="5,0,5,0" VerticalAlignment="Center"/>
20
            <TextBox Text="{Binding Path=Uri,ElementName=TheView}" Grid.Column="2" Margin="5,0,5,0" IsReadOnly="true"/>
21
            <Button Content="Retry" Grid.Column="3"/>
22
        </Grid>
23
        <WebBrowser Grid.Row="1" HorizontalAlignment="Stretch" Margin="5" Name="LoginBrowser" VerticalAlignment="Stretch" Navigating="LoginBrowser_Navigating" />
24
    </Grid>
25
</Window>
b/trunk/Pithos.Client.WPF/Preferences/LoginView.xaml.cs
1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Linq;
5
using System.Linq.Expressions;
6
using System.Reflection;
7
using System.Text;
8
using System.Windows;
9
using System.Windows.Controls;
10
using System.Windows.Data;
11
using System.Windows.Documents;
12
using System.Windows.Input;
13
using System.Windows.Media;
14
using System.Windows.Media.Imaging;
15
using System.Windows.Shapes;
16
using Caliburn.Micro;
17

  
18

  
19
namespace Pithos.Client.WPF.Preferences
20
{
21
    /// <summary>
22
    /// Interaction logic for LoginView.xaml
23
    /// </summary>
24
    public partial class LoginView : Window,INotifyPropertyChanged
25
    {
26
        private static readonly log4net.ILog Log = log4net.LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
27

  
28
        private Uri _uri;
29
        public Uri Uri
30
        {
31
            get
32
            {
33
                return _uri;
34
            }
35
            set
36
            {
37
                _uri = value;
38
                RaisePropertyChanged(() => Uri);
39
            }
40
        }
41

  
42
        private void RaisePropertyChanged(Expression<Func<Uri>> property)
43
        {
44
            if (PropertyChanged != null)
45
            {
46
                PropertyChanged(this, new PropertyChangedEventArgs(property.GetMemberInfo().Name));
47
            }
48
        }
49

  
50
        public LoginView(Uri uri,string account=null)
51
        {
52
            InitializeComponent();
53
            if (String.IsNullOrWhiteSpace(account))
54
                this.Title = "Retrieve Pithos credentials";
55
            else
56
                this.Title = "Retrieve Pithos credentials for " + account;
57
            Uri = uri;
58
            LoginBrowser.Navigate(uri);
59
        }
60

  
61

  
62
        public string Token { get; set; }
63
        public string Account { get; set; }
64

  
65

  
66
        private void LoginBrowser_Navigating(object sender, System.Windows.Navigation.NavigatingCancelEventArgs e)
67
        {
68
            Log.Debug(e.ToString());
69

  
70
            if (e.Uri.Scheme == "pithos")
71
            {
72
                Log.DebugFormat("Authentication response [{0}]",e.Uri);
73
                e.Cancel = true;
74
                var response = ParseResponse(e.Uri.Query);
75
                Account = response["user"];
76
                Token = response["token"];
77
                Log.InfoFormat("Token received for [{0}]", Account);
78
                DialogResult = true;
79
                this.Close();
80
            }
81
        }
82

  
83
        private static Dictionary<string, string> ParseResponse(string request)
84
        {
85
            //var parts = request.Split(' ');
86
            var query = request.TrimStart('?');
87

  
88
            var items = query.Split('&')
89
                .Select(pair => pair.Split('='))
90
                .ToDictionary(arr => arr[0].ToLower(), arr => Uri.UnescapeDataString(arr[1]));
91
            return items;
92
        }
93

  
94
        public event PropertyChangedEventHandler PropertyChanged;
95
    }
96
}
b/trunk/Pithos.Client.WPF/Preferences/PreferencesViewModel.cs
227 227
            }
228 228
        }
229 229

  
230
        public async Task RefreshApiKey()
230
        public void RefreshApiKey()
231 231
        {
232
            _events.Publish(new Notification { Title = "Authorization failed", Message = "Your API Key has probably expired. You will be directed to a page where you can renew it", Level = TraceLevel.Error });
232
            //_events.Publish(new Notification { Title = "Authorization failed", Message = "Your API Key has probably expired. You will be directed to a page where you can renew it", Level = TraceLevel.Error });
233 233

  
234 234
            try
235 235
            {
236 236

  
237
                var credentials = await PithosAccount.RetrieveCredentials(Settings.PithosLoginUrl);
237
                var name = CurrentAccount != null ? CurrentAccount.AccountName : null;
238
                var credentials = PithosAccount.RetrieveCredentials(Settings.PithosLoginUrl,name);
239
                if (credentials==null)
240
                    return;
238 241
                //The server will return credentials for a different account, not just the current account
239 242
                //We need to find the correct account first
240 243
                var account = Accounts.First(act => act.AccountName == credentials.UserName);
......
394 397
            
395 398
       }
396 399

  
397
        public async void AddPithosAccount()
400
        public void AddPithosAccount()
398 401
       {
399
            var credentials=await PithosAccount.RetrieveCredentials(Settings.PithosLoginUrl);
402
            var credentials=PithosAccount.RetrieveCredentials(Settings.PithosLoginUrl);
403
            if (credentials == null)
404
                return;
400 405
            var account = Settings.Accounts.FirstOrDefault(act => act.AccountName == credentials.UserName);
401 406
            var accountVM = new AccountViewModel(account);
402 407
            if (account == null)
b/trunk/Pithos.Client.WPF/Properties/AssemblyInfo.cs
56 56
[assembly: AssemblyCopyright("Copyright © GRNet 2011-2012")]
57 57
[assembly: AssemblyTrademark("")]
58 58
[assembly: AssemblyCulture("")]
59
[assembly: AssemblyInformationalVersion("2012-03-12")]
59
[assembly: AssemblyInformationalVersion("2012-03-14")]
60 60

  
61 61
// Setting ComVisible to false makes the types in this assembly not visible 
62 62
// to COM components.  If you need to access a type in this assembly from 
......
93 93
// You can specify all the values or you can default the Build and Revision Numbers 
94 94
// by using the '*' as shown below:
95 95
// [assembly: AssemblyVersion("1.0.*")]
96
[assembly: AssemblyVersion("0.7.20307.0")]
97
[assembly: AssemblyFileVersionAttribute("0.7.20307.0")]
96
[assembly: AssemblyVersion("0.7.20309.0")]
97
[assembly: AssemblyFileVersionAttribute("0.7.20309.0")]
b/trunk/Pithos.Client.WPF/Properties/Settings.Designer.cs
244 244
        
245 245
        [global::System.Configuration.ApplicationScopedSettingAttribute()]
246 246
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
247
        [global::System.Configuration.DefaultSettingValueAttribute("https://plus.pithos.grnet.gr")]
247
        [global::System.Configuration.DefaultSettingValueAttribute("https://pithos.okeanos.grnet.gr")]
248 248
        public string ProductionServer {
249 249
            get {
250 250
                return ((string)(this["ProductionServer"]));
b/trunk/Pithos.Client.WPF/Properties/Settings.settings
60 60
      <Value Profile="(Default)">True</Value>
61 61
    </Setting>
62 62
    <Setting Name="ProductionServer" Type="System.String" Scope="Application">
63
      <Value Profile="(Default)">https://plus.pithos.grnet.gr</Value>
63
      <Value Profile="(Default)">https://pithos.okeanos.grnet.gr</Value>
64 64
    </Setting>
65 65
    <Setting Name="DevelopmentServer" Type="System.String" Scope="Application">
66 66
      <Value Profile="(Default)">https://pithos.dev.grnet.gr</Value>
b/trunk/Pithos.Client.WPF/app.config
135 135
    <value>https://pithos.dev.grnet.gr/im/feedback</value>
136 136
   </setting>
137 137
   <setting name="ProductionServer" serializeAs="String">
138
    <value>https://plus.pithos.grnet.gr</value>
138
    <value>https://pithos.okeanos.grnet.gr</value>
139 139
   </setting>
140 140
   <setting name="DevelopmentServer" serializeAs="String">
141 141
    <value>https://pithos.dev.grnet.gr</value>
b/trunk/Pithos.Core/Agents/FileSystemWatcherAdapter.cs
39 39
 * -----------------------------------------------------------------------
40 40
 */
41 41
#endregion
42

  
43
using System.Diagnostics;
42 44
using System.Diagnostics.Contracts;
43 45
using System.IO;
44 46
using System.Reflection;
......
84 86
        }
85 87

  
86 88
        private string _cachedDeletedFullPath;
89
        private string CachedDeletedFullPath
90
        {
91
            get { return _cachedDeletedFullPath; }
92
            set
93
            {
94
                Debug.Assert(Path.IsPathRooted(CachedDeletedFullPath));
95
                if (!Path.IsPathRooted(CachedDeletedFullPath))
96
                    Log.WarnFormat("Storing a relative CachedDeletedFullPath: {0}",value);
97
                _cachedDeletedFullPath = value;
98
            }
99
        }
100

  
101
        /// <summary>
102
        /// Clears any cached deleted file path
103
        /// </summary>
104
        /// <remarks>
105
        /// This method was added to bypass the null checking in the property's setter
106
        /// </remarks>
107
        private void ClearCachedDeletedPath()
108
        {
109
            _cachedDeletedFullPath = null;
110
        }
111

  
112

  
87 113
        private const int PropagateDelay = 10;
88 114

  
89 115
        private void OnDeleted(object sender, FileSystemEventArgs e)
......
115 141
            //TODO: Moving a folder to the recycle bin results in a single delete event for the entire folder and its contents
116 142
            //      as this is actually a MOVE operation
117 143
            //Deleting by Shift+Delete results in a delete event for each file followed by the delete of the folder itself
118
            _cachedDeletedFullPath = e.FullPath;
144
            CachedDeletedFullPath = e.FullPath;
119 145

  
120
            //TODO: This requires synchronization of the _cachedDeletedFullPath field
146
            //TODO: This requires synchronization of the CachedDeletedFullPath field
121 147
            //TODO: This creates a new task for each file even though we can cancel any existing tasks if a new event arrives
122 148
            //Maybe, use a timer instead of a task
123 149

  
124 150
            TaskEx.Delay(PropagateDelay).ContinueWith(t =>
125 151
                                                          {
126 152
                                                              var myPath = e.FullPath;
127
                                                              if (_cachedDeletedFullPath == myPath)
153
                                                              if (CachedDeletedFullPath == myPath)
128 154
                                                                  PropagateCachedDeleted(sender);
129 155
                                                          });
130 156
        }
......
184 210
            }
185 211
            finally
186 212
            {
187
                _cachedDeletedFullPath = null;
213
                ClearCachedDeletedPath();
188 214
            }
189 215
        }
190 216

  
......
225 251
            finally
226 252
            {
227 253
                //Finally, make sure the cached path is cleared
228
                _cachedDeletedFullPath = null;
254
                ClearCachedDeletedPath();
229 255
            }
230 256
        }
231 257

  
258

  
232 259
        private void RaiseCreatedForChildren(object sender, FileSystemEventArgs e)
233 260
        {
234 261
            Contract.Requires(sender!=null);
......
269 296
            //instead of a sequence of independent actions
270 297
            //One way to detect this would be to request that the full paths are NOT the same
271 298

  
272
            var oldName = Path.GetFileName(_cachedDeletedFullPath);
299
            var oldName = Path.GetFileName(CachedDeletedFullPath);
273 300
            //NOTE: e.Name is a path relative to the watched path. We MUST call Path.GetFileName to get the actual path
274 301
            var newName = Path.GetFileName(e.Name);
275 302
            //If the last deleted filename is equal to the current and the action is create, we have a MOVE operation
276
            var hasMoved = (_cachedDeletedFullPath != e.FullPath && oldName == newName);
303
            var hasMoved = (CachedDeletedFullPath != e.FullPath && oldName == newName);
277 304

  
278 305
            if (!hasMoved)
279 306
                return false;
......
285 312

  
286 313
                //If the actual action is a Move, raise a Move event instead of the actual event
287 314
                var newDirectory = Path.GetDirectoryName(e.FullPath);
288
                var oldDirectory = Path.GetDirectoryName(_cachedDeletedFullPath);
315
                var oldDirectory = Path.GetDirectoryName(CachedDeletedFullPath);
289 316

  
290 317
                if (Moved != null)
291 318
                {
......
313 340
            }
314 341
            finally
315 342
            {
316
                _cachedDeletedFullPath = null;
343
                ClearCachedDeletedPath();
317 344
            }
318 345
            return true;
319 346
        }
......
322 349
        {
323 350
            if (sender == null)
324 351
                throw new ArgumentNullException("sender");
325
            Contract.Ensures(_cachedDeletedFullPath == null);
352
            Contract.Ensures(CachedDeletedFullPath == null);
326 353
            Contract.EndContractBlock();
327 354

  
328 355
            //Nothing to handle if there is no cached deleted file
329
            if (String.IsNullOrWhiteSpace(_cachedDeletedFullPath))
356
            if (String.IsNullOrWhiteSpace(CachedDeletedFullPath))
330 357
                return;
331 358
            
332
            var deletedFileName = Path.GetFileName(_cachedDeletedFullPath);
333
            var deletedFileDirectory = Path.GetDirectoryName(_cachedDeletedFullPath);
359
            var deletedFileName = Path.GetFileName(CachedDeletedFullPath);
360
            var deletedFileDirectory = Path.GetDirectoryName(CachedDeletedFullPath);
334 361

  
335 362
            if (Log.IsDebugEnabled)
336
                Log.DebugFormat("Propagating delete for [{0}]", _cachedDeletedFullPath);
363
                Log.DebugFormat("Propagating delete for [{0}]", CachedDeletedFullPath);
337 364

  
338 365
            //Only a single file Delete event is raised when moving a file to the Recycle Bin, as this is actually a MOVE operation
339 366
            //In this case we need to raise the proper events for all child objects of the deleted directory.
......
342 369
            if (Deleted != null)            
343 370
                Deleted(sender,new FileSystemEventArgs(WatcherChangeTypes.Deleted, deletedFileDirectory, deletedFileName));
344 371

  
345
            _cachedDeletedFullPath = null;
372
            ClearCachedDeletedPath();
346 373
        }
347 374
    }
348 375
}
b/trunk/Pithos.Installer/Greek.isl
1
; *** Inno Setup version 5.1.11+ Greek messages ***
2
;
3
; Note: When translating this text, do not add periods (.) to the end of
4
; messages that didn't have them already, because on those messages Inno
5
; Setup adds the periods automatically (appending a period would result in
6
; two periods being displayed).
7
;
8
; Translated by Anastasis Chatzioglou
9
;               http://anasto.go.to
10
;               baldycom@hotmail.com
11
;
12
; 29th October 2011 [XhmikosR, my_nickname at yahoo dot com]:
13
; various cleanup and minor updates
14
;
15

  
16
[LangOptions]
17
; The following three entries are very important. Be sure to read and 
18
; understand the '[LangOptions] section' topic in the help file.
19
LanguageName=<0395><03BB><03BB><03B7><03BD><03B9><03BA><03AC>
20
LanguageID=$408
21
LanguageCodePage=1253
22
; If the language you are translating to requires special font faces or
23
; sizes, uncomment any of the following entries and change them accordingly.
24
;DialogFontName=
25
;DialogFontSize=8
26
;WelcomeFontName=Verdana
27
;WelcomeFontSize=12
28
;TitleFontName=Arial
29
;TitleFontSize=29
30
;CopyrightFontName=Arial
31
;CopyrightFontSize=8
32

  
33
[Messages]
34

  
35
; *** Application titles
36
SetupAppTitle=???????????
37
SetupWindowTitle=??????????? - %1
38
UninstallAppTitle=?????????????
39
UninstallAppFullTitle=%1 ?????????????
40

  
41
; *** Misc. common
42
InformationTitle=???????????
43
ConfirmTitle=???????????
44
ErrorTitle=??????
45

  
46
; *** SetupLdr messages
47
SetupLdrStartupMessage=?? ?????????? ? ??????????? ??? %1. ?????? ?? ??????????;
48
LdrCannotCreateTemp=?????? ??? ?????????? ?????????? ???????. ? ??????????? ?? ??????????? ????.
49
LdrCannotExecTemp=?????? ???? ???????? ??????? ???? ????????? ????????. ? ??????????? ????????????.
50

  
51
; *** Startup error messages
52
LastErrorMessage=%1.%n%n?????? %2: %3
53
SetupFileMissing=??? ????????? ?? ?????? %1 ???? ???????? ????????????. ???? ?????????? ?? ????????????? ??? ??? ????????? ??? ????????????.
54
SetupFileCorrupt=?? ?????? ???????????? ????? ?????????????. ???? ?????????? ?? ????????????? ??? ??? ????????? ??? ????????????.
55
SetupFileCorruptOrWrongVer=?? ?????? ???????????? ????? ????????????? ? ????? ?? ????? ??????. ???? ?????????? ?? ????????????? ??? ??? ????????? ??? ????????????.
56
NotOnThisPlatform=???? ?? ????????? ??? ?????? ?? ?????????? ?? %1.
57
OnlyOnThisPlatform=???? ?? ????????? ?????????? ???? ?? %1.
58
OnlyOnTheseArchitectures=???? ?? ????????? ?????? ?? ???????????? ???? ?? Windows ??????????? ??? ???????????? ?? ?????????????:%n%n%1
59
MissingWOW64APIs=? ?????? ??? Windows ??? ?????????? ??? ???????? ??????????????? 64-bit. ??? ?? ????????? ?? ???????? ??????????? ?? Service Pack %1.
60
WinVersionTooLowError=???? ?? ????????? ??????? %1 ?????? ? ???????.
61
WinVersionTooHighError=???? ?? ????????? ??? ?????? ?? ?????????? ?? %1 ?????? ? ???????.
62
AdminPrivilegesRequired=?????? ?? ????? ? ???????????? ?????????? ??? ?? ????????????? ???? ?? ?????????.
63
PowerUserPrivilegesRequired=?????? ?? ????? ? ???????????? ?????????? ? Power User ??? ?? ????????????? ???? ?? ?????????.
64
SetupAppRunningError=? ??????????? ???????? ??? ?????????? ? ???????? %1.%n%n???????? ??????? ??? ???????? ???? ??? ??????? ??????? ??? ?? ??????????, ? ????? ??? ?????.
65
UninstallAppRunningError=? ????????????? ???????? ??? ?????????? ? ???????? %1.%n%n???????? ??????? ??? ???????? ???? ??? ??????? ??????? ??? ?? ??????????, ? ????? ??? ?????.
66

  
67
; *** Misc. errors
68
ErrorCreatingDir=? ??????????? ??? ?????? ?? ???????????? ??? ???????? %1
69
ErrorTooManyFilesInDir=??? ?????? ?? ???????????? ??? ?????? ???? ???????? "%1" ?????? ??? ???????? ????? ??????
70

  
71
; *** Setup common messages
72
ExitSetupTitle=????? ????????????
73
ExitSetupMessage=? ??????????? ??? ???? ?????????. ?? ?? ??????????? ????, ?? ????????? ??? ?? ????????????.%n%n???????? ?? ?????????? ???? ??? ??????????? ????????.%n%n??????;
74
AboutSetupMenuItem=&??????? ?? ??? ???????????...
75
AboutSetupTitle=??????? ?? ??? ???????????
76
AboutSetupMessage=%1 ?????? %2%n%3%n%n%1 ????????? ??????%n%4
77
AboutSetupNote=
78
TranslatorNote=Anastasis Chatzioglou - baldycom@hotmail.com
79

  
80
; *** Buttons
81
ButtonBack=< &????
82
ButtonNext=&??????? >
83
ButtonInstall=&???????????
84
ButtonOK=?&??????
85
ButtonCancel=&?????
86
ButtonYes=?&??
87
ButtonYesToAll=??? ?? &???
88
ButtonNo=?&??
89
ButtonNoToAll=??? &?? ???
90
ButtonFinish=&?????
91
ButtonBrowse=&?????????...
92
ButtonWizardBrowse=&??????...
93
ButtonNewFolder=&?????????? ???? ???????
94

  
95
; *** "Select Language" dialog messages
96
SelectLanguageTitle=??????? ??? ??????? ????????????
97
SelectLanguageLabel=??????? ??? ??????? ??? ????? ???? ??? ???????? ??? ????????????:
98

  
99
; *** Common wizard text
100
ClickNext=??????? ??????? ??? ?? ?????????? ? ????? ??? ?? ??????????? ??? ???????????.
101
BeveledLabel=
102
BrowseDialogTitle=?????? ???????
103
BrowseDialogLabel=???????? ?????? ???? ????? ??? ???? ??????? OK.
104
NewFolderName=???? ???????
105

  
106
; *** "Welcome" wizard page
107
WelcomeLabel1=???????????? ???? ??????????? ??? [name]
108
WelcomeLabel2=?? ????? ??????????? ??? [name/ver] ???? ?????????? ???.%n%n???? ?????????? ??? ?????????? ?? ???????? ???? ???? ???????? ??? ??????? ?????????.
109

  
110
; *** "Password" wizard page
111
WizardPassword=???????? ???????
112
PasswordLabel1=???? ? ??????????? ?????????? ?????? ??? ?? ??????????.
113
PasswordLabel3=???????? ????? ??? ?????? ??? ??? ??????? ??????? ??? ?? ??????????.
114
PasswordEditLabel=&???????:
115
IncorrectPassword=? ??????? ??? ?????? ????? ?????. ??????????? ????.
116

  
117
; *** "License Agreement" wizard page
118
WizardLicense=????? ??????
119
LicenseLabel=???????? ???????? ?????????? ??? ???????? ??????????? ???? ??????????.
120
LicenseLabel3=???????? ???????? ?????????? ??? ???????? ??????????? ???? ??????????. ?????? ?? ?????????? ???? ????? ??? ?????? ?????? ???? ?? ?????????? ??? ???????????.
121
LicenseAccepted=&??????? ???? ????? ??? ?????? ??????
122
LicenseNotAccepted=??? &?????????? ???? ????? ??? ?????? ??????
123

  
124
; *** "Information" wizard pages
125
WizardInfoBefore=???????????
126
InfoBeforeLabel=???????? ???????? ?????????? ??? ???????? ??????????? ???? ??????????.
127
InfoBeforeClickLabel=?? ????? ??????? ?? ?????????? ??????? ???????.
128
WizardInfoAfter=???????????
129
InfoAfterLabel=???????? ???????? ?????????? ??? ???????? ??????????? ???? ??????????.
130
InfoAfterClickLabel=?? ????? ??????? ?? ?????????? ??????? ???????.
131

  
132
; *** "User Information" wizard page
133
WizardUserInfo=??????????? ??? ??? ??????
134
UserInfoDesc=???????? ????? ??? ???????????.
135
UserInfoName=&????? ??????:
136
UserInfoOrg=&????????:
137
UserInfoSerial=&???????? ??????:
138
UserInfoNameRequired=?????? ?? ?????? ?????.
139

  
140
; *** "Select Destination Location" wizard page
141
WizardSelectDir=???????? ??? ???????? ??? ?? ???????????? ?? ?????????
142
SelectDirDesc=??? ?? ???????????? ?? [name];
143
SelectDirLabel3=?? [name] ?? ???????????? ???? ???????? ??????.
144
SelectDirBrowseLabel=??? ???????? ??????? ???????. ?? ?????? ???? ??????, ??????? ??????.
145
DiskSpaceMBLabel=???? ?? ????????? ?????????? [mb] MB ???? ???? ?????.
146
ToUNCPathname=? ??????????? ??? ?????? ?? ????? ?? ????? ???????. ?? ?????? ?? ????? ? ??????????? ?? ????? ??????? ?????? ?? ??????? ????? ?? ?????.
147
InvalidPath=????? ??? ????? ????????.%n??????????:%n%nC:\APP
148
InvalidDrive=? ??????? ?????? ? ? ?????? ??????? ??? ????????? ??? ??????? ? ??? ????? ???????????. ???????? ?????.
149
DiskSpaceWarningTitle=??? ??????? ??????? ????? ??? ?????
150
DiskSpaceWarning=? ??????????? ?????????? ??????????? %1 KB ???????? ???? ??? ????? ???? ? ??????????? ?????? ???????? ????? %2 KB.%n%n?????? ?? ?????????? ??????????;
151
DirNameTooLong=?? ????? ??? ??????? ????? ???? ??????.
152
InvalidDirName=????? ????? ???????.
153
BadDirName32=??????? ????????? ??? ??????? ?? ????????? ??????? ??? ???? ???????? ??????????:%n%n%1
154
DirExistsTitle=? ????????? ???????
155
DirExists=? ?????????:%n%n%1%n%n??????? ???. ?????? ?? ????? ? ??????????? ?? ????? ??? ????????;
156
DirDoesntExistTitle=? ????????? ??? ???????
157
DirDoesntExist=? ?????????:%n%n%1%n%n??? ???????. ?????? ?? ????????????;
158

  
159
; *** "Select Components" wizard page
160
WizardSelectComponents=??????? ??????????
161
SelectComponentsDesc=???? ????????? ?????? ?? ?????????????;
162
SelectComponentsLabel2=???????? ?? ????????? ??? ?????? ?? ????????????? ??? ??????? ??????? ??? ???????? ??? ????????????.
163
FullInstallation=?????? ???????????.
164
; if possible don't translate 'Compact' as 'Minimal' (I mean 'Minimal' in your language)
165
CompactInstallation=???????????? ???????????
166
CustomInstallation=????????????? ???????????
167
NoUninstallWarningTitle=?? ????????? ????????
168
NoUninstallWarning=? ??????????? ?????????? ??? ?? ???????? ????????? ????? ??? ????????????? ???? ?????????? ???:%n%n%1
169
ComponentSize1=%1 KB
170
ComponentSize2=%1 MB
171
ComponentsDiskSpaceMBLabel=? ???????????? ??????? ??????? ??????????? [mb] MB ???????? ???? ???? ?????.
172

  
173
; *** "Select Additional Tasks" wizard page
174
WizardSelectTasks=??????? ????????? ?????????
175
SelectTasksDesc=????? ???????? ????????? ?????? ?? ??????;
176
SelectTasksLabel2=???????? ??? ???????? ????????? ??? ?????? ?? ?????? ???? ??? ??????????? ??? [name] ??? ??????? ???????.
177

  
178
; *** "Select Start Menu Folder" wizard page
179
WizardSelectProgramGroup=??????? ????????? ??? ????? ????????
180
SelectStartMenuFolderDesc=??? ?? ???????????? ?? ???????????? ??? ????????????;
181
SelectStartMenuFolderLabel3=? ??????????? ?? ???????????? ??? ???????????? ??? ???????????? ???? ???????? ?????.
182
SelectStartMenuFolderBrowseLabel=??? ????????, ??????? ???????. ?? ?????? ???? ?????, ??????? ??????.
183
MustEnterGroupName=?????? ?? ?????? ?? ????? ???? ?????????.
184
GroupNameTooLong=?? ????? ??? group ????? ???? ??????.
185
InvalidGroupName=?? ????? ??? group ??? ????? ?????.
186
BadGroupName=??????? ????????? ??? ??????? ?? ????????? ??????? ??? ???? ???????? ??????????:%n%n%1
187
NoProgramGroupCheck2=&????? ?????????? ????????? ??? ????? ????????.
188

  
189
; *** "Ready to Install" wizard page
190
WizardReady=??????? ??? ???????????
191
ReadyLabel1=? ??????????? ??? [name] ????? ?????? ?? ?????????? ???? ?????????? ???.
192
ReadyLabel2a=??????? ??????????? ??? ?? ?????????? ? ???? ?? ?????? ?? ???????? ??????? ?????????.
193
ReadyLabel2b=??????? ??????????? ??? ?? ??????????.
194
ReadyMemoUserInfo=??????????? ??????:
195
ReadyMemoDir=????????? ??????????:
196
ReadyMemoType=????? ????????????:
197
ReadyMemoComponents=?????????? ?????????:
198
ReadyMemoGroup=????????? ??? ????? ???????????:
199
ReadyMemoTasks=???????? ?????????:
200

  
201
; *** "Preparing to Install" wizard page
202
WizardPreparing=???????????? ????????????
203
PreparingDesc=? ??????????? ???????????? ?? ????????? [name] ?? ??????????? ???? ??????????.
204
PreviousInstallNotCompleted=The installation/removal of a previous program was not completed. You will need to restart your computer to complete that installation.%n%nAfter restarting your computer, run Setup again to complete the installation of [name].
205
CannotContinue=Setup cannot continue. Please click Cancel to exit.
206

  
207
; *** "Installing" wizard page
208
WizardInstalling=??????? ????????????
209
InstallingLabel=???????? ?????????? ?? ??????????? ? ??????????? ??? [name] ???? ?????????? ???.
210

  
211
; *** "Setup Completed" wizard page
212
FinishedHeadingLabel=Completing the [name] Setup Wizard
213
FinishedLabelNoIcons=? ??????????? ??? [name] ???? ?????????? ??? ???????? ?? ????????.
214
FinishedLabel=? ??????????? ??? [name] ???? ?????????? ??? ???????? ?? ????????. ???????? ?? ?????????? ?? ????????? ??????????? ?? ????????? ??? ????????????? ??? ????? ????????.
215
ClickFinish=??????? ????? ??? ?? ??????????? ?? ????????? ????????????.
216
FinishedRestartLabel=??? ?? ??????????? ? ??????????? ??? [name] ?????? ?? ????? ???????????? ??? ?????????? ???. ?????? ?? ????? ????;
217
FinishedRestartMessage=??? ?? ??????????? ? ??????????? ??? [name] ?????? ?? ????? ???????????? ??? ?????????? ???.%n%n?????? ?? ????? ????;
218
ShowReadmeCheck=???, ???? ?? ??????? ??? ??????????? ??? ????????????
219
YesRadio=&???, ?? ????? ???????????? ????
220
NoRadio=&???, ?? ???? ???????????? ????????
221
; used for example as 'Run MyProg.exe'
222
RunEntryExec=?? ?????????? ?? ????????? %1
223
; used for example as 'View Readme.txt'
224
RunEntryShellExec=?? ?????????? ?? %1
225

  
226
; *** "Setup Needs the Next Disk" stuff
227
ChangeDiskTitle=??????????? ??? ??????? ????????
228
SelectDiskLabel2=??????????? ??? ???????? %1 ??? ??????? ???????.
229
PathLabel=&????????:
230
FileNotInDir2=?? ?????? "%1" ??? ????????? ??? "%2". ??????????? ?? ????? ????????.
231
SelectDirectoryLabel=????? ??? ????????? ??? ???????? ?????????.
232

  
233
; *** Installation phase messages
234
SetupAborted=? ??????????? ??? ????????????.%n%n????????? ?? ???????? ??? ????????? ???? ??? ???????????.
235
EntryAbortRetryIgnore=??????? Retry ??? ?? ????????????????, Ignore ??? ?? ?????????? ? Abort ??? ?? ??????????? ??? ???????????.
236

  
237
; *** Installation status messages
238
StatusCreateDirs=?????????? ?????????...
239
StatusExtractFiles=??????????? ???????...
240
StatusCreateIcons=?????????? ??????????...
241
StatusCreateIniEntries=?????????? ??? ??? ?????? ??????????...
242
StatusCreateRegistryEntries=?????????? ??? ?????? ??????????...
243
StatusRegisterFiles=?????????? ???????
244
StatusSavingUninstall=??????????? ??????????????...
245
StatusRunProgram=???????????? ??? ???????????...
246
StatusRollback=Rolling back changes...
247

  
248
; *** Misc. errors
249
ErrorInternal2=?????? %1
250
ErrorFunctionFailedNoCode=%1 ??????
251
ErrorFunctionFailed=%1 ??????, ??????? %2
252
ErrorFunctionFailedWithMessage=%1 ??????, ??????? %2%n%3
253
ErrorExecutingProgram=??? ?????? ?? ?????????? ?? ??????:%n%1
254

  
255
; *** Registry errors
256
ErrorRegOpenKey=??? ?????? ?? ????????? ?? ?????? ??????? ??????????:%n%1\%2
257
ErrorRegCreateKey=??? ?????? ?? ???????????? ?? ?????? ??????? ??????????:%n%1\%2
258
ErrorRegWriteKey=??? ?????? ?? ????? ?????????? ??? ?????? ??????? ??????????:%n%1\%2
259

  
260
; *** INI errors
261
ErrorIniEntry=??? ?????? ?? ????? ?????????? ??? ??? ?????? ?????????? "%1".
262

  
263
; *** File copying errors
264
FileAbortRetryIgnore=??????? Retry ??? ?? ????????????????, Ignore ??? ?? ?????????? ? Abort ??? ?? ??????????? ??? ???????????.
265
FileAbortRetryIgnore2=??????? Retry ??? ?? ????????????????, Ignore ??? ?? ?????????? ? Abort ??? ?? ??????????? ??? ???????????.
266
SourceIsCorrupted=?? ?????? ?????????? ????? ?????????????
267
SourceDoesntExist=?? ?????? ?????????? "%1" ??? ???????
268
ExistingFileReadOnly=?? ?????? ????? ????????????? ???? ??? ????????.%n%n??????? Retry ??? ?? ?? ??????????? ??? ?? ???????????? ????, Ignore ??? ?? ?? ???????????? ? Abort ??? ?? ??????????? ??? ???????????.
269
ErrorReadingExistingDest=????????????? ?????? ???? ??? ???????? ??? ???????:
270
FileExists=?? ?????? ???????.%n%n?????? ?? ???????????;
271
ExistingFileNewer=??? ?????? ??? ??????? ???? ?????????? ??? ????? ???????? ??????? ??? ?????? ??? ????????????. ??????????? ?? ????????? ?? ??????? ??????.%n%n?????? ?? ????????? ?? ??????? ??????;
272
ErrorChangingAttr=???????? ?????? ???? ?????????? ?? ????????? ?? ?????????????? ??? ???????:
273
ErrorCreatingTemp=???????? ?????? ???? ?????????? ?? ???????????? ??? ?????? ???? ???????? ??????????:
274
ErrorReadingSource=???????? ?????? ???? ?????????? ????????? ??? ??????? ??????????:
275
ErrorCopying=???????? ?????? ???? ?????????? ?? ?????????? ?? ??????:
276
ErrorReplacingExistingFile=???????? ?????? ???? ?????????? ?? ?????????????? ?? ??????? ??????:
277
ErrorRestartReplace=???????? ?????? ???? ?????????? ?? ????? ???????????? ??? ????????????? ???????:
278
ErrorRenamingTemp=???????? ?????? ???? ?????????? ???????????? ???? ??????? ???? ???????? ??????????:
279
ErrorRegisterServer=???????? ?????? ???? ?????????? ??????????? DLL/OCX: %1
280
ErrorRegSvr32Failed=RegSvr32 failed with exit code %1
281
ErrorRegisterTypeLib=Unable to register the type library: %1
282

  
283
; *** Post-installation errors
284
ErrorOpeningReadme=???????? ?????? ???? ?????????? ?? ???????? ?? ?????? ???????????.
285
ErrorRestartingComputer=???????? ?????? ???? ?????????? ????????????? ??? ??????????. ???????? ????????????? ??? ?????????? ???.
286

  
287
; *** Uninstaller messages
288
UninstallNotFound=?? ?????? "%1" ??? ???????. ? ????????????? ??? ?????? ?? ?????
289
UninstallOpenError=?? ?????? "%1" ??? ??????? ?? ????????. ? ????????????? ??? ?????? ?? ?????
290
UninstallUnsupportedVer=?? ?????? "%1" ??? ????????????? ??? ???? ??? ?????? ??? ????????????, ? ????????????? ??? ?????? ?? ??????????
291
UninstallUnknownEntry=?? ?????? "%1" ??? ????????????? ??? ???? ??? ?????? ??? ????????????, ? ????????????? ??? ?????? ?? ??????????
292
ConfirmUninstall=????? ???????? ??? ?????? ?? ?????????? ?? %1 ??? ??? ?? ????????? ???;
293
UninstallOnlyOnWin64=???? ? ???????? ?????? ?? ?????????????? ???? ?? 64-bit Windows.
294
OnlyAdminCanUninstall=? ????????????? ?????? ?? ?????????? ???? ??? ??? ??????????? ??????????
295
UninstallStatusLabel=???????? ?????????? ??? ?? %1 ?????????? ??? ??? ?????????? ???
296
UninstalledAll=? ????????????? ??? %1 ????? ?? ????????.
297
UninstalledMost=? ????????????? ??? %1 ????? ?? ????????.%n%n?????? ????????? ??? ?????????? ???? ?????????? ??? ?? ?????? ?? ?? ?????????? ?????.
298
UninstalledAndNeedsRestart=To complete the uninstallation of %1, your computer must be restarted.%n%nWould you like to restart now?
299
UninstallDataCorrupted="%1" ???? ?? ?????? ????? ?????????????. ??? ?????? ?? ????? ?????????????.
300

  
301
; *** Uninstallation phase messages
302
ConfirmDeleteSharedFileTitle=?????? ?? ?????????? ?? ????? ??????;
303
ConfirmDeleteSharedFile2=?? ????? ?????? ??? ???????????????? ??? ?????? ?????????. ?????? ?? ??????????;%n%n?? ?????? ????????? ?? ???????????? ???? ??? ?????????? ????? ?? ?? ??????????. ?? ??? ????? ???????? ?????? ?? ??? ??????? ??? ??? ????????? ?????? ????????.
304
SharedFileNameLabel=????? ???????:
305
SharedFileLocationLabel=?????????:
306
WizardUninstalling=??????? ??????????????:
307
StatusUninstalling=????????????? ??? %1...
308

  
309
; The custom messages below aren't used by Setup itself, but if you make
310
; use of them in your scripts, you'll want to translate them.
311

  
312
[CustomMessages]
313

  
314
NameAndVersion=%1 ?????? %2
315
AdditionalIcons=???????? ?????????:
316
CreateDesktopIcon=?????????? ???? &?????????? ???? ????????? ????????
317
CreateQuickLaunchIcon=?????????? ???? ?????????? ??? &??????? ????????
318
ProgramOnTheWeb=?? %1 ??? Internet
319
UninstallProgram=????????????? ??? %1
320
LaunchProgram=???????? ??? %1
321
AssocFileExtension=%???????????? ??? %1 ?? ??? %2 ???????? ???????
322
AssocingFileExtension=??????? ???????????? ??? %1 ?? ??? %2 ???????? ???????...
323

  
b/trunk/Pithos.Installer/rnotes.0.7.20308.html
1
Pithos MS Client v. 0.7.20307
2
======================
1
<html>
2
<body>
3
<h2>Pithos MS Client v. 0.7.20308</h2>
3 4
Release Date: March 12, 2012, 17:00
4
Third  version with Autoupdate support (for the x64 msi's only)
5

  
5
<br/>
6 6
Includes:
7

  
8
* Various fixes
7
<br/>
8
<ul>
9
<li> Various fixes</li>
10
</ul>
11
</body>
12
</html>
b/trunk/Pithos.Installer/versioninfo.xml
7 7
		<description></description>      
8 8
		<language>en</language>       
9 9
		<item>            
10
			<title>Version 0.7.20309</title>
11
			<sparkle:releaseNotesLink>https://code.grnet.gr/projects/pithos-ms-client/repository/revisions/master/raw/trunk/Pithos.Installer/rnotes.0.7.20309.html</sparkle:releaseNotesLink>
12
			<pubDate>Tue, 14 Mar 2012 19:00:00 +0200</pubDate>
13
			<enclosure 
14
				url="https://code.grnet.gr/attachments/download/1010/PithosPlus_Setupv0.7.20309.0.exe"
15
				length="4343021" 
16
				type="application/octet-stream"
17
				sparkle:version="0.7.20309" 
18
			/>
19
		</item>
20
		<item>            
10 21
			<title>Version 0.7.20308</title>
11 22
			<sparkle:releaseNotesLink>https://code.grnet.gr/projects/pithos-ms-client/repository/revisions/master/raw/trunk/Pithos.Installer/rnotes.0.7.20308.html</sparkle:releaseNotesLink>
12 23
			<pubDate>Tue, 13 Mar 2012 18:30:00 +0200</pubDate>
b/trunk/Pithos.ShellExtensions/Pithos.ShellExtensions.csproj
23 23
    <DefineConstants>DEBUG;TRACE</DefineConstants>
24 24
    <ErrorReport>prompt</ErrorReport>
25 25
    <WarningLevel>4</WarningLevel>
26
    <RegisterForComInterop>true</RegisterForComInterop>
26
    <RegisterForComInterop>false</RegisterForComInterop>
27 27
    <CodeContractsEnableRuntimeChecking>False</CodeContractsEnableRuntimeChecking>
28 28
    <CodeContractsRuntimeOnlyPublicSurface>False</CodeContractsRuntimeOnlyPublicSurface>
29 29
    <CodeContractsRuntimeThrowOnFailure>True</CodeContractsRuntimeThrowOnFailure>

Also available in: Unified diff