Changeset 2720


Ignore:
Timestamp:
Feb 17, 2011, 7:44:48 PM (11 years ago)
Author:
nolte
Message:

Statistic Update

  • Progress Bars using full length of Screen
  • Last Working Time Bubble/Skull
  • Culture Related Time Formation
  • Some DE-ENG Workings (further changes following soon)
Location:
trunk/CrypPlugins/KeySearcher
Files:
1 added
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/KeySearcher.cs

    r2705 r2720  
    13551355            if (!settings.DisableUpdate)
    13561356            {
    1357                 ((QuickWatch) QuickWatchPresentation).StatisticsPresentation.UpdateTime = "Last__Update__Time: " +now.ToString("g",DateTimeFormatInfo.InvariantInfo);
    1358                 ((QuickWatch) QuickWatchPresentation).StatisticsPresentation.NextUpdateTime = "Next__Update__Time: " +now.AddMinutes(interval).ToString("g",DateTimeFormatInfo.InvariantInfo);
     1357                var cc = ((QuickWatch) QuickWatchPresentation).CurrentCulture;
     1358                ((QuickWatch) QuickWatchPresentation).StatisticsPresentation.UpdateTime = "Last__Update__Time: " +now.ToString("g", cc);
     1359                ((QuickWatch)QuickWatchPresentation).StatisticsPresentation.NextUpdateTime = "Next__Update__Time: " + now.AddMinutes(interval).ToString("g", cc);
    13591360            }
    13601361            else
  • trunk/CrypPlugins/KeySearcher/KeySearcher.csproj

    r2516 r2720  
    261261    </None>
    262262  </ItemGroup>
     263  <ItemGroup>
     264    <Resource Include="Images\dead.png" />
     265  </ItemGroup>
    263266  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
    264267  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
  • trunk/CrypPlugins/KeySearcher/P2P/Helper/WidthConverter.cs

    r2286 r2720  
    1212        {
    1313            double x = (double) value;
     14            return x - 129;
     15        }
    1416
    15             return x - 200;
     17        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
     18        {
     19            throw new NotImplementedException();
     20        }
     21    }
     22
     23    class WidthConverter2 : IValueConverter
     24    {
     25        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
     26        {
     27            double x = (double)value;
     28            return x - 110;
     29        }
     30
     31        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
     32        {
     33            throw new NotImplementedException();
     34        }
     35    }
     36
     37    class WidthConverter3 : IValueConverter
     38    {
     39        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
     40        {
     41            double x = (double)value;
     42            return x - 100;
    1643        }
    1744
  • trunk/CrypPlugins/KeySearcher/Presentation/Controls/StatisticsPresentation.xaml

    r2685 r2720  
    55             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    66             xmlns:g="clr-namespace:KeySearcher.P2P.Helper"
    7              xmlns:Controls="clr-namespace:KeySearcherPresentation.Controls" xmlns:System="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d"
     7             xmlns:Controls="clr-namespace:KeySearcherPresentation.Controls" xmlns:System="clr-namespace:System;assembly=mscorlib" xmlns:Converter="clr-namespace:KeySearcherConverter" mc:Ignorable="d"
    88             d:DesignHeight="300" d:DesignWidth="300">
    99    <UserControl.Resources>
    1010        <Controls:InformationToProgressConverter x:Key="InformationToProgressConverter"/>
    1111        <Controls:InformationToProgressConverter2 x:Key="InformationToProgressConverter2"/>
     12        <Controls:DateFalseVisibleConverter1 x:Key="DateFalseVisibleConverter1"/>
     13        <Controls:DateTrueVisibleConverter1 x:Key="DateTrueVisibleConverter1"/>
     14        <Controls:DateFalseVisibleConverter2 x:Key="DateFalseVisibleConverter2"/>
     15        <Controls:DateTrueVisibleConverter2 x:Key="DateTrueVisibleConverter2"/>
     16        <Controls:DateToColorConverter1 x:Key="DateToColorConverter1"/>
     17        <Controls:DateToColorConverter2 x:Key="DateToColorConverter2"/>
    1218        <Controls:MaxDateConverter x:Key="MaxDateConverter"/>
    1319        <Controls:TimeConverter x:Key="TimeConverter"/>
     
    1824        <RotateTransform x:Key="HeaderRotate" Angle="270" />
    1925        <g:WidthConverter x:Key="WidthConverter"></g:WidthConverter>
     26        <g:WidthConverter2 x:Key="WidthConverter2"></g:WidthConverter2>
     27        <g:WidthConverter3 x:Key="WidthConverter3"></g:WidthConverter3>
    2028        <AlternationConverter x:Key="TeamsBackgroundConverter">
    2129            <SolidColorBrush>LimeGreen</SolidColorBrush>
     
    4957        </EventTrigger>
    5058    </UserControl.Triggers>
    51     <Grid Background="Beige">
     59    <Grid>
    5260        <Grid.RowDefinitions>
    53             <RowDefinition Height="25"/>
     61            <RowDefinition Height="Auto"/>
    5462            <RowDefinition Height="*" />
    5563        </Grid.RowDefinitions>
    56         <Label Content="K e y s e a r c h e r   G l o b a l   S t a t i s t i c" FontWeight="bold" FontSize="13" Grid.Row="0"  HorizontalAlignment="Stretch" VerticalAlignment="Top"/>
    57         <Button Name="myProgButton" Content="X" Click="SwitchView" Width="25" Height="17" VerticalAlignment="Top" HorizontalAlignment="Right" FontWeight="bold" FontSize="9" Foreground="White" Background="Crimson" BorderBrush="DarkBlue"/>
     64        <Label Content="K e y S e a r c h e r   S t a t i s t i c" Background="Beige" BorderBrush="Black" BorderThickness="0,0,0,2" FontWeight="bold" FontSize="13" Grid.Row="0"  HorizontalAlignment="Stretch" VerticalAlignment="Top" HorizontalContentAlignment="Center" />
     65        <Button Name="myProgButton" Content="X" Click="SwitchView" Width="25" Height="17" VerticalAlignment="Top" HorizontalAlignment="Right" FontWeight="bold" FontSize="9" Foreground="White" Background="Crimson" BorderBrush="DarkBlue" />
    5866
    5967        <TabControl Grid.Row="2" >
     
    6674                                    <LinearGradientBrush EndPoint="0,1" StartPoint="0,0">
    6775                                        <GradientStop Color="#FFF3F3F3" Offset="0"/>
    68                                         <GradientStop Color="#FFF11818" Offset="1"/>
     76                                        <GradientStop Color="#FF00BDFF" Offset="1"/>
    6977                                    </LinearGradientBrush>
    7078                                </Setter.Value>
     
    146154                            </Border>
    147155                            <Border BorderBrush="Silver" BorderThickness="2,0,2,2">
    148                                 <Grid Height="50" Background="#AFAAE1E8">
     156                                <Grid Height="50" Background="#FFE8DAAA">
    149157                                    <Grid.RowDefinitions>
    150158                                        <RowDefinition Height="25" />
     
    199207                                                            <Binding Path="Value.Date" Mode="OneTime"></Binding>
    200208                                                            <Binding RelativeSource="{RelativeSource FindAncestor, AncestorLevel=2, AncestorType={x:Type TreeViewItem}}" Path="(ItemsControl.AlternationIndex)"></Binding>
    201                                                         </MultiBinding>
     209                                                        </MultiBinding> 
    202210                                                    </ProgressBar.Foreground>
    203211                                                </ProgressBar>
     
    206214                                                </StackPanel>
    207215                                            </Grid>
     216                                            <Grid>
     217                                                <Ellipse Name="MyEllipse2" Height="13" Width="13" HorizontalAlignment="Right" StrokeThickness="1" Stroke="Black" Fill="{Binding Path=Value.Date, Mode=OneTime, Converter={StaticResource ResourceKey=DateToColorConverter2}}" Visibility="{Binding Path=Value.Date, Converter={StaticResource ResourceKey=DateFalseVisibleConverter2}}" ToolTip="{Binding Path=Value.Date, Converter={StaticResource ResourceKey=TimeConverter}}" />
     218                                                <Image Name="Skull2" Height="13" Width="13" HorizontalAlignment="Right" Source="/KeySearcher;component/Images/dead.png" Stretch="Fill" Visibility="{Binding Path=Value.Date, Converter={StaticResource ResourceKey=DateTrueVisibleConverter2}}" >
     219                                                    <Image.ToolTip>
     220                                                        <Image Width="22" Height="32" Source="/KeySearcher;component/Images/dead.png" Stretch="Fill"/>
     221                                                    </Image.ToolTip>
     222                                                </Image>
     223                                            </Grid>
    208224                                        </StackPanel>
    209225                                    </DataTemplate>
     
    216232                                    </Grid>
    217233                                    <Grid>
    218                                     <ProgressBar x:Name="Bar" Foreground="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}},Path=(ItemsControl.AlternationIndex),Converter={StaticResource ResourceKey=TeamsBackgroundConverter}}" Value="{Binding Path=Value, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter}}" Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" ToolTip="{Binding Path=Key, Converter={StaticResource ResourceKey=MaxDateConverter}}" />
     234                                    <ProgressBar x:Name="Bar" Foreground="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TreeViewItem}},Path=(ItemsControl.AlternationIndex),Converter={StaticResource ResourceKey=TeamsBackgroundConverter}}" Value="{Binding Path=Value, Mode=OneTime, Converter={StaticResource ResourceKey=InformationToProgressConverter}}" Width="{Binding ElementName=statisticsTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter2}}" Maximum="1" ToolTip="{Binding Path=Key, Converter={StaticResource ResourceKey=MaxDateConverter}}" />
    219235                                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    220236                                            <TextBlock Text="{Binding Path=Key, Converter={StaticResource ResourceKey=ChunkSumConverter}, StringFormat=\{0\,-5\}}"/>
    221237                                        </StackPanel>
     238                                    </Grid>
     239                                    <Grid>
     240                                        <Ellipse Name="MyEllipse1" Height="13" Width="13" HorizontalAlignment="Right" StrokeThickness="1" Stroke="Black" Fill="{Binding Path=Key, Mode=OneTime, Converter={StaticResource ResourceKey=DateToColorConverter1}}" Visibility="{Binding Path=Key, Converter={StaticResource ResourceKey=DateFalseVisibleConverter1}}" ToolTip="{Binding Path=Key, Converter={StaticResource ResourceKey=MaxDateConverter}}" />
     241                                        <Image Name="Skull1" Height="13" Width="13" HorizontalAlignment="Right" Source="/KeySearcher;component/Images/dead.png" Stretch="Fill" Visibility="{Binding Path=Key, Converter={StaticResource ResourceKey=DateTrueVisibleConverter1}}">
     242                                            <Image.ToolTip>
     243                                                <Image Width="22" Height="32" Source="/KeySearcher;component/Images/dead.png" Stretch="Fill"/>
     244                                            </Image.ToolTip>
     245                                        </Image>
    222246                                    </Grid>
    223247                                </StackPanel>
     
    254278                                    </Grid>
    255279                                    <Grid>
    256                                         <ProgressBar Value="{Binding Path=Value.Sum, Mode=OneTime, Converter={StaticResource ResourceKey=MachineSumToProgressConverter}}" Width="{Binding ElementName=machineTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter}}" Maximum="1" />
     280                                        <ProgressBar Value="{Binding Path=Value.Sum, Mode=OneTime, Converter={StaticResource ResourceKey=MachineSumToProgressConverter}}" Width="{Binding ElementName=machineTree, Path=ActualWidth, Converter={StaticResource ResourceKey=WidthConverter3}}" Maximum="1" />
    257281                                        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
    258282                                            <TextBlock Text="{Binding Path=Value.Sum,StringFormat=\{0\,-5\}}"/>
  • trunk/CrypPlugins/KeySearcher/Presentation/Controls/StatisticsPresentation.xaml.cs

    r2704 r2720  
    3838            ((TimeConverter)Resources["TimeConverter"]).StatisticsPresentation = this;
    3939            ((StringLengthConverter)Resources["StringLengthConverter"]).StatisticsPresentation = this;
     40            //---
     41            ((DateFalseVisibleConverter1)Resources["DateFalseVisibleConverter1"]).StatisticsPresentation = this;
     42            ((DateTrueVisibleConverter1)Resources["DateTrueVisibleConverter1"]).StatisticsPresentation = this;
     43            ((DateFalseVisibleConverter2)Resources["DateFalseVisibleConverter2"]).StatisticsPresentation = this;
     44            ((DateTrueVisibleConverter2)Resources["DateTrueVisibleConverter2"]).StatisticsPresentation = this;
     45            ((DateToColorConverter1)Resources["DateToColorConverter1"]).StatisticsPresentation = this;
     46            ((DateToColorConverter2)Resources["DateToColorConverter2"]).StatisticsPresentation = this;
    4047           
    4148        }
     
    400407                Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    401408                {
    402                     Rate.Content = string.Format("{0:0,0} key/sec", rate);
     409                    Rate.Content = string.Format(KeySearcher.Properties.Resources.StatisticsPresentation_SetCurrentRate, rate);
    403410                }, null);
    404411            }
     
    418425                Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    419426                {
    420                     CurrentRate.Content = string.Format("{0:0,0} key/sec", currentrate);
     427                    CurrentRate.Content = string.Format(KeySearcher.Properties.Resources.StatisticsPresentation_SetCurrentRate, currentrate);
    421428                }, null);
    422429            }
     
    610617    }
    611618
    612     [ValueConversion(typeof(String), typeof(DateTime))]
     619    [ValueConversion(typeof(DateTime), typeof(String))]
    613620    class MaxDateConverter : IValueConverter
    614621    {
     
    629636                            max = machines[id].Date;
    630637                        }
    631                         return max.ToLocalTime().ToString("g", DateTimeFormatInfo.InvariantInfo);
    632                     }
    633                 }
    634             }
    635             catch (Exception)
    636             {
    637             }
    638             return DateTime.UtcNow.ToLocalTime().ToString("g", DateTimeFormatInfo.InvariantInfo);
    639         }
    640 
    641         public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    642         {
    643             throw new NotImplementedException();
    644         }
    645     }
    646 
    647     [ValueConversion(typeof(DateTime), typeof(DateTime))]
     638                        return max.ToLocalTime().ToString("g");
     639                    }
     640                }
     641            }
     642            catch (Exception)
     643            {
     644            }
     645            return DateTime.UtcNow.ToLocalTime().ToString("g");
     646        }
     647
     648        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     649        {
     650            throw new NotImplementedException();
     651        }
     652    }
     653
     654    [ValueConversion(typeof(DateTime), typeof(String))]
    648655    class TimeConverter : IValueConverter
    649656    {
     
    659666                    {
    660667
    661                         return ((DateTime)value).ToLocalTime().ToString("g", DateTimeFormatInfo.InvariantInfo);
    662                     }
    663                 }
    664             }
    665             catch (Exception)
    666             {
    667             }
    668             return DateTime.UtcNow.ToLocalTime().ToString("g", DateTimeFormatInfo.InvariantInfo);
     668                        return ((DateTime)value).ToLocalTime().ToString("g");
     669                    }
     670                }
     671            }
     672            catch (Exception)
     673            {
     674            }
     675            return DateTime.UtcNow.ToLocalTime().ToString("g");
     676        }
     677
     678        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     679        {
     680            throw new NotImplementedException();
     681        }
     682    }
     683
     684    [ValueConversion(typeof(DateTime), typeof(String))]
     685    class DateToColorConverter1 : IValueConverter
     686    {
     687        public StatisticsPresentation StatisticsPresentation { get; set; }
     688
     689        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     690        {
     691            try
     692            {
     693                if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     694                {
     695                    lock (StatisticsPresentation)
     696                    {
     697                        var max = DateTime.MinValue;
     698                        var machines = StatisticsPresentation.Statistics[(string)value];
     699                        foreach (var id in machines.Keys.Where(id => machines[id].Date > max))
     700                        {
     701                            max = machines[id].Date;
     702                        }
     703                        TimeSpan diff = DateTime.UtcNow.Subtract(max);
     704                        var minutes = diff.TotalMinutes;
     705
     706                        var r = Math.Round(minutes/20);
     707                        var g = -1*(Math.Round(minutes/20)) + 255;
     708
     709                        if (r > 255) r = 255;
     710                        if (g < 0) g = 0;
     711
     712                        Color c = Color.FromRgb((byte) r, (byte) g, (byte) 0);
     713                        return c.ToString();
     714                    }
     715                }
     716            }
     717            catch (Exception)
     718            {
     719            }
     720            return Color.FromRgb(0, 0, 0).ToString();
     721        }
     722
     723        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     724        {
     725            throw new NotImplementedException();
     726        }
     727    }
     728
     729    [ValueConversion(typeof(DateTime), typeof(String))]
     730    class DateToColorConverter2 : IValueConverter
     731    {
     732        public StatisticsPresentation StatisticsPresentation { get; set; }
     733
     734        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     735        {
     736            try
     737            {
     738                if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     739                {
     740                    lock (StatisticsPresentation)
     741                    {
     742                        DateTime date = (DateTime)value;
     743                        TimeSpan diff = DateTime.UtcNow.Subtract(date);
     744                        var minutes = diff.TotalMinutes;
     745
     746                        var r = Math.Round(minutes / 20);
     747                        var g = -1 * (Math.Round(minutes / 20)) + 255;
     748
     749                        if (r > 255) r = 255;
     750                        if (g < 0) g = 0;
     751
     752                        Color c = Color.FromRgb((byte)r, (byte)g, 0);
     753                        return c.ToString();
     754                    }
     755                }
     756            }
     757            catch (Exception)
     758            {
     759            }
     760            return Color.FromRgb(0, 0, 0).ToString();
     761        }
     762
     763        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     764        {
     765            throw new NotImplementedException();
     766        }
     767    }
     768
     769    [ValueConversion(typeof(DateTime), typeof(Visibility))]
     770    class DateFalseVisibleConverter1 : IValueConverter
     771    {
     772        public StatisticsPresentation StatisticsPresentation { get; set; }
     773
     774        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     775        {
     776            try
     777            {
     778                if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     779                {
     780                    lock (StatisticsPresentation)
     781                    {
     782                        var max = DateTime.MinValue;
     783                        var machines = StatisticsPresentation.Statistics[(string)value];
     784                        foreach (var id in machines.Keys.Where(id => machines[id].Date > max))
     785                        {
     786                            max = machines[id].Date;
     787                        }
     788                        TimeSpan diff = DateTime.UtcNow.Subtract(max);
     789                        var minutes = diff.TotalMinutes;
     790
     791                        if (targetType != typeof(Visibility))
     792                            throw new InvalidOperationException("The target must be of Visibility");
     793
     794                        if (minutes > 7200) //five days
     795                        {
     796                            return Visibility.Hidden;
     797                        }
     798
     799                        return Visibility.Visible;
     800                    }
     801                }
     802            }
     803            catch (Exception)
     804            {
     805            }
     806            return Visibility.Hidden;
     807        }
     808
     809        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     810        {
     811            throw new NotImplementedException();
     812        }
     813    }
     814
     815    [ValueConversion(typeof(DateTime), typeof(Visibility))]
     816    class DateTrueVisibleConverter1 : IValueConverter
     817    {
     818        public StatisticsPresentation StatisticsPresentation { get; set; }
     819
     820        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     821        {
     822            try
     823            {
     824                if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     825                {
     826                    lock (StatisticsPresentation)
     827                    {
     828                        var max = DateTime.MinValue;
     829                        var machines = StatisticsPresentation.Statistics[(string)value];
     830                        foreach (var id in machines.Keys.Where(id => machines[id].Date > max))
     831                        {
     832                            max = machines[id].Date;
     833                        }
     834                        TimeSpan diff = DateTime.UtcNow.Subtract(max);
     835                        var minutes = diff.TotalMinutes;
     836
     837                        if (targetType != typeof(Visibility))
     838                            throw new InvalidOperationException("The target must be of Visibility");
     839
     840                        if (minutes > 7200) //five days
     841                        {
     842                            return Visibility.Visible;
     843                        }
     844
     845                        return Visibility.Hidden;
     846                    }
     847                }
     848            }
     849            catch (Exception)
     850            {
     851            }
     852            return Visibility.Hidden;
     853        }
     854
     855        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     856        {
     857            throw new NotImplementedException();
     858        }
     859    }
     860
     861    [ValueConversion(typeof(DateTime), typeof(Visibility))]
     862    class DateFalseVisibleConverter2 : IValueConverter
     863    {
     864        public StatisticsPresentation StatisticsPresentation { get; set; }
     865
     866        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     867        {
     868            try
     869            {
     870                if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     871                {
     872                    lock (StatisticsPresentation)
     873                    {
     874                        DateTime date = (DateTime)value;
     875                        TimeSpan diff = DateTime.UtcNow.Subtract(date);
     876                        var minutes = diff.TotalMinutes;
     877
     878                        if (targetType != typeof(Visibility))
     879                            throw new InvalidOperationException("The target must be of Visibility");
     880
     881                        if (minutes > 7200) //five days
     882                        {
     883                            return Visibility.Hidden;
     884                        }
     885
     886                        return Visibility.Visible;
     887                    }
     888                }
     889            }
     890            catch (Exception)
     891            {
     892            }
     893            return Visibility.Hidden;
     894        }
     895
     896        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
     897        {
     898            throw new NotImplementedException();
     899        }
     900    }
     901
     902    [ValueConversion(typeof(DateTime), typeof(Visibility))]
     903    class DateTrueVisibleConverter2 : IValueConverter
     904    {
     905        public StatisticsPresentation StatisticsPresentation { get; set; }
     906
     907        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
     908        {
     909            try
     910            {
     911                if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     912                {
     913                    lock (StatisticsPresentation)
     914                    {
     915                        DateTime date = (DateTime)value;
     916                        TimeSpan diff = DateTime.UtcNow.Subtract(date);
     917                        var minutes = diff.TotalMinutes;
     918
     919                        if (targetType != typeof(Visibility))
     920                            throw new InvalidOperationException("The target must be of Visibility");
     921
     922                        if (minutes > 7200) //five days
     923                        {
     924                            return Visibility.Visible;
     925                        }
     926
     927                        return Visibility.Hidden;
     928                    }
     929                }
     930            }
     931            catch (Exception)
     932            {
     933            }
     934            return Visibility.Hidden;
    669935        }
    670936
     
    683949            try
    684950            {
    685                 DateTime date = (DateTime)values[0];
    686951                SolidColorBrush brush = ColorToDateConverter.AlternationColors[(int)values[1]].Clone();
    687                 TimeSpan diff = DateTime.UtcNow.Subtract(date);
    688 
    689                 Color color;
    690                 if (diff >= TimeSpan.FromDays(4))
    691                 {
    692                     color = Color.FromArgb(
    693                         (byte)50,
    694                         brush.Color.R,
    695                         brush.Color.G,
    696                         brush.Color.B);
    697 
    698                     brush.Color = color;
    699                     return brush;
    700                 }
    701 
    702                 if (diff >= TimeSpan.FromDays(3))
    703                 {
    704                     color = Color.FromArgb(
    705                        (byte)100,
    706                        brush.Color.R,
    707                        brush.Color.G,
    708                        brush.Color.B);
    709 
    710                     brush.Color = color;
    711                     return brush;
    712                 }
    713 
    714                 if (diff >= TimeSpan.FromDays(2))
    715                 {
    716                     color = Color.FromArgb(
    717                        (byte)150,
    718                        brush.Color.R,
    719                        brush.Color.G,
    720                        brush.Color.B);
    721 
    722                     brush.Color = color;
    723                     return brush;
    724                 }
    725 
    726                 if (diff >= TimeSpan.FromDays(1))
    727                 {
    728                     color = Color.FromArgb(
    729                         (byte)200,
    730                         brush.Color.R,
    731                         brush.Color.G,
    732                         brush.Color.B);
    733 
    734                     brush.Color = color;
    735                     return brush;
    736                 }
    737 
    738                 if (diff >= TimeSpan.FromDays(0))
    739                 {
    740 
    741                     color = Color.FromArgb(
    742                         (byte)255,
    743                         brush.Color.R,
    744                         brush.Color.G,
    745                         brush.Color.B);
    746 
    747                     brush.Color = color;
    748                     return brush;
    749                 }
     952                return brush;             
    750953            }
    751954            catch (Exception)
  • trunk/CrypPlugins/KeySearcher/Presentation/QuickWatch.xaml.cs

    r2614 r2720  
    11using System;
    22using System.Collections.Generic;
     3using System.Globalization;
    34using System.Linq;
    45using System.Text;
     
    7980                                            QuickWatch), new PropertyMetadata(false));
    8081
     82        public CultureInfo CurrentCulture { get; private set; }
     83
    8184        public QuickWatch()
    8285        {
    8386            InitializeComponent();
     87
     88            CurrentCulture = CultureInfo.CurrentCulture;
    8489        }
    8590    }
  • trunk/CrypPlugins/KeySearcher/Properties/Resources.Designer.cs

    r2705 r2720  
    13061306       
    13071307        /// <summary>
     1308        ///   Looks up a localized string similar to {0:0,0} key/sec.
     1309        /// </summary>
     1310        internal static string StatisticsPresentation_SetCurrentRate {
     1311            get {
     1312                return ResourceManager.GetString("StatisticsPresentation_SetCurrentRate", resourceCulture);
     1313            }
     1314        }
     1315       
     1316        /// <summary>
    13081317        ///   Looks up a localized string similar to Status key &apos;{0}&apos; has been copied to clipboard..
    13091318        /// </summary>
  • trunk/CrypPlugins/KeySearcher/Properties/Resources.de-DE.resx

    r2632 r2720  
    601601    <value>KeySearcher</value>
    602602  </data>
     603        <data name="Under__Construction_" xml:space="preserve">
     604    <value>Unter Konstruktion</value>
     605  </data>
     606        <data name="StatisticsPresentation_SetCurrentRate">
     607                <value xml:space="preserve">{0:0,0} Schlüssel/Sek</value>
     608        </data>
    603609</root>
  • trunk/CrypPlugins/KeySearcher/Properties/Resources.resx

    r2705 r2720  
    643643    <value>You have to connect the KeySearcher with the Decryption Control!</value>
    644644  </data>
     645        <data name="StatisticsPresentation_SetCurrentRate">
     646                <value xml:space="preserve">{0:0,0} key/sec</value>
     647        </data>
    645648</root>
Note: See TracChangeset for help on using the changeset viewer.