Changeset 655 in dev for trunk/ab5.0/abdev/abdev/ProjectControl.cpp
- Timestamp:
- Jun 18, 2008, 11:03:59 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/ProjectControl.cpp
r653 r655 135 135 // 対象ファイルを開く 136 136 lstrcpy(temporary, 137 projectInfo. pobj_DBFileInfo->ppobj_FileInfo[pobj_ClassTreeView->pProcInfo[i].FileNum]->GetPath().c_str());137 projectInfo.fileSystem.root.FindFile( pobj_ClassTreeView->pProcInfo[i].hFileTreeItem ).GetRelationalPath().c_str()); 138 138 lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() ); 139 139 hChild=OpenFileWithExtension(temporary); … … 652 652 653 653 //重複チェック 654 if(projectInfo.pobj_DBFileInfo->dupli_check(path)){ 654 if( projectInfo.fileSystem.root.IsExistFile( path ) ) 655 { 655 656 //"\"%s\" ファイルは既にプロジェクト内に存在します。" 656 657 sprintf(temporary,STRING_DUPLICATIONERROR_FILE_IN_PROJECT,path); … … 669 670 670 671 //projectInfo.ppobj_DBFileInfoオブジェクトに追加 671 projectInfo. pobj_DBFileInfo->add(path,hTreeItem);672 projectInfo.fileSystem.root.files.push_back( ActiveBasic::PM::FM::File( path, hTreeItem ) ); 672 673 673 674 … … 675 676 676 677 //ファイル操作によるクラスビューの再表示 677 ResetClassTree( -1);678 ResetClassTree((HTREEITEM)-1); 678 679 } 679 680 void Project_File_Delete(HTREEITEM hTreeItem){ 680 681 extern HANDLE hHeap; 681 682 682 if(projectInfo.pobj_DBFileInfo->IsMainFile(hTreeItem)){683 /*if(projectInfo.pobj_DBFileInfo->IsMainFile(hTreeItem)){ 683 684 //"このファイルはプロジェクトのメイン ファイルです。プロジェクト内から削除することはできません。" 684 685 MessageBox(hOwner,STRING_ERROR_CANT_MAINFILE,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION); 685 686 return; 686 } 687 }*/ 687 688 688 689 //ツリービューから削除 689 690 pobj_FileTree->DeleteItem( hTreeItem ); 690 691 691 // projectInfo.pobj_DBFileInfoオブジェクトから削除692 projectInfo. pobj_DBFileInfo->del(hTreeItem);692 // オブジェクトから削除 693 projectInfo.fileSystem.root.Remove( hTreeItem ); 693 694 694 695 projectInfo.modify=1; 695 696 696 697 //ファイル操作によるクラスビューの再表示 697 ResetClassTree( -1);698 ResetClassTree((HTREEITEM)-1); 698 699 } 699 700 … … 1127 1128 1128 1129 //ファイル ツリー 1129 pobj_FileTree->Reset( projectInfo. pobj_DBFileInfo);1130 pobj_FileTree->Reset( projectInfo.fileSystem ); 1130 1131 1131 1132 //関数ツリー 1132 ResetClassTree( -1);1133 ResetClassTree((HTREEITEM)-1); 1133 1134 1134 1135 ///////////////////// … … 1599 1600 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){ 1600 1601 if( MdiInfo[WndNum]->pMdiTextEdit->IsModified() ){ 1601 for(i=0;i<projectInfo.pobj_DBFileInfo->iNum;i++){ 1602 projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary); 1603 if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0) sw=1; 1604 } 1602 sw = projectInfo.fileSystem.root.IsExistFile( MdiInfo[WndNum]->path ); 1605 1603 } 1606 1604 } … … 1638 1636 return 2; 1639 1637 } 1638 1639 void MakeTextMdiWindowBuffer( ActiveBasic::PM::FM::Folder &folder, int WndNum, char *buffer ) 1640 { 1641 BOOST_FOREACH( ActiveBasic::PM::FM::Folder &childFolder, folder.folders ) 1642 { 1643 MakeTextMdiWindowBuffer( childFolder, WndNum, buffer ); 1644 } 1645 1646 BOOST_FOREACH( ActiveBasic::PM::FM::File &file, folder.files ) 1647 { 1648 if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),file.GetFullPath().c_str())==0){ 1649 CHARRANGE CharRange; 1650 TextEdit_GetSel(WndNum,&CharRange); 1651 1652 SCROLLINFO si; 1653 POINT pos; 1654 si.cbSize=sizeof(SCROLLINFO); 1655 si.fMask=SIF_POS; 1656 GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_HORZ,&si); 1657 pos.x=si.nPos; 1658 GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_VERT,&si); 1659 pos.y=si.nPos; 1660 1661 char temporary[1024]; 1662 sprintf(temporary,"text,\"%s\",%d,%d,%d,%d\r\n", 1663 file.GetRelationalPath().c_str(), 1664 pos.x, 1665 pos.y, 1666 CharRange.cpMin, 1667 CharRange.cpMax); 1668 1669 lstrcat( buffer, temporary ); 1670 break; 1671 } 1672 } 1673 } 1674 1640 1675 void MakeWorkFile(void){ 1641 1676 int i,i2,WndNum; 1642 1677 char temporary[MAX_PATH],buffer[32767]; 1643 1678 HWND hChild; 1644 CHARRANGE CharRange;1645 1679 1646 1680 //ワークファイル(*.wrk)を作成 … … 1655 1689 WndNum=GetWndNum(hChild); 1656 1690 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum]->DocType)){ 1657 for(i=0;i<projectInfo.pobj_DBFileInfo->iNum;i++){ 1658 projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary); 1659 if(lstrcmpi(MdiInfo[WndNum]->path.c_str(),temporary)==0){ 1660 TextEdit_GetSel(WndNum,&CharRange); 1661 1662 SCROLLINFO si; 1663 POINT pos; 1664 si.cbSize=sizeof(SCROLLINFO); 1665 si.fMask=SIF_POS; 1666 GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_HORZ,&si); 1667 pos.x=si.nPos; 1668 GetScrollInfo(MdiInfo[WndNum]->pMdiTextEdit->hEdit,SB_VERT,&si); 1669 pos.y=si.nPos; 1670 1671 sprintf(buffer+i2,"text,\"%s\",%d,%d,%d,%d\r\n", 1672 projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetPath().c_str(), 1673 pos.x, 1674 pos.y, 1675 CharRange.cpMin, 1676 CharRange.cpMax); 1677 i2+=lstrlen(buffer+i2); 1678 break; 1679 } 1680 } 1691 MakeTextMdiWindowBuffer( projectInfo.fileSystem.root, WndNum, buffer ); 1692 i2 = lstrlen( buffer ); 1681 1693 } 1682 1694 else if(MdiInfo[WndNum]->DocType==WNDTYPE_RAD){ … … 1763 1775 WIN32_FIND_DATA wfd; 1764 1776 1765 if(projectInfo.pobj_DBFileInfo->iNum==0){ 1777 if( projectInfo.fileSystem.root.IsEmpty() ) 1778 { 1766 1779 //"プログラム ファイルがプロジェクトに存在しません。" 1767 1780 MessageBox(hOwner,STRING_ERROR_NOFILE,STRING_ERROR,MB_OK|MB_ICONEXCLAMATION); … … 1787 1800 return 1; 1788 1801 } 1802 bool IsNeedCompileForProject( const ActiveBasic::PM::FM::Folder &folder, const FILETIME &exeTime ) 1803 { 1804 BOOST_FOREACH( const ActiveBasic::PM::FM::Folder &childFolder, folder.folders ) 1805 { 1806 if( IsNeedCompileForProject( childFolder, exeTime ) ) 1807 { 1808 return true; 1809 } 1810 } 1811 1812 BOOST_FOREACH( const ActiveBasic::PM::FM::File &file, folder.files ) 1813 { 1814 HANDLE hFile=CreateFile(file.GetFullPath().c_str(),GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); 1815 FILETIME sourceTime; 1816 GetFileTime(hFile,NULL,NULL,&sourceTime); 1817 CloseHandle(hFile); 1818 1819 if(sourceTime.dwHighDateTime>exeTime.dwHighDateTime|| 1820 sourceTime.dwHighDateTime==exeTime.dwHighDateTime&& 1821 sourceTime.dwLowDateTime>exeTime.dwLowDateTime) return true; 1822 } 1823 1824 return false; 1825 } 1826 1789 1827 BOOL IsNeedCompileForProject(BOOL bDebug){ 1790 int i2;1791 1828 char temporary[MAX_PATH]; 1792 1829 HANDLE hFind,hFile; … … 1806 1843 CloseHandle(hFile); 1807 1844 1808 for(i2=0;i2<projectInfo.pobj_DBFileInfo->iNum;i2++){ 1809 projectInfo.pobj_DBFileInfo->ppobj_FileInfo[i2]->GetFullPath(temporary); 1810 hFile=CreateFile(temporary,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); 1811 GetFileTime(hFile,NULL,NULL,&SourceTime); 1812 CloseHandle(hFile); 1813 1814 if(SourceTime.dwHighDateTime>ExeTime.dwHighDateTime|| 1815 SourceTime.dwHighDateTime==ExeTime.dwHighDateTime&& 1816 SourceTime.dwLowDateTime>ExeTime.dwLowDateTime) return 1; 1845 if( IsNeedCompileForProject( projectInfo.fileSystem.root, ExeTime ) ) 1846 { 1847 return 1; 1817 1848 } 1818 1849 if( !projectInfo.windowInfos.empty() )
Note:
See TracChangeset
for help on using the changeset viewer.