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