fix: 任务错误提示改为顶部居中 (#87)
This commit is contained in:
@@ -513,7 +513,7 @@ class PDDTaskPageEvent(QObject):
|
|||||||
content=content,
|
content=content,
|
||||||
isClosable=True,
|
isClosable=True,
|
||||||
duration=ERROR_FEEDBACK_DURATION_MS,
|
duration=ERROR_FEEDBACK_DURATION_MS,
|
||||||
position=InfoBarPosition.TOP_RIGHT,
|
position=InfoBarPosition.TOP,
|
||||||
parent=self._page,
|
parent=self._page,
|
||||||
)
|
)
|
||||||
self._replace_rerun_feedback(bar)
|
self._replace_rerun_feedback(bar)
|
||||||
@@ -801,7 +801,7 @@ class PDDTaskPageEvent(QObject):
|
|||||||
content=content,
|
content=content,
|
||||||
isClosable=True,
|
isClosable=True,
|
||||||
duration=ERROR_FEEDBACK_DURATION_MS,
|
duration=ERROR_FEEDBACK_DURATION_MS,
|
||||||
position=InfoBarPosition.TOP_RIGHT,
|
position=InfoBarPosition.TOP,
|
||||||
parent=self._page,
|
parent=self._page,
|
||||||
)
|
)
|
||||||
self._claim_feedback = bar
|
self._claim_feedback = bar
|
||||||
@@ -840,7 +840,7 @@ class PDDTaskPageEvent(QObject):
|
|||||||
content=content,
|
content=content,
|
||||||
isClosable=True,
|
isClosable=True,
|
||||||
duration=ERROR_FEEDBACK_DURATION_MS,
|
duration=ERROR_FEEDBACK_DURATION_MS,
|
||||||
position=InfoBarPosition.TOP_RIGHT,
|
position=InfoBarPosition.TOP,
|
||||||
parent=self._page,
|
parent=self._page,
|
||||||
)
|
)
|
||||||
self._device_feedback = bar
|
self._device_feedback = bar
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from unittest.mock import patch
|
|||||||
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
|
os.environ.setdefault("QT_QPA_PLATFORM", "offscreen")
|
||||||
|
|
||||||
from PyQt5.QtWidgets import QApplication
|
from PyQt5.QtWidgets import QApplication
|
||||||
|
from qfluentwidgets import InfoBarPosition
|
||||||
|
|
||||||
from src.android_device_service import AndroidDeviceSearchError
|
from src.android_device_service import AndroidDeviceSearchError
|
||||||
from src.pdd_ui import PDDTaskPage
|
from src.pdd_ui import PDDTaskPage
|
||||||
@@ -468,6 +469,7 @@ class PDDTaskPageEventTest(unittest.TestCase):
|
|||||||
events._show_rerun_error("重新采集失败", "测试错误")
|
events._show_rerun_error("重新采集失败", "测试错误")
|
||||||
second = events._rerun_feedback
|
second = events._rerun_feedback
|
||||||
self.assertIsNot(first, second)
|
self.assertIsNot(first, second)
|
||||||
|
self.assertEqual(second.position, InfoBarPosition.TOP)
|
||||||
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
|
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
|
||||||
|
|
||||||
close_buttons = [
|
close_buttons = [
|
||||||
@@ -502,6 +504,7 @@ class PDDTaskPageEventTest(unittest.TestCase):
|
|||||||
second = events._claim_feedback
|
second = events._claim_feedback
|
||||||
|
|
||||||
self.assertIsNot(first, second)
|
self.assertIsNot(first, second)
|
||||||
|
self.assertEqual(second.position, InfoBarPosition.TOP)
|
||||||
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
|
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
|
||||||
self.assertGreaterEqual(second.minimumWidth(), ERROR_FEEDBACK_MIN_WIDTH)
|
self.assertGreaterEqual(second.minimumWidth(), ERROR_FEEDBACK_MIN_WIDTH)
|
||||||
self.assertGreaterEqual(second.minimumHeight(), ERROR_FEEDBACK_MIN_HEIGHT)
|
self.assertGreaterEqual(second.minimumHeight(), ERROR_FEEDBACK_MIN_HEIGHT)
|
||||||
@@ -616,6 +619,7 @@ class PDDTaskPageEventTest(unittest.TestCase):
|
|||||||
events._show_device_unavailable("第二条")
|
events._show_device_unavailable("第二条")
|
||||||
second = events._device_feedback
|
second = events._device_feedback
|
||||||
self.assertIsNot(first, second)
|
self.assertIsNot(first, second)
|
||||||
|
self.assertEqual(second.position, InfoBarPosition.TOP)
|
||||||
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
|
self.assertEqual(second.duration, ERROR_FEEDBACK_DURATION_MS)
|
||||||
self.assertGreaterEqual(second.minimumWidth(), ERROR_FEEDBACK_MIN_WIDTH)
|
self.assertGreaterEqual(second.minimumWidth(), ERROR_FEEDBACK_MIN_WIDTH)
|
||||||
self.assertGreaterEqual(second.minimumHeight(), ERROR_FEEDBACK_MIN_HEIGHT)
|
self.assertGreaterEqual(second.minimumHeight(), ERROR_FEEDBACK_MIN_HEIGHT)
|
||||||
|
|||||||
@@ -70,7 +70,7 @@
|
|||||||
- 补交本地 Outbox 不依赖手机,可以在 Android 设备断开时继续执行。
|
- 补交本地 Outbox 不依赖手机,可以在 Android 设备断开时继续执行。
|
||||||
- 执行本地任务或向 Admin 领取新任务前,工作线程必须用 `adb devices -l` 检查已保存的精确设备号。USB 和 Wi-Fi 设备都只接受 `device` 状态。
|
- 执行本地任务或向 Admin 领取新任务前,工作线程必须用 `adb devices -l` 检查已保存的精确设备号。USB 和 Wi-Fi 设备都只接受 `device` 状态。
|
||||||
- 设备未连接、`offline`、`unauthorized` 或 ADB 检查失败时,立即停止本轮和自动获取;不得领取新任务,也不得启动本地任务。
|
- 设备未连接、`offline`、`unauthorized` 或 ADB 检查失败时,立即停止本轮和自动获取;不得领取新任务,也不得启动本地任务。
|
||||||
- 采集、采购、重新采集和设备错误使用较大的 `InfoBar` 提示,5 秒后自动关闭,并提供明显的“关闭提示”按钮。设备错误另外提供“打开设置”;重复错误替换旧提示,不得堆叠。完整错误原因保留在底部状态区。
|
- 采集、采购、重新采集和设备错误使用较大的 `InfoBar` 提示,显示在软件窗口顶部水平居中,5 秒后自动关闭,并提供明显的“关闭提示”按钮。设备错误另外提供“打开设置”;重复错误替换旧提示,不得堆叠。完整错误原因保留在底部状态区。
|
||||||
|
|
||||||
### 4.2 搜索与筛选
|
### 4.2 搜索与筛选
|
||||||
|
|
||||||
@@ -295,8 +295,8 @@ class TaskTableModel(QAbstractTableModel):
|
|||||||
| 领取到新任务 | 更新表格和状态区,不弹模态框 |
|
| 领取到新任务 | 更新表格和状态区,不弹模态框 |
|
||||||
| 暂时没有可领取的任务 | 只更新状态区,**不要连续弹提示** |
|
| 暂时没有可领取的任务 | 只更新状态区,**不要连续弹提示** |
|
||||||
| 搜索无结果 | 表格空状态和清除条件入口 |
|
| 搜索无结果 | 表格空状态和清除条件入口 |
|
||||||
| Admin 暂时离线 | 较大信息条,5 秒后自动关闭;底部保留错误,本地数据继续可用 |
|
| Admin 暂时离线 | 窗口顶部居中的较大信息条,5 秒后自动关闭;底部保留错误,本地数据继续可用 |
|
||||||
| 设备断开 | 较大信息条,提供打开设置和关闭提示,5 秒后自动关闭 |
|
| 设备断开 | 窗口顶部居中的较大信息条,提供打开设置和关闭提示,5 秒后自动关闭 |
|
||||||
| 任务运行 | 底部状态区和必要进度,不阻塞整个窗口 |
|
| 任务运行 | 底部状态区和必要进度,不阻塞整个窗口 |
|
||||||
| 任务失败 | 行状态、详情和信息条,不显示原始堆栈 |
|
| 任务失败 | 行状态、详情和信息条,不显示原始堆栈 |
|
||||||
| 多个订单候选 | 状态改为“需要人工处理”,打开详情决策 |
|
| 多个订单候选 | 状态改为“需要人工处理”,打开详情决策 |
|
||||||
|
|||||||
Reference in New Issue
Block a user