X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt4%2FGuiSelectionManager.cpp;h=825115cb3a368fff67470dc774a2269ff427bd25;hb=43c09d723435a5b203f2ac0c39e2086de836b386;hp=b39f2a79d8fdd30e58a44c622080b61ce5becb41;hpb=2455df7cdc82b1b97666a165d0fdfb6fbf73a2b6;p=lyx.git diff --git a/src/frontends/qt4/GuiSelectionManager.cpp b/src/frontends/qt4/GuiSelectionManager.cpp index b39f2a79d8..825115cb3a 100644 --- a/src/frontends/qt4/GuiSelectionManager.cpp +++ b/src/frontends/qt4/GuiSelectionManager.cpp @@ -32,6 +32,10 @@ #undef ControlModifier #endif +#ifdef FocusIn +#undef FocusIn +#endif + namespace lyx { namespace frontend { @@ -45,15 +49,10 @@ GuiSelectionManager::GuiSelectionManager( QPushButton * down, QAbstractListModel * amod, QAbstractListModel * smod) + : availableLV(avail), selectedLV(sel), addPB(add), deletePB(del), + upPB(up), downPB(down), availableModel(amod), selectedModel(smod), + selectedHasFocus_(false) { - availableLV = avail; - selectedLV = sel; - addPB = add; - deletePB = del; - upPB = up; - downPB = down; - availableModel = amod; - selectedModel = smod; selectedLV->setModel(smod); availableLV->setModel(amod); @@ -225,8 +224,10 @@ void GuiSelectionManager::selectedChanged(const QModelIndex & idx, const QModelI bool GuiSelectionManager::insertRowToSelected(int i, QMap const & itemData) { - if (i <= -1 || i > selectedModel->rowCount()) - return false; + if (i <= -1) + i = 0; + if (i > selectedModel->rowCount()) + i = selectedModel->rowCount(); if (!selectedModel->insertRow(i)) return false; return selectedModel->setItemData(selectedModel->index(i), itemData); @@ -281,7 +282,11 @@ void GuiSelectionManager::deletePB_clicked() void GuiSelectionManager::upPB_clicked() { - QModelIndex idx = selectedLV->currentIndex(); + QModelIndexList selIdx = + selectedLV->selectionModel()->selectedIndexes(); + if (selIdx.isEmpty()) + return; + QModelIndex idx = selIdx.first(); int const pos = idx.row(); if (pos <= 0) @@ -302,7 +307,11 @@ void GuiSelectionManager::upPB_clicked() void GuiSelectionManager::downPB_clicked() { - QModelIndex idx = selectedLV->currentIndex(); + QModelIndexList selIdx = + selectedLV->selectionModel()->selectedIndexes(); + if (selIdx.isEmpty()) + return; + QModelIndex idx = selIdx.first(); int const pos = idx.row(); if (pos >= selectedModel->rowCount() - 1)