]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiSelectionManager.cpp
Don't be so picky here.
[lyx.git] / src / frontends / qt4 / GuiSelectionManager.cpp
index b39f2a79d8fdd30e58a44c622080b61ce5becb41..6e712ae02771ace46aed47e01903032d11930fbb 100644 (file)
@@ -225,8 +225,10 @@ void GuiSelectionManager::selectedChanged(const QModelIndex & idx, const QModelI
 bool GuiSelectionManager::insertRowToSelected(int i, 
                QMap<int, QVariant> 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 +283,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 +308,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)