First pass
This commit is contained in:
@@ -1,138 +0,0 @@
|
||||
/*
|
||||
Copyright 2010-2011 Grégory Soutadé
|
||||
|
||||
This file is part of KissCount.
|
||||
|
||||
KissCount is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
KissCount is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with KissCount. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <wx/choice.h>
|
||||
#include <wx/textctrl.h>
|
||||
#include <wx/textdlg.h>
|
||||
#include <wx/gbsizer.h>
|
||||
|
||||
#include "UsersDialog.hpp"
|
||||
|
||||
enum {TEXT_PASSWORD_ID=1, BUTTON_OK_ID, BUTTON_CANCEL_ID, BUTTON_NEW_USER_ID};
|
||||
|
||||
BEGIN_EVENT_TABLE(UsersDialog, wxDialog)
|
||||
EVT_BUTTON(BUTTON_OK_ID, UsersDialog::OnOK)
|
||||
EVT_BUTTON(BUTTON_CANCEL_ID, UsersDialog::OnCancel)
|
||||
EVT_BUTTON(BUTTON_NEW_USER_ID, UsersDialog::OnNewUser)
|
||||
EVT_TEXT_ENTER(TEXT_PASSWORD_ID, UsersDialog::OnEnter)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
UsersDialog::UsersDialog(KissCount* kiss, wxUI *parent) : wxDialog(&(*parent), -1, _("Users")), _kiss(kiss), _wxUI(parent)
|
||||
{
|
||||
wxGridBagSizer *gridBagSizer;
|
||||
wxStaticText* label;
|
||||
wxCommandEvent event;
|
||||
|
||||
wxBoxSizer *hbox = new wxBoxSizer(wxHORIZONTAL);
|
||||
gridBagSizer = new wxGridBagSizer(4, 4);
|
||||
|
||||
label = new wxStaticText(this, wxID_ANY, _("User "));
|
||||
gridBagSizer->Add(label, wxGBPosition(0, 0));
|
||||
_users = new wxChoice(this, wxID_ANY);
|
||||
gridBagSizer->Add(_users, wxGBPosition(0, 1));
|
||||
|
||||
label = new wxStaticText(this, wxID_ANY, _("Password "));
|
||||
gridBagSizer->Add(label, wxGBPosition(1, 0));
|
||||
_password = new wxTextCtrl(this, TEXT_PASSWORD_ID);
|
||||
_password->SetWindowStyle(_password->GetWindowStyle() | wxTE_PASSWORD | wxTE_PROCESS_ENTER);
|
||||
gridBagSizer->Add(_password, wxGBPosition(1, 1));
|
||||
|
||||
wxButton* ok = new wxButton(this, BUTTON_OK_ID, _("OK"));
|
||||
wxButton* cancel = new wxButton(this, BUTTON_CANCEL_ID, _("Cancel"));
|
||||
wxButton* newUser = new wxButton(this, BUTTON_NEW_USER_ID, _("New User"));
|
||||
gridBagSizer->Add(ok, wxGBPosition(3, 1));
|
||||
gridBagSizer->Add(cancel, wxGBPosition(3, 2));
|
||||
gridBagSizer->Add(newUser, wxGBPosition(3, 3));
|
||||
|
||||
std::list<wxString> users_list = _kiss->GetUsers();
|
||||
|
||||
for(std::list<wxString>::iterator i = users_list.begin(); i != users_list.end(); i++)
|
||||
{
|
||||
_users->Append(*i);
|
||||
}
|
||||
|
||||
_users->Select(0);
|
||||
|
||||
hbox->Add(gridBagSizer, 0, wxGROW|wxALL, 10);
|
||||
SetSizer(hbox);
|
||||
|
||||
_users->SetFocus();
|
||||
Fit();
|
||||
Center();
|
||||
|
||||
if (users_list.size() == 0)
|
||||
OnNewUser(event);
|
||||
else
|
||||
ShowModal();
|
||||
}
|
||||
|
||||
void UsersDialog::OnEnter(wxCommandEvent& event)
|
||||
{
|
||||
OnOK(event);
|
||||
}
|
||||
|
||||
void UsersDialog::OnOK(wxCommandEvent& event)
|
||||
{
|
||||
// No users in database
|
||||
if (!_users->GetStringSelection().Length())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_kiss->IsValidUser(_users->GetStringSelection(), _password->GetLineText(0)))
|
||||
{
|
||||
wxMessageBox(_("Invalid password"), _("Error"), wxICON_ERROR | wxOK);
|
||||
_password->Clear();
|
||||
_password->SetFocus();
|
||||
}
|
||||
else
|
||||
{
|
||||
_kiss->LoadUser(_users->GetStringSelection());
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
void UsersDialog::OnCancel(wxCommandEvent& event)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
|
||||
void UsersDialog::OnNewUser(wxCommandEvent& event)
|
||||
{
|
||||
wxString name;
|
||||
wxTextEntryDialog u(this, wxT(""), _("New User"));
|
||||
|
||||
if (u.ShowModal() == wxID_CANCEL)
|
||||
return;
|
||||
|
||||
name = u.GetValue();
|
||||
|
||||
if (!name.size()) return;
|
||||
|
||||
if (_kiss->UserExists(name))
|
||||
{
|
||||
wxMessageBox(_("User ") + name + _(" already exists"), _("Error"), wxICON_ERROR | wxOK);
|
||||
return;
|
||||
}
|
||||
|
||||
_kiss->NewUser(name);
|
||||
_kiss->LoadUser(name);
|
||||
|
||||
Close();
|
||||
}
|
||||
Reference in New Issue
Block a user