A lot of good job done
This commit is contained in:
parent
083054b376
commit
c322a01adb
|
@ -74,9 +74,9 @@ void KissCount::UpdateOperation(struct operation op)
|
|||
_db->UpdateOperation(op);
|
||||
}
|
||||
|
||||
void KissCount::AddOperation(struct operation op)
|
||||
wxString KissCount::AddOperation(struct operation op)
|
||||
{
|
||||
_db->AddOperation(_user, op);
|
||||
return _db->AddOperation(_user, op);
|
||||
}
|
||||
|
||||
void KissCount::DeleteOperation(struct operation op)
|
||||
|
@ -89,18 +89,30 @@ void KissCount::SetAccountAmount(int month, int year, wxString accountId, double
|
|||
_db->SetAccountAmount(month, year, accountId, amount);
|
||||
}
|
||||
|
||||
void KissCount::InsertAccount(struct Account ac)
|
||||
void KissCount::AddAccount(struct Account ac)
|
||||
{
|
||||
_db->InsertAccount(_user, ac);
|
||||
ac.id = _db->AddAccount(_user, ac);
|
||||
_user->_accounts.push_back(ac);
|
||||
}
|
||||
|
||||
void KissCount::UpdateAccount(struct Account ac)
|
||||
{
|
||||
std::vector<Account>::iterator it;
|
||||
int i;
|
||||
|
||||
_db->UpdateAccount(ac);
|
||||
for (i=0, it=_user->_accounts.begin(); it !=_user->_accounts.end(); it++, i++)
|
||||
if (it->id == ac.id)
|
||||
_user->_accounts[i] = ac;
|
||||
}
|
||||
|
||||
void KissCount::DeleteAccount(struct Account ac)
|
||||
{
|
||||
std::vector<Account>::iterator it;
|
||||
int i;
|
||||
|
||||
_db->DeleteAccount(ac);
|
||||
_user->_accounts.erase(ac.id);
|
||||
for (i=0, it=_user->_accounts.begin(); it !=_user->_accounts.end(); it++, i++)
|
||||
if (it->id == ac.id)
|
||||
_user->_accounts.erase(_user->_accounts.begin()+i);
|
||||
}
|
||||
|
|
|
@ -22,10 +22,10 @@ class KissCount
|
|||
User* GetUser();
|
||||
double GetAccountAmount(wxString id, int month, int year);
|
||||
void UpdateOperation(struct operation op);
|
||||
void AddOperation(struct operation op);
|
||||
wxString AddOperation(struct operation op);
|
||||
void DeleteOperation(struct operation op);
|
||||
void SetAccountAmount(int month, int year, wxString accountId, double value);
|
||||
void InsertAccount(struct Account ac);
|
||||
void AddAccount(struct Account ac);
|
||||
void UpdateAccount(struct Account ac);
|
||||
void DeleteAccount(struct Account ac);
|
||||
|
||||
|
|
|
@ -148,7 +148,7 @@ User* Database::LoadUser(wxString name)
|
|||
wxString req;
|
||||
User* user;
|
||||
struct Account account;
|
||||
std::map<wxString, Account>::iterator it;
|
||||
std::vector<Account>::iterator it;
|
||||
|
||||
req = _("SELECT * FROM user WHERE name='") + name + _("'");
|
||||
|
||||
|
@ -176,18 +176,18 @@ User* Database::LoadUser(wxString name)
|
|||
account.number = set.GetAsString(_("number"));
|
||||
account.shared = set.GetBool(_("shared"));
|
||||
account._default = set.GetBool(_("default_account"));
|
||||
user->_accounts[account.id] = account;
|
||||
user->_accounts.push_back(account);
|
||||
}
|
||||
set.Finalize();
|
||||
|
||||
if (!user->_accounts.empty())
|
||||
{
|
||||
it = user->_accounts.begin();
|
||||
req = _("SELECT DISTINCT year FROM account_amount WHERE account IN('") + it->first;
|
||||
req = _("SELECT DISTINCT year FROM account_amount WHERE account IN('") + it->id;
|
||||
it++;
|
||||
for (;it != user->_accounts.end(); it++)
|
||||
{
|
||||
req += _("', '") + it->first ;
|
||||
req += _("', '") + it->id ;
|
||||
}
|
||||
req += _("') ORDER BY year ASC");
|
||||
|
||||
|
@ -223,17 +223,17 @@ void Database::LoadYear(User* user, int year)
|
|||
{
|
||||
wxSQLite3ResultSet set;
|
||||
wxString req;
|
||||
std::map<wxString, Account>::iterator it;
|
||||
std::vector<Account>::iterator it;
|
||||
|
||||
if (user->_operations[year] == NULL)
|
||||
user->_operations[year] = new std::map<unsigned int, std::vector<operation> >();
|
||||
|
||||
it = user->_accounts.begin();
|
||||
req = _("SELECT * FROM operation WHERE account IN('") + it->first;
|
||||
req = _("SELECT * FROM operation WHERE account IN('") + it->id;
|
||||
it++;
|
||||
for (;it != user->_accounts.end(); it++)
|
||||
{
|
||||
req += _("', '") + it->first ;
|
||||
req += _("', '") + it->id ;
|
||||
}
|
||||
req += _("') ORDER BY fix_cost DESC, year,month,day ASC");
|
||||
|
||||
|
@ -306,9 +306,11 @@ void Database::UpdateOperation(struct operation op)
|
|||
|
||||
}
|
||||
|
||||
void Database::AddOperation(User* user, struct operation op)
|
||||
wxString Database::AddOperation(User* user, struct operation op)
|
||||
{
|
||||
wxString req;
|
||||
wxString req, res;
|
||||
wxSQLite3ResultSet set;
|
||||
|
||||
req = _("INSERT INTO operation ('user', 'account', 'year', 'month', 'day', 'amount', 'description', 'category', 'fix_cost') VALUES ('") ;
|
||||
req += user->_id + _("'");
|
||||
req += _(", '") + op.account + _("'");
|
||||
|
@ -324,7 +326,33 @@ void Database::AddOperation(User* user, struct operation op)
|
|||
req += _(", '0'") ;
|
||||
req += _(")");
|
||||
|
||||
EXECUTE_SQL_UPDATE(req, );
|
||||
EXECUTE_SQL_UPDATE(req, _("0"));
|
||||
|
||||
req = _("SELECT id FROM operation WHERE ");
|
||||
req += _("user='") + user->_id + _("'");
|
||||
req += _(" AND account='") + op.account + _("'");
|
||||
req += _(" AND year='") + wxString::Format(_("%d"), op.year) + _("'");
|
||||
req += _(" AND month='") + wxString::Format(_("%d"), op.month) + _("'");
|
||||
req += _(" AND day='") + wxString::Format(_("%d"), op.day) + _("'");
|
||||
req += _(" AND amount='") + wxString::Format(_("%.2lf"), op.amount) + _("'");
|
||||
req += _(" AND description=\"") + op.description + _("\"");
|
||||
req += _(" AND category='") + op.category + _("'");
|
||||
if (op.fix_cost)
|
||||
req += _(" AND fix_cost='1'") ;
|
||||
else
|
||||
req += _(" AND fix_cost='0'") ;
|
||||
req += _("ORDER BY ID DESC") ;
|
||||
|
||||
EXECUTE_SQL_QUERY(req , set, _("0"));
|
||||
|
||||
if (set.NextRow())
|
||||
res = set.GetAsString(_("id"));
|
||||
else
|
||||
res = _("0");
|
||||
|
||||
set.Finalize();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void Database::DeleteOperation(struct operation op)
|
||||
|
@ -347,9 +375,11 @@ void Database::SetAccountAmount(int month, int year, wxString accountId, double
|
|||
EXECUTE_SQL_UPDATE(req, );
|
||||
}
|
||||
|
||||
void Database::InsertAccount(User* user, struct Account ac)
|
||||
wxString Database::AddAccount(User* user, struct Account ac)
|
||||
{
|
||||
wxString req;
|
||||
wxString req, res;
|
||||
wxSQLite3ResultSet set;
|
||||
|
||||
req = _("INSERT INTO account ('user', 'name', 'number', 'shared', 'default_account') VALUES ('") ;
|
||||
req += user->_id + _("'");
|
||||
req += _(", '") + ac.name + _("'");
|
||||
|
@ -364,7 +394,20 @@ void Database::InsertAccount(User* user, struct Account ac)
|
|||
req += _(", '0'") ;
|
||||
req += _(")");
|
||||
|
||||
EXECUTE_SQL_UPDATE(req, );
|
||||
EXECUTE_SQL_UPDATE(req, _("0"));
|
||||
|
||||
req = _("SELECT id FROM account WHERE name='") + ac.name + _("'") ;
|
||||
|
||||
EXECUTE_SQL_QUERY(req , set, _("0"));
|
||||
|
||||
if (set.NextRow())
|
||||
res = set.GetAsString(_("id"));
|
||||
else
|
||||
res = _("0");
|
||||
|
||||
set.Finalize();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
void Database::UpdateAccount(struct Account ac)
|
||||
|
|
|
@ -25,12 +25,12 @@ class Database
|
|||
void LoadYear(User* user, int year);
|
||||
|
||||
void UpdateOperation(struct operation op);
|
||||
void AddOperation(User* user, struct operation op);
|
||||
wxString AddOperation(User* user, struct operation op);
|
||||
void DeleteOperation(struct operation op);
|
||||
double GetAccountAmount(wxString id, int month, int year);
|
||||
void SetAccountAmount(int month, int year, wxString accountId, double amount);
|
||||
|
||||
void InsertAccount(User* user, struct Account ac);
|
||||
wxString AddAccount(User* user, struct Account ac);
|
||||
void UpdateAccount(struct Account ac);
|
||||
void DeleteAccount(struct Account ac);
|
||||
|
||||
|
|
|
@ -33,17 +33,20 @@ wxString User::GetCategoryId(wxString catName)
|
|||
|
||||
wxString User::GetAccountName(wxString accountId)
|
||||
{
|
||||
if (_accounts.find(accountId) == _accounts.end())
|
||||
std::vector<Account>::iterator it;
|
||||
for (it=_accounts.begin(); it !=_accounts.end(); it++)
|
||||
if (it->id == accountId)
|
||||
return it->name;
|
||||
|
||||
return _("Unknown") ;
|
||||
return _accounts[accountId].name;
|
||||
}
|
||||
|
||||
wxString User::GetAccountId(wxString accountName)
|
||||
{
|
||||
std::map<wxString, wxString>::iterator it;
|
||||
for (it=_preferences._categories.begin(); it !=_preferences._categories.end(); it++)
|
||||
if (it->second == accountName)
|
||||
return it->first;
|
||||
std::vector<Account>::iterator it;
|
||||
for (it=_accounts.begin(); it !=_accounts.end(); it++)
|
||||
if (it->name == accountName)
|
||||
return it->id;
|
||||
|
||||
return _("0") ;
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ public:
|
|||
wxString _id;
|
||||
wxString _name;
|
||||
wxString _password;
|
||||
std::map<wxString, Account> _accounts;
|
||||
std::vector<Account> _accounts;
|
||||
std::map<unsigned int, std::map<unsigned int, std::vector<operation> >* > _operations;
|
||||
Preferences _preferences;
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ AccountPanel::AccountPanel(KissCount* kiss, wxUI *parent) : wxPanel(&(*parent)),
|
|||
int i ;
|
||||
DEFAULT_FONT(font);
|
||||
User* user = _kiss->GetUser();
|
||||
std::map<wxString, Account>::iterator accountIt;
|
||||
std::vector<Account>::iterator accountIt;
|
||||
std::map<wxString, wxString>::iterator it;
|
||||
wxColour categoryColors[] = {wxColour(0x00, 0x45, 0x86),
|
||||
wxColour(0xFF, 0x3E, 0x0E),
|
||||
|
@ -41,12 +41,12 @@ AccountPanel::AccountPanel(KissCount* kiss, wxUI *parent) : wxPanel(&(*parent)),
|
|||
|
||||
_pie = new PiePlot();
|
||||
|
||||
_accounts = new wxString[user->_accounts.size()];
|
||||
_accounts = new wxString[user->GetAccountsNumber()];
|
||||
for (i=0,
|
||||
accountIt = user->_accounts.begin();
|
||||
accountIt != user->_accounts.end();
|
||||
accountIt++, i++)
|
||||
_accounts[i] = user->_accounts[accountIt->first].name;
|
||||
_accounts[i] = accountIt->name;
|
||||
|
||||
_categories = new wxString[user->GetCategoriesNumber()] ;
|
||||
for(i=0, it = user->_preferences._categories.begin(); it != user->_preferences._categories.end(); it++, i++)
|
||||
|
@ -319,7 +319,7 @@ void AccountPanel::InsertOperation(User* user, operation* op, int line, bool fix
|
|||
|
||||
_grid->SetCellEditor(line, DEBIT, new wxGridCellFloatEditor(-1, 2));
|
||||
_grid->SetCellEditor(line, CREDIT, new wxGridCellFloatEditor(-1, 2));
|
||||
wxGridCellChoiceEditor* accountEditor = new wxGridCellChoiceEditor(user->_accounts.size(), _accounts, false);
|
||||
wxGridCellChoiceEditor* accountEditor = new wxGridCellChoiceEditor(user->GetAccountsNumber(), _accounts, false);
|
||||
_grid->SetCellEditor(line, ACCOUNT, accountEditor);
|
||||
// Remove Fix category
|
||||
wxGridCellChoiceEditor* categoryEditor = new wxGridCellChoiceEditor(user->GetCategoriesNumber()-1, _categories+1, false);
|
||||
|
@ -404,9 +404,8 @@ void AccountPanel::InsertOperation(User* user, operation* op, int line, bool fix
|
|||
|
||||
void AccountPanel::InitAccountsGrid(User* user, int month, int year)
|
||||
{
|
||||
std::map<wxString, Account>::iterator it;
|
||||
std::vector<Account>::iterator it;
|
||||
int curLine = 0;
|
||||
Account account ;
|
||||
double value;
|
||||
int i, a;
|
||||
DEFAULT_FONT(font);
|
||||
|
@ -416,19 +415,17 @@ void AccountPanel::InitAccountsGrid(User* user, int month, int year)
|
|||
for (i=0, it = user->_accounts.begin(); it != user->_accounts.end(); i++, it++, curLine++)
|
||||
{
|
||||
_accountsGrid->AppendRows();
|
||||
account = user->_accounts[it->first];
|
||||
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_NUMBER, account.number);
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_NAME, account.name);
|
||||
value = _kiss->GetAccountAmount(it->first, month, year);
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_NUMBER, it->number);
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_NAME, it->name);
|
||||
value = _kiss->GetAccountAmount(it->id, month, year);
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_INIT, wxString::Format(wxT("%.2lf"), value));
|
||||
_accountsGrid->SetCellEditor(curLine, ACCOUNT_INIT, new wxGridCellFloatEditor(-1, 2));
|
||||
for (a=0; a<NUMBER_COLS_ACCOUNTS; a++)
|
||||
_accountsGrid->SetReadOnly(curLine, a, a != ACCOUNT_INIT);
|
||||
_accountsGrid->SetCellFont(curLine, ACCOUNT_CUR, font);
|
||||
|
||||
_accountsIndexes[it->first] = i;
|
||||
_accountsInitValues[it->first] = value;
|
||||
_accountsInitValues[it->id] = value;
|
||||
_accountsGrid->SetCellAlignment(curLine, ACCOUNT_INIT, wxALIGN_RIGHT, wxALIGN_CENTRE);
|
||||
_accountsGrid->SetCellAlignment(curLine, ACCOUNT_CUR, wxALIGN_RIGHT, wxALIGN_CENTRE);
|
||||
_accountsGrid->SetCellAlignment(curLine, ACCOUNT_FINAL, wxALIGN_RIGHT, wxALIGN_CENTRE);
|
||||
|
@ -447,6 +444,7 @@ void AccountPanel::UpdateStats()
|
|||
std::map<wxString, double> curAccountAmount, finalAccountAmount;
|
||||
std::map<wxString, double>::iterator doubleIt;
|
||||
std::map<wxString, int>::iterator intIt;
|
||||
std::vector<Account>::iterator accountIt;
|
||||
|
||||
curDate.SetToCurrent();
|
||||
|
||||
|
@ -498,13 +496,12 @@ void AccountPanel::UpdateStats()
|
|||
for(i=0; i<user->GetCategoriesNumber()+1; i++)
|
||||
_statsGrid->SetCellValue(CATS_STATS+i, 1, wxString::Format(wxT("%.2lf"), _categoriesValues[i]));
|
||||
|
||||
for (intIt=_accountsIndexes.begin(); intIt!=_accountsIndexes.end(); intIt++)
|
||||
for (i=0, accountIt=user->_accounts.begin(); accountIt!=user->_accounts.end(); accountIt++, i++)
|
||||
{
|
||||
i = _accountsIndexes[intIt->first];
|
||||
value = curAccountAmount[intIt->first];
|
||||
value = curAccountAmount[accountIt->id];
|
||||
_accountsGrid->SetCellValue(i, ACCOUNT_CUR, wxString::Format(wxT("%.2lf"), value));
|
||||
_accountsGrid->SetCellTextColour(i, ACCOUNT_CUR, (value >= 0.0) ? wxColor(0x00, 0x00, 0x00) : wxColor(0xFF, 0x00, 0x00));
|
||||
value = finalAccountAmount[intIt->first];
|
||||
value = finalAccountAmount[accountIt->id];
|
||||
_accountsGrid->SetCellValue(i, ACCOUNT_FINAL, wxString::Format(wxT("%.2lf"), value));
|
||||
}
|
||||
|
||||
|
@ -653,13 +650,14 @@ void AccountPanel::OnOperationModified(wxGridEvent& event)
|
|||
}
|
||||
need_insertion = true;
|
||||
fix_op = true;
|
||||
new_op.fix_cost = true;
|
||||
|
||||
for(i=0; i<NUMBER_COLS_OPS; i++)
|
||||
{
|
||||
if (i == CATEGORY) continue;
|
||||
_grid->SetCellValue(event.GetRow(), i, _(""));
|
||||
}
|
||||
_kiss->AddOperation(new_op);
|
||||
new_op.id = _kiss->AddOperation(new_op);
|
||||
}
|
||||
// Modify an operation
|
||||
else if (row <= user->GetOperationsNumber(_curMonth, _curYear))
|
||||
|
@ -697,12 +695,14 @@ void AccountPanel::OnOperationModified(wxGridEvent& event)
|
|||
return ;
|
||||
}
|
||||
need_insertion = true;
|
||||
fix_op = false;
|
||||
new_op.fix_cost = false;
|
||||
|
||||
for(i=0; i<NUMBER_COLS_OPS; i++)
|
||||
{
|
||||
_grid->SetCellValue(event.GetRow(), i, _(""));
|
||||
}
|
||||
_kiss->AddOperation(new_op);
|
||||
new_op.id = _kiss->AddOperation(new_op);
|
||||
}
|
||||
|
||||
if (need_insertion)
|
||||
|
|
|
@ -48,7 +48,7 @@ private:
|
|||
wxGrid *_statsGrid, *_accountsGrid;
|
||||
PiePlot* _pie;
|
||||
double *_categoriesValues;
|
||||
std::map<wxString, int> _categoriesIndexes, _accountsIndexes;
|
||||
std::map<wxString, int> _categoriesIndexes;
|
||||
std::vector<operation>* _curOperations;
|
||||
int _curMonth, _curYear;
|
||||
wxString* _categories, *_accounts;
|
||||
|
|
|
@ -80,7 +80,7 @@ PreferencesPanel::PreferencesPanel(KissCount* kiss, wxUI *parent) : wxPanel(&(*p
|
|||
|
||||
void PreferencesPanel::InitAccounts(User* user)
|
||||
{
|
||||
std::map<wxString, Account>::iterator it;
|
||||
std::vector<Account>::iterator it;
|
||||
int curLine = 0;
|
||||
Account account ;
|
||||
DEFAULT_FONT(font);
|
||||
|
@ -97,10 +97,9 @@ void PreferencesPanel::InitAccounts(User* user)
|
|||
for (it = user->_accounts.begin(); it != user->_accounts.end(); it++, curLine++)
|
||||
{
|
||||
_accountsGrid->AppendRows();
|
||||
account = user->_accounts[it->first];
|
||||
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_NAME, account.name);
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_NUMBER, account.number);
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_NAME, it->name);
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_NUMBER, it->number);
|
||||
|
||||
_accountsGrid->SetCellRenderer(curLine, ACCOUNT_SHARED, new wxGridCellBoolRenderer ());
|
||||
_accountsGrid->SetCellEditor(curLine, ACCOUNT_SHARED, new wxGridCellBoolEditor ());
|
||||
|
@ -108,13 +107,12 @@ void PreferencesPanel::InitAccounts(User* user)
|
|||
_accountsGrid->SetCellEditor(curLine, ACCOUNT_DEFAULT, new wxGridCellBoolEditor ());
|
||||
_accountsGrid->SetCellRenderer(curLine, ACCOUNT_DELETE, new wxGridCellBoolRenderer ());
|
||||
_accountsGrid->SetCellEditor(curLine, ACCOUNT_DELETE, new wxGridCellBoolEditor ());
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_SHARED, (account.shared)?_("1"):_("0"));
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_DEFAULT, (account._default)?_("1"):_("0"));
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_SHARED, (it->shared)?_("1"):_("0"));
|
||||
_accountsGrid->SetCellValue(curLine, ACCOUNT_DEFAULT, (it->_default)?_("1"):_("0"));
|
||||
|
||||
_accountsGrid->SetCellAlignment(curLine, ACCOUNT_SHARED, wxALIGN_CENTRE, wxALIGN_CENTRE);
|
||||
_accountsGrid->SetCellAlignment(curLine, ACCOUNT_DEFAULT, wxALIGN_CENTRE, wxALIGN_CENTRE);
|
||||
_accountsGrid->SetCellAlignment(curLine, ACCOUNT_DELETE, wxALIGN_CENTRE, wxALIGN_CENTRE);
|
||||
_accountsIndexes[curLine] = account.id;
|
||||
}
|
||||
|
||||
_accountsGrid->AutoSizeColumns(true);
|
||||
|
@ -221,18 +219,17 @@ void PreferencesPanel::OnAccountModified(wxGridEvent& event)
|
|||
|
||||
if (col == ACCOUNT_DEFAULT)
|
||||
{
|
||||
new_account.id = _accountsIndexes[row];
|
||||
new_account.id = user->_accounts[row].id;
|
||||
|
||||
for (i=0; i<user->GetAccountsNumber(); i++)
|
||||
{
|
||||
if (i != col)
|
||||
if (i != row)
|
||||
{
|
||||
account = user->_accounts[_accountsIndexes[i]];
|
||||
account = user->_accounts[i];
|
||||
if (account._default)
|
||||
{
|
||||
account._default = false;
|
||||
_kiss->UpdateAccount(account);
|
||||
user->_accounts[_accountsIndexes[i]] = account;
|
||||
_accountsGrid->SetCellValue(i, ACCOUNT_DEFAULT, _(""));
|
||||
break;
|
||||
}
|
||||
|
@ -245,7 +242,7 @@ void PreferencesPanel::OnAccountModified(wxGridEvent& event)
|
|||
// Account modification
|
||||
if (user->GetAccountsNumber() && row < user->GetAccountsNumber())
|
||||
{
|
||||
new_account.id = _accountsIndexes[row];
|
||||
new_account.id = user->_accounts[row].id;
|
||||
|
||||
if (col == ACCOUNT_DELETE)
|
||||
{
|
||||
|
@ -275,6 +272,14 @@ void PreferencesPanel::OnAccountModified(wxGridEvent& event)
|
|||
return ;
|
||||
}
|
||||
|
||||
if (user->GetAccountId(new_account.name) != _("0"))
|
||||
{
|
||||
wxMessageDialog dialog(_wxUI, _("Account ")+new_account.name+_(" already exists"), _("Error"), wxOK);
|
||||
dialog.ShowModal();
|
||||
inModification = false;
|
||||
return ;
|
||||
}
|
||||
|
||||
_accountsGrid->SetCellRenderer(row, ACCOUNT_SHARED, new wxGridCellBoolRenderer ());
|
||||
_accountsGrid->SetCellEditor(row, ACCOUNT_SHARED, new wxGridCellBoolEditor ());
|
||||
_accountsGrid->SetCellRenderer(row, ACCOUNT_DEFAULT, new wxGridCellBoolRenderer ());
|
||||
|
@ -303,7 +308,7 @@ void PreferencesPanel::OnAccountModified(wxGridEvent& event)
|
|||
_accountsGrid->SetReadOnly(row+1, ACCOUNT_DELETE, true);
|
||||
_wxUI->Layout();
|
||||
|
||||
_kiss->InsertAccount(new_account);
|
||||
_kiss->AddAccount(new_account);
|
||||
}
|
||||
|
||||
inModification = false;
|
||||
|
|
|
@ -30,7 +30,7 @@ private:
|
|||
wxUI* _wxUI;
|
||||
wxGrid* _accountsGrid;
|
||||
wxGrid* _categoriesGrid;
|
||||
std::map<int, wxString> _categoriesIndexes, _accountsIndexes;
|
||||
std::map<int, wxString> _categoriesIndexes;
|
||||
|
||||
void InitAccounts(User* user);
|
||||
void InitCategories(User* user);
|
||||
|
|
Loading…
Reference in New Issue
Block a user