Statistics
| Branch: | Revision:

root / trunk / Pithos.Client.WPF / Preferences / PreferencesView.xaml @ 99882980

History | View | Annotate | Download (22.8 kB)

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
        xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" x:Name="TheView"
8
        Title="Pithos+ Preferences" Height="480" Width="732" 
9
        WindowStartupLocation="CenterScreen"
10
        Icon="/PithosPlus;component/Images/PithosTaskbar.png"
11
        WindowStyle="ToolWindow"        
12
        ResizeMode="NoResize"
13
        ShowInTaskbar="True"
14
        BorderThickness="1"
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
    <xctk:BusyIndicator IsBusy="{Binding IsBusy}" BusyContent="Please Wait ..." >
37
        <Grid>
38
        <Grid.RowDefinitions>
39
            <RowDefinition Height="*"/>
40
            <RowDefinition Height="Auto"/>
41
        </Grid.RowDefinitions>
42

    
43
            <TabControl Grid.Row="0" x:Name="Tabs" >  
44
            <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="GeneralTab">
45
                <TabItem.Header>
46
                    <StackPanel>
47
                        <Image Source="/PithosPlus;component/Images/settings.png" Stretch="Uniform" Height="77"/>
48
                        <TextBlock Text="General"/>
49
                    </StackPanel>
50
                </TabItem.Header>
51
                <Grid>
52
                    <Grid.ColumnDefinitions>
53
                        <ColumnDefinition Width="230"/>
54
                        <ColumnDefinition Width="230"/>
55
                        <ColumnDefinition Width="240"/>
56
                    </Grid.ColumnDefinitions>
57
                    <Grid.RowDefinitions>
58
                        <RowDefinition Height="180"/>
59
                        <RowDefinition Height="110"/>
60
                    </Grid.RowDefinitions>
61
                    <GroupBox VerticalAlignment="Top" Name="groupBox1" Margin="10,5">
62
                        <StackPanel>
63
                            <CheckBox Content="Show Desktop Notifications" Height="16" Name="Settings_ShowDesktopNotifications" Margin="5,10,5,0" />
64
                            <CheckBox Content="Start on System Startup" Height="16" Name="Settings_StartOnSystemStartup" Margin="5,5,5,0" />
65
                        </StackPanel>
66
                    </GroupBox>
67
                </Grid>
68
            </TabItem>
69
            <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="AccountTab" IsSelected="{Binding AccountTabSelected,Mode=OneWay}">
70
                <TabItem.Header>
71
                    <StackPanel>
72
                        <Image Source="/PithosPlus;component/Images/users.png" Stretch="Uniform" Height="77"/>
73
                        <TextBlock Text="Accounts"/>
74
                    </StackPanel>
75
                </TabItem.Header>
76
                <Grid VerticalAlignment="Stretch" >
77
                    <Grid.ColumnDefinitions>
78
                        <ColumnDefinition Width="Auto"/>
79
                        <ColumnDefinition Width="*"/>
80
                    </Grid.ColumnDefinitions>
81
                    <Grid Margin="5,10,5,5" Column="0" Width="230">
82
                        <Grid.RowDefinitions>
83
                            <RowDefinition Height="*"/>
84
                            <RowDefinition Height="Auto"/>
85
                        </Grid.RowDefinitions>
86
                        <ListBox Name="Accounts" Padding="2" Margin="2,2,-18,0" Grid.Row="0" VerticalAlignment="Stretch" ItemsSource="{Binding Accounts,Mode=OneWay}" SelectedItem="{Binding CurrentAccount,Mode=TwoWay}" >
87
                            <ListBox.ItemTemplate>
88
                                <DataTemplate>
89
                                    <StackPanel Orientation="Horizontal">
90
                                    <Image Visibility="{Binding Converter={StaticResource BoolToVisible}, Path=IsExpired,Mode=OneWay}" Source="/PithosPlus;component/Images/SmallWarning.png" Margin="2,0"/>
91
                                        <StackPanel>
92
                                    <TextBlock Text="{Binding AccountName}" />
93
                                    <TextBlock Text="{Binding ServerUrl}" FontStyle="Italic" FontSize="10" />
94
                                        </StackPanel>
95
                                    </StackPanel>
96
                                </DataTemplate>
97
                            </ListBox.ItemTemplate>
98
                        </ListBox>
