select new address immediately after creation

This commit is contained in:
Wladimir J. van der Laan 2011-08-04 21:31:47 +02:00
parent 2351a3fc9f
commit ffccb56914
3 changed files with 24 additions and 6 deletions

View File

@ -116,7 +116,19 @@ void AddressBookPage::on_newAddressButton_clicked()
EditAddressDialog::NewSendingAddress :
EditAddressDialog::NewReceivingAddress);
dlg.setModel(model);
dlg.exec();
if(dlg.exec())
{
// Select row for newly created address
QString address = dlg.getAddress();
QModelIndexList lst = proxyModel->match(proxyModel->index(0,
AddressTableModel::Address, QModelIndex()),
Qt::EditRole, address, 1, Qt::MatchExactly);
if(!lst.isEmpty())
{
ui->tableView->setFocus();
ui->tableView->selectRow(lst.at(0).row());
}
}
}
void AddressBookPage::on_deleteButton_clicked()

View File

@ -54,9 +54,8 @@ void EditAddressDialog::loadRow(int row)
mapper->setCurrentIndex(row);
}
QString EditAddressDialog::saveCurrentRow()
bool EditAddressDialog::saveCurrentRow()
{
QString address;
switch(mode)
{
case NewReceivingAddress:
@ -74,12 +73,12 @@ QString EditAddressDialog::saveCurrentRow()
}
break;
}
return address;
return !address.isEmpty();
}
void EditAddressDialog::accept()
{
if(saveCurrentRow().isEmpty())
if(!saveCurrentRow())
{
switch(model->getEditStatus())
{
@ -100,3 +99,7 @@ void EditAddressDialog::accept()
QDialog::accept();
}
QString EditAddressDialog::getAddress() const
{
return address;
}

View File

@ -32,13 +32,16 @@ public:
void accept();
QString getAddress() const;
private:
QString saveCurrentRow();
bool saveCurrentRow();
Ui::EditAddressDialog *ui;
QDataWidgetMapper *mapper;
Mode mode;
AddressTableModel *model;
QString address;
};
#endif // EDITADDRESSDIALOG_H