亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? revisiontree.cpp

?? LINUX 下以 QT/KDE 寫的 SVN 客戶端
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
                }                label = i18n("%1<br>Check change entry %2 of %3").arg(olabel).arg(i).arg(m_Data->m_OldHistory[j].changedPaths.count());                m_Data->progress->setLabel(label);                kapp->processEvents();            }            if (!m_Data->m_OldHistory[j].changedPaths[i].copyFromPath.isEmpty()) {                long r = m_Data->m_OldHistory[j].changedPaths[i].copyFromRevision;                QString sourcepath = m_Data->m_OldHistory[j].changedPaths[i].copyFromPath;                char a = m_Data->m_OldHistory[j].changedPaths[i].action;                if (m_Data->m_OldHistory[j].changedPaths[i].path.isEmpty()) {                    kdDebug()<<"Empty entry! rev " << j << " source " << sourcepath << endl;                    continue;                }                if (a=='R') {                    m_Data->m_OldHistory[j].changedPaths[i].action=0;                } else if (a=='A'){                    a=INTERNALCOPY;                    for (unsigned z = 0;z<m_Data->m_OldHistory[j].changedPaths.count();++z) {                        if (m_Data->m_OldHistory[j].changedPaths[z].action=='D'                            && isParent(m_Data->m_OldHistory[j].changedPaths[z].path,sourcepath) ) {                            a=INTERNALRENAME;                            m_Data->m_OldHistory[j].changedPaths[z].action=0;                            break;                        }                    }                    m_Data->m_History[r].addCopyTo(sourcepath,m_Data->m_OldHistory[j].changedPaths[i].path,j,a,r);                    m_Data->m_OldHistory[j].changedPaths[i].action=0;                } else {                    kdDebug()<<"Action with source path but wrong action \""<<a<<"\" found!"<<endl;                }            }        }    }    kdDebug()<<"Stage two done"<<endl;    if (cancel==true) {        return false;    }    m_Data->progress->setLabel(olabel);    for (long j=m_Data->max_rev;j>=m_Data->min_rev;--j) {        m_Data->progress->progressBar()->setProgress(m_Data->max_rev-j);        kapp->processEvents();        if (m_Data->progress->wasCancelled()) {            cancel=true;            break;        }        for (unsigned i = 0; i<m_Data->m_OldHistory[j].changedPaths.count();++i) {            if (m_Data->m_OldHistory[j].changedPaths[i].action==0) {                continue;            }            if (i>0 && i%100==0) {                if (m_Data->progress->wasCancelled()) {                    cancel=true;                    break;                }                label = i18n("%1<br>Check change entry %2 of %3").arg(olabel).arg(i).arg(m_Data->m_OldHistory[j].changedPaths.count());                m_Data->progress->setLabel(label);                kapp->processEvents();            }            m_Data->m_History[j].addCopyTo(m_Data->m_OldHistory[j].changedPaths[i].path,QString::null,-1,m_Data->m_OldHistory[j].changedPaths[i].action);        }        m_Data->m_History[j].author=m_Data->m_OldHistory[j].author;        m_Data->m_History[j].date=m_Data->m_OldHistory[j].date;        m_Data->m_History[j].revision=m_Data->m_OldHistory[j].revision;        m_Data->m_History[j].message=m_Data->m_OldHistory[j].message;    }    kdDebug()<<"Stage three done"<<endl;    return !cancel;}bool RevisionTree::isParent(const QString&_par,const QString&tar){    if (_par==tar) return true;    QString par = _par+(_par.endsWith("/")?"":"/");    return tar.startsWith(par);}bool RevisionTree::isValid()const{    return m_Valid;}static QString uniqueNodeName(long rev,const QString&path){    QString res = KCodecs::base64Encode(path.local8Bit(),false);    res.replace("\"","_quot_");    res.replace(" ","_space_");    QString n; n.sprintf("%05ld",rev);    res = "\""+n+QString("_%1\"").arg(res);    return res;}bool RevisionTree::bottomUpScan(long startrev,unsigned recurse,const QString&_path,long _last){#define REVENTRY m_Data->m_History[j]#define FORWARDENTRY m_Data->m_History[j].changedPaths[i]    QString path = _path;    long lastrev = _last;    /* this is required if an item will modified AND copied at same revision.*/    long trev = -1;#ifdef DEBUG_PARSE    kdDebug()<<"Searching for "<<path<< " at revision " << startrev        << " recursion " << recurse << endl;#endif    bool cancel = false;    for (long j=startrev;j<=m_Data->max_rev;++j) {        if (m_Data->m_stopTick.elapsed()>500) {            m_Data->progress->progressBar()->advance(1);            kapp->processEvents();            m_Data->m_stopTick.restart();        }        if (m_Data->progress->wasCancelled()) {            cancel=true;            break;        }        for (unsigned i=0;i<REVENTRY.changedPaths.count();++i) {            if (!isParent(FORWARDENTRY.path,path)) {                continue;            }            QString n1,n2;            if (isParent(FORWARDENTRY.path,path)) {                bool get_out = false;                if (FORWARDENTRY.path!=path) {#ifdef DEBUG_PARSE                    kdDebug()<<"Parent rename? "<< FORWARDENTRY.path << " -> " << FORWARDENTRY.copyToPath << " -> " << FORWARDENTRY.copyFromPath << endl;#endif                }                if (FORWARDENTRY.action==INTERNALCOPY ||                    FORWARDENTRY.action==INTERNALRENAME ) {                    bool ren = FORWARDENTRY.action==INTERNALRENAME;                    QString tmpPath = path;                    QString recPath;                    if (FORWARDENTRY.copyToPath.length()==0) {                        continue;                    }                    QString r = path.mid(FORWARDENTRY.path.length());                    recPath= FORWARDENTRY.copyToPath;                    recPath+=r;                    n1 = uniqueNodeName(lastrev,tmpPath);                    n2 = uniqueNodeName(FORWARDENTRY.copyToRevision,recPath);                    if (lastrev>0) {                        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n1].targets.append(RevGraphView::targetData(n2,FORWARDENTRY.action));                    }                    m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].name=recPath;                    m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].rev = FORWARDENTRY.copyToRevision;                    m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].Action=FORWARDENTRY.action;                    m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].Author=m_Data->m_History[FORWARDENTRY.copyToRevision].author;                    m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].Message=m_Data->m_History[FORWARDENTRY.copyToRevision].message;                    m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].Date=helpers::sub2qt::apr_time2qtString(m_Data->m_History[FORWARDENTRY.copyToRevision].date);                    if (ren) {                        lastrev = FORWARDENTRY.copyToRevision;                        /* skip items between */                        j=lastrev;#ifdef DEBUG_PARSE                        kdDebug()<<"Renamed to "<< recPath << " at revision " << FORWARDENTRY.copyToRevision << endl;#endif                        path=recPath;                    } else {#ifdef DEBUG_PARSE                        kdDebug()<<"Copy to "<< recPath << endl;#endif                        if (!bottomUpScan(FORWARDENTRY.copyToRevision,recurse+1,recPath,FORWARDENTRY.copyToRevision)) {                            return false;                        }                    }                } else if (FORWARDENTRY.path==path) {                    switch (FORWARDENTRY.action) {                    case 'A':#ifdef DEBUG_PARSE                        kdDebug()<<"Inserting adding base item"<<endl;#endif                        n1 = uniqueNodeName(j,FORWARDENTRY.path);                        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n1].Action=FORWARDENTRY.action;                        fillItem(j,i,n1,path);                        lastrev=j;                    break;                    case 'M':                    case 'R':#ifdef DEBUG_PARSE                        kdDebug()<<"Item modified at revision "<< j << " recurse " << recurse << endl;#endif                        n1 = uniqueNodeName(j,FORWARDENTRY.path);                        n2 = uniqueNodeName(lastrev,FORWARDENTRY.path);                        if (lastrev>0) m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].targets.append(RevGraphView::targetData(n1,FORWARDENTRY.action));                        fillItem(j,i,n1,path);                        /* modify of same item (in same recurse) should be only once at a revision                         * so check if lastrev==j must not be done but will cost cpu ticks so I always                         * set trev and lastrev.                         */                        trev = lastrev;                        lastrev = j;                    break;                    case 'D':#ifdef DEBUG_PARSE                        kdDebug()<<"(Sloppy match) Item deleted at revision "<< j << " recurse " << recurse << endl;#endif                        n1 = uniqueNodeName(j,path);                        n2 = uniqueNodeName(lastrev,path);                        if (n1==n2) {                            /* cvs import - copy and deletion at same revision.                             * CVS sucks.                             */                            n1 = uniqueNodeName(j,"D_"+path);                        }                        if (lastrev>0) m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].targets.append(RevGraphView::targetData(n1,FORWARDENTRY.action));                        fillItem(j,i,n1,path);                        lastrev = j;                        get_out= true;                    break;                    default:                    break;                    }                } else {                    switch (FORWARDENTRY.action) {                    case 'D':#ifdef DEBUG_PARSE                        kdDebug()<<"(Exact match) Item deleted at revision "<< j << " recurse " << recurse << endl;#endif                        n1 = uniqueNodeName(j,path);                        n2 = uniqueNodeName(lastrev,path);                        if (n1==n2) {                            /* cvs import - copy and deletion at same revision.                             * CVS sucks.                             */                            n1 = uniqueNodeName(j,"D_"+path);                        }                        if (lastrev>0) m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[n2].targets.append(RevGraphView::targetData(n1,FORWARDENTRY.action));                        fillItem(j,i,n1,path);                        lastrev = j;                        get_out = true;                    break;                    default:                    break;                    }                }                if (get_out) {                    return true;                }            }        }    }    return !cancel;}QWidget*RevisionTree::getView(){    return m_Data->m_TreeDisplay;}void RevisionTree::fillItem(long rev,int pathIndex,const QString&nodeName,const QString&path){    m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].name=path;    m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].rev = rev;    if (pathIndex>=0) {        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].Action=m_Data->m_History[rev].changedPaths[pathIndex].action;        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].Author=m_Data->m_History[rev].author;        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].Message=m_Data->m_History[rev].message;        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].Date=helpers::sub2qt::apr_time2qtString(m_Data->m_History[rev].date);    } else {        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].Action=0;        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].Author="";        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].Message="";        m_Data->m_TreeDisplay->m_RevGraphView->m_Tree[nodeName].Date=helpers::sub2qt::apr_time2qtString(0);    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品黄色在线观看| 精品久久99ma| 夜夜精品浪潮av一区二区三区| 成人av午夜电影| √…a在线天堂一区| 91蜜桃视频在线| 亚洲成人av中文| 欧美酷刑日本凌虐凌虐| 日韩av在线播放中文字幕| 日韩欧美在线综合网| 国产乱子伦视频一区二区三区| 久久九九全国免费| 91一区一区三区| 丝袜国产日韩另类美女| 久久综合久久99| 成年人国产精品| 亚洲国产精品久久久久秋霞影院| 91精品中文字幕一区二区三区| 久久精品久久综合| 国产精品美女久久久久久久网站| 91福利在线看| 国产一区二区不卡在线| 亚洲女同女同女同女同女同69| 欧美色电影在线| 韩国精品在线观看| 亚洲欧美日韩久久| 精品入口麻豆88视频| 色综合中文字幕国产 | 蜜臀a∨国产成人精品| 日本一区二区三区视频视频| 色久优优欧美色久优优| 免费成人在线观看| 日韩久久一区二区| 日韩欧美国产综合一区| 99精品久久久久久| 精品一二三四区| 亚洲精品国产第一综合99久久 | 国产清纯美女被跳蛋高潮一区二区久久w | 日韩av电影免费观看高清完整版 | 日韩免费成人网| 96av麻豆蜜桃一区二区| 麻豆一区二区三| 亚洲精品亚洲人成人网在线播放| 日韩一区二区在线免费观看| 91片在线免费观看| 激情图片小说一区| 五月激情综合网| 国产精品乱人伦中文| 日韩视频一区二区| 色老汉av一区二区三区| 国产成人免费视| 日韩成人午夜精品| 一区二区三区**美女毛片| 国产天堂亚洲国产碰碰| 日韩视频免费观看高清在线视频| 欧美丝袜第三区| 99视频精品全部免费在线| 国产在线国偷精品免费看| 日韩av电影天堂| 亚洲成人免费av| 亚洲综合图片区| 洋洋成人永久网站入口| 自拍偷拍欧美激情| 国产精品午夜在线观看| 国产免费观看久久| 久久精品无码一区二区三区| 日韩欧美在线1卡| 欧美人妇做爰xxxⅹ性高电影| 91久久精品日日躁夜夜躁欧美| 99久久婷婷国产综合精品电影| 国产福利一区二区三区视频| 精品一区二区影视| 国内精品视频一区二区三区八戒 | 亚洲第一狼人社区| 一个色在线综合| 亚洲午夜免费视频| 午夜激情久久久| 视频一区在线播放| 日本欧美大码aⅴ在线播放| 亚洲成人1区2区| 三级在线观看一区二区 | 亚洲男同1069视频| 一区二区三区四区激情| 亚洲一二三四久久| 亚洲第一激情av| 秋霞午夜av一区二区三区| 男女男精品网站| 狠狠色狠狠色综合日日91app| 精品亚洲aⅴ乱码一区二区三区| 九九在线精品视频| 国产精品影音先锋| jiyouzz国产精品久久| 色就色 综合激情| 欧美一区二区三区四区久久| 精品蜜桃在线看| 国产精品福利一区| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲国产日日夜夜| 另类小说综合欧美亚洲| 国产电影一区二区三区| 波多野结衣中文一区| 色狠狠色狠狠综合| 日韩一区二区电影网| 国产欧美日韩综合| 一区二区三区四区亚洲| 久久精品国产成人一区二区三区| 国产精品一区二区久久不卡| 91玉足脚交白嫩脚丫在线播放| 欧美精品乱码久久久久久| 久久久夜色精品亚洲| 亚洲日本免费电影| 日韩精品亚洲专区| 岛国av在线一区| 555夜色666亚洲国产免| 国产午夜精品一区二区三区视频| 亚洲品质自拍视频网站| 理论片日本一区| 色综合咪咪久久| wwww国产精品欧美| 亚洲最大成人网4388xx| 精品一区二区综合| 欧美性猛交xxxx黑人交| 久久久久久久免费视频了| 一区二区三区在线视频免费观看| 美国十次综合导航| 一本色道久久加勒比精品| 欧美大片免费久久精品三p| 亚洲欧美一区二区在线观看| 蜜臀av一区二区在线观看| 91香蕉视频在线| 久久只精品国产| 香蕉加勒比综合久久| 波多野结衣一区二区三区 | 成人在线综合网站| 欧美剧情电影在线观看完整版免费励志电影 | 欧美电影一区二区三区| 国产精品传媒在线| 国产专区综合网| 欧美一三区三区四区免费在线看| √…a在线天堂一区| 国产成人欧美日韩在线电影| 欧美一级在线免费| 亚洲综合丝袜美腿| 91小视频免费看| 国产精品理论片| 国产福利一区二区三区视频| 欧美一区二区免费视频| 亚洲h动漫在线| 日本乱人伦一区| 一区免费观看视频| 丁香桃色午夜亚洲一区二区三区| 日韩一级黄色片| 日本aⅴ精品一区二区三区 | 一区二区三区四区乱视频| 国产999精品久久| 2020国产精品久久精品美国| 日韩福利视频导航| 欧美一区二区三区在线看| 亚洲va在线va天堂| 欧美日韩高清一区二区| 亚洲v日本v欧美v久久精品| 欧美在线播放高清精品| 亚洲色图色小说| 91免费观看在线| 成人免费一区二区三区视频| www.亚洲人| 亚洲色图一区二区| 91蜜桃传媒精品久久久一区二区| 专区另类欧美日韩| 色婷婷av一区二区三区大白胸| 17c精品麻豆一区二区免费| 99视频一区二区| 一区二区三区欧美视频| 色综合av在线| 亚洲国产精品一区二区www在线 | eeuss鲁片一区二区三区| 国产精品乱码一区二区三区软件 | 国产一区二区三区久久久| 欧美精品一区二区三区在线播放| 国产精品1区2区| 中文在线免费一区三区高中清不卡| 国产成人av影院| 亚洲欧美在线观看| 欧美亚洲国产一区二区三区va| 亚洲动漫第一页| 欧美一级搡bbbb搡bbbb| 狠狠色狠狠色综合系列| 国产精品理论在线观看| 欧美性做爰猛烈叫床潮| 麻豆精品国产传媒mv男同 | 一本大道av一区二区在线播放 | 中文字幕一区二区三区视频| 色婷婷久久久亚洲一区二区三区| 亚洲成人在线网站| 欧美tickle裸体挠脚心vk| 丰满少妇久久久久久久| 夜夜夜精品看看| 久久一区二区三区四区| 91理论电影在线观看| 日韩中文字幕一区二区三区|