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