QFileSystemModel (c++) でファイルのアクセス許可を更新する方法はありますか? ユーザーが qtreeview を使用してモデルにリストされているファイルの名前を変更できるようにする前に、ファイルがソース管理からチェックアウトされていることを確認します。この時点で、ファイルは読み取り専用ではなくなりましたが、モデルはまだ読み取り専用であると認識しています。ツリーの展開/折りたたみ状態を失うことなく、モデルにファイルのアクセス許可を強制的に更新させるにはどうすればよいですか?
ありがとう!
更新: ファイルは、チェックアウト後に既に書き込み可能としてフラグが設定されています。ただし、モデルは変更を認識していません。
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 フラグが設定されていません。