UnicodeString TCopyParamType::GetLogStr() const { wchar_t CaseC[] = L"NULFS"; wchar_t ModeC[] = L"BAM"; wchar_t ResumeC[] = L"YSN"; // OpenArray (ARRAYOFCONST) supports only up to 19 arguments, so we had to split it return FORMAT( L" PrTime: %s%s; PrRO: %s; Rght: %s; PrR: %s (%s); FnCs: %c; RIC: %c; " L"Resume: %c (%d); CalcS: %s; Mask: %s\n", BooleanToEngStr(GetPreserveTime()).c_str(), UnicodeString(GetPreserveTime() && GetPreserveTimeDirs() ? L"+Dirs" : L"").c_str(), BooleanToEngStr(GetPreserveReadOnly()).c_str(), GetRights().GetText().c_str(), BooleanToEngStr(GetPreserveRights()).c_str(), BooleanToEngStr(GetIgnorePermErrors()).c_str(), CaseC[GetFileNameCase()], CharToHex(GetInvalidCharsReplacement()).c_str(), ResumeC[GetResumeSupport()], (int)GetResumeThreshold(), BooleanToEngStr(GetCalculateSize()).c_str(), GetFileMask().c_str()) + FORMAT( L" TM: %c; ClAr: %s; RemEOF: %s; RemBOM: %s; CPS: %u; NewerOnly: %s; InclM: %s; ResumeL: %d\n" L" AscM: %s\n", ModeC[GetTransferMode()], BooleanToEngStr(GetClearArchive()).c_str(), BooleanToEngStr(GetRemoveCtrlZ()).c_str(), BooleanToEngStr(GetRemoveBOM()).c_str(), int(GetCPSLimit()), BooleanToEngStr(GetNewerOnly()).c_str(), GetIncludeFileMask().GetMasks().c_str(), ((FTransferSkipList.get() != nullptr) ? FTransferSkipList->GetCount() : 0) + (!FTransferResumeFile.IsEmpty() ? 1 : 0), GetAsciiFileMask().GetMasks().c_str()); }
C4FileSelDlg::ListItem *C4FileSelDlg::CreateListItem(const char *szFilename) { // Default list item if (szFilename) return new DefaultListItem(szFilename, !!GetFileMask(), IsMultiSelection(), IsItemGrayed(szFilename), GetFileItemIcon()); else return new DefaultListItem(NULL, false, IsMultiSelection(), false, GetFileItemIcon()); }
//--------------------------------------------------------------------------- void __fastcall TCopyDialog::SetDirectory(UnicodeString value) { if (!value.IsEmpty()) { value = RemotePaths() ? UnicodeString(UnixIncludeTrailingBackslash(value)) : IncludeTrailingBackslash(value); } DirectoryEdit->Text = value + GetFileMask(); }
//--------------------------------------------------------------------------- TGUICopyParamType __fastcall TCopyDialog::GetParams() { // overwrites TCopyParamType fields only FParams = FCopyParams; FParams.FileMask = GetFileMask(); FParams.Queue = QueueCheck2->Checked; FParams.QueueIndividually = QueueIndividuallyCheck->Checked; return FParams; }
UnicodeString TCopyParamType::ChangeFileName(const UnicodeString & AFileName, TOperationSide Side, bool FirstLevel) const { UnicodeString FileName = AFileName; if (FirstLevel) { FileName = MaskFileName(FileName, GetFileMask()); } switch (GetFileNameCase()) { case ncUpperCase: FileName = FileName.UpperCase(); break; case ncLowerCase: FileName = FileName.LowerCase(); break; case ncFirstUpperCase: FileName = FileName.SubString(1, 1).UpperCase() + FileName.SubString(2, FileName.Length() - 1).LowerCase(); break; case ncLowerCaseShort: if ((FileName.Length() <= 12) && (FileName.Pos(L".") <= 9) && (FileName == FileName.UpperCase())) { FileName = FileName.LowerCase(); } break; case ncNoChange: default: /*nothing*/ break; } if (Side == osRemote) { FileName = ValidLocalFileName(FileName); } else { FileName = RestoreChars(FileName); } return FileName; }
void C4FileSelDlg::UpdateFileList() { BeginFileListUpdate(); // reload files C4GUI::Element *pEl; while (pEl = pFileListBox->GetFirst()) delete pEl; // file items StdStrBuf sSearch; const char *szFileMask = GetFileMask(); for (DirectoryIterator iter(sPath.getData()); *iter; ++iter) if (!szFileMask || WildcardListMatch(szFileMask, *iter)) pFileListBox->AddElement(CreateListItem(*iter)); // none-item? if (HasNoneItem()) { pFileListBox->AddElement(CreateListItem(NULL)); } // list now done EndFileListUpdate(); // path into title const char *szPath = sPath.getData(); SetTitle(*szPath ? FormatString("%s [%s]", sTitle.getData(), szPath).getData() : sTitle.getData()); // initial no-selection UpdateSelection(); }