Core: Make FilePropertiesDialog more usable for remote files

Task-number: QTCREATORBUG-26870
Change-Id: I65cc3aec1cbfd49e450fc000e78e1e997c81e451
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
hjk
2025-04-22 09:50:27 +02:00
parent ef3cd302bd
commit 37ad3cddb3

View File

@@ -105,16 +105,15 @@ FilePropertiesDialog::~FilePropertiesDialog() = default;
void FilePropertiesDialog::detectTextFileSettings() void FilePropertiesDialog::detectTextFileSettings()
{ {
QFile file(m_filePath.toUrlishString()); const Result<QByteArray> res = m_filePath.fileContents(/*maxsize*/ 50000);
if (!file.open(QIODevice::ReadOnly)) { if (!res) {
m_lineEndings->setText(Tr::tr("Unknown")); m_lineEndings->setText(Tr::tr("Unknown"));
m_indentation->setText(Tr::tr("Unknown")); m_indentation->setText(Tr::tr("Unknown"));
return; return;
} }
const QByteArray data = *res;
char lineSeparator = '\n'; char lineSeparator = '\n';
const QByteArray data = file.read(50000);
file.close();
// Try to guess the files line endings // Try to guess the files line endings
if (data.contains("\r\n")) { if (data.contains("\r\n")) {
@@ -185,10 +184,10 @@ void FilePropertiesDialog::refresh()
const QFileInfo fileInfo = m_filePath.toFileInfo(); const QFileInfo fileInfo = m_filePath.toFileInfo();
QLocale locale; QLocale locale;
m_name->setText(fileInfo.fileName()); m_name->setText(m_filePath.fileName());
m_path->setText(QDir::toNativeSeparators(fileInfo.canonicalPath())); m_path->setText(m_filePath.parentDir().toUserOutput());
const Utils::MimeType mimeType = Utils::mimeTypeForFile(m_filePath); const MimeType mimeType = Utils::mimeTypeForFile(m_filePath);
m_mimeType->setText(mimeType.name()); m_mimeType->setText(mimeType.name());
const EditorFactories factories = IEditorFactory::preferredEditorTypes(m_filePath); const EditorFactories factories = IEditorFactory::preferredEditorTypes(m_filePath);