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