New check to enable/disable selective sync
[pithos-ms-client] / trunk / Pithos.Client.WPF / Preferences / PreferencesView.xaml
1 <Window x:Class="Pithos.Client.WPF.Preferences.PreferencesView"
2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        
4         xmlns:cal="http://www.caliburnproject.org"
5         xmlns:extToolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit/extended"
6         xmlns:Converters="clr-namespace:Pithos.Client.WPF.Converters" 
7         x:Name="TheView"
8         Title="Pithos+ Preferences" Height="436" Width="732" 
9         ShowInTaskbar="true"
10         WindowStartupLocation="CenterScreen"
11         Icon="/PithosPlus;component/Images/PithosTaskbar.png"
12         Background="{StaticResource {x:Static SystemColors.ControlBrushKey}}">
13         
14     <Window.Resources>
15         <ResourceDictionary>
16         <ResourceDictionary.MergedDictionaries>
17             <ResourceDictionary Source="..\PithosStyles.xaml" />
18             </ResourceDictionary.MergedDictionaries>
19             <Converters:NullToVisibilityConverter x:Key="NullToVisible" />
20             <BooleanToVisibilityConverter x:Key="BoolToVisible" />
21         </ResourceDictionary>
22     </Window.Resources>
23 <!--    <Window.TaskbarItemInfo>
24         <TaskbarItemInfo Description="{Binding StatusMessage}" >
25             <TaskbarItemInfo.ThumbButtonInfos>
26                 <ThumbButtonInfo>
27                     
28                 </ThumbButtonInfo>
29             </TaskbarItemInfo.ThumbButtonInfos>
30         </TaskbarItemInfo>
31     </Window.TaskbarItemInfo>-->
32     <Grid>
33         <Grid.RowDefinitions>
34             <RowDefinition Height="*"/>
35             <RowDefinition Height="Auto"/>
36         </Grid.RowDefinitions>
37
38        
39         <TabControl Grid.Row="0" x:Name="Tabs" >  
40             <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="GeneralTab">
41                 <TabItem.Header>
42                     <StackPanel>
43                         <Image Source="/PithosPlus;component/Images/General.png" Stretch="Uniform" Height="32"/>
44                         <TextBlock Text="General"/>
45                     </StackPanel>
46                 </TabItem.Header>
47                 <GroupBox  Height="66" VerticalAlignment="Top" Name="groupBox1" Margin="10,5">
48                     <StackPanel>
49                         <CheckBox Content="Show Desktop Notifications" Height="16" Name="Settings_ShowDesktopNotifications" Margin="5,10,5,0" />
50                         <CheckBox Content="Start on System Startup" Height="16" Name="Settings_StartOnSystemStartup" Margin="5,5,5,0" />
51                     </StackPanel>
52                 </GroupBox>
53             </TabItem>
54             <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="AccountTab" IsSelected="{Binding AccountTabSelected,Mode=OneWay}">
55                 <TabItem.Header>
56                     <StackPanel>
57                         <Image Source="/PithosPlus;component/Images/Accounts.png" Stretch="Uniform" Height="32"/>
58                         <TextBlock Text="Accounts"/>
59                     </StackPanel>
60                 </TabItem.Header>
61                 <Grid VerticalAlignment="Stretch" >
62                     <Grid.ColumnDefinitions>
63                         <ColumnDefinition Width="Auto"/>
64                         <ColumnDefinition Width="*"/>
65                     </Grid.ColumnDefinitions>
66                     <Grid Margin="5,10,5,5" Column="0" Width="250">
67                         <Grid.RowDefinitions>
68                             <RowDefinition Height="*"/>
69                             <RowDefinition Height="Auto"/>
70                         </Grid.RowDefinitions>
71                         <ListBox Name="Accounts" Grid.Row="0" VerticalAlignment="Stretch" ItemsSource="{Binding Accounts,Mode=OneWay}" SelectedItem="{Binding CurrentAccount,Mode=TwoWay}" >
72                             <ListBox.ItemTemplate>
73                                 <DataTemplate>
74                                     <StackPanel Orientation="Horizontal">
75                                     <Image Visibility="{Binding Converter={StaticResource BoolToVisible}, Path=IsExpired,Mode=OneWay}" Source="/PithosPlus;component/Images/SmallWarning.png" Margin="2,0"/>
76                                         <StackPanel>
77                                     <TextBlock Text="{Binding AccountName}" />
78                                     <TextBlock Text="{Binding ServerUrl}" FontStyle="Italic" FontSize="10" />
79                                         </StackPanel>
80                                     </StackPanel>
81                                 </DataTemplate>
82                             </ListBox.ItemTemplate>
83                         </ListBox>
84                         <StackPanel Orientation="Horizontal" Grid.Row="1">
85                             <Button Name="AddAccount" Content="Add " ToolTip="Enter account details manually" Style="{StaticResource ButtonStyle}" Width="75"/>
86                             <Button Name="RemoveAccount" Content="Remove" Style="{StaticResource ButtonStyle}" Width="75"/>                            
87                         </StackPanel>
88                     </Grid>
89                     <GroupBox Header="Account" Padding="5" Margin="5" Height="231" HorizontalAlignment="Stretch" VerticalAlignment="Top" Grid.Column="1" Visibility="{Binding Path=CurrentAccount, Converter={StaticResource NullToVisible},ConverterParameter='Invert'}"
90                               HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
91                         <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap" >
92                             No account is selected. Please select an account or add a new one.
93                         </TextBlock>    
94                     </GroupBox>
95                     <GroupBox Header="Account" Padding="5" Margin="5,5,5,0" Height="266" HorizontalAlignment="Stretch" VerticalAlignment="Top" Grid.Column="1" Visibility="{Binding Path=CurrentAccount, Converter={StaticResource NullToVisible}}">
96                             <Grid>
97                             <Grid.ColumnDefinitions>
98                                 <ColumnDefinition Width="Auto"/>
99                                 <ColumnDefinition Width="91*"/>
100                             </Grid.ColumnDefinitions>
101                             <Grid.RowDefinitions>
102                                 <RowDefinition Height="Auto"/>
103                                 <RowDefinition Height="Auto"/>
104                                 <RowDefinition Height="Auto"/>
105                                 <RowDefinition Height="Auto"/>
106                                 <RowDefinition Height="Auto"/>
107                                 <RowDefinition Height="Auto"/>
108                                 <RowDefinition />
109                             </Grid.RowDefinitions>
110                             <Label Content="Server" Grid.Column="0" Grid.Row="0" Margin="0,5" HorizontalAlignment="Left"/>
111                             <TextBox Name="CurrentAccount_ServerUrl" Grid.Column="1" Grid.Row="0" Margin="5"/>
112                             <Label Content="Account" Grid.Column="0" Grid.Row="1" Margin="0,5" HorizontalAlignment="Left"/>
113                             <TextBox Name="CurrentAccount_AccountName" Grid.Column="1" Grid.Row="1" Margin="5"/>
114                             <Grid Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" >
115                                 <Grid.ColumnDefinitions>
116                                     <ColumnDefinition Width="Auto"/>
117                                     <ColumnDefinition Width="*"/>
118                                     <ColumnDefinition Width="Auto"/>
119                                 </Grid.ColumnDefinitions>
120                                 <Label Content="API Key" Grid.Column="0"  Margin="0,5" HorizontalAlignment="Left"/>
121                                 <TextBox  Name="CurrentAccount_ApiKey" Grid.Column="1" Margin="5" />
122                                 <Button Name="RefreshApiKey" Grid.Column="2" Content="Refresh" Margin="5"/>
123                             </Grid>
124                             <Label Content="Folder" Grid.Column="0" Grid.Row="3" Margin="0,5" HorizontalAlignment="Left"/>
125                             <Grid Grid.Row="3" Grid.Column="1" >
126                                 <Grid.ColumnDefinitions>
127                                     <ColumnDefinition Width="*"/>
128                                     <ColumnDefinition Width="Auto"/>
129                                 </Grid.ColumnDefinitions>
130                                 <TextBox  Name="CurrentAccount_RootPath" Margin="1,5,5,-30" HorizontalAlignment="Stretch" IsReadOnly="True" ToolTip="{Binding CurrentAccount.RootPath}" Height="61" TextWrapping="WrapWithOverflow" />
131                             </Grid>
132                             <CheckBox Name="CurrentAccount_IsActive" Content="Account is Active" Grid.Row="6" Margin="6,66,230,6" Grid.ColumnSpan="2"  />
133                             <Button Name="SelectiveSyncFolders" Content="Selective Sync" Width="100" Style="{StaticResource ButtonStyle}" Grid.Row="6" Margin="12,40,0,24" Grid.Column="1" />
134                             <Button Name="MoveAccountFolder" Content="Move ..." Margin="20,40,234,24" Grid.Row="6" Grid.Column="1" Width="100"/>
135                             <Button Name="ClearAccountCache" Content="Clear Cache" Margin="245,40,9,24" Grid.Row="6" Grid.Column="1" Width="100" />
136                             <CheckBox Name="Selective_IsActive" Content="Enable Selective Sync" Grid.Row="6" Margin="132,66,80,6" Grid.Column="2" Grid.ColumnSpan="2" IsChecked="False" />
137                         </Grid>
138                         
139                     </GroupBox>
140                     
141                 </Grid>
142             </TabItem>
143             <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" Visibility="Collapsed" x:Name="RateTab">
144                 <TabItem.Header>
145                     <StackPanel>
146                         <Image Source="/PithosPlus;component/Images/Bandwidth.png" Stretch="Uniform" Height="32"/>
147                         <TextBlock Text="Bandwidth"/>
148                     </StackPanel>
149                 </TabItem.Header>
150                 <StackPanel>
151                     <GroupBox Header="Download Rate" Height="100"   Margin="10,5" VerticalAlignment="Top">
152                         <Grid />
153                     </GroupBox>
154                     <GroupBox Header="Upload Rate" Height="100"   Margin="10,5" VerticalAlignment="Top">
155                         <Grid />
156                     </GroupBox>
157                 </StackPanel>
158             </TabItem>
159             <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="ProxyTab">
160                 <TabItem.Header>
161                     <StackPanel>
162                         <Image Source="/PithosPlus;component/Images/Network.png" Stretch="Uniform" Height="32"/>
163                         <TextBlock Text="Proxy"/>
164                     </StackPanel>
165                 </TabItem.Header>
166                     <Grid Margin="10,5">
167                         <RadioButton Name="Settings_UseDefaultProxy" Content="Use System Defaults" Margin="5,6,5,0" Height="16" VerticalAlignment="Top"/>
168                     <RadioButton Name="Settings_UseNoProxy" Content="No Proxy" Margin="5,25,5,0" Height="16" VerticalAlignment="Top"/>
169                     <RadioButton Name="Settings_UseManualProxy" Content="Manual" Margin="5,44,5,0" Height="16" VerticalAlignment="Top"/>
170                         <Label Content="Server" Height="28" HorizontalAlignment="Left" Margin="5,63,0,0" Name="label2" VerticalAlignment="Top" />
171                         <TextBox Height="23" HorizontalAlignment="Left" Margin="76,67,0,0" Name="Settings_ProxyServer" VerticalAlignment="Top" Width="162" IsEnabled="{Binding ElementName=Settings_UseManualProxy, Path=IsChecked}"/>
172                         <TextBlock Height="23" HorizontalAlignment="Left" Margin="244,67,0,0" Name="textBlock1" Text=":" VerticalAlignment="Top" />
173                         <TextBox Height="23" HorizontalAlignment="Left" Margin="254,67,0,0" Name="Settings_ProxyPort" VerticalAlignment="Top" Width="65" IsEnabled="{Binding ElementName=Settings_UseManualProxy, Path=IsChecked}"/>
174
175                         <GroupBox Height="109" HorizontalAlignment="Left" Margin="5,96,0,0" Name="groupBox2" VerticalAlignment="Top" Width="373" IsEnabled="{Binding ElementName=Settings_UseManualProxy, Path=IsChecked}">
176                             <GroupBox.Header>
177                                 <CheckBox Content="Proxy requires authentication" Height="16" VerticalAlignment="Top" Name="Settings_ProxyAuthentication" />
178                             </GroupBox.Header>
179                             <Grid >
180                             <Grid.RowDefinitions>
181                                 <RowDefinition/>
182                                 <RowDefinition/>
183                                 <RowDefinition/>
184                             </Grid.RowDefinitions>
185                             <Grid.ColumnDefinitions>
186                                 <ColumnDefinition/>
187                                 <ColumnDefinition/>
188                             </Grid.ColumnDefinitions>
189                                 <Label Content="Username" Height="28" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="0" VerticalAlignment="Top" />
190                             <Label Content="Password" Height="28" HorizontalAlignment="Left" Grid.Row="1" Grid.Column="0" VerticalAlignment="Top" />
191                             <Label Content="Domain" Height="28" HorizontalAlignment="Left" Grid.Row="2" Grid.Column="0"  VerticalAlignment="Top" />
192                             <TextBox Height="23" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="1" Name="Settings_ProxyUsername" VerticalAlignment="Top" Width="157" IsEnabled="{Binding IsChecked,ElementName=Settings_ProxyAuthentication}"/>
193                             <TextBox Height="23" HorizontalAlignment="Left" Grid.Row="1" Grid.Column="1" Name="Settings_ProxyPassword" VerticalAlignment="Top" Width="157" IsEnabled="{Binding IsChecked,ElementName=Settings_ProxyAuthentication}"/>
194                             <TextBox Height="23" HorizontalAlignment="Left" Grid.Row="2" Grid.Column="1" Name="Settings_ProxyDomain" VerticalAlignment="Top" Width="157" IsEnabled="{Binding IsChecked,ElementName=Settings_ProxyAuthentication}"/>
195                             </Grid>
196                         </GroupBox>
197                     </Grid>
198             </TabItem>
199             <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="AdvancedTab">
200                 <TabItem.Header>
201                     <StackPanel>
202                         <Image Source="/PithosPlus;component/Images/Advanced.png" Stretch="Uniform" Height="32"/>
203                         <TextBlock Text="Advanced"/>                        
204                     </StackPanel>
205                 </TabItem.Header>
206                 <WrapPanel Orientation="Vertical">
207                     <CheckBox Content="Activate Shell Extensions" Height="16" HorizontalAlignment="Left" Margin="5" Name="ExtensionsActivated" VerticalAlignment="Top" />
208                     <Button Content="Refresh Overlays" Name="RefreshOverlays" HorizontalAlignment="Left" Margin="5" Style="{StaticResource ButtonStyle}" Width="Auto" />
209                     <TextBlock Text="Polling Interval (secs)" Margin="5"/>
210                     <extToolkit:IntegerUpDown x:Name="Settings_PollingInterval" HorizontalAlignment="Left" Width="100" Margin="5,0" Watermark="Enter seconds" Minimum="10" />                    
211                     <TextBlock Text="Hashing Parallelism" Margin="5"/>
212                     <extToolkit:IntegerUpDown x:Name="Settings_HashingParallelism" HorizontalAlignment="Left" Width="100" Margin="5,0" Watermark="Enter number of tasks" Minimum="1" />                    
213                     <TextBlock Text="Startup Delay (minutes)" Margin="5"/>
214                     <extToolkit:IntegerUpDown x:Name="StartupDelay" HorizontalAlignment="Left" Width="100" Margin="5,0" Watermark="Enter number of tasks" Minimum="0" />
215                     <GroupBox Header="Logging">
216                         <StackPanel Margin="5">
217                         <CheckBox Content="Enable Debug Logging" Height="16" HorizontalAlignment="Left" Margin="5,10,5,5" Name="DebugLoggingEnabled" VerticalAlignment="Top"/>
218                         <Button x:Name="OpenLogPath" Content="Open Log Path" HorizontalAlignment="Left" Margin="5" Style="{StaticResource ButtonStyle}" Width="Auto"/>
219                         <Button x:Name="OpenLogConsole" Content="Open Log Console" HorizontalAlignment="Left" Margin="5" Style="{StaticResource ButtonStyle}" Width="Auto" Visibility="Collapsed"/>
220                         <CheckBox Content="Ignore Certificate Errors" Height="16" HorizontalAlignment="Left" Margin="5,10,5,5" Name="IgnoreCertificateErrors" VerticalAlignment="Top"/>
221                         </StackPanel>
222                     </GroupBox>
223                 </WrapPanel>
224             </TabItem>
225         </TabControl>
226
227         <StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Right">
228             <Button Name="SaveChanges" Content="OK" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}"/>
229             <Button Name="RejectChanges" Content="Cancel" Margin="5,5,10,5" Style="{StaticResource ButtonStyle}"/>
230             <Button Name="ApplyChanges" Content="Apply" Style="{StaticResource ButtonStyle}" />
231         </StackPanel>
232     </Grid>
233 </Window>