QFileSystemModel (C++)에서 파일 사용 권한을 업데이트하는 방법이 있습니까? 사용자가 qtreeview를 사용하여 모델에 나열된 파일의 이름을 바꿀 수있게하기 전에 파일이 소스 제어에서 체크 아웃되었는지 확인합니다. 이 시점에서 파일은 더 이상 읽기 전용이 아니지만 모델은 여전히 읽기 전용이라고 생각합니다. 트리의 확장/축소 상태를 잃지 않고 파일의 사용 권한을 업데이트하도록 모델을 강제 설정하려면 어떻게해야합니까?QFileSystemModel에서 파일 사용 권한을 업데이트하는 방법
감사합니다.
업데이트 : 파일을 체크 아웃 한 후에 파일에 이미 쓰기 가능으로 플래그가 지정되어 있습니다. 그러나 모델은 변경 사항을 알지 못합니다.
QFile file(path.c_str());
QFileDevice::Permissions perms = file.permissions();
if (perms & QFile::WriteUser)
{
// Is already true
}
그냥 내가 나서서 권한이 모델의 해당 파일에 대해보고 변경 행운과
file.setPermissions(file.permissions() | QFile::WriteUser);
을 사용해야합니다.
업데이트 :
int perms = fsModel->data(index, QFileSystemModel::Roles::FilePermissions).value<int>();
if (perms & QFile::WriteUser)
{
int i = 0;
}
참고 : 모델이 생성되기 전에 파일이 쓰기 가능했다 않는 Qfile을 :: WriteUser 플래그가 설정되지 위의 권한 않았다.
그럴 경우 "QFileSystemModel refresh"라고 말하면서 ... –
가능한 복제본 [다른 프로세스를 통해 파일이 변경된 후 QTreeView에서 QFileSystemModel을 새로 고치는 방법은 무엇입니까?] (http://stackoverflow.com/questions/) 22083933/how-to-refresh-a-qfilesystem-in-a-qtreeview-after-files-through-anot) –
루트 경로를 재설정하는 것은 그의 경우 다소 효과가 있었지만 광산에서는 작동하지 않았습니다. –