From cd195ac5d0f767e32f2d77a8d961364eda5a43c1 Mon Sep 17 00:00:00 2001 From: renbin Date: Fri, 2 Feb 2024 10:09:37 +0800 Subject: [PATCH] fix: Limit input printCount range The input printCount might lessthan -1, cause print behavior error. Add check, printCount = 0 when input value < -1. Log: Limit input printCount range Bug: https://pms.uniontech.com/bug-view-241777.html --- libimageviewer/service/permissionconfig.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libimageviewer/service/permissionconfig.cpp b/libimageviewer/service/permissionconfig.cpp index 41261852..047a9113 100644 --- a/libimageviewer/service/permissionconfig.cpp +++ b/libimageviewer/service/permissionconfig.cpp @@ -42,6 +42,9 @@ static const qreal g_PrintColumnSpacingLimit = 2.0; // 打印水印默认字体大小,用于计算转换系数 static const qreal g_DefaultPrintFontSize = 65.0; +// 打印计数为-1时,无打印限制 +static const int g_UnlimitPrintCount = -1; + /** @brief 通过dbus接口从任务栏激活窗口 */ @@ -188,7 +191,7 @@ bool PermissionConfig::isUnlimitPrint() const if (checkAuthInvalid()) { return true; } - return -1 == printLimitCount; + return g_UnlimitPrintCount == printLimitCount; } /** @@ -196,6 +199,10 @@ bool PermissionConfig::isUnlimitPrint() const */ void PermissionConfig::reduceOnePrintCount() { + if (g_UnlimitPrintCount == printLimitCount) { + return; + } + if (printLimitCount > 0) { printLimitCount--; Q_EMIT printCountChanged(); @@ -612,6 +619,9 @@ void PermissionConfig::initAuthorise(const QJsonObject ¶m) } printLimitCount = param.value("printCount").toInt(0); + if (printLimitCount < g_UnlimitPrintCount) { + printLimitCount = 0; + } } #ifdef DTKWIDGET_CLASS_DWaterMarkHelper