99
                        <Grid Grid.Row="1" Margin="0,0,-18,0">
100
<!--                            <Grid.ColumnDefinitions>
101
                                <ColumnDefinition Width="50*"/>
102
                                <ColumnDefinition Width="50*"/>
103
                            </Grid.ColumnDefinitions> -->
104
                            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,0,-17,0" Width="247">
105
                                <Button Name="AddAccount" Grid.Column="0"  Content="Add" ToolTip="Enter account details manually" Margin="5,5,10,5" Height="25"  Width="100"/>
106
                                <Button Name="RemoveAccount" Grid.Column="1"  Content="Remove" Margin="5,5,10,5" Height="25" Width="100"/>
107
                            </StackPanel>
108
                        </Grid>
109
                    </Grid>
110
                    <GroupBox Header="Account" Padding="2" Margin="18,2,2,0" Height="231" HorizontalAlignment="Stretch" VerticalAlignment="Top" Grid.Column="1" Visibility="{Binding Path=CurrentAccount, Converter={StaticResource NullToVisible},ConverterParameter='Invert'}"
111
                              HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
112
                        <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="Wrap" >
113
                            No account is selected. Please select an account or add a new one.
114
                        </TextBlock>    
115
                    </GroupBox>
116
                    <GroupBox Header="Account" Padding="2" Margin="18,2,2,0" Height="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Top" Grid.Column="1" Visibility="{Binding Path=CurrentAccount, Converter={StaticResource NullToVisible}}">
117
                            <Grid>
118
                            <Grid.ColumnDefinitions>
119
                                <ColumnDefinition Width="45"/>
120
                                <ColumnDefinition Width="90*"/>
121
                            </Grid.ColumnDefinitions>
122
                            <Grid.RowDefinitions>
123
                                <RowDefinition Height="Auto"/>
124
                                <RowDefinition Height="Auto"/>
125
                                <RowDefinition Height="Auto"/>
126
                                <RowDefinition Height="Auto"/>
127
                                <RowDefinition Height="Auto"/>
128
                                <RowDefinition Height="Auto"/>
129
                                <RowDefinition Height="Auto"/>
130
                                <RowDefinition Height="Auto"/>
131
                                <RowDefinition Height="Auto"/>
132
                                <RowDefinition />
133
                            </Grid.RowDefinitions>
134
                            <Label Content="Server" Grid.Column="0" Grid.Row="0" Margin="0,2" HorizontalAlignment="Right"/>
135
                            <TextBox Name="CurrentAccount_ServerUrl" IsReadOnly="True" Grid.Column="1" Grid.Row="0" Margin="0,2"/>
136
                            <Label Content="eMail" Grid.Column="0" Grid.Row="1" Margin="0,2" HorizontalAlignment="Right"/>
137
                            <TextBox Name="CurrentAccount_DisplayName" IsReadOnly="True" Grid.Column="1" Grid.Row="1" Margin="0,2"/>
138
                            <Label Content="UID" ToolTip="User ID" Grid.Column="0" Grid.Row="2" Margin="0,2" HorizontalAlignment="Right"/>
139
                            <TextBox Name="CurrentAccount_AccountName" IsReadOnly="True" Grid.Column="1" Grid.Row="2" Margin="0,2"/>  
140
                            <Grid Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" >
141
                                <Grid.ColumnDefinitions>
142
                                    <ColumnDefinition Width="45"/>
143
                                    <ColumnDefinition Width="*"/>
144
                                    <ColumnDefinition Width="Auto"/>
145
                                </Grid.ColumnDefinitions>
146
                                <Label Content="Token" Grid.Column="0"  Margin="0,2" HorizontalAlignment="Right"/>
147
                                <TextBox  Name="CurrentAccount_ApiKey" IsReadOnly="True" Grid.Column="1" Margin="2" />
148
                                <Button Name="RefreshApiKey" Grid.Column="2" Content="Refresh" Margin="2"/>
149
                            </Grid>
150
                            <Label Content="Folder" Grid.Column="0" Grid.Row="4" Margin="0,2" HorizontalAlignment="Right"/>
151
                            <Grid Grid.Row="4" Grid.Column="1" >
152
                                <Grid.ColumnDefinitions>
153
                                    <ColumnDefinition Width="*"/>
154
                                    <ColumnDefinition Width="Auto"/>
