This repository has been archived by the owner on Jan 22, 2018. It is now read-only.
/
Rename.xaml.cs
90 lines (75 loc) · 2.33 KB
/
Rename.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Navigation;
using KeePass.I18n;
using KeePass.Storage;
using KeePass.Utils;
using Microsoft.Phone.Shell;
namespace KeePass
{
public partial class Rename
{
private readonly ApplicationBarIconButton _cmdRename;
private DatabaseInfo _database;
private string _originalName;
public Rename()
{
InitializeComponent();
_cmdRename = AppButton(0);
_cmdRename.Text = Strings.Rename_Rename;
AppButton(1).Text = Strings.Clear;
}
protected override void OnNavigatedTo(
bool cancelled, NavigationEventArgs e)
{
if (cancelled)
return;
_database = new DatabaseInfo(
NavigationContext.QueryString["db"]);
_database.LoadDetails();
_originalName = _database.Details.Name;
lblRename.Text = string.Format(
lblRename.Text, _originalName);
}
private void PerformClear()
{
txtName.Text = _originalName;
txtName.SelectAll();
txtName.Focus();
}
private void PerformRename()
{
_database.Details.Name = txtName.Text;
_database.SaveDetails();
TilesManager.Renamed(_database);
NavigationService.GoBack();
}
private void cmdClear_Click(object sender, EventArgs e)
{
PerformClear();
}
private void cmdRename_Click(object sender, EventArgs e)
{
PerformRename();
}
private void txtName_KeyDown(object sender, KeyEventArgs e)
{
if (e.IsEnter() && _cmdRename.IsEnabled)
PerformRename();
}
private void txtName_Loaded(object sender, RoutedEventArgs e)
{
PerformClear();
}
private void txtName_TextChanged(
object sender, TextChangedEventArgs e)
{
var name = txtName.Text;
_cmdRename.IsEnabled =
!string.IsNullOrEmpty(name) &&
name != _originalName;
}
}
}