Skip to content

Commit

Permalink
Copy button rewrite
Browse files Browse the repository at this point in the history
- moved copy method from being created for every skin to being in viewmodel
- clicking copy button highlights corresponding field
  • Loading branch information
Prevter committed Oct 20, 2022
1 parent b0f4de6 commit 1cecbd4
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 32 deletions.
11 changes: 0 additions & 11 deletions FloatTool/Common/Skin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@
*/

using System.Collections.Generic;
using System.Globalization;
using System.Windows;

namespace FloatTool
{
Expand Down Expand Up @@ -144,15 +142,6 @@ public sealed class InputSkin
public float Price;
public Currency SkinCurrency;

private RelayCommand copyCommand;
public RelayCommand CopyCommand
{
get
{
return copyCommand ??= new RelayCommand(obj => Clipboard.SetText(WearValue.ToString("0.00000000000000", CultureInfo.InvariantCulture)));
}
}

public double GetWearValue => WearValue;

public InputSkin(double wear, float price, Currency currency)
Expand Down
15 changes: 15 additions & 0 deletions FloatTool/ViewModels/MainViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,21 @@ public float ProgressPercentage
public long ParsedCombinations { get; internal set; }
public long TotalCombinations { get; internal set; }

private RelayCommand copyCommand;
public RelayCommand CopyCommand
{
get
{
return copyCommand ??= new RelayCommand(field =>
{
var textbox = field as TextBox;
Clipboard.SetText(textbox.Text);
textbox?.Focus();
textbox?.SelectAll();
});
}
}

#endregion

private void UpdateFullSkinName()
Expand Down
42 changes: 21 additions & 21 deletions FloatTool/Views/MainWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
xmlns:theme="clr-namespace:FloatTool.Theme"
mc:Ignorable="d" KeyUp="Window_KeyUp"
MinWidth="875" MinHeight="420"
Width="875" Height="420"
Width="875" Height="420" x:Name="mainWindow"
WindowStartupLocation="CenterScreen"
WindowStyle="None" AllowsTransparency="True"
Background="Transparent" Title="FloatTool">
Expand Down Expand Up @@ -337,8 +337,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field1"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field1}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -347,8 +347,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field2"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field2}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -357,8 +357,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field3"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field3}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -367,8 +367,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field4"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field4}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -377,8 +377,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field5"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field5}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -387,8 +387,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field6"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field6}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -397,8 +397,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field7"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field7}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -407,8 +407,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field8"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field8}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -417,8 +417,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field9"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field9}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand All @@ -427,8 +427,8 @@
<ColumnDefinition/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding CopyCommand}">
<TextBox Style="{DynamicResource MainTextBoxStyle}" IsReadOnly="true" FontSize="13" Text="{Binding GetWearValue, Mode=OneWay, StringFormat=0.00000000000000}" VerticalContentAlignment="Center" x:Name="field10"/>
<Button Grid.Column="1" Style="{DynamicResource MainButtonStyle}" HorizontalAlignment="Right" Command="{Binding ElementName=mainWindow, Path=DataContext.CopyCommand}" CommandParameter="{Binding ElementName=field10}">
<TextBlock Text="{DynamicResource m_Copy}" Margin="8,0"/>
</Button>
</Grid>
Expand Down

0 comments on commit 1cecbd4

Please sign in to comment.