~ubuntu-branches/ubuntu/wily/keepass2/wily-proposed

« back to all changes in this revision

Viewing changes to .pc/use-installed-ico-files.patch/KeePass/Forms/UrlOverridesForm.cs

  • Committer: Package Import Robot
  • Author(s): Julian Taylor
  • Date: 2014-08-17 15:55:03 UTC
  • mfrom: (1.2.5)
  • Revision ID: package-import@ubuntu.com-20140817155503-3jcbkd107zug4clp
Tags: 2.27+dfsg-1
* New upstream release (Closes: #754575)
* remove upstream applied fix-webdav-storage-with-mono-2.11.patch
* add fix-autotype-paste.patch to fix pasting with autotype
* mention the need for the mono-mcs package to be installed for plugins to
  work in README.Debian (Closes: #749346)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
  KeePass Password Safe - The Open-Source Password Manager
 
3
  Copyright (C) 2003-2014 Dominik Reichl <dominik.reichl@t-online.de>
 
4
 
 
5
  This program is free software; you can redistribute it and/or modify
 
6
  it under the terms of the GNU General Public License as published by
 
7
  the Free Software Foundation; either version 2 of the License, or
 
8
  (at your option) any later version.
 
9
 
 
10
  This program is distributed in the hope that it will be useful,
 
11
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
  GNU General Public License for more details.
 
14
 
 
15
  You should have received a copy of the GNU General Public License
 
16
  along with this program; if not, write to the Free Software
 
17
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
18
*/
 
19
 
 
20
using System;
 
21
using System.Collections.Generic;
 
22
using System.ComponentModel;
 
23
using System.Drawing;
 
24
using System.Text;
 
25
using System.Windows.Forms;
 
26
using System.Diagnostics;
 
27
 
 
28
using KeePass.App.Configuration;
 
29
using KeePass.Resources;
 
30
using KeePass.UI;
 
31
 
 
32
namespace KeePass.Forms
 
33
{
 
34
        public partial class UrlOverridesForm : Form
 
35
        {
 
36
                private AceUrlSchemeOverrides m_aceOvr = null;
 
37
                private AceUrlSchemeOverrides m_aceTmp = null;
 
38
 
 
39
                private bool m_bEnfSch = false;
 
40
                private bool m_bEnfAll = false;
 
41
 
 
42
                private string m_strUrlOverrideAll = string.Empty;
 
43
                public string UrlOverrideAll
 
44
                {
 
45
                        get { return m_strUrlOverrideAll; }
 
46
                }
 
47
 
 
48
                public void InitEx(AceUrlSchemeOverrides aceOvr, string strOverrideAll)
 
49
                {
 
50
                        m_aceOvr = aceOvr;
 
51
 
 
52
                        Debug.Assert(strOverrideAll != null);
 
53
                        m_strUrlOverrideAll = (strOverrideAll ?? string.Empty);
 
54
                }
 
55
 
 
56
                public UrlOverridesForm()
 
57
                {
 
58
                        InitializeComponent();
 
59
                        Program.Translation.ApplyTo(this);
 
60
                }
 
61
 
 
62
                private void OnFormLoad(object sender, EventArgs e)
 
63
                {
 
64
                        if(m_aceOvr == null) throw new InvalidOperationException();
 
65
                        m_aceTmp = m_aceOvr.CloneDeep();
 
66
 
 
67
                        GlobalWindowManager.AddWindow(this);
 
68
 
 
69
                        this.Icon = Properties.Resources.KeePass;
 
70
                        this.Text = KPRes.UrlOverrides;
 
71
 
 
72
                        UIUtil.SetExplorerTheme(m_lvOverrides, false);
 
73
 
 
74
                        int nWidth = (m_lvOverrides.ClientSize.Width - UIUtil.GetVScrollBarWidth()) / 4;
 
75
                        m_lvOverrides.Columns.Add(KPRes.Scheme, nWidth);
 
76
                        m_lvOverrides.Columns.Add(KPRes.UrlOverride, nWidth * 3);
 
77
 
 
78
                        m_bEnfSch = AppConfigEx.IsOptionEnforced(Program.Config.Integration, "UrlSchemeOverrides");
 
79
                        m_bEnfAll = AppConfigEx.IsOptionEnforced(Program.Config.Integration, "UrlOverride");
 
80
 
 
81
                        UpdateOverridesList();
 
82
 
 
83
                        m_cbOverrideAll.Checked = (m_strUrlOverrideAll.Length > 0);
 
84
                        m_tbOverrideAll.Text = m_strUrlOverrideAll;
 
85
                        EnableControlsEx();
 
86
                }
 
87
 
 
88
                private void OnFormClosed(object sender, FormClosedEventArgs e)
 
89
                {
 
90
                        GlobalWindowManager.RemoveWindow(this);
 
91
                }
 
92
 
 
93
                private void UpdateOverridesList()
 
94
                {
 
95
                        m_lvOverrides.BeginUpdate();
 
96
                        m_lvOverrides.Items.Clear();
 
97
                        m_lvOverrides.Groups.Clear();
 
98
 
 
99
                        for(int i = 0; i < 2; ++i)
 
100
                        {
 
101
                                List<AceUrlSchemeOverride> l = ((i == 0) ?
 
102
                                        m_aceTmp.BuiltInOverrides : m_aceTmp.CustomOverrides);
 
103
 
 
104
                                ListViewGroup lvg = new ListViewGroup((i == 0) ?
 
105
                                        KPRes.OverridesBuiltIn : KPRes.OverridesCustom);
 
106
                                m_lvOverrides.Groups.Add(lvg);
 
107
 
 
108
                                foreach(AceUrlSchemeOverride ovr in l)
 
109
                                {
 
110
                                        ListViewItem lvi = new ListViewItem(ovr.Scheme);
 
111
                                        lvi.SubItems.Add(ovr.UrlOverride);
 
112
                                        lvi.Tag = ovr; // Set before setting the Checked property
 
113
 
 
114
                                        lvi.Checked = ovr.Enabled;
 
115
 
 
116
                                        m_lvOverrides.Items.Add(lvi);
 
117
                                        lvg.Items.Add(lvi);
 
118
                                }
 
119
                        }
 
120
 
 
121
                        m_lvOverrides.EndUpdate();
 
122
                        EnableControlsEx();
 
123
                }
 
124
 
 
125
                private void OnOverridesItemChecked(object sender, ItemCheckedEventArgs e)
 
126
                {
 
127
                        AceUrlSchemeOverride ovr = (e.Item.Tag as AceUrlSchemeOverride);
 
128
                        if(ovr == null) { Debug.Assert(false); return; }
 
129
 
 
130
                        ovr.Enabled = e.Item.Checked;
 
131
                }
 
132
 
 
133
                private void EnableControlsEx()
 
134
                {
 
135
                        bool bAll = m_cbOverrideAll.Checked;
 
136
                        m_cbOverrideAll.Enabled = !m_bEnfAll;
 
137
                        m_tbOverrideAll.Enabled = (!m_bEnfAll && bAll);
 
138
 
 
139
                        ListView.SelectedListViewItemCollection lvsc = m_lvOverrides.SelectedItems;
 
140
                        bool bOne = (lvsc.Count == 1);
 
141
                        bool bAtLeastOne = (lvsc.Count >= 1);
 
142
 
 
143
                        bool bBuiltIn = false;
 
144
                        foreach(ListViewItem lvi in lvsc)
 
145
                        {
 
146
                                AceUrlSchemeOverride ovr = (lvi.Tag as AceUrlSchemeOverride);
 
147
                                if(ovr == null) { Debug.Assert(false); continue; }
 
148
 
 
149
                                if(ovr.IsBuiltIn) { bBuiltIn = true; break; }
 
150
                        }
 
151
 
 
152
                        bool bSch = !m_bEnfSch;
 
153
                        m_lvOverrides.Enabled = bSch;
 
154
                        m_btnAdd.Enabled = bSch;
 
155
                        m_btnEdit.Enabled = (bSch && bOne && !bBuiltIn);
 
156
                        m_btnDelete.Enabled = (bSch && bAtLeastOne && !bBuiltIn);
 
157
                }
 
158
 
 
159
                private void OnOverridesSelectedIndexChanged(object sender, EventArgs e)
 
160
                {
 
161
                        EnableControlsEx();
 
162
                }
 
163
 
 
164
                private void OnBtnAdd(object sender, EventArgs e)
 
165
                {
 
166
                        AceUrlSchemeOverride ovr = new AceUrlSchemeOverride(true, string.Empty,
 
167
                                string.Empty);
 
168
 
 
169
                        UrlOverrideForm dlg = new UrlOverrideForm();
 
170
                        dlg.InitEx(ovr);
 
171
                        if(UIUtil.ShowDialogAndDestroy(dlg) == DialogResult.OK)
 
172
                        {
 
173
                                m_aceTmp.CustomOverrides.Add(ovr);
 
174
                                UpdateOverridesList();
 
175
                                m_lvOverrides.EnsureVisible(m_lvOverrides.Items.Count - 1);
 
176
                        }
 
177
                }
 
178
 
 
179
                private void OnBtnEdit(object sender, EventArgs e)
 
180
                {
 
181
                        ListView.SelectedListViewItemCollection lvsic = m_lvOverrides.SelectedItems;
 
182
                        if((lvsic == null) || (lvsic.Count != 1)) return;
 
183
 
 
184
                        AceUrlSchemeOverride ovr = (lvsic[0].Tag as AceUrlSchemeOverride);
 
185
                        if(ovr == null) { Debug.Assert(false); return; }
 
186
                        if(ovr.IsBuiltIn) { Debug.Assert(false); return; }
 
187
 
 
188
                        UrlOverrideForm dlg = new UrlOverrideForm();
 
189
                        dlg.InitEx(ovr);
 
190
                        if(UIUtil.ShowDialogAndDestroy(dlg) == DialogResult.OK)
 
191
                        {
 
192
                                UpdateOverridesList();
 
193
                                m_lvOverrides.EnsureVisible(m_lvOverrides.Items.Count - 1);
 
194
                        }
 
195
                }
 
196
 
 
197
                private void OnBtnDelete(object sender, EventArgs e)
 
198
                {
 
199
                        ListView.SelectedListViewItemCollection lvsic = m_lvOverrides.SelectedItems;
 
200
                        if((lvsic == null) || (lvsic.Count == 0)) return;
 
201
 
 
202
                        foreach(ListViewItem lvi in lvsic)
 
203
                        {
 
204
                                AceUrlSchemeOverride ovr = (lvi.Tag as AceUrlSchemeOverride);
 
205
                                if(ovr == null) { Debug.Assert(false); continue; }
 
206
                                if(ovr.IsBuiltIn) { Debug.Assert(false); continue; }
 
207
 
 
208
                                try { m_aceTmp.CustomOverrides.Remove(ovr); }
 
209
                                catch(Exception) { Debug.Assert(false); }
 
210
                        }
 
211
 
 
212
                        UpdateOverridesList();
 
213
                        m_lvOverrides.EnsureVisible(m_lvOverrides.Items.Count - 1);
 
214
                }
 
215
 
 
216
                private void OnBtnOK(object sender, EventArgs e)
 
217
                {
 
218
                        m_aceTmp.CopyTo(m_aceOvr);
 
219
 
 
220
                        if(m_cbOverrideAll.Checked)
 
221
                                m_strUrlOverrideAll = m_tbOverrideAll.Text;
 
222
                        else m_strUrlOverrideAll = string.Empty;
 
223
                }
 
224
 
 
225
                private void OnOverrideAllCheckedChanged(object sender, EventArgs e)
 
226
                {
 
227
                        EnableControlsEx();
 
228
                }
 
229
        }
 
230
}