void KDGanttViewTaskLink::hide() { QPtrListIterator<KDCanvasLine> horIt(*horLineList); QPtrListIterator<KDCanvasLine> verIt(*verLineList); QPtrListIterator<KDCanvasLine> horIt2(*horLineList2); QPtrListIterator<KDCanvasLine> verIt2(*verLineList2); QPtrListIterator<KDCanvasLine> horIt3(*horLineList3); QPtrListIterator<KDCanvasPolygon> topIt(*topList); QPtrListIterator<KDCanvasPolygon> topLeftIt(*topLeftList); QPtrListIterator<KDCanvasPolygon> topRightIt(*topRightList); QPtrListIterator<KDGanttViewItem> fromIt(fromList); QPtrListIterator<KDGanttViewItem> toIt(toList); for ( ; fromIt.current(); ++fromIt ) { toIt.toFirst(); for ( ; toIt.current(); ++toIt ) { (*horIt)->hide(); (*verIt)->hide(); (*horIt2)->hide(); (*verIt2)->hide(); (*horIt3)->hide(); (*topIt)->hide(); (*topLeftIt)->hide(); (*topRightIt)->hide(); ++horIt; ++verIt; ++horIt2; ++verIt2; ++horIt3; ++topIt; ++topLeftIt; ++topRightIt; } } }
void testHigher() { std::string str = "abcd"; auto lst = fromIt(str.begin(), str.end()); auto lst2 = fmap<char>(toupper, lst); std::cout << lst2 << std::endl; auto result = foldr([](char c, std::string str) { return str + c; }, std::string(), lst2); std::cout << result << std::endl; auto result2 = foldl([](std::string str, char c) { return str + c; }, std::string(), lst2); std::cout << result2 << std::endl; std::string mix = "TooMuchInformation"; auto lst3 = filter(isupper, fromIt(mix.begin(), mix.end())); std::cout << lst3 << std::endl; }
void KDGanttViewTaskLink::showMeType( bool visible ) { //qDebug("KDGanttViewTaskLink::showMeType %d",linkType()); hide(); isvisible = visible; int wid = 1; QPen p; QBrush b; p.setWidth(wid); b.setStyle(Qt::SolidPattern); if (ishighlighted) { b.setColor(myColorHL); p.setColor(myColorHL); } else { b.setColor(myColor); p.setColor(myColor); } QPoint start, end; QPtrListIterator<KDCanvasLine> horIt(*horLineList); QPtrListIterator<KDCanvasLine> verIt(*verLineList); QPtrListIterator<KDCanvasLine> horIt2(*horLineList2); QPtrListIterator<KDCanvasLine> verIt2(*verLineList2); QPtrListIterator<KDCanvasLine> horIt3(*horLineList3); QPtrListIterator<KDCanvasPolygon> topIt(*topList); QPtrListIterator<KDCanvasPolygon> topLeftIt(*topLeftList); QPtrListIterator<KDCanvasPolygon> topRightIt(*topRightList); QPtrListIterator<KDGanttViewItem> fromIt(fromList); QPtrListIterator<KDGanttViewItem> toIt(toList); for ( ; fromIt.current(); ++fromIt ) { (*fromIt)->setTextOffset(QPoint(30,0)); (*fromIt)->moveTextCanvas(); toIt.toFirst(); for ( ; toIt.current(); ++toIt ) { if (isvisible && (*fromIt)->isVisibleInGanttView && (*toIt)->isVisibleInGanttView && myTimeTable->taskLinksVisible) { (*horIt)->setPen(p); (*verIt)->setPen(p); (*horIt2)->setPen(p); (*verIt2)->setPen(p); (*horIt3)->setPen(p); (*topIt)->setBrush(b); (*topLeftIt)->setBrush(b); (*topRightIt)->setBrush(b); (*toIt)->setTextOffset(QPoint(30,0)); (*toIt)->moveTextCanvas(); switch (linkType()) { case StartStart: { start = (*fromIt)->middleLeft(); end = (*toIt)->middleLeft()-QPoint(12,0); bool down = start.y() < end.y(); (*horIt)->setPoints(start.x()-xOffset(*fromIt),start.y(), start.x()-10, start.y()); (*verIt)->setPoints( (*horIt)->endPoint().x(), (*horIt)->endPoint().y(), (*horIt)->endPoint().x(), (down ? (*toIt)->itemPos()+1 : (*toIt)->itemPos()+(*toIt)->height()-1)); (*horIt2)->setPoints((*verIt)->endPoint().x(), (*verIt)->endPoint().y(), end.x()-12, (*verIt)->endPoint().y()); (*verIt2)->setPoints((*horIt2)->endPoint().x(), (*horIt2)->endPoint().y(), (*horIt2)->endPoint().x(), end.y()); (*horIt3)->setPoints((*verIt2)->endPoint().x(), (*verIt2)->endPoint().y(), end.x(), end.y()); (*topRightIt)->move(end.x(),end.y()); (*topRightIt)->show(); break; } case FinishFinish: { start = (*fromIt)->middleRight(); end = (*toIt)->middleRight()+QPoint(12,0); bool down = start.y() < end.y(); (*horIt)->setPoints(start.x()+xOffset(*fromIt),start.y(), start.x()+10, start.y()); (*verIt)->setPoints( (*horIt)->endPoint().x(), (*horIt)->endPoint().y(), (*horIt)->endPoint().x(), (down ? (*toIt)->itemPos()+1 : (*toIt)->itemPos()+(*toIt)->height()-1)); (*horIt2)->setPoints((*verIt)->endPoint().x(), (*verIt)->endPoint().y(), end.x()+12, (*verIt)->endPoint().y()); (*verIt2)->setPoints((*horIt2)->endPoint().x(), (*horIt2)->endPoint().y(), (*horIt2)->endPoint().x(), end.y()); (*horIt3)->setPoints((*verIt2)->endPoint().x(), (*verIt2)->endPoint().y(), end.x(), end.y()); (*topLeftIt)->move(end.x(),end.y()); (*topLeftIt)->show(); break; } case FinishStart: { start = (*fromIt)->middleRight(); end = (*toIt)->middleLeft() - QPoint(12,0); bool down = start.y() < end.y(); (*horIt)->setPoints(start.x()+xOffset(*fromIt),start.y(), start.x()+10,start.y()); (*verIt)->setPoints( (*horIt)->endPoint().x(), (*horIt)->endPoint().y(), (*horIt)->endPoint().x(), (down ? (*toIt)->itemPos()+1 : (*toIt)->itemPos()+(*toIt)->height()-1)); (*horIt2)->setPoints((*verIt)->endPoint().x(), (*verIt)->endPoint().y(), end.x()-12, (*verIt)->endPoint().y()); (*verIt2)->setPoints((*horIt2)->endPoint().x(), (*horIt2)->endPoint().y(), (*horIt2)->endPoint().x(), end.y()); (*horIt3)->setPoints((*verIt2)->endPoint().x(), (*verIt2)->endPoint().y(), end.x(), end.y()); (*topRightIt)->move(end.x(),end.y()); (*topRightIt)->show(); break; } case StartFinish: { start = (*fromIt)->middleRight(); end = (*toIt)->middleRight()+QPoint(12,0); bool down = start.y() < end.y(); (*horIt)->setPoints(start.x()+xOffset(*fromIt),start.y(), start.x()+10, start.y()); (*verIt)->setPoints( (*horIt)->endPoint().x(), (*horIt)->endPoint().y(), (*horIt)->endPoint().x(), (down ? (*toIt)->itemPos()+1 : (*toIt)->itemPos()+(*toIt)->height()-1)); (*horIt2)->setPoints((*verIt)->endPoint().x(), (*verIt)->endPoint().y(), end.x()-12, (*verIt)->endPoint().y()); (*verIt2)->setPoints((*horIt2)->endPoint().x(), (*horIt2)->endPoint().y(), (*horIt2)->endPoint().x(), end.y()); (*horIt3)->setPoints((*verIt2)->endPoint().x(), (*verIt2)->endPoint().y(), end.x(), end.y()); (*topRightIt)->move(end.x(),end.y()); (*topRightIt)->show(); break; } default: qWarning("KDGanttViewTaskLink: Unknown link type"); break; } (*horIt)->show(); (*verIt)->show(); (*horIt2)->show(); (*verIt2)->show(); (*horIt3)->show(); } ++horIt; ++verIt; ++horIt2; ++verIt2; ++horIt3; ++topIt; ++topLeftIt; ++topRightIt; } } }
void KDGanttViewTaskLink::showMe( bool visible ) { if (linkType() != None) { showMeType(visible); return; } hide(); isvisible = visible; int wid = 1; QPen p; QBrush b; p.setWidth(wid); b.setStyle(Qt::SolidPattern); if (ishighlighted) { b.setColor(myColorHL); p.setColor(myColorHL); } else { b.setColor(myColor); p.setColor(myColor); } QPoint start, end; QPtrListIterator<KDCanvasLine> horIt(*horLineList); QPtrListIterator<KDCanvasLine> verIt(*verLineList); QPtrListIterator<KDCanvasPolygon> topIt(*topList); QPtrListIterator<KDGanttViewItem> fromIt(fromList); QPtrListIterator<KDGanttViewItem> toIt(toList); for ( ; fromIt.current(); ++fromIt ) { (*fromIt)->setTextOffset(QPoint(0,0)); toIt.toFirst(); for ( ; toIt.current(); ++toIt ) { (*toIt)->setTextOffset(QPoint(0,0)); if (!isvisible || ! (*fromIt)->isVisibleInGanttView || !(*toIt)->isVisibleInGanttView || !myTimeTable->taskLinksVisible) { (*horIt)->hide(); (*verIt)->hide(); (*topIt)->hide(); ++horIt; ++verIt; ++topIt; } else { (*horIt)->setPen(p); (*verIt)->setPen(p); (*topIt)->setBrush(b); end = (*toIt)->getTaskLinkEndCoord(); start = (*fromIt)->getTaskLinkStartCoord(end); (*horIt)->setPoints(start.x(),start.y(),end.x()+wid,start.y()); (*verIt)->setPoints(end.x()+wid/2,start.y(),end.x()+wid/2,end.y()-2); (*topIt)->move(end.x()+wid/2,end.y()); (*horIt)->show(); (*verIt)->show(); (*topIt)->show(); ++horIt; ++verIt; ++topIt; } } } while ( horIt.current() ) { (*horIt)->hide(); (*verIt)->hide(); (*topIt)->hide(); ++horIt; ++verIt; ++topIt; } }