155
                                </Grid.ColumnDefinitions>
156
                                <TextBox  Name="CurrentAccount_RootPath" Margin="2" HorizontalAlignment="Stretch" IsReadOnly="True" ToolTip="{Binding CurrentAccount.RootPath}" Height="61" TextWrapping="WrapWithOverflow" />
157
                            </Grid>
158
                            <CheckBox Name="CurrentAccount_IsActive" Content="Account is Active" Grid.Row="7"  Grid.Column="1"  />
159
                            <CheckBox Name="CurrentAccount_SelectiveSyncEnabled" Content="Selective Sync Enabled" Grid.Row="8" Grid.Column="1"/>
160
                            <StackPanel Orientation="Horizontal" Grid.Row="9" Grid.Column="1" HorizontalAlignment="center">
161
                                <Button Name="SelectiveSyncFolders" Width="100" Height="25" Content="Selective Sync" Margin="5,5,10,5"/>
162
                                <Button Name="MoveAccountFolder" Content="Move ..." Width="100" Height="25" IsEnabled="False" Margin="5,5,10,5"/>
163
                                <Button x:Name="ClearAccountCache" Content="Clear Cache" Margin="5,5,10,5" Width="100" Height="25"/>
164
                            </StackPanel>
165
                        </Grid>
166
                        
167
                    </GroupBox>
168
                    
169
                </Grid>
170
            </TabItem>
171
            <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="PluginTab">
172
                <TabItem.Header>
173
                    <StackPanel>
174
                        <Image Source="/PithosPlus;component/Images/Plugins.png" Stretch="Uniform" Height="77"/>
175
                        <TextBlock Text="Plugins"/>
176
                    </StackPanel>
177
                </TabItem.Header>
178
                <Grid>
179
                    <Grid.ColumnDefinitions>
180
                        <ColumnDefinition Width="50"/>
181
                        <ColumnDefinition/>
182
                        <ColumnDefinition Width="50"/>
183
                    </Grid.ColumnDefinitions>
184
                    <Grid.RowDefinitions>
185
                        <RowDefinition Height="30"/>
186
                        <RowDefinition/>
187
                        <RowDefinition Height="40"/>                            
188
                    </Grid.RowDefinitions>
189

    
190
                    <Label Content="Type" Grid.Column="0" Grid.Row="0"/>
191
                    <Label Content="Plugin" Grid.Column="1" Grid.Row="0"/>
192
                    <Label Content="Status" Grid.Column="2" Grid.Row="0"/>
193

    
194
                    <Label Content="No Plugins found in the plugins folder." Grid.Column="1" Grid.Row="1"/>
195

    
196
                    <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Margin="2" Grid.Column="1" Grid.Row="2">
197
                        <Button Content="Install" Height="25" Width="100" Margin="5,5,10,5" IsEnabled="False"/>
198
                        <Button Content="Remove" Height="25" Width="100" Margin="5,5,10,5" IsEnabled="False"/>
199
                        <Button Content="Toggle Status" Height="25" Width="100" Margin="5,5,10,5" IsEnabled="False"/>
200
                    </StackPanel>
201

    
202
                </Grid>
203
                
204
                </TabItem>
205
            <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" Visibility="Collapsed" x:Name="RateTab">
206
                <TabItem.Header>
207
                    <StackPanel>
208
                        <Image Source="/PithosPlus;component/Images/Bandwidth.png" Stretch="Uniform" Height="32"/>
209
                        <TextBlock Text="Bandwidth"/>
210
                    </StackPanel>
211
                </TabItem.Header>
212
                <StackPanel>
213
                    <GroupBox Header="Download Rate" Height="100"   Margin="10,5" VerticalAlignment="Top">
214
                        <Grid />
215
                    </GroupBox>
216
                    <GroupBox Header="Upload Rate" Height="100"   Margin="10,5" VerticalAlignment="Top">
217
                        <Grid />
218
                    </GroupBox>
219
                </StackPanel>
220
            </TabItem>
221
            <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="ProxyTab">
222
                <TabItem.Header>
223
                    <StackPanel>
224
                        <Image Source="/PithosPlus;component/Images/proxy.png" Stretch="Uniform" Height="77"/>
225
                        <TextBlock Text="Proxy"/>
226
                    </StackPanel>
227
                </TabItem.Header>
228
                    <Grid Margin="10,5">
