ok-script 1.0.149__tar.gz → 1.0.151__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ok_script-1.0.149 → ok_script-1.0.151}/PKG-INFO +1 -1
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/browser.py +18 -7
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/hwnd_window.py +21 -6
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/windows_graphics.py +49 -44
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/MainWindow.py +26 -13
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/StartController.py +17 -17
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/en_US.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/en_US.ts +7 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/es_ES.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/es_ES.ts +7 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/ja_JP.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/ja_JP.ts +7 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/ko_KR.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/ko_KR.ts +7 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/zh_CN.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/zh_CN.ts +7 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/zh_TW.qm +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/zh_TW.ts +7 -0
- ok_script-1.0.151/ok/gui/resources.py +13865 -0
- ok_script-1.0.151/ok/gui/settings/GlobalConfigTab.py +63 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/settings/SettingTab.py +8 -6
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/ConfigCard.py +27 -12
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/config.py +12 -11
- {ok_script-1.0.149 → ok_script-1.0.151}/ok_script.egg-info/PKG-INFO +1 -1
- {ok_script-1.0.149 → ok_script-1.0.151}/ok_script.egg-info/SOURCES.txt +1 -0
- ok_script-1.0.149/ok/gui/resources.py +0 -13847
- {ok_script-1.0.149 → ok_script-1.0.151}/MANIFEST.in +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/README.md +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/__main__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/alas/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/alas/emulator_base.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/alas/emulator_windows.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/alas/platform_windows.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/alas/utils.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/adb/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/adb/deep.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/adb/minitouch.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/adb/nemu_ipc.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/adb/nemu_utils.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/adb/pool.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/adb/timer.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/adb/util.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/windows/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/windows/d3d11.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/capture/windows/dump.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/cli.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/DeviceManager.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/adb.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/base.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/bitblt.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/bitblt_utils.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/desktop_duplication.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/image.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/nemu_ipc.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/types.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/capture_methods/update.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/adb.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/base.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/browser.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/do_nothing.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/foreground_post_message.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/genshin.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/keys.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/post_message.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/pydirect.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/pynput.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/interaction_methods/swipe.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/device/intercation.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/feature/Box.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/feature/Feature.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/feature/FeatureSet.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/feature/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/Communicate.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/MessageWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/TabTitles.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/about/AboutTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/about/HttpTextEdit.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/about/LinksBar.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/about/ProjectCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/about/VersionCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/about/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/common/OKIcon.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/common/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/common/config.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/common/style_sheet.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/debug/DebugTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/debug/OverlayWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/debug/RunCodeTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/debug/Screenshot.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/debug/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/GettextTranslator.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/path.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/i18n/update.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/overlay/OverlayWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/overlay/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/dark/card.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/dark/discord.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/dark/heart.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/dark/message_window.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/dark/setting_interface.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/dark/status_bar.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/dark/stop.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/dark/tab.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/light/card.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/light/discord.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/light/heart.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/light/message_window.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/light/setting_interface.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/light/status_bar.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/light/stop.svg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qss/light/tab.qss +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/qt.qrc +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/settings/GlobalConfigCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/settings/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/start/LogWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/start/SelectCaptureListView.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/start/SelectInteractionListView.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/start/StartCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/start/StartTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/start/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/ConfigItemFactory.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/ConfigLabelAndWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/EditTaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndButtons.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndDoubleSpinBox.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndDropDown.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndGlobal.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndLineEdit.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndList.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndMultiSelection.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndSpinBox.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndSwitchButton.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndTextEdit.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/LabelAndWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/MarkUpWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/ModifyListDialog.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/ModifyListItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/OneTimeTaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/RecordScript.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/ScheduleTaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/ScriptPackager.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/StartButton.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/TaskCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/TaskManger.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/TaskOpButton.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/TaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/TemplateFactory.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/TemplateTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/TooltipTableWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/TriggerTaskTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/tasks/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/util/Alert.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/util/InitWorker.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/util/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/util/app.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/util/download.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/util/pip_util.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/util/pyappify_startup.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/BaseLoading.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/BaseWindow.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/Card.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/CustomTab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/EmptyCard.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/FlowLayout.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/FramelessDialog.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/ImageWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/ListTableWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/NumericTableWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/OkCompactSpinBox.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/SortingTableWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/StartLoadingDialog.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/StatusBar.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/Tab.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/TabWidget.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/UpdateConfigWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/WidgetWithVLabel.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/YesNonWidgetItem.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/gui/widget/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/ocr/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/ocr/download_paddle_model.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Foundation/Collections.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Foundation/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Globalization/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Graphics/Capture/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Graphics/DirectX/Direct3D11/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Graphics/DirectX/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Graphics/Imaging/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Graphics/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Media/Ocr/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Media/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Security/Cryptography/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Security/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Storage/Streams/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/Storage/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/Windows/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/delegate.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/export.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/idldsl.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/inspectable.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/roapi.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/types.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/rotypes/winstring.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/task/DiagnosisTask.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/task/TaskExecutor.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/task/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/task/exceptions.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/task/task.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/test/OKTestRunner.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/test/RunTests.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/test/TaskTestCase.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/test/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/third_party/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/third_party/paperclip.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/update/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/update/copy_ok_folder.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/update/inline_ok_requirements.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/Analytics.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/GlobalConfig.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/__init__.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/blur.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/clazz.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/collection.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/color.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/file.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/gpu_driver_settings.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/handler.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/i18n.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/logger.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/partial_sync_repo.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/print_hwnd.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/process.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/window.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok/util/windows_schedule.py +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok_script.egg-info/dependency_links.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok_script.egg-info/entry_points.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok_script.egg-info/not-zip-safe +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok_script.egg-info/requires.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/ok_script.egg-info/top_level.txt +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/setup.cfg +0 -0
- {ok_script-1.0.149 → ok_script-1.0.151}/setup.py +0 -0
|
@@ -282,13 +282,24 @@ class BrowserWindowAdapter:
|
|
|
282
282
|
def height(self):
|
|
283
283
|
return self.capture.height
|
|
284
284
|
|
|
285
|
-
@property
|
|
286
|
-
def exe_full_path(self):
|
|
287
|
-
return self.capture.exe_full_path
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
285
|
+
@property
|
|
286
|
+
def exe_full_path(self):
|
|
287
|
+
return self.capture.exe_full_path
|
|
288
|
+
|
|
289
|
+
@property
|
|
290
|
+
def capture_target_signature(self):
|
|
291
|
+
return (
|
|
292
|
+
self.hwnd,
|
|
293
|
+
self.width,
|
|
294
|
+
self.height,
|
|
295
|
+
self.capture.x_offset,
|
|
296
|
+
self.capture.y_offset,
|
|
297
|
+
self.capture.exe_full_path,
|
|
298
|
+
)
|
|
299
|
+
|
|
300
|
+
def get_abs_cords(self, x, y):
|
|
301
|
+
try:
|
|
302
|
+
rect = win32gui.GetWindowRect(self.capture.hwnd)
|
|
292
303
|
return rect[0] + self.capture.x_offset + x, rect[1] + self.capture.y_offset + y
|
|
293
304
|
except:
|
|
294
305
|
return x, y
|
|
@@ -190,12 +190,27 @@ class HwndWindow:
|
|
|
190
190
|
def get_abs_cords(self, x, y):
|
|
191
191
|
return self.x + x, self.y + y
|
|
192
192
|
|
|
193
|
-
def get_top_window_cords(self, x, y):
|
|
194
|
-
return x - self.top_offset_x, y - self.top_offset_y
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
193
|
+
def get_top_window_cords(self, x, y):
|
|
194
|
+
return x - self.top_offset_x, y - self.top_offset_y
|
|
195
|
+
|
|
196
|
+
@property
|
|
197
|
+
def capture_target_signature(self):
|
|
198
|
+
hwnds = tuple(hwnd_info[0] for hwnd_info in (self.hwnds or []))
|
|
199
|
+
return (
|
|
200
|
+
self.hwnd,
|
|
201
|
+
self.top_hwnd,
|
|
202
|
+
self.width,
|
|
203
|
+
self.height,
|
|
204
|
+
self.real_x_offset,
|
|
205
|
+
self.real_y_offset,
|
|
206
|
+
self.real_width,
|
|
207
|
+
self.real_height,
|
|
208
|
+
hwnds,
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
def do_update_window_size(self):
|
|
212
|
+
if self.device_manager and getattr(self.device_manager, 'capture_method', None):
|
|
213
|
+
from ok.device.capture_methods.browser import BrowserCaptureMethod
|
|
199
214
|
if isinstance(self.device_manager.capture_method, BrowserCaptureMethod):
|
|
200
215
|
return
|
|
201
216
|
try:
|
|
@@ -3,18 +3,18 @@ import threading
|
|
|
3
3
|
import time
|
|
4
4
|
|
|
5
5
|
import numpy as np
|
|
6
|
-
import win32gui
|
|
7
|
-
|
|
8
|
-
from ok.util.logger import Logger
|
|
9
|
-
from ok.util.window import WINDOWS_BUILD_NUMBER, WGC_NO_BORDER_MIN_BUILD
|
|
6
|
+
import win32gui
|
|
7
|
+
|
|
8
|
+
from ok.util.logger import Logger
|
|
9
|
+
from ok.util.window import WINDOWS_BUILD_NUMBER, WGC_NO_BORDER_MIN_BUILD
|
|
10
10
|
|
|
11
11
|
from ok.device.capture_methods import bitblt
|
|
12
12
|
from ok.device.capture_methods.base import BaseWindowsCaptureMethod
|
|
13
13
|
from ok.device.capture_methods.bitblt_utils import PBYTE, composite_hwnds, get_crop_point
|
|
14
14
|
|
|
15
|
-
logger = Logger.get_logger(__name__)
|
|
16
|
-
|
|
17
|
-
class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
15
|
+
logger = Logger.get_logger(__name__)
|
|
16
|
+
|
|
17
|
+
class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
18
18
|
name = "Windows Graphics Capture"
|
|
19
19
|
description = "fast, most compatible, capped at 60fps"
|
|
20
20
|
|
|
@@ -34,10 +34,11 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
34
34
|
self.dxdevice = None
|
|
35
35
|
self.immediatedc = None
|
|
36
36
|
self.last_frame = None
|
|
37
|
-
self.last_size = None
|
|
38
|
-
self.last_start_failure_key = None
|
|
39
|
-
self.last_start_failure_time = 0
|
|
40
|
-
self.
|
|
37
|
+
self.last_size = None
|
|
38
|
+
self.last_start_failure_key = None
|
|
39
|
+
self.last_start_failure_time = 0
|
|
40
|
+
self.capture_target_signature = None
|
|
41
|
+
self.start_or_stop()
|
|
41
42
|
|
|
42
43
|
def frame_arrived_callback(self, *args):
|
|
43
44
|
next_frame = None
|
|
@@ -133,12 +134,12 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
133
134
|
try:
|
|
134
135
|
if hwnd and win32gui.IsWindow(hwnd):
|
|
135
136
|
return hwnd
|
|
136
|
-
except Exception:
|
|
137
|
-
pass
|
|
138
|
-
return 0
|
|
139
|
-
|
|
140
|
-
def start_or_stop(self, capture_cursor=False):
|
|
141
|
-
with self.lock:
|
|
137
|
+
except Exception:
|
|
138
|
+
pass
|
|
139
|
+
return 0
|
|
140
|
+
|
|
141
|
+
def start_or_stop(self, capture_cursor=False):
|
|
142
|
+
with self.lock:
|
|
142
143
|
if self.exit_event.is_set():
|
|
143
144
|
logger.warning('start_or_stop exit_event.is_set() return')
|
|
144
145
|
self.close()
|
|
@@ -149,16 +150,18 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
149
150
|
return False
|
|
150
151
|
|
|
151
152
|
capture_hwnd = self.get_capture_hwnd()
|
|
152
|
-
if not capture_hwnd:
|
|
153
|
-
logger.warning(f'start_or_stop no valid hwnd: {self.hwnd_window}')
|
|
154
|
-
self.close()
|
|
155
|
-
return False
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
153
|
+
if not capture_hwnd:
|
|
154
|
+
logger.warning(f'start_or_stop no valid hwnd: {self.hwnd_window}')
|
|
155
|
+
self.close()
|
|
156
|
+
return False
|
|
157
|
+
|
|
158
|
+
target_signature = self.hwnd_window.capture_target_signature
|
|
159
|
+
if self.frame_pool is not None and self.capture_target_signature != target_signature:
|
|
160
|
+
logger.info(
|
|
161
|
+
f'start_or_stop WGC target changed from {self.capture_target_signature} to {target_signature}')
|
|
162
|
+
self.close()
|
|
163
|
+
|
|
164
|
+
failure_key = capture_hwnd
|
|
162
165
|
if self.frame_pool is None and self.last_start_failure_key == failure_key and time.time() - self.last_start_failure_time < 5:
|
|
163
166
|
return False
|
|
164
167
|
|
|
@@ -204,9 +207,10 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
204
207
|
self.session.IsCursorCaptureEnabled = capture_cursor
|
|
205
208
|
if WINDOWS_BUILD_NUMBER >= WGC_NO_BORDER_MIN_BUILD:
|
|
206
209
|
self.session.IsBorderRequired = False
|
|
207
|
-
self.session.StartCapture()
|
|
208
|
-
self.last_start_failure_key = None
|
|
209
|
-
|
|
210
|
+
self.session.StartCapture()
|
|
211
|
+
self.last_start_failure_key = None
|
|
212
|
+
self.capture_target_signature = target_signature
|
|
213
|
+
return True
|
|
210
214
|
except Exception as e:
|
|
211
215
|
self.last_start_failure_key = failure_key
|
|
212
216
|
self.last_start_failure_time = time.time()
|
|
@@ -251,10 +255,11 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
251
255
|
if self.immediatedc:
|
|
252
256
|
self.immediatedc.Release()
|
|
253
257
|
self.immediatedc = None
|
|
254
|
-
if self.cputex:
|
|
255
|
-
self.cputex.Release()
|
|
256
|
-
self.cputex = None
|
|
257
|
-
self.capture_hwnd = 0
|
|
258
|
+
if self.cputex:
|
|
259
|
+
self.cputex.Release()
|
|
260
|
+
self.cputex = None
|
|
261
|
+
self.capture_hwnd = 0
|
|
262
|
+
self.capture_target_signature = None
|
|
258
263
|
|
|
259
264
|
def do_get_frame(self):
|
|
260
265
|
|
|
@@ -298,16 +303,16 @@ class WindowsGraphicsCaptureMethod(BaseWindowsCaptureMethod):
|
|
|
298
303
|
|
|
299
304
|
frame = composite_hwnds(frame, self.hwnd_window, self.contexts, bitblt.render_full)
|
|
300
305
|
|
|
301
|
-
if frame is not None:
|
|
302
|
-
new_height = frame.shape[0]
|
|
303
|
-
new_width = frame.shape[1]
|
|
304
|
-
if new_width <= 0 or new_height <= 0:
|
|
305
|
-
logger.warning(f"get_frame size <=0 {new_width}x{new_height}")
|
|
306
|
-
return None
|
|
307
|
-
|
|
308
|
-
return frame
|
|
309
|
-
|
|
310
|
-
def reset_framepool(self, size, reset_device=False):
|
|
306
|
+
if frame is not None:
|
|
307
|
+
new_height = frame.shape[0]
|
|
308
|
+
new_width = frame.shape[1]
|
|
309
|
+
if new_width <= 0 or new_height <= 0:
|
|
310
|
+
logger.warning(f"get_frame size <=0 {new_width}x{new_height}")
|
|
311
|
+
return None
|
|
312
|
+
|
|
313
|
+
return frame
|
|
314
|
+
|
|
315
|
+
def reset_framepool(self, size, reset_device=False):
|
|
311
316
|
logger.info(f'reset_framepool')
|
|
312
317
|
from ok.rotypes.Windows.Graphics.DirectX import DirectXPixelFormat
|
|
313
318
|
if self.cputex:
|
|
@@ -85,9 +85,10 @@ class MainWindow(FluentWindow):
|
|
|
85
85
|
|
|
86
86
|
self.addSubInterface(self.start_tab, FluentIcon.PLAY, self.tr('Capture'))
|
|
87
87
|
|
|
88
|
-
self.first_task_tab = None
|
|
89
|
-
self.grouped_task_tabs = []
|
|
90
|
-
self.schedule_tab = None
|
|
88
|
+
self.first_task_tab = None
|
|
89
|
+
self.grouped_task_tabs = []
|
|
90
|
+
self.schedule_tab = None
|
|
91
|
+
self.global_config_tabs = []
|
|
91
92
|
|
|
92
93
|
# Prepare custom tabs and separate them by add_after_default_tabs
|
|
93
94
|
before_custom_tabs = []
|
|
@@ -176,13 +177,21 @@ class MainWindow(FluentWindow):
|
|
|
176
177
|
|
|
177
178
|
# 添加计划任务Tab
|
|
178
179
|
any_support_schedule = any(task.support_schedule_task for task in visible_onetime_tasks)
|
|
179
|
-
if any_support_schedule:
|
|
180
|
-
from ok.gui.tasks.ScheduleTaskTab import ScheduleTaskTab
|
|
181
|
-
self.schedule_tab = ScheduleTaskTab(config=self.config)
|
|
182
|
-
self.addSubInterface(self.schedule_tab, FluentIcon.CALENDAR, self.tr('Schedule'))
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
180
|
+
if any_support_schedule:
|
|
181
|
+
from ok.gui.tasks.ScheduleTaskTab import ScheduleTaskTab
|
|
182
|
+
self.schedule_tab = ScheduleTaskTab(config=self.config)
|
|
183
|
+
self.addSubInterface(self.schedule_tab, FluentIcon.CALENDAR, self.tr('Schedule'))
|
|
184
|
+
|
|
185
|
+
for name, config_obj, option in global_config.get_all_visible_configs():
|
|
186
|
+
if getattr(option, 'show_at_tab', False):
|
|
187
|
+
from ok.gui.settings.GlobalConfigTab import GlobalConfigTab
|
|
188
|
+
config_tab = GlobalConfigTab(config_obj, option)
|
|
189
|
+
self.global_config_tabs.append(config_tab)
|
|
190
|
+
self.addSubInterface(config_tab, option.icon or FluentIcon.INFO, self.app.tr(option.name))
|
|
191
|
+
|
|
192
|
+
from ok.gui.about.AboutTab import AboutTab
|
|
193
|
+
self.about_tab = AboutTab(config)
|
|
194
|
+
self.addSubInterface(self.about_tab, FluentIcon.QUESTION, self.tr('About'),
|
|
186
195
|
position=NavigationItemPosition.BOTTOM)
|
|
187
196
|
|
|
188
197
|
from ok.gui.settings.SettingTab import SettingTab
|
|
@@ -307,9 +316,13 @@ class MainWindow(FluentWindow):
|
|
|
307
316
|
except Exception as e:
|
|
308
317
|
logger.debug(f'bring_to_front native activation failed: {e}')
|
|
309
318
|
|
|
310
|
-
def goto_global_config(self, key):
|
|
311
|
-
self.
|
|
312
|
-
|
|
319
|
+
def goto_global_config(self, key):
|
|
320
|
+
for config_tab in self.global_config_tabs:
|
|
321
|
+
if config_tab.has_key(key):
|
|
322
|
+
self.switchTo(config_tab)
|
|
323
|
+
return
|
|
324
|
+
self.switchTo(self.setting_tab)
|
|
325
|
+
self.setting_tab.goto_config(key)
|
|
313
326
|
|
|
314
327
|
def tray_quit(self):
|
|
315
328
|
logger.info('main window tray_quit')
|
|
@@ -123,10 +123,10 @@ class StartController(QObject):
|
|
|
123
123
|
time.sleep(2)
|
|
124
124
|
return False
|
|
125
125
|
|
|
126
|
-
def _wait_until_started_window_stable(self):
|
|
127
|
-
wait_until = time.monotonic() + self.start_timeout
|
|
128
|
-
stable_size = None
|
|
129
|
-
stable_since = None
|
|
126
|
+
def _wait_until_started_window_stable(self):
|
|
127
|
+
wait_until = time.monotonic() + self.start_timeout
|
|
128
|
+
stable_size = None
|
|
129
|
+
stable_since = None
|
|
130
130
|
min_width, min_height = self.STARTED_WINDOW_MIN_SIZE
|
|
131
131
|
|
|
132
132
|
while not self.exit_event.is_set():
|
|
@@ -151,12 +151,12 @@ class StartController(QObject):
|
|
|
151
151
|
if remaining_time <= 0:
|
|
152
152
|
communicate.starting_emulator.emit(True, self.tr('Start game timeout!'), 0)
|
|
153
153
|
return False
|
|
154
|
-
time.sleep(self.STARTED_WINDOW_POLL_INTERVAL)
|
|
155
|
-
return False
|
|
156
|
-
|
|
157
|
-
def start_device(self):
|
|
158
|
-
device = og.device_manager.get_preferred_device()
|
|
159
|
-
logger.info(f'start_device: {device}')
|
|
154
|
+
time.sleep(self.STARTED_WINDOW_POLL_INTERVAL)
|
|
155
|
+
return False
|
|
156
|
+
|
|
157
|
+
def start_device(self):
|
|
158
|
+
device = og.device_manager.get_preferred_device()
|
|
159
|
+
logger.info(f'start_device: {device}')
|
|
160
160
|
|
|
161
161
|
if device and not device['connected']:
|
|
162
162
|
if device['device'] == "windows" and not is_admin():
|
|
@@ -172,13 +172,13 @@ class StartController(QObject):
|
|
|
172
172
|
dx11_config = og.global_config.get_config('Launch with DX11')
|
|
173
173
|
if dx11_config and dx11_config.get('Launch with DX11'):
|
|
174
174
|
args = "-dx11 -d3d11 -force-d3d11"
|
|
175
|
-
if not execute(path, arguments=args):
|
|
176
|
-
communicate.starting_emulator.emit(True, self.tr("Start game failed, please start game first"), 0)
|
|
177
|
-
return False
|
|
178
|
-
if device['device'] == "windows" and not self._wait_until_started_window_stable():
|
|
179
|
-
return False
|
|
180
|
-
if not self._wait_until_device_ready():
|
|
181
|
-
return False
|
|
175
|
+
if not execute(path, arguments=args):
|
|
176
|
+
communicate.starting_emulator.emit(True, self.tr("Start game failed, please start game first"), 0)
|
|
177
|
+
return False
|
|
178
|
+
if device['device'] == "windows" and not self._wait_until_started_window_stable():
|
|
179
|
+
return False
|
|
180
|
+
if not self._wait_until_device_ready():
|
|
181
|
+
return False
|
|
182
182
|
else:
|
|
183
183
|
communicate.starting_emulator.emit(True,
|
|
184
184
|
self.tr('Game path does not exist, Please open game manually!'), 0)
|
|
Binary file
|
|
@@ -2620,4 +2620,11 @@
|
|
|
2620
2620
|
<translation>NPU inferring Error, you might need to update the Intel NPU driver!</translation>
|
|
2621
2621
|
</message>
|
|
2622
2622
|
</context>
|
|
2623
|
+
<context>
|
|
2624
|
+
<name>GlobalConfigTab</name>
|
|
2625
|
+
<message>
|
|
2626
|
+
<source>Reset Config</source>
|
|
2627
|
+
<translation>Reset Config</translation>
|
|
2628
|
+
</message>
|
|
2629
|
+
</context>
|
|
2623
2630
|
</TS>
|
|
Binary file
|
|
@@ -2618,4 +2618,11 @@
|
|
|
2618
2618
|
<translation>¡Error de inferencia de la NPU, es posible que necesite actualizar el controlador de la NPU de Intel!</translation>
|
|
2619
2619
|
</message>
|
|
2620
2620
|
</context>
|
|
2621
|
+
<context>
|
|
2622
|
+
<name>GlobalConfigTab</name>
|
|
2623
|
+
<message>
|
|
2624
|
+
<source>Reset Config</source>
|
|
2625
|
+
<translation>Restablecer configuración</translation>
|
|
2626
|
+
</message>
|
|
2627
|
+
</context>
|
|
2621
2628
|
</TS>
|
|
Binary file
|
|
@@ -2610,4 +2610,11 @@
|
|
|
2610
2610
|
<translation>NPU推論エラー。Intel NPUドライバーを更新する必要があるかもしれません。</translation>
|
|
2611
2611
|
</message>
|
|
2612
2612
|
</context>
|
|
2613
|
+
<context>
|
|
2614
|
+
<name>GlobalConfigTab</name>
|
|
2615
|
+
<message>
|
|
2616
|
+
<source>Reset Config</source>
|
|
2617
|
+
<translation>設定をリセット</translation>
|
|
2618
|
+
</message>
|
|
2619
|
+
</context>
|
|
2613
2620
|
</TS>
|
|
Binary file
|
|
@@ -2619,4 +2619,11 @@
|
|
|
2619
2619
|
<translation>NPU 추론 오류, Intel NPU 드라이버를 업데이트해야 할 수 있습니다!</translation>
|
|
2620
2620
|
</message>
|
|
2621
2621
|
</context>
|
|
2622
|
+
<context>
|
|
2623
|
+
<name>GlobalConfigTab</name>
|
|
2624
|
+
<message>
|
|
2625
|
+
<source>Reset Config</source>
|
|
2626
|
+
<translation>설정 초기화</translation>
|
|
2627
|
+
</message>
|
|
2628
|
+
</context>
|
|
2622
2629
|
</TS>
|
|
Binary file
|
|
@@ -2616,4 +2616,11 @@
|
|
|
2616
2616
|
<translation>NPU推理错误,您可能需要更新Intel NPU驱动!</translation>
|
|
2617
2617
|
</message>
|
|
2618
2618
|
</context>
|
|
2619
|
+
<context>
|
|
2620
|
+
<name>GlobalConfigTab</name>
|
|
2621
|
+
<message>
|
|
2622
|
+
<source>Reset Config</source>
|
|
2623
|
+
<translation>重置配置</translation>
|
|
2624
|
+
</message>
|
|
2625
|
+
</context>
|
|
2619
2626
|
</TS>
|
|
Binary file
|
|
@@ -2614,4 +2614,11 @@
|
|
|
2614
2614
|
<translation>NPU推理錯誤,您可能需要更新Intel NPU驅動程式!</translation>
|
|
2615
2615
|
</message>
|
|
2616
2616
|
</context>
|
|
2617
|
+
<context>
|
|
2618
|
+
<name>GlobalConfigTab</name>
|
|
2619
|
+
<message>
|
|
2620
|
+
<source>Reset Config</source>
|
|
2621
|
+
<translation>重設設定</translation>
|
|
2622
|
+
</message>
|
|
2623
|
+
</context>
|
|
2617
2624
|
</TS>
|