MCPcopy Create free account
hub / github.com/cxasm/notepad-- / loadFileForSearch

Method loadFileForSearch

src/cceditor/filemanager.cpp:640–694  ·  view source on GitHub ↗

加载文件,只为查找使用

Source from the content-addressed store, hash-verified

638
639//加载文件,只为查找使用
640int FileManager::loadFileForSearch(ScintillaEditView* editView, QString filePath)
641{
642 QFile file(filePath);
643
644 QFlags<QFileDevice::Permission> power = QFile::permissions(filePath);
645
646 QIODevice::OpenMode mode;
647
648 if (!power.testFlag(QFile::WriteUser))
649 {
650 //文件不能写
651 mode = QIODevice::ExistingOnly | QIODevice::ReadOnly;
652 }
653 else
654 {
655 mode = QIODevice::ExistingOnly | QIODevice::ReadWrite;
656 }
657
658 if (!file.open(mode))
659 {
660 //qDebug() << file.error();
661 return 2;
662 }
663
664 qint64 fileSize = file.size();
665
666 qint64 bufferSizeRequested = fileSize + qMin((qint64)(1 << 20), (qint64)(fileSize / 6));
667
668 if (bufferSizeRequested > INT_MAX)
669 {
670 file.close();
671 return 3;
672 }
673
674 bool existGrbledCode = false;
675 QString outText;
676 CODE_ID fileTextCode = CODE_ID::UNKOWN;
677
678 fileTextCode = CmpareMode::scanFileOutPut(file, fileTextCode, filePath, outText, existGrbledCode);
679
680 //20230218 这里必须指明一下编码,否则后续会导致编码被修改
681 editView->setProperty(Edit_Text_Code, fileTextCode);
682
683 if (existGrbledCode)
684 {
685 //qDebug() << filePath;
686 file.close();
687 return 4;
688 }
689 file.close();
690
691 editView->setText(outText);
692
693 return 0;
694}
695
696const int ONE_PAGE_BYTES = 4096;
697

Callers 2

findTextInFileMethod · 0.80
replaceTextInFileMethod · 0.80

Calls 3

closeMethod · 0.80
setTextMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected