Browse Source

Merge pull request #14229 from Chocobo1/ext

Improve detection of file extension string
adaptive-webui-19844
Mike Tzou 4 years ago committed by GitHub
parent
commit
2b9c7e04a4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      src/base/utils/fs.cpp
  2. 10
      src/gui/autoexpandabledialog.cpp

14
src/base/utils/fs.cpp

@ -55,6 +55,7 @@
#include <QDirIterator> #include <QDirIterator>
#include <QFile> #include <QFile>
#include <QFileInfo> #include <QFileInfo>
#include <QMimeDatabase>
#include <QStorageInfo> #include <QStorageInfo>
#include <QRegularExpression> #include <QRegularExpression>
@ -76,9 +77,14 @@ QString Utils::Fs::toUniformPath(const QString &path)
*/ */
QString Utils::Fs::fileExtension(const QString &filename) QString Utils::Fs::fileExtension(const QString &filename)
{ {
const QString ext = QString(filename).remove(QB_EXT); const QString name = filename.endsWith(QB_EXT)
const int pointIndex = ext.lastIndexOf('.'); #if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
return (pointIndex >= 0) ? ext.mid(pointIndex + 1) : QString(); ? filename.chopped(QB_EXT.length())
#else
? filename.left(filename.length() - QB_EXT.length())
#endif
: filename;
return QMimeDatabase().suffixForFileName(name);
} }
QString Utils::Fs::fileName(const QString &filePath) QString Utils::Fs::fileName(const QString &filePath)
@ -267,8 +273,6 @@ bool Utils::Fs::isValidFileSystemName(const QString &name, const bool allowSepar
qint64 Utils::Fs::freeDiskSpaceOnPath(const QString &path) qint64 Utils::Fs::freeDiskSpaceOnPath(const QString &path)
{ {
if (path.isEmpty()) return -1;
return QStorageInfo(path).bytesAvailable(); return QStorageInfo(path).bytesAvailable();
} }

10
src/gui/autoexpandabledialog.cpp

@ -28,6 +28,7 @@
#include "autoexpandabledialog.h" #include "autoexpandabledialog.h"
#include "base/utils/fs.h"
#include "ui_autoexpandabledialog.h" #include "ui_autoexpandabledialog.h"
#include "utils.h" #include "utils.h"
@ -57,12 +58,9 @@ QString AutoExpandableDialog::getText(QWidget *parent, const QString &title, con
d.m_ui->textEdit->selectAll(); d.m_ui->textEdit->selectAll();
if (excludeExtension) if (excludeExtension)
{ {
int lastDotIndex = text.lastIndexOf('.'); const QString extension = Utils::Fs::fileExtension(text);
if ((lastDotIndex > 3) && (text.mid(lastDotIndex - 4, 4).toLower() == ".tar")) if (!extension.isEmpty())
lastDotIndex -= 4; d.m_ui->textEdit->setSelection(0, (text.length() - extension.length() - 1));
// Select file name without extension, except dot files like .gitignore
if (lastDotIndex > 0)
d.m_ui->textEdit->setSelection(0, lastDotIndex);
} }
bool res = d.exec(); bool res = d.exec();

Loading…
Cancel
Save