diff options
author | elfmz <fenix1905@tut.by> | 2022-07-10 20:49:56 +0300 |
---|---|---|
committer | elfmz <fenix1905@tut.by> | 2022-07-10 20:49:56 +0300 |
commit | b52873498f7865c65044d06d0b498ce5f997cbb2 (patch) | |
tree | affed494c9a494f62b3cfe782442bb332b258c2e | |
parent | cafc2f8eed536c1914405e1211a9bd454fcec372 (diff) |
fix multiple files attributes handling
-rw-r--r-- | far2l/src/setattr.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/far2l/src/setattr.cpp b/far2l/src/setattr.cpp index 7574e6b6..da80ef15 100644 --- a/far2l/src/setattr.cpp +++ b/far2l/src/setattr.cpp @@ -638,10 +638,19 @@ static bool ApplyFileOwnerGroupIfChanged(DialogItemEx &EditItem, int (*ESetFN)(L static void ApplyFSFileFlags(DialogItemEx *AttrDlg, const FARString &strSelName) { FSFileFlags FFFlags(strSelName.GetMB()); - FFFlags.SetImmutable(AttrDlg[SA_CHECKBOX_IMMUTABLE].Selected != 0); - FFFlags.SetAppend(AttrDlg[SA_CHECKBOX_APPEND].Selected != 0); + if (AttrDlg[SA_CHECKBOX_IMMUTABLE].Selected == BSTATE_CHECKED + || AttrDlg[SA_CHECKBOX_IMMUTABLE].Selected == BSTATE_UNCHECKED) { + FFFlags.SetImmutable(AttrDlg[SA_CHECKBOX_IMMUTABLE].Selected != BSTATE_UNCHECKED); + } + if (AttrDlg[SA_CHECKBOX_APPEND].Selected == BSTATE_CHECKED + || AttrDlg[SA_CHECKBOX_APPEND].Selected == BSTATE_UNCHECKED) { + FFFlags.SetAppend(AttrDlg[SA_CHECKBOX_APPEND].Selected != BSTATE_UNCHECKED); + } #if defined(__APPLE__) || defined(__FreeBSD__) - FFFlags.SetHidden(AttrDlg[SA_CHECKBOX_HIDDEN].Selected != 0); + if (AttrDlg[SA_CHECKBOX_HIDDEN].Selected == BSTATE_CHECKED + || AttrDlg[SA_CHECKBOX_HIDDEN].Selected == BSTATE_UNCHECKED) { + FFFlags.SetHidden(AttrDlg[SA_CHECKBOX_HIDDEN].Selected != BSTATE_UNCHECKED); + } #endif FFFlags.Apply(strSelName.GetMB()); } |