tzwrapper.cc: fixed use of iterator after erase
[barry.git] / gui / src / PasswordDlg.cc
blobc76b7971d6436815df2774547e120017991cb7f2
1 ///
2 /// \file PasswordDlg.cc
3 /// Dialog wrapper class for password entry
4 ///
6 /*
7 Copyright (C) 2007-2013, Net Direct Inc. (http://www.netdirect.ca/)
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 See the GNU General Public License in the COPYING file at the
19 root directory of this project for more details.
22 #include "PasswordDlg.h"
23 #include "util.h"
24 #include "i18n.h"
25 #include <sstream>
27 PasswordDlg::PasswordDlg(int remaining_tries)
28 : m_pPromptLabel(0),
29 m_pPasswordEntry(0)
31 Glib::RefPtr<Gnome::Glade::Xml> xml = LoadXml("PasswordDlg.glade");
33 Gtk::Dialog *pD = 0;
34 xml->get_widget("PasswordDlg", pD);
35 m_pDialog.reset(pD);
37 xml->get_widget("prompt_label", m_pPromptLabel);
38 xml->get_widget("password_entry", m_pPasswordEntry);
40 std::ostringstream oss;
41 oss << _("Please enter device password: (") << remaining_tries << _(" tries remaining)");
42 m_pPromptLabel->set_text(oss.str());
45 PasswordDlg::~PasswordDlg()
47 // do our part in blanking passwords in memory...
48 for( size_t i = 0; i < m_password.size(); i++ ) {
49 m_password[i] = 0;
53 int PasswordDlg::run()
55 int ret = m_pDialog->run();
56 if( ret == Gtk::RESPONSE_OK ) {
57 m_password = m_pPasswordEntry->get_text();
59 return ret;