229
                        <RadioButton Name="Settings_UseDefaultProxy" Content="Use System Defaults" Margin="5,6,5,0" Height="16" VerticalAlignment="Top"/>
230
                    <RadioButton Name="Settings_UseNoProxy" Content="No Proxy" Margin="5,25,5,0" Height="16" VerticalAlignment="Top"/>
231
                    <RadioButton Name="Settings_UseManualProxy" Content="Manual" Margin="5,44,5,0" Height="16" VerticalAlignment="Top"/>
232
                        <Label Content="Server" Height="28" HorizontalAlignment="Left" Margin="5,63,0,0" Name="label2" VerticalAlignment="Top" />
233
                        <TextBox Height="23" HorizontalAlignment="Left" Margin="76,67,0,0" Name="Settings_ProxyServer" VerticalAlignment="Top" Width="162" IsEnabled="{Binding ElementName=Settings_UseManualProxy, Path=IsChecked}"/>
234
                        <TextBlock Height="23" HorizontalAlignment="Left" Margin="244,67,0,0" Name="textBlock1" Text=":" VerticalAlignment="Top" />
235
                        <TextBox Height="23" HorizontalAlignment="Left" Margin="254,67,0,0" Name="Settings_ProxyPort" VerticalAlignment="Top" Width="65" IsEnabled="{Binding ElementName=Settings_UseManualProxy, Path=IsChecked}"/>
236

    
237
                        <GroupBox Height="109" HorizontalAlignment="Left" Margin="5,96,0,0" Name="groupBox2" VerticalAlignment="Top" Width="373" IsEnabled="{Binding ElementName=Settings_UseManualProxy, Path=IsChecked}">
238
                            <GroupBox.Header>
239
                                <CheckBox Content="Proxy requires authentication" Height="16" VerticalAlignment="Top" Name="Settings_ProxyAuthentication" />
240
                            </GroupBox.Header>
241
                            <Grid >
242
                            <Grid.RowDefinitions>
243
                                <RowDefinition/>
244
                                <RowDefinition/>
245
                                <RowDefinition/>
246
                            </Grid.RowDefinitions>
247
                            <Grid.ColumnDefinitions>
248
                                <ColumnDefinition/>
249
                                <ColumnDefinition/>
250
                            </Grid.ColumnDefinitions>
251
                                <Label Content="Username" Height="28" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="0" VerticalAlignment="Top" />
252
                            <Label Content="Password" Height="28" HorizontalAlignment="Left" Grid.Row="1" Grid.Column="0" VerticalAlignment="Top" />
253
                            <Label Content="Domain" Height="28" HorizontalAlignment="Left" Grid.Row="2" Grid.Column="0"  VerticalAlignment="Top" />
254
                            <TextBox Height="23" HorizontalAlignment="Left" Grid.Row="0" Grid.Column="1" Name="Settings_ProxyUsername" VerticalAlignment="Top" Width="157" IsEnabled="{Binding IsChecked,ElementName=Settings_ProxyAuthentication}"/>
255
                            <PasswordBox Height="23" HorizontalAlignment="Left" Grid.Row="1" Grid.Column="1" Name="Settings_ProxyPassword" PasswordChar="*" VerticalAlignment="Top" Width="157" IsEnabled="{Binding IsChecked,ElementName=Settings_ProxyAuthentication}"/>
256
                            <TextBox Height="23" HorizontalAlignment="Left" Grid.Row="2" Grid.Column="1" Name="Settings_ProxyDomain" VerticalAlignment="Top" Width="157" IsEnabled="{Binding IsChecked,ElementName=Settings_ProxyAuthentication}"/>
257
                            </Grid>
258
                        </GroupBox>
259
                    </Grid>
260
            </TabItem>
261
            <TabItem VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" x:Name="AdvancedTab">
262
                <TabItem.Header>
263
                    <StackPanel>
264
                        <Image Source="/PithosPlus;component/Images/Advanced.png" Stretch="Uniform" Height="77"/>
265
                        <TextBlock Text="Advanced"/>                        
266
                    </StackPanel>
267
                </TabItem.Header>
268
                <WrapPanel Orientation="Vertical">
269
                    <Grid>  
270
                        <Grid.ColumnDefinitions>
271
                            <ColumnDefinition Width="230"/>
272
                            <ColumnDefinition Width="230"/>
