gui.cpp

changeset 139
5e31a96adaa2
parent 138
d22d5c1d9e8a
child 140
2e8c1626aef7
equal deleted inserted replaced
138:d22d5c1d9e8a 139:5e31a96adaa2
682 } 682 }
683 683
684 // ============================================================================= 684 // =============================================================================
685 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 685 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
686 // ============================================================================= 686 // =============================================================================
687 void ForgeWindow::scrollToSelection () {
688 if (sel.size() == 0)
689 return;
690
691 LDObject* obj = sel[sel.size () - 1];
692 qObjList->scrollToItem (obj->qObjListEntry);
693 }
694
695 // =============================================================================
696 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
697 // =============================================================================
687 void ForgeWindow::slot_selectionChanged () { 698 void ForgeWindow::slot_selectionChanged () {
688 if (g_bSelectionLocked == true) 699 if (g_bSelectionLocked == true)
689 return; 700 return;
690 701
691 /* 702 /*
757 768
758 // ============================================================================= 769 // =============================================================================
759 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 770 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
760 // ============================================================================= 771 // =============================================================================
761 ulong ForgeWindow::getInsertionPoint () { 772 ulong ForgeWindow::getInsertionPoint () {
762 ulong ulIndex; 773 if (sel.size () > 0) {
763
764 if (qObjList->selectedItems().size() == 1) {
765 // If we have a selection, put the item after it. 774 // If we have a selection, put the item after it.
766 for (ulIndex = 0; ulIndex < g_CurrentFile->objects.size(); ++ulIndex) 775 return (sel[sel.size() - 1]->getIndex (g_CurrentFile)) + 1;
767 if (g_CurrentFile->objects[ulIndex]->qObjListEntry == qObjList->selectedItems()[0])
768 break;
769
770 if (ulIndex >= g_CurrentFile->objects.size())
771 return ulIndex + 1;
772 } 776 }
773 777
774 // Otherwise place the object at the end. 778 // Otherwise place the object at the end.
775 return g_CurrentFile->objects.size(); 779 return g_CurrentFile->objects.size();
776 } 780 }
809 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 813 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
810 // ============================================================================= 814 // =============================================================================
811 void ForgeWindow::updateSelection () { 815 void ForgeWindow::updateSelection () {
812 g_bSelectionLocked = true; 816 g_bSelectionLocked = true;
813 817
818 qObjList->clearSelection ();
814 for (LDObject* obj : sel) 819 for (LDObject* obj : sel)
815 obj->qObjListEntry->setSelected (true); 820 obj->qObjListEntry->setSelected (true);
816 821
817 g_bSelectionLocked = false; 822 g_bSelectionLocked = false;
818 slot_selectionChanged (); 823 slot_selectionChanged ();

mercurial