From: Leon W. <moo...@us...> - 2005-11-01 19:30:53
|
Update of /cvsroot/anyedit/AnyEditv2 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7880 Modified Files: AnyEditDoc.cpp AnyEditDoc.h Log Message: Fixed read-only switching and updating of UI for read-only. Index: AnyEditDoc.h =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/AnyEditDoc.h,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** AnyEditDoc.h 16 Oct 2005 11:58:41 -0000 1.29 --- AnyEditDoc.h 1 Nov 2005 19:30:41 -0000 1.30 *************** *** 110,114 **** void SetLastChangePosition(long nPos, long nOffset); long GetLastChangePosition(long nPos); - bool IsFileReadOnly(void); void ReloadFile(void); CAnyEditView* GetFirstEditView() const; --- 110,113 ---- *************** *** 125,129 **** long m_arLastPositions[3]; // the three last textpositions bool m_bLockCheckLastAccessTime; - bool m_bFileReadOnly; virtual BOOL DoSave(LPCTSTR lpszPathName, BOOL bReplace = TRUE); --- 124,127 ---- Index: AnyEditDoc.cpp =================================================================== RCS file: /cvsroot/anyedit/AnyEditv2/AnyEditDoc.cpp,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** AnyEditDoc.cpp 18 Oct 2005 17:42:27 -0000 1.55 --- AnyEditDoc.cpp 1 Nov 2005 19:30:41 -0000 1.56 *************** *** 93,97 **** m_pProjectFile = NULL; m_bOwnProjectFile = FALSE; - m_bFileReadOnly = false; m_bLockCheckLastAccessTime = false; m_bSelectCopy = false; --- 93,96 ---- *************** *** 295,300 **** SetPathName(lpszPathName); DWORD dwFileAttributes = ::GetFileAttributes(lpszPathName); ! m_bFileReadOnly = (dwFileAttributes & FILE_ATTRIBUTE_READONLY) != 0; ! pFirstView->GetScintillaControl()->SetReadOnly(m_bFileReadOnly); SetLastAccessTime(); --- 294,298 ---- SetPathName(lpszPathName); DWORD dwFileAttributes = ::GetFileAttributes(lpszPathName); ! pFirstView->GetScintillaControl()->SetReadOnly((dwFileAttributes & FILE_ATTRIBUTE_READONLY) != 0); SetLastAccessTime(); *************** *** 341,346 **** SetPathName(lpszPathName); DWORD dwFileAttributes = ::GetFileAttributes(lpszPathName); ! m_bFileReadOnly = (dwFileAttributes & FILE_ATTRIBUTE_READONLY) != 0; ! pView->GetScintillaControl()->SetReadOnly(m_bFileReadOnly); UpdateProjectFile(); SetLastAccessTime(); --- 339,343 ---- SetPathName(lpszPathName); DWORD dwFileAttributes = ::GetFileAttributes(lpszPathName); ! pView->GetScintillaControl()->SetReadOnly((dwFileAttributes & FILE_ATTRIBUTE_READONLY) != 0); UpdateProjectFile(); SetLastAccessTime(); *************** *** 423,427 **** { // The file has not changed, check read only flag ! if ((status.m_attribute & CFile::Attribute::readOnly) != m_bFileReadOnly) { if (status.m_attribute & CFile::Attribute::readOnly) --- 420,424 ---- { // The file has not changed, check read only flag ! if ((status.m_attribute & CFile::Attribute::readOnly) != pFirstView->GetScintillaControl()->GetReadOnly()) { if (status.m_attribute & CFile::Attribute::readOnly) *************** *** 435,446 **** else m_tLastAccessTime = 0; // Don't check anymore... - - m_bFileReadOnly = true; } - else - m_bFileReadOnly = true; } else ! m_bFileReadOnly = false; } m_bLockCheckLastAccessTime = false; --- 432,439 ---- else m_tLastAccessTime = 0; // Don't check anymore... } } else ! pFirstView->GetScintillaControl()->SetReadOnly(false); } m_bLockCheckLastAccessTime = false; *************** *** 952,961 **** } - /// Gives true if file is read only or drive is read only like a CD-ROM. - bool CAnyEditDoc::IsFileReadOnly() - { - return m_bFileReadOnly; - } - /// Save current document to another file and remove old file. void CAnyEditDoc::OnFileMove() --- 945,948 ---- *************** *** 1016,1037 **** { DWORD dwFileAttributes = ::GetFileAttributes(GetPathName()); ! if (((dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? true : false) != pView->GetScintillaControl()->GetReadOnly()) { ! if (AfxMessageBox(StrPrintf("Do you want to set the file '%s' to read only too?", GetPathName()), MB_ICONQUESTION | MB_YESNO) == IDYES) ! { ! DWORD dwFileAttributes = ::GetFileAttributes(GetPathName()); ! if (dwFileAttributes & FILE_ATTRIBUTE_READONLY) ! { ! dwFileAttributes &= ~ FILE_ATTRIBUTE_READONLY; ! m_bFileReadOnly = false; ! } ! else ! { ! dwFileAttributes |= FILE_ATTRIBUTE_READONLY; ! m_bFileReadOnly = true; ! } ! ::SetFileAttributes(GetPathName(), dwFileAttributes); ! } } } } --- 1003,1015 ---- { DWORD dwFileAttributes = ::GetFileAttributes(GetPathName()); ! if( pView->GetScintillaControl()->GetReadOnly() ) { ! dwFileAttributes |= FILE_ATTRIBUTE_READONLY; ! } ! else ! { ! dwFileAttributes &= ~ FILE_ATTRIBUTE_READONLY; } + ::SetFileAttributes(GetPathName(), dwFileAttributes); } } *************** *** 1042,1050 **** void CAnyEditDoc::OnUpdateFileReadonly(CCmdUI* pCmdUI) { - if (IsFileReadOnly()) - pCmdUI->Enable(FALSE); - else - pCmdUI->Enable(TRUE); - CAnyEditView* pView = GetFirstEditView(); if (pView == NULL) --- 1020,1023 ---- *************** *** 1052,1058 **** --- 1025,1035 ---- if (pView->GetScintillaControl()->GetReadOnly()) + { pCmdUI->SetCheck(1); + } else + { pCmdUI->SetCheck(0); + } } |