From: terminator356 <ter...@us...> - 2007-08-21 01:01:02
|
Update of /cvsroot/lmuse/muse/muse/widgets In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv25203/muse/widgets Modified Files: Tag: REL07 canvas.cpp citem.cpp Log Message: See ChangeLog Index: citem.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/widgets/Attic/citem.cpp,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.2 diff -C2 -d -r1.2.2.1 -r1.2.2.2 *** citem.cpp 4 Oct 2006 18:45:34 -0000 1.2.2.1 --- citem.cpp 21 Aug 2007 01:00:57 -0000 1.2.2.2 *************** *** 57,65 **** CItem* CItemList::find(const QPoint& pos) const { for (rciCItem i = rbegin(); i != rend(); ++i) { if (i->second->contains(pos)) return i->second; ! } ! return 0; } --- 57,92 ---- CItem* CItemList::find(const QPoint& pos) const { + // Added by Tim. p3.2.5 + rciCItem ius; + bool usfound = false; + for (rciCItem i = rbegin(); i != rend(); ++i) { if (i->second->contains(pos)) + { + // Added by Tim. p3.2.5 + // Prefer selected over non-selected. + if(i->second->isSelected()) + return i->second; ! ! // Added by Tim. p3.2.5 ! // Remember the first unselected item in case no selected found. ! else ! { ! if(!usfound) ! { ! ius = i; ! usfound = true; ! } ! } ! } ! } ! ! // Added by Tim. p3.2.5 ! if(usfound) ! return ius->second; ! else ! ! return 0; } Index: canvas.cpp =================================================================== RCS file: /cvsroot/lmuse/muse/muse/widgets/Attic/canvas.cpp,v retrieving revision 1.10.2.9 retrieving revision 1.10.2.10 diff -C2 -d -r1.10.2.9 -r1.10.2.10 *** canvas.cpp 10 Feb 2007 05:14:54 -0000 1.10.2.9 --- canvas.cpp 21 Aug 2007 01:00:57 -0000 1.10.2.10 *************** *** 143,149 **** --- 143,161 ---- iCItem to(items.lower_bound(x2)); for (iCItem i = items.begin(); i != to; ++i) { + // Added by Tim. p3.2.5 + // To draw selected parts in front. + if (i->second->isSelected()) + continue; + if (i->second->intersects(rect)) drawItem(p, i->second, i->second->bbox().intersect(rect)); } + // Added by Tim. p3.2.5 + // To draw selected parts in front. + for (iCItem i = items.begin(); i != to; ++i) { + if (i->second->isSelected() && i->second->intersects(rect)) + drawItem(p, i->second, i->second->bbox().intersect(rect)); + } + to = moving.lower_bound(x2); for (iCItem i = moving.begin(); i != to; ++i) { *************** *** 197,200 **** --- 209,228 ---- for (iCItem i = items.begin(); i != items.end(); ++i) { CItem* ci = i->second; + // Added by Tim. p3.2.5 + // To draw selected parts in front. + if(ci->isSelected()) + continue; + + QRect r(ci->bbox()); + r.moveCenter(map((ci->pos()))); + if (r.intersects(rect)) + drawItem(p, ci, rect); + } + // Added by Tim. p3.2.5 + // To draw selected parts in front. + for (iCItem i = items.begin(); i != items.end(); ++i) { + CItem* ci = i->second; + if(!ci->isSelected()) + continue; QRect r(ci->bbox()); r.moveCenter(map((ci->pos()))); *************** *** 202,205 **** --- 230,234 ---- drawItem(p, ci, rect); } + for (iCItem i = moving.begin(); i != moving.end(); ++i) { QRect r(i->second->bbox()); *************** *** 400,403 **** --- 429,436 ---- else { curItem = 0; + // Added by Tim. p3.2.5 + iCItem ius; + bool usfound = false; + for (iCItem i = items.begin(); i != items.end(); ++i) { QRect box = i->second->bbox(); *************** *** 409,417 **** r.moveBy(i->second->pos().x(), i->second->pos().y()); if (r.contains(start)) { ! curItem = i->second; ! break; } } } if (curItem && (event->button() == QMouseEvent::MidButton)) { --- 442,468 ---- r.moveBy(i->second->pos().x(), i->second->pos().y()); if (r.contains(start)) { ! // Added by Tim. p3.2.5 ! // Prefer selected over non-selected items. ! if(i->second->isSelected()) ! { ! ! curItem = i->second; ! break; } + // Added by Tim. p3.2.5 + // Remember the first unselected item in case no selected found. + else + if(!usfound) + { + ius = i; + usfound = true; + } + } } + // Added by Tim. p3.2.5 + if(!curItem && usfound) + curItem = ius->second; } + if (curItem && (event->button() == QMouseEvent::MidButton)) { |