Copy feature added. Users can copy secrets from one store to another.
This commit is contained in:
parent
2589b94ba9
commit
30617fb4c2
@ -1,3 +1,10 @@
|
||||
Thu Oct 12 16:26:13 MDT 2006 - jnorman@novell.com
|
||||
|
||||
- Copy feature added. Users can copy secrets from one store
|
||||
to another.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
|
||||
Wed Oct 11 15:29:13 IST 2006 - smanojna@novell.com
|
||||
|
||||
- Some fixes for Distribution of Firefox Password Manager secrets.
|
||||
|
@ -84,12 +84,14 @@ public class Common
|
||||
|
||||
public static int MAX_STORES = 10;
|
||||
|
||||
public static string STORENAME_MICASA = "miCASA",
|
||||
public static string STORENAME_MICASA = "miCASA",
|
||||
STORENAME_FIREFOX = "Firefox",
|
||||
STORENAME_MOZILLA = "Mozilla",
|
||||
STORENAME_KDEWALLET = "KDE Wallet",
|
||||
STORENAME_GNOMEKEYRING = "GNOME Keyring";
|
||||
|
||||
public static string[] saStoreNameList = {"miCASA", "Firefox", "Mozilla", "KDE Wallet", "GNOME Keyring"};
|
||||
|
||||
|
||||
///##############################################################
|
||||
/// SDI CONSTANTS
|
||||
|
288
CASA/gui/CopySecret.cs
Normal file
288
CASA/gui/CopySecret.cs
Normal file
@ -0,0 +1,288 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using System.Collections;
|
||||
|
||||
using Gtk;
|
||||
using Glade;
|
||||
|
||||
|
||||
namespace Novell.CASA.GUI
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for CopySecret.
|
||||
/// </summary>
|
||||
public class CopySecret
|
||||
{
|
||||
#region Glade Widgets
|
||||
|
||||
[Glade.Widget]
|
||||
Gtk.Dialog dialogCopySecret;
|
||||
|
||||
[Glade.Widget]
|
||||
Gtk.CheckButton checkbuttonMiCASA,
|
||||
checkbuttonFPM,
|
||||
checkbuttonMPM,
|
||||
checkbuttonKDE,
|
||||
checkbuttonGNOME;
|
||||
|
||||
[Glade.Widget]
|
||||
Gtk.Entry
|
||||
entryMiCASA,
|
||||
entryFPM,
|
||||
entryMPM,
|
||||
entryKDE,
|
||||
entryGNOME;
|
||||
|
||||
[Glade.Widget]
|
||||
Gtk.Label
|
||||
labelMiCASA,
|
||||
labelFPM,
|
||||
labelMPM,
|
||||
labelKDE,
|
||||
labelGNOME;
|
||||
|
||||
#endregion
|
||||
|
||||
private string m_sSecretID = "http://www.novell.com";
|
||||
private string[] m_saKeys;
|
||||
private string[] m_saValues;
|
||||
|
||||
public CopySecret(string sSrcSecretID, string[] saKeys, string[] saValues)
|
||||
{
|
||||
m_sSecretID = sSrcSecretID;
|
||||
m_saKeys = saKeys;
|
||||
m_saValues = saValues;
|
||||
}
|
||||
|
||||
public void Show()
|
||||
{
|
||||
Glade.XML gxmlTemp = new Glade.XML (Common.GladeFile, "dialogCopySecret", null);
|
||||
gxmlTemp.Autoconnect (this);
|
||||
InitDialog();
|
||||
dialogCopySecret.Show();
|
||||
}
|
||||
|
||||
private void InitDialog()
|
||||
{
|
||||
if (Common.IS_MICASA)
|
||||
{
|
||||
checkbuttonMiCASA.Visible = checkbuttonMiCASA.Sensitive = Common.IS_MICASA_AVAILABLE;
|
||||
checkbuttonMiCASA.Toggled += new EventHandler(checkbuttonMiCASA_Toggled);
|
||||
labelMiCASA.Visible = entryMiCASA.Visible = Common.IS_MICASA_AVAILABLE;
|
||||
|
||||
if (m_sSecretID.StartsWith("http:"))
|
||||
entryMiCASA.Text = m_sSecretID.Substring(7);
|
||||
else
|
||||
entryMiCASA.Text = m_sSecretID;
|
||||
}
|
||||
|
||||
if (Common.IS_FIREFOX)
|
||||
{
|
||||
checkbuttonFPM.Visible = checkbuttonFPM.Sensitive = Common.IS_FIREFOX_AVAILABLE;
|
||||
checkbuttonFPM.Toggled += new EventHandler(checkbuttonFPM_Toggled);
|
||||
labelFPM.Visible = entryFPM.Visible = Common.IS_FIREFOX_AVAILABLE;
|
||||
|
||||
if (!m_sSecretID.StartsWith("http:"))
|
||||
entryFPM.Text = "http://"+m_sSecretID;
|
||||
else
|
||||
entryFPM.Text = m_sSecretID;
|
||||
}
|
||||
|
||||
if (Common.IS_MOZILLA)
|
||||
{
|
||||
checkbuttonMPM.Visible = checkbuttonMPM.Sensitive = Common.IS_MOZILLA_AVAILABLE;
|
||||
checkbuttonMPM.Toggled += new EventHandler(checkbuttonMPM_Toggled);
|
||||
labelMPM.Visible = entryMPM.Visible = Common.IS_MOZILLA_AVAILABLE;
|
||||
entryMPM.Text = m_sSecretID;
|
||||
}
|
||||
|
||||
if (Common.IS_KDEWALLET)
|
||||
{
|
||||
checkbuttonKDE.Visible = checkbuttonKDE.Sensitive = Common.IS_KDEWALLET_AVAILABLE;
|
||||
checkbuttonKDE.Toggled += new EventHandler(checkbuttonKDE_Toggled);
|
||||
labelKDE.Visible = entryKDE.Visible = Common.IS_KDEWALLET_AVAILABLE;
|
||||
entryKDE.Text = m_sSecretID;
|
||||
}
|
||||
|
||||
if (Common.IS_GNOMEKEYRING)
|
||||
{
|
||||
checkbuttonGNOME.Visible = checkbuttonGNOME.Sensitive = Common.IS_GNOMEKEYRING_AVAILABLE;
|
||||
checkbuttonGNOME.Toggled += new EventHandler(checkbuttonGNOME_Toggled);
|
||||
labelGNOME.Visible = entryGNOME.Visible = Common.IS_GNOMEKEYRING_AVAILABLE;
|
||||
entryGNOME.Text = m_sSecretID;
|
||||
}
|
||||
}
|
||||
|
||||
public void on_buttonCopyCancel_clicked(object obj, EventArgs args)
|
||||
{
|
||||
if (dialogCopySecret != null)
|
||||
{
|
||||
dialogCopySecret.Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void on_buttonCopyOK_clicked(object obj, EventArgs args)
|
||||
{
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
// copy to micasa
|
||||
if ((checkbuttonMiCASA.Active) && (entryMiCASA.Text.Length > 0))
|
||||
{
|
||||
sb.Append(DoCopy(entryMiCASA.Text, Common.STORE_MICASA));
|
||||
sb.Append("\r\n");
|
||||
}
|
||||
|
||||
// copy to Firefox
|
||||
if ((checkbuttonFPM.Active) && (entryFPM.Text.Length > 0))
|
||||
{
|
||||
sb.Append(DoCopy(entryFPM.Text, Common.STORE_FIREFOX));
|
||||
sb.Append("\r\n");
|
||||
}
|
||||
|
||||
// copy to Mozilla
|
||||
if ((checkbuttonMPM.Active) && (entryMPM.Text.Length > 0))
|
||||
{
|
||||
sb.Append(DoCopy(entryMPM.Text, Common.STORE_MOZILLA));
|
||||
sb.Append("\r\n");
|
||||
}
|
||||
|
||||
// copy to kde wallet
|
||||
if ((checkbuttonKDE.Active) && entryKDE.Text.Length > 0)
|
||||
{
|
||||
sb.Append(DoCopy(entryKDE.Text, Common.STORE_KDEWALLET));
|
||||
sb.Append("\r\n");
|
||||
}
|
||||
|
||||
// copy to GNOME keyring
|
||||
if ((checkbuttonGNOME.Active) && entryGNOME.Text.Length > 0)
|
||||
{
|
||||
sb.Append(DoCopy(entryGNOME.Text, Common.STORE_GNOMEKEYRING));
|
||||
sb.Append("\r\n");
|
||||
}
|
||||
|
||||
if (sb.Length > 0)
|
||||
{
|
||||
CommonGUI.DisplayMessage(Gtk.MessageType.Info, "Copy to ...\r\n" + sb.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
CommonGUI.DisplayMessage(Gtk.MessageType.Info, "No stores selected");
|
||||
}
|
||||
|
||||
if (dialogCopySecret != null)
|
||||
{
|
||||
dialogCopySecret.Destroy();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void checkbuttonMiCASA_Toggled(object sender, EventArgs e)
|
||||
{
|
||||
entryMiCASA.Sensitive = checkbuttonMiCASA.Active;
|
||||
}
|
||||
|
||||
private void checkbuttonFPM_Toggled(object sender, EventArgs e)
|
||||
{
|
||||
entryFPM.Sensitive = checkbuttonFPM.Active;
|
||||
}
|
||||
|
||||
private void checkbuttonMPM_Toggled(object sender, EventArgs e)
|
||||
{
|
||||
entryMPM.Sensitive = checkbuttonMPM.Active;
|
||||
}
|
||||
|
||||
private void checkbuttonKDE_Toggled(object sender, EventArgs e)
|
||||
{
|
||||
entryKDE.Sensitive = checkbuttonKDE.Active;
|
||||
}
|
||||
|
||||
private void checkbuttonGNOME_Toggled(object sender, EventArgs e)
|
||||
{
|
||||
entryGNOME.Sensitive = checkbuttonGNOME.Active;
|
||||
}
|
||||
|
||||
|
||||
private string DoCopy(string sNewSecretName, int iTargetStore)
|
||||
{
|
||||
Logger.DbgLog("GUI:CopySecret.DoCopy() - BEGIN");
|
||||
|
||||
TreeModel model;
|
||||
TreeIter iter;
|
||||
|
||||
TreeModel modelSecret;
|
||||
TreeIter iterSecret, iterKey;
|
||||
|
||||
string[] NativeKeys = null,
|
||||
NativeValues = null;
|
||||
|
||||
try
|
||||
{
|
||||
NativeKeys = new string[Common.MAX_NATIVE_ELEMENTS];
|
||||
NativeValues = new string[Common.MAX_NATIVE_ELEMENTS];
|
||||
NativeKeys[Common.INDEX_NATIVEINFO_FOLDERNAME] = Common.NATIVEINFO_FOLDERNAME;
|
||||
NativeKeys[Common.INDEX_NATIVEINFO_TYPEID] = Common.NATIVEINFO_TYPEID;
|
||||
NativeKeys[Common.INDEX_NATIVEINFO_SYNC] = Common.NATIVEINFO_SYNC;
|
||||
NativeKeys[Common.INDEX_NATIVEINFO_SYNCTYPE] = Common.NATIVEINFO_SYNCTYPE;
|
||||
NativeKeys[Common.INDEX_NATIVEINFO_MODIFIEDTIME] = Common.NATIVEINFO_MODIFIEDTIME;
|
||||
NativeValues[Common.INDEX_NATIVEINFO_FOLDERNAME] = null;
|
||||
|
||||
if (iTargetStore == Common.STORE_FIREFOX)
|
||||
{
|
||||
NativeValues[Common.INDEX_NATIVEINFO_TYPEID] = "Signon";
|
||||
}
|
||||
else if (iTargetStore == Common.STORE_GNOMEKEYRING)
|
||||
{
|
||||
NativeValues[Common.INDEX_NATIVEINFO_TYPEID] = "Network Password";
|
||||
}
|
||||
else
|
||||
{
|
||||
NativeValues[Common.INDEX_NATIVEINFO_TYPEID] = null;
|
||||
}
|
||||
|
||||
NativeValues[Common.INDEX_NATIVEINFO_SYNC] = null;
|
||||
NativeValues[Common.INDEX_NATIVEINFO_SYNCTYPE] = null;
|
||||
NativeValues[Common.INDEX_NATIVEINFO_MODIFIEDTIME] = null;
|
||||
|
||||
TreeStore tsTargetSecret;
|
||||
TreeView tvTargetSecret = new TreeView();
|
||||
if (iTargetStore == Common.STORE_FIREFOX)
|
||||
{
|
||||
ArrayList arrIsPassword = new ArrayList();
|
||||
for (int i=0; i<m_saKeys.Length; i++)
|
||||
{
|
||||
if (m_saKeys[i].ToLower().IndexOf("pass") > -1)
|
||||
arrIsPassword.Add(true);
|
||||
else
|
||||
arrIsPassword.Add(false);
|
||||
}
|
||||
|
||||
bool[] IsPassword = (bool[])arrIsPassword.ToArray(typeof(bool));
|
||||
tsTargetSecret = new TreeStore(typeof(string), typeof(string[]), typeof(string[]), typeof(string), typeof(string[]), typeof(string[]), typeof(bool[]));
|
||||
iterSecret = tsTargetSecret.AppendValues(sNewSecretName, m_saKeys, m_saValues, DataEngines.AD.GetDefaultProfileName(Common.STORE_FIREFOX), NativeKeys, NativeValues, IsPassword);
|
||||
}
|
||||
else
|
||||
{
|
||||
tsTargetSecret = new TreeStore(typeof(string), typeof(string[]), typeof(string[]), typeof(string), typeof(string[]), typeof(string[]));
|
||||
iterSecret = tsTargetSecret.AppendValues(sNewSecretName, m_saKeys, m_saValues, "Default", NativeKeys, NativeValues);
|
||||
}
|
||||
|
||||
modelSecret = tvTargetSecret.Model = tsTargetSecret;
|
||||
|
||||
if( Common.STATUS_SUCCESS == StoreDataInterface.UpdateStore(iTargetStore, Common.OPERATION_ADD_SECRET, "", "", ref modelSecret, ref iterSecret) )
|
||||
{
|
||||
return Common.saStoreNameList[iTargetStore] + " Success";
|
||||
}
|
||||
else
|
||||
{
|
||||
return Common.saStoreNameList[iTargetStore] + " Failed";
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return (Common.saStoreNameList[iTargetStore] + " : " + e.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -222,8 +222,8 @@ public class Firefox : Store
|
||||
|
||||
if( 0 != tvSecretIDFirefox.Selection.CountSelectedRows() )
|
||||
{
|
||||
cmiNewSecret.Sensitive = cmiNewKey.Sensitive = true;
|
||||
cmiLink.Sensitive = cmiCopy.Sensitive = false;
|
||||
cmiNewSecret.Sensitive = cmiNewKey.Sensitive = cmiCopy.Sensitive = true;
|
||||
cmiLink.Sensitive = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1210,8 +1210,31 @@ public class Firefox : Store
|
||||
/// </summary>
|
||||
public void OnCopyActivated(object obj, EventArgs args)
|
||||
{
|
||||
TreeModel model;
|
||||
TreeIter iter;
|
||||
|
||||
try
|
||||
{
|
||||
if( tvSecretIDFirefox.Selection.GetSelected (out model, out iter) )
|
||||
{
|
||||
string selected = null;
|
||||
string[] saKeys, saValues;
|
||||
|
||||
selected = (string) model.GetValue (iter, 0);
|
||||
saKeys = (string[]) model.GetValue(iter, 1);
|
||||
saValues = (string[]) model.GetValue(iter, 2);
|
||||
|
||||
CopySecret cs = new CopySecret(selected, saKeys, saValues);
|
||||
cs.Show();
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
///#######################################################################
|
||||
/// VALIDATE STRINGS FOR SPECIAL CHARACTERS
|
||||
|
||||
|
@ -243,7 +243,10 @@ public class GnomeKeyring : Store
|
||||
menuRightClick.Popup(null, null, null, IntPtr.Zero, 3, Gtk.Global.CurrentEventTime);
|
||||
|
||||
if( 0 != tvSecretIDGnomeKeyring.Selection.CountSelectedRows() )
|
||||
cmiLink.Sensitive = cmiCopy.Sensitive = false;
|
||||
{
|
||||
cmiLink.Sensitive = false;
|
||||
cmiCopy.Sensitive = true;
|
||||
}
|
||||
else
|
||||
cmiNewKey.Sensitive = cmiView.Sensitive = cmiLink.Sensitive = cmiCopy.Sensitive = cmiDelete.Sensitive = false;
|
||||
}
|
||||
@ -929,6 +932,23 @@ public class GnomeKeyring : Store
|
||||
/// </summary>
|
||||
public void OnCopyActivated(object obj, EventArgs args)
|
||||
{
|
||||
Logger.DbgLog("GUI:GnomeKeyring.OnCopyActivated() - BEGIN");
|
||||
if( 0 != tvSecretIDGnomeKeyring.Selection.CountSelectedRows() )
|
||||
{
|
||||
TreeModel model;
|
||||
TreeIter iter;
|
||||
string selected = null;
|
||||
if( tvSecretIDGnomeKeyring.Selection.GetSelected (out model, out iter) )
|
||||
{
|
||||
selected = (string) model.GetValue (iter, 0);
|
||||
string[] saKeys = (string[]) model.GetValue(iter, 1);
|
||||
string[] saValues = (string[]) model.GetValue(iter, 2);
|
||||
|
||||
CopySecret cs = new CopySecret(selected, saKeys, saValues);
|
||||
cs.Show();
|
||||
}
|
||||
}
|
||||
Logger.DbgLog("GUI:GnomeKeyring.OnCopyActivated() - END");
|
||||
|
||||
}
|
||||
|
||||
|
@ -242,7 +242,10 @@ public class KdeWallet : Store
|
||||
menuRightClick.Popup(null, null, null, IntPtr.Zero, 3, Gtk.Global.CurrentEventTime);
|
||||
|
||||
if( 0 != tvSecretIDKdeWallet.Selection.CountSelectedRows() )
|
||||
cmiLink.Sensitive = cmiCopy.Sensitive = false;
|
||||
{
|
||||
cmiLink.Sensitive = false;
|
||||
cmiCopy.Sensitive = true;
|
||||
}
|
||||
else
|
||||
cmiNewKey.Sensitive = cmiView.Sensitive = cmiLink.Sensitive = cmiCopy.Sensitive = cmiDelete.Sensitive = false;
|
||||
}
|
||||
@ -926,7 +929,23 @@ public class KdeWallet : Store
|
||||
/// </summary>
|
||||
public void OnCopyActivated(object obj, EventArgs args)
|
||||
{
|
||||
Logger.DbgLog("GUI:KdeWallet.OnCopyActivated() - BEGIN");
|
||||
if( 0 != tvSecretIDKdeWallet.Selection.CountSelectedRows() )
|
||||
{
|
||||
TreeModel model;
|
||||
TreeIter iter;
|
||||
string selected = null;
|
||||
if( tvSecretIDKdeWallet.Selection.GetSelected (out model, out iter) )
|
||||
{
|
||||
selected = (string) model.GetValue (iter, 0);
|
||||
string[] saKeys = (string[]) model.GetValue(iter, 1);
|
||||
string[] saValues = (string[]) model.GetValue(iter, 2);
|
||||
|
||||
CopySecret cs = new CopySecret(selected, saKeys, saValues);
|
||||
cs.Show();
|
||||
}
|
||||
}
|
||||
Logger.DbgLog("GUI:KdeWallet.OnCopyActivated() - END");
|
||||
}
|
||||
|
||||
|
||||
|
@ -60,6 +60,7 @@ MODULE_EXT =exe
|
||||
CSFILES =$(srcdir)/AssemblyInfo.cs \
|
||||
$(srcdir)/CasaMain.cs \
|
||||
$(srcdir)/CasaTray.cs \
|
||||
$(srcdir)/CopySecret.cs \
|
||||
$(srcdir)/DbgFileChooser.cs \
|
||||
$(srcdir)/TrayLib.cs \
|
||||
$(srcdir)/ExportSecrets.cs \
|
||||
|
@ -240,7 +240,7 @@ public class MiCasa : Store
|
||||
menuRightClick.Popup(null, null, null, IntPtr.Zero, 3, Gtk.Global.CurrentEventTime);
|
||||
|
||||
if( 0 != tvSecretIDMiCasa.Selection.CountSelectedRows() )
|
||||
cmiCopy.Sensitive = false;
|
||||
cmiCopy.Sensitive = true;
|
||||
else
|
||||
cmiNewKey.Sensitive = cmiView.Sensitive = cmiLink.Sensitive = cmiCopy.Sensitive = cmiDelete.Sensitive = false;
|
||||
}
|
||||
@ -957,7 +957,29 @@ public class MiCasa : Store
|
||||
/// </summary>
|
||||
public void OnCopyActivated(object obj, EventArgs args)
|
||||
{
|
||||
Logger.DbgLog("GUI:MiCasa.OnCopyActivated() - BEGIN");
|
||||
|
||||
if( 0 != tvSecretIDMiCasa.Selection.CountSelectedRows() )
|
||||
{
|
||||
|
||||
TreeModel model;
|
||||
TreeIter iter;
|
||||
string selected = null;
|
||||
string[] saKeys, saValues;
|
||||
|
||||
if( tvSecretIDMiCasa.Selection.GetSelected (out model, out iter) )
|
||||
{
|
||||
selected = (string) model.GetValue (iter, 0);
|
||||
if (selected.StartsWith("SS_CredSet"))
|
||||
selected = selected.Substring(11);
|
||||
|
||||
saKeys = (string[]) model.GetValue(iter, 1);
|
||||
saValues = (string[]) model.GetValue(iter, 2);
|
||||
|
||||
CopySecret cs = new CopySecret(selected, saKeys, saValues);
|
||||
cs.Show();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void on_helpbuttonLinkKeys_clicked(object obj, EventArgs args)
|
||||
|
@ -14493,4 +14493,595 @@ username values.</property>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
<widget class="GtkDialog" id="dialogCopySecret">
|
||||
<property name="visible">True</property>
|
||||
<property name="title" translatable="yes">CASA - Copy Secret</property>
|
||||
<property name="type">GTK_WINDOW_TOPLEVEL</property>
|
||||
<property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="destroy_with_parent">True</property>
|
||||
<property name="icon">CASAicons.ico</property>
|
||||
<property name="decorated">True</property>
|
||||
<property name="skip_taskbar_hint">False</property>
|
||||
<property name="skip_pager_hint">False</property>
|
||||
<property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
|
||||
<property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
|
||||
<property name="focus_on_map">True</property>
|
||||
<property name="urgency_hint">False</property>
|
||||
<property name="has_separator">True</property>
|
||||
|
||||
<child internal-child="vbox">
|
||||
<widget class="GtkVBox" id="vbox183">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child internal-child="action_area">
|
||||
<widget class="GtkHButtonBox" id="hbuttonbox29">
|
||||
<property name="visible">True</property>
|
||||
<property name="layout_style">GTK_BUTTONBOX_END</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="buttonCopyCancel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-close</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="response_id">-7</property>
|
||||
<signal name="clicked" handler="on_buttonCopyCancel_clicked" last_modification_time="Wed, 11 Oct 2006 20:40:14 GMT"/>
|
||||
</widget>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkButton" id="buttonCopyOK">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_default">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label">gtk-ok</property>
|
||||
<property name="use_stock">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="response_id">-5</property>
|
||||
<signal name="clicked" handler="on_buttonCopyOK_clicked" last_modification_time="Wed, 11 Oct 2006 20:40:22 GMT"/>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack_type">GTK_PACK_END</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox184">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox111">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox185">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkImage" id="image4268">
|
||||
<property name="visible">True</property>
|
||||
<property name="stock">gtk-copy</property>
|
||||
<property name="icon_size">4</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">4</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">4</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox186">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label305">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"><b>Copy this secret to ...</b></property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">True</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">4</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="label306">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Select the stores and enter the name of the
|
||||
secret for the selected store.</property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">6</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkFrame" id="frame36">
|
||||
<property name="border_width">6</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="label_xalign">0</property>
|
||||
<property name="label_yalign">0.5</property>
|
||||
<property name="shadow_type">GTK_SHADOW_IN</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkVBox" id="vbox188">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkbuttonMiCASA">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">miCASA</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">True</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox116">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelMiCASA">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes"> </property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="entryMiCASA">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">6</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkbuttonFPM">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Firefox Password Manager</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox117">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelFPM">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="label" translatable="yes"> </property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="entryFPM">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">6</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkbuttonMPM">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">Mozilla Password Manager</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox118">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelMPM">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="label" translatable="yes"> </property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="entryMPM">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">6</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkbuttonKDE">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">KDE Wallet</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox119">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelKDE">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="label" translatable="yes"> </property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="entryKDE">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">6</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="checkbuttonGNOME">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">GNOME Keyring</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkHBox" id="hbox120">
|
||||
<property name="visible">True</property>
|
||||
<property name="homogeneous">False</property>
|
||||
<property name="spacing">0</property>
|
||||
|
||||
<child>
|
||||
<widget class="GtkLabel" id="labelGNOME">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="label" translatable="yes"> </property>
|
||||
<property name="use_underline">False</property>
|
||||
<property name="use_markup">False</property>
|
||||
<property name="justify">GTK_JUSTIFY_LEFT</property>
|
||||
<property name="wrap">False</property>
|
||||
<property name="selectable">False</property>
|
||||
<property name="xalign">0.5</property>
|
||||
<property name="yalign">0.5</property>
|
||||
<property name="xpad">0</property>
|
||||
<property name="ypad">0</property>
|
||||
<property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
|
||||
<property name="width_chars">-1</property>
|
||||
<property name="single_line_mode">False</property>
|
||||
<property name="angle">0</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkEntry" id="entryGNOME">
|
||||
<property name="sensitive">False</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="editable">True</property>
|
||||
<property name="visibility">True</property>
|
||||
<property name="max_length">0</property>
|
||||
<property name="text" translatable="yes"></property>
|
||||
<property name="has_frame">True</property>
|
||||
<property name="invisible_char">*</property>
|
||||
<property name="activates_default">False</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">6</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
||||
</glade-interface>
|
||||
|
Loading…
Reference in New Issue
Block a user