lib/gtk2passwordapp.rb in gtk2passwordapp-0.0.4 vs lib/gtk2passwordapp.rb in gtk2passwordapp-0.0.5
- old
+ new
@@ -1,6 +1,6 @@
-# $Date: 2009/02/21 13:56:55 $
+# $Date: 2009/02/22 16:20:51 $
require 'lib/passwords_data'
require 'gtk2'
require 'find'
class Gtk2PasswordApp
@@ -11,11 +11,11 @@
'comments' => "Ruby-Gtk2 Password Manager.",
'version' => $version,
'website' => 'http://ruby-gnome-apps.blogspot.com/search/label/Passwords',
'website-label' => 'Ruby Gnome Password Manager',
'license' => 'GPL',
- 'copyright' => '$Date: 2009/02/21 13:56:55 $'.gsub(/\s*\$\s*/,''),
+ 'copyright' => '$Date: 2009/02/22 16:20:51 $'.gsub(/\s*\$\s*/,''),
'logo' => Gdk::Pixbuf.new(LOGO_IMAGE),
}
BUTTONS = [[ :username, :current, :url, ],[ :note, :edit, :quit, ],]
@@ -380,18 +380,22 @@
}
# Change Password
widget[:cpwd].signal_connect('clicked'){
if verify_user then
- pwd1 = get_salt('New Password') || return
- pwd2 = get_salt('Verify') || return
- while !(pwd1==pwd2) do
- pwd1 = get_salt('Try again!') || return
- pwd2 = get_salt('Verify') || return
+ if pwd1 = get_salt('New Password') then
+ if pwd2 = get_salt('Verify') then
+ while !(pwd1==pwd2) do
+ pwd1 = get_salt('Try again!')
+ return if !pwd1
+ pwd2 = get_salt('Verify')
+ return if !pwd2
+ end
+ @pwd = pwd1
+ @passwords.save(@pwd+@pph)
+ end
end
- @pwd = pwd1
- @passwords.save(@pwd+@pph)
else
quit_windows
end
}
@@ -549,49 +553,54 @@
def status_icon
icon = Gtk::StatusIcon.new
icon.set_icon_name(Gtk::Stock::DIALOG_AUTHENTICATION)
icon.tooltip = 'Password Manager'
+ unlocked = true
icon.signal_connect('activate') {
if @window then
quit_windows
- else
- main_quit(icon) if !verify_user
+ elsif unlocked then
+ unlocked = false
+ if verify_user then
+ menu = Gtk::Menu.new
+ @passwords.accounts.each {|account|
+ menuitem = Gtk::MenuItem.new(account)
+ menuitem.child.modify_fg(Gtk::STATE_NORMAL, RED) if @passwords.expired?(account)
+ menu.append(menuitem)
+ menuitem.signal_connect('activate'){|b|
+ primary = Gtk::Clipboard.get(Gdk::Selection::PRIMARY)
+ clipboard = Gtk::Clipboard.get(Gdk::Selection::CLIPBOARD)
+ primary.text = clipboard.text = @passwords.password_of(b.child.text.strip)
+ }
+ }
+ menu.append( Gtk::SeparatorMenuItem.new )
- menu = Gtk::Menu.new
- @passwords.accounts.each {|account|
- menuitem = Gtk::MenuItem.new(account)
- menuitem.child.modify_fg(Gtk::STATE_NORMAL, RED) if @passwords.expired?(account)
+ menuitem = Gtk::MenuItem.new('Quit')
+ menuitem.signal_connect('activate'){ main_quit(icon) }
menu.append(menuitem)
- menuitem.signal_connect('activate'){|b|
- primary = Gtk::Clipboard.get(Gdk::Selection::PRIMARY)
- clipboard = Gtk::Clipboard.get(Gdk::Selection::CLIPBOARD)
- primary.text = clipboard.text = @passwords.password_of(b.child.text.strip)
+
+ Gtk::AboutDialog.set_url_hook{|about,link| system( "#{BROWSER} '#{link}' > /dev/null 2>&1 &" ) }
+ menuitem = Gtk::MenuItem.new('About')
+ menuitem.signal_connect('activate'){
+ Gtk::AboutDialog.show(nil, ABOUT)
}
- }
- menu.append( Gtk::SeparatorMenuItem.new )
+ menu.append(menuitem)
- menuitem = Gtk::MenuItem.new('Quit')
- menuitem.signal_connect('activate'){ main_quit(icon) }
- menu.append(menuitem)
+ menuitem = Gtk::MenuItem.new('Run')
+ menuitem.signal_connect('activate'){
+ if !@window
+ run if verify_user
+ end
+ }
+ menu.append(menuitem)
- Gtk::AboutDialog.set_url_hook{|about,link| system( "#{BROWSER} '#{link}' > /dev/null 2>&1 &" ) }
- menuitem = Gtk::MenuItem.new('About')
- menuitem.signal_connect('activate'){
- Gtk::AboutDialog.show(nil, ABOUT)
- }
- menu.append(menuitem)
-
- menuitem = Gtk::MenuItem.new('Run')
- menuitem.signal_connect('activate'){
- if !@window
- run if verify_user
- end
- }
- menu.append(menuitem)
-
- menu.show_all
- menu.popup(nil, nil, 0, 0)
+ menu.show_all
+ menu.popup(nil, nil, 0, 0)
+ unlocked = true
+ else
+ main_quit(icon)
+ end
end
}
run if !@passwords.exist?
Gtk.main
end