273
                            <ColumnDefinition Width="240"/>                            
274
                        </Grid.ColumnDefinitions>
275
                        <Grid.RowDefinitions>
276
                            <RowDefinition Height="180"/>
277
                            <RowDefinition Height="110"/>
278
                        </Grid.RowDefinitions>
279
                        <GroupBox Header="Hash Settings" Grid.Column="0" Grid.Row="0">
280
                            <StackPanel Margin="5">
281
                                <TextBlock Text="Polling Interval (Seconds)" Margin="5"/>
282
                                <xctk:IntegerUpDown x:Name="Settings_PollingInterval" HorizontalAlignment="Left" Width="100" Margin="5,0" Watermark="Enter seconds" Minimum="1" />
283
                                <TextBlock Text="Hashing Parallelism" Margin="5"/>
284
                                <xctk:IntegerUpDown x:Name="Settings_HashingParallelism" HorizontalAlignment="Left" Width="100" Margin="5,0" Watermark="Enter number of tasks" Minimum="1" />
285
                                <TextBlock Text="Startup Delay (Minutes)" Margin="5"/>
286
                                <xctk:IntegerUpDown x:Name="StartupDelay" HorizontalAlignment="Left" Width="100" Margin="5,0" Watermark="Enter number of tasks" Minimum="0" />
287
                            </StackPanel>
288
                        </GroupBox>
289
                        <GroupBox Header="Logging" Grid.Column="1" Grid.Row="1">
290
                            <StackPanel Margin="5">
291
                                <CheckBox Content="Debug Logging" Height="16" HorizontalAlignment="Left" Margin="5,10,5,5" Name="DebugLoggingEnabled" VerticalAlignment="Top"/>
292
                                <Button x:Name="OpenLogPath" Content="Log Folder" HorizontalAlignment="Left" Margin="5"  Height="25" Width="100" />
293
                                <Button x:Name="OpenLogConsole" Content="Open Log Console" HorizontalAlignment="Left" Margin="5" Height="25" Width="100" Visibility="Collapsed"/>
294
                            </StackPanel>
295
                        </GroupBox>
296
                        <GroupBox Header="Warning" Grid.Column="1" Grid.Row="0">
297
                            <StackPanel Margin="5">
298
                                <Button x:Name="WipeAccount" Content="Wipe Account" HorizontalAlignment="Left" Margin="5"  Height="25" Width="100" />
299
                                <CheckBox Content="Ignore Certificates" Height="16" Foreground="Red" HorizontalAlignment="Left" Margin="5,10,5,5" x:Name="IgnoreCertificateErrors" VerticalAlignment="Top"/>
300
                                <Grid>
301
                                    <Grid.ColumnDefinitions>
302
                                        <ColumnDefinition Width="80"/>
303
                                        <ColumnDefinition/>
304
                                    </Grid.ColumnDefinitions>
305
                                    <Label Content="Containers" Margin="5" Height="25" Width="Auto" HorizontalAlignment="Left" Grid.Column="0"/>
306
                                    <TextBox Name="Account_Containers" Text="pithos;" Margin="5" Width="Auto" Height="25" Grid.Column="1" IsReadOnly="True"/>
307
                                </Grid>
308
                            </StackPanel>
309
                        </GroupBox>
310
                        <GroupBox Header="System" Grid.Column="0" Grid.Row="1">
311
                        <Button Content="Refresh Overlays" Name="RefreshOverlays" HorizontalAlignment="Left" Margin="5" Height="25" Width="100" />                        
312
                        </GroupBox>
313
                    </Grid>
314
                </WrapPanel>
315
            </TabItem>
316
        </TabControl>
317

    
318
        <StackPanel Orientation="Horizontal" Grid.Row="1" HorizontalAlignment="Right" Margin="2">
319
            <Button Name="SaveChanges" Content="OK" Margin="5,5,10,5" Height="25" Width="100" />
320
            <Button Name="RejectChanges" Content="Cancel" Margin="5,5,10,5" Height="25" Width="100" />
321
            <Button Name="ApplyChanges" Content="Apply" Height="25" Width="100" />
322
<!--            <Button Name="ApplyChanges" Content="Apply" Style="{StaticResource BorderlessButton}" /> -->
323
        </StackPanel>
324
    </Grid>
325
    </xctk:BusyIndicator>
326
</Window>