Skip to content

Commit 5bcd4e0

Browse files
deepin-ci-robot18202781743
authored andcommitted
sync: from linuxdeepin/dtkwidget
Synchronize source files from linuxdeepin/dtkwidget. Source-pull-request: linuxdeepin/dtkwidget#644
1 parent c066cc4 commit 5bcd4e0

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/widgets/dprintpreviewwidget.cpp

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,17 @@
3333
DGUI_USE_NAMESPACE
3434
DWIDGET_BEGIN_NAMESPACE
3535

36+
static QString truncateFileName(const QString &str, int maxLength = 255) {
37+
if (str.length() <= maxLength)
38+
return str;
39+
40+
int keepFront = (maxLength - 3) / 2; // 例如 maxLength=255 → keepFront=126
41+
int keepBack = (maxLength - 3) - keepFront; // 126
42+
43+
// 截取前半部分 + "..." + 后半部分
44+
return str.left(keepFront) + QString("...") + str.right(keepBack);
45+
}
46+
3647
static void saveImageToFile(int index, const QString &outPutFileName, const QString &suffix, bool isJpegImage, const QImage &srcImage)
3748
{
3849
// write image
@@ -41,7 +52,11 @@ static void saveImageToFile(int index, const QString &outPutFileName, const QStr
4152

4253
// 多线程保存文件修复大文件卡顿问题
4354
QtConcurrent::run(QThreadPool::globalInstance(), [srcImage, tmpString, isJpegImage] {
44-
srcImage.save(tmpString, isJpegImage ? "JPEG" : "PNG");
55+
const QFileInfo file(tmpString);
56+
const auto fileName = file.absolutePath() + "/" + truncateFileName(file.fileName());
57+
if (!srcImage.save(fileName, isJpegImage ? "JPEG" : "PNG")) {
58+
qWarning() << "Failed to save image to file, filePath:" << fileName;
59+
}
4560
});
4661
}
4762

0 commit comments

Comments
 (0)