From: Richard Heck Date: Mon, 13 Aug 2007 23:25:47 +0000 (+0000) Subject: Fix bug 4121. The cause was the empty on_available_entered method. Not sure why X-Git-Tag: 1.6.10~8892 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=b5ff56e5e895b2b0d0ed202d86c46093eaa63e8a;p=features.git Fix bug 4121. The cause was the empty on_available_entered method. Not sure why that caused the bug, but it does. Also fix some other UI bugs, relating to resets of the selection models. These look gratuitous and cause problems in the current code. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19530 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/frontends/qt4/QCitationDialog.cpp b/src/frontends/qt4/QCitationDialog.cpp index 86e8c013f9..0d8d60b50c 100644 --- a/src/frontends/qt4/QCitationDialog.cpp +++ b/src/frontends/qt4/QCitationDialog.cpp @@ -320,17 +320,19 @@ bool QCitationDialog::isSelected(const QModelIndex & idx) void QCitationDialog::setButtons() { int const arows = availableLV->model()->rowCount(); + QModelIndexList const availSels = + availableLV->selectionModel()->selectedIndexes(); addPB->setEnabled(arows > 0 && - availableLV->currentIndex().isValid() && - !isSelected(availableLV->currentIndex())); + !availSels.isEmpty() && + !isSelected(availSels.first())); int const srows = selectedLV->model()->rowCount(); - int const sel_nr = selectedLV->currentIndex().row(); + QModelIndexList const selSels = + selectedLV->selectionModel()->selectedIndexes(); + int const sel_nr = selSels.empty() ? -1 : selSels.first().row(); deletePB->setEnabled(sel_nr >= 0); upPB->setEnabled(sel_nr > 0); downPB->setEnabled(sel_nr >= 0 && sel_nr < srows - 1); - applyPB->setEnabled(srows > 0); - okPB->setEnabled(srows > 0); } @@ -346,7 +348,6 @@ void QCitationDialog::updateInfo(const QModelIndex & idx) void QCitationDialog::on_selectedLV_clicked(const QModelIndex &) { - availableLV->selectionModel()->reset(); update(); } @@ -355,15 +356,12 @@ void QCitationDialog::selectedChanged(const QModelIndex & idx, const QModelIndex { if (!idx.isValid()) return; - - availableLV->selectionModel()->reset(); update(); } void QCitationDialog::on_availableLV_clicked(const QModelIndex &) { - selectedLV->selectionModel()->reset(); update(); } @@ -372,8 +370,6 @@ void QCitationDialog::availableChanged(const QModelIndex & idx, const QModelInde { if (!idx.isValid()) return; - - selectedLV->selectionModel()->reset(); update(); } @@ -382,17 +378,10 @@ void QCitationDialog::on_availableLV_doubleClicked(const QModelIndex & idx) { if (isSelected(idx)) return; - - selectedLV->selectionModel()->reset(); on_addPB_clicked(); } -void QCitationDialog::on_availableLV_entered(const QModelIndex &) -{ -} - - namespace { //helper function for next two QModelIndex getSelectedIndex(QListView * lv) { @@ -416,7 +405,6 @@ void QCitationDialog::on_addPB_clicked() form_->addKey(idxToAdd); if (idx.isValid()) selectedLV->setCurrentIndex(idx); - selectedLV->selectionModel()->reset(); update(); } @@ -436,7 +424,6 @@ void QCitationDialog::on_deletePB_clicked() if (nrows>1) selectedLV->setCurrentIndex(idx); - availableLV->selectionModel()->reset(); update(); } diff --git a/src/frontends/qt4/QCitationDialog.h b/src/frontends/qt4/QCitationDialog.h index 02db24dd39..17875a7d96 100644 --- a/src/frontends/qt4/QCitationDialog.h +++ b/src/frontends/qt4/QCitationDialog.h @@ -73,7 +73,6 @@ protected Q_SLOTS: void selectedChanged(const QModelIndex &, const QModelIndex &); void on_availableLV_clicked(const QModelIndex &); void on_availableLV_doubleClicked(const QModelIndex &); - void on_availableLV_entered(const QModelIndex &); void availableChanged(const QModelIndex &, const QModelIndex &); virtual void changed(); /// check whether key is already selected