summaryrefslogtreecommitdiff
path: root/src/editexecutablesdialog.cpp
diff options
context:
space:
mode:
authorTom Tanner <thosrtanner2@users.sourceforge.net>2015-09-05 17:18:37 +0100
committerTom Tanner <thosrtanner2@users.sourceforge.net>2015-09-05 17:18:37 +0100
commitcd7b409c1045bfc42961467d2250ad6b7c9f007c (patch)
treee6d6defed504b17a4fa15f5282fa12e821df0f67 /src/editexecutablesdialog.cpp
parent63188eb6f352609d419f41e30fd82ad92f83a073 (diff)
Weren't getting warned if you changed an executable then selected another
This fixes that and also redisplays the newly selected item properly
Diffstat (limited to 'src/editexecutablesdialog.cpp')
-rw-r--r--src/editexecutablesdialog.cpp20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/editexecutablesdialog.cpp b/src/editexecutablesdialog.cpp
index 73fb1d03..b9d548a6 100644
--- a/src/editexecutablesdialog.cpp
+++ b/src/editexecutablesdialog.cpp
@@ -111,10 +111,10 @@ void EditExecutablesDialog::saveExecutable()
void EditExecutablesDialog::delayedRefresh()
{
- int index = ui->executablesListBox->currentIndex().row();
+ QModelIndex index = ui->executablesListBox->currentIndex();
resetInput();
refreshExecutablesWidget();
- ui->executablesListBox->setCurrentRow(index);
+ on_executablesListBox_clicked(index);
}
@@ -263,24 +263,26 @@ void EditExecutablesDialog::on_closeButton_clicked()
void EditExecutablesDialog::on_executablesListBox_clicked(const QModelIndex &current)
{
if (current.isValid()) {
- ui->executablesListBox->selectionModel()->clearSelection();
- ui->executablesListBox->selectionModel()->select(current, QItemSelectionModel::SelectCurrent);
if (executableChanged()) {
QMessageBox::StandardButton res = QMessageBox::question(this, tr("Save Changes?"),
tr("You made changes to the current executable, do you want to save them?"),
- QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel);
- if (res == QMessageBox::Cancel) {
- return;
- } else if (res == QMessageBox::Yes) {
- // this invalidates the item passed as a a parameter
+ QMessageBox::Yes | QMessageBox::No);
+ if (res == QMessageBox::Yes) {
saveExecutable();
+ //This is necessary if we're adding a new item, but it doesn't look very nice.
+ //Ideally we'd end up with the correct row displayed
+ ui->executablesListBox->selectionModel()->clearSelection();
+ ui->executablesListBox->selectionModel()->select(current, QItemSelectionModel::SelectCurrent);
QTimer::singleShot(50, this, SLOT(delayedRefresh()));
return;
}
}
+ ui->executablesListBox->selectionModel()->clearSelection();
+ ui->executablesListBox->selectionModel()->select(current, QItemSelectionModel::SelectCurrent);
+
m_CurrentItem = ui->executablesListBox->item(current.row());
Executable const &selectedExecutable(m_ExecutablesList.find(m_CurrentItem->text()));