ok-script 1.0.140__tar.gz → 1.0.142__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.140 → ok_script-1.0.142}/PKG-INFO +1 -1
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/__init__.py +39 -22
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/Communicate.py +3 -1
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/DebugTab.py +6 -8
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/OverlayWidget.py +59 -18
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/Screenshot.py +17 -12
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/en_US.qm +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/en_US.ts +32 -8
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/es_ES.qm +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/es_ES.ts +32 -8
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/ja_JP.qm +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/ja_JP.ts +32 -8
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/ko_KR.qm +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/ko_KR.ts +32 -8
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/zh_CN.qm +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/zh_CN.ts +32 -8
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/zh_TW.qm +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/zh_TW.ts +32 -8
- ok_script-1.0.142/ok/gui/overlay/OverlayWindow.py +156 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/resources.py +4928 -4808
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/start/StartTab.py +10 -19
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/ConfigCard.py +3 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/TemplateTab.py +6 -3
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/Tab.py +8 -4
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/task/TaskExecutor.py +15 -3
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/task/task.py +9 -3
- ok_script-1.0.142/ok/util/GlobalConfig.py +110 -0
- ok_script-1.0.142/ok/util/blur.py +192 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok_script.egg-info/PKG-INFO +1 -1
- {ok_script-1.0.140 → ok_script-1.0.142}/ok_script.egg-info/SOURCES.txt +1 -0
- ok_script-1.0.140/ok/gui/overlay/OverlayWindow.py +0 -37
- ok_script-1.0.140/ok/util/GlobalConfig.py +0 -64
- {ok_script-1.0.140 → ok_script-1.0.142}/MANIFEST.in +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/README.md +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/__init__.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/__main__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/_geometry.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/alas/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/alas/emulator_base.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/alas/emulator_windows.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/alas/platform_windows.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/alas/utils.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/adb/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/adb/deep.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/adb/minitouch.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/adb/nemu_ipc.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/adb/nemu_utils.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/adb/pool.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/adb/timer.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/adb/util.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/windows/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/windows/d3d11.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/capture/windows/dump.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/cli.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/DeviceManager.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/adb.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/base.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/bitblt.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/bitblt_utils.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/browser.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/desktop_duplication.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/hwnd_window.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/image.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/nemu_ipc.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/types.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/update.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/capture_methods/windows_graphics.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/adb.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/base.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/browser.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/do_nothing.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/foreground_post_message.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/genshin.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/keys.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/post_message.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/pydirect.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/pynput.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/interaction_methods/swipe.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/device/intercation.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/feature/Box.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/feature/Box.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/feature/Feature.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/feature/FeatureSet.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/feature/FeatureSet.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/feature/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/MainWindow.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/MessageWindow.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/StartController.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/TabTitles.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/about/AboutTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/about/HttpTextEdit.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/about/ProjectCard.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/about/VersionCard.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/about/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/common/OKIcon.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/common/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/common/config.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/common/style_sheet.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/DebugTab.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/FrameWidget.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/LogWindow.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/RunCodeTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/Screenshot.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/debug/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/GettextTranslator.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/GettextTranslator.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/path.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/path.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/update.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/i18n/update.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/DownloadBar.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/DownloadBar.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/LauncherWindow.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/LauncherWindow.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/LinksBar.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/LinksBar.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/RunBar.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/RunBar.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/UpdateBar.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/UpdateBar.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/launcher/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/overlay/OverlayWindow.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/overlay/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/dark/card.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/dark/discord.svg +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/dark/heart.svg +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/dark/message_window.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/dark/setting_interface.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/dark/status_bar.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/dark/stop.svg +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/dark/tab.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/light/card.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/light/discord.svg +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/light/heart.svg +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/light/message_window.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/light/setting_interface.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/light/status_bar.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/light/stop.svg +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qss/light/tab.qss +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/qt.qrc +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/settings/GlobalConfigCard.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/settings/GlobalConfigCard.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/settings/SettingTab.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/settings/SettingTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/settings/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/start/SelectCaptureListView.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/start/SelectCaptureListView.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/start/SelectInteractionListView.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/start/StartCard.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/start/StartCard.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/start/StartTab.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/start/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/ConfigItemFactory.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/ConfigLabelAndWidget.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/EditTaskTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndButtons.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndDoubleSpinBox.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndDropDown.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndGlobal.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndLineEdit.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndList.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndMultiSelection.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndSpinBox.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndSwitchButton.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndTextEdit.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/LabelAndWidget.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/MarkUpWindow.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/ModifyListDialog.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/ModifyListItem.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/OneTimeTaskTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/RecordScript.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/ScheduleTaskTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/ScriptPackager.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/StartButton.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/TaskCard.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/TaskManger.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/TaskOpButton.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/TaskTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/TemplateFactory.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/TooltipTableWidget.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/TriggerTaskTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/tasks/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/Alert.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/Alert.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/InitWorker.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/InitWorker.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/app.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/app.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/download.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/pip_util.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/util/pip_util.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/BaseLoading.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/BaseWindow.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/BaseWindow.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/Card.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/Card.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/CustomTab.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/CustomTab.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/EmptyCard.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/EmptyCard.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/FlowLayout.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/FlowLayout.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/FramelessDialog.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/FramelessDialog.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/ImageWidget.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/ListTableWidgetItem.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/ListTableWidgetItem.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/NumericTableWidgetItem.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/NumericTableWidgetItem.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/OkCompactSpinBox.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/OkCompactSpinBox.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/SortingTableWidgetItem.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/SortingTableWidgetItem.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/StartLoadingDialog.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/StartLoadingDialog.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/StatusBar.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/StatusBar.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/Tab.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/TabWidget.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/TabWidget.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/UpdateConfigWidgetItem.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/UpdateConfigWidgetItem.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/WidgetWithVLabel.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/WidgetWithVLabel.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/YesNonWidgetItem.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/YesNonWidgetItem.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/gui/widget/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/ocr/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/ocr/download_paddle_model.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/ok.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Foundation/Collections.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Foundation/Collections.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Foundation/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Globalization/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Graphics/Capture/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Graphics/DirectX/Direct3D11/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Graphics/DirectX/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Graphics/Imaging/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Graphics/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Media/Ocr/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Media/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Security/Cryptography/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Security/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Storage/Streams/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/Storage/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/Windows/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/delegate.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/export.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/idldsl.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/inspectable.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/roapi.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/types.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/rotypes/winstring.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/task/DiagnosisTask.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/task/TaskExecutor.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/task/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/task/exceptions.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/task/task.cpp +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/test/OKTestRunner.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/test/RunTests.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/test/TaskTestCase.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/test/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/third_party/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/third_party/paperclip.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/update/GitUpdater.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/update/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/update/copy_ok_folder.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/update/gen_md5.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/update/init_launcher_env.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/update/inline_ok_requirements.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/Analytics.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/__init__.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/clazz.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/collection.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/color.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/config.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/file.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/gpu_driver_settings.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/handler.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/i18n.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/logger.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/logs/ok-script.log +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/partial_sync_repo.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/print_hwnd.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/process.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/window.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok/util/windows_schedule.py +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok_script.egg-info/dependency_links.txt +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok_script.egg-info/entry_points.txt +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok_script.egg-info/not-zip-safe +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok_script.egg-info/requires.txt +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/ok_script.egg-info/top_level.txt +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/setup.cfg +0 -0
- {ok_script-1.0.140 → ok_script-1.0.142}/setup.py +0 -0
|
@@ -23,7 +23,7 @@ from ok.gui.Communicate import communicate
|
|
|
23
23
|
from ok.gui.MainWindow import MainWindow
|
|
24
24
|
from ok.task.TaskExecutor import TaskExecutor
|
|
25
25
|
from ok.util.Analytics import Analytics
|
|
26
|
-
from ok.util.GlobalConfig import GlobalConfig,
|
|
26
|
+
from ok.util.GlobalConfig import GlobalConfig, register_basic_options
|
|
27
27
|
from ok.util.clazz import init_class_by_name
|
|
28
28
|
from ok.util.config import Config, ConfigOption
|
|
29
29
|
from ok.util.handler import Handler, ExitEvent
|
|
@@ -97,7 +97,7 @@ class App:
|
|
|
97
97
|
logger.debug(f'locale name {self.locale.name()}')
|
|
98
98
|
|
|
99
99
|
self.loading_window = None
|
|
100
|
-
self.overlay_window = None
|
|
100
|
+
self.overlay_window = None
|
|
101
101
|
self.main_window = None
|
|
102
102
|
self.exit_event = exit_event
|
|
103
103
|
self.icon = QIcon(get_path_relative_to_exe(config.get('gui_icon')) or ":/icon/icon.ico")
|
|
@@ -109,11 +109,7 @@ class App:
|
|
|
109
109
|
else:
|
|
110
110
|
self.to_translate = None
|
|
111
111
|
|
|
112
|
-
|
|
113
|
-
logger.debug('init overlay')
|
|
114
|
-
from ok.gui.overlay.OverlayWindow import OverlayWindow
|
|
115
|
-
self.overlay_window = OverlayWindow(og.device_manager.hwnd_window)
|
|
116
|
-
self.po_translation = None
|
|
112
|
+
self.po_translation = None
|
|
117
113
|
if not config.get('window_size'):
|
|
118
114
|
logger.info(f'no config.window_size was set use default')
|
|
119
115
|
config['window_size'] = {
|
|
@@ -127,10 +123,12 @@ class App:
|
|
|
127
123
|
if task_executor:
|
|
128
124
|
og.device_manager = task_executor.device_manager
|
|
129
125
|
|
|
130
|
-
if my_app := self.config.get('my_app'):
|
|
131
|
-
og.my_app = init_class_by_name(my_app[0], my_app[1], exit_event)
|
|
132
|
-
|
|
133
|
-
|
|
126
|
+
if my_app := self.config.get('my_app'):
|
|
127
|
+
og.my_app = init_class_by_name(my_app[0], my_app[1], exit_event)
|
|
128
|
+
if not hasattr(og.my_app, 'get_overlay_view'):
|
|
129
|
+
og.my_app.get_overlay_view = self.get_overlay_view
|
|
130
|
+
|
|
131
|
+
if self.config.get('analytics'):
|
|
134
132
|
self.fire_base_analytics = Analytics(self.config, self.exit_event, og.handler, og.device_manager)
|
|
135
133
|
logger.debug('init app end')
|
|
136
134
|
|
|
@@ -188,16 +186,25 @@ class App:
|
|
|
188
186
|
path=path)
|
|
189
187
|
self.show_message_window(title, content)
|
|
190
188
|
|
|
191
|
-
def update_overlay(self, visible, x, y, window_width, window_height, width, height, scaling):
|
|
192
|
-
|
|
193
|
-
|
|
189
|
+
def update_overlay(self, visible, x, y, window_width, window_height, width, height, scaling):
|
|
190
|
+
overlay_view = self.get_overlay_view()
|
|
191
|
+
if overlay_view:
|
|
192
|
+
overlay_view.update_overlay(visible, x, y, window_width, window_height, width, height, scaling)
|
|
193
|
+
|
|
194
|
+
def get_overlay_view(self):
|
|
195
|
+
"""Return the overlay widget exposed to tasks, custom tabs, and my_app."""
|
|
196
|
+
if self.overlay_window is None:
|
|
197
|
+
from ok.gui.overlay.OverlayWindow import OverlayWindow
|
|
198
|
+
self.overlay_window = OverlayWindow(og.device_manager.hwnd_window)
|
|
199
|
+
communicate.window.connect(self.overlay_window.update_overlay)
|
|
200
|
+
self.overlay_window.set_boxes_enabled(self.ok_config.get('use_overlay', False))
|
|
201
|
+
return self.overlay_window
|
|
194
202
|
|
|
195
203
|
def show_main_window(self):
|
|
196
204
|
self.do_show_main()
|
|
197
205
|
|
|
198
|
-
def do_show_main(self):
|
|
199
|
-
|
|
200
|
-
communicate.window.connect(self.overlay_window.update_overlay)
|
|
206
|
+
def do_show_main(self):
|
|
207
|
+
self.get_overlay_view()
|
|
201
208
|
|
|
202
209
|
self.main_window = MainWindow(self, self.config, self.ok_config, self.icon, self.title, self.version,
|
|
203
210
|
self.debug,
|
|
@@ -263,6 +270,8 @@ class HeadlessApp:
|
|
|
263
270
|
og.app = self
|
|
264
271
|
if my_app := self.config.get('my_app'):
|
|
265
272
|
og.my_app = init_class_by_name(my_app[0], my_app[1], exit_event)
|
|
273
|
+
if not hasattr(og.my_app, 'get_overlay_view'):
|
|
274
|
+
og.my_app.get_overlay_view = self.get_overlay_view
|
|
266
275
|
logger.debug('init headless app end')
|
|
267
276
|
|
|
268
277
|
def tr(self, key):
|
|
@@ -289,6 +298,9 @@ class HeadlessApp:
|
|
|
289
298
|
if self.exit_event:
|
|
290
299
|
self.exit_event.set()
|
|
291
300
|
|
|
301
|
+
def get_overlay_view(self):
|
|
302
|
+
return None
|
|
303
|
+
|
|
292
304
|
|
|
293
305
|
def get_my_id():
|
|
294
306
|
mac = uuid.getnode()
|
|
@@ -365,8 +377,8 @@ class OK:
|
|
|
365
377
|
else:
|
|
366
378
|
available_methods.append(method)
|
|
367
379
|
|
|
368
|
-
self.global_config.
|
|
369
|
-
og.global_config = self.global_config
|
|
380
|
+
register_basic_options(self.global_config, enable_blur=callable(config.get('blur_area')))
|
|
381
|
+
og.global_config = self.global_config
|
|
370
382
|
og.set_use_dml()
|
|
371
383
|
try:
|
|
372
384
|
import ctypes
|
|
@@ -718,7 +730,7 @@ class BaseScene:
|
|
|
718
730
|
|
|
719
731
|
|
|
720
732
|
## globals.py
|
|
721
|
-
class OkGlobals:
|
|
733
|
+
class OkGlobals:
|
|
722
734
|
|
|
723
735
|
def __init__(self):
|
|
724
736
|
super().__init__()
|
|
@@ -741,7 +753,7 @@ class OkGlobals:
|
|
|
741
753
|
self.global_config = None
|
|
742
754
|
logger.info(f'app path {self.app_path}')
|
|
743
755
|
|
|
744
|
-
def set_use_dml(self):
|
|
756
|
+
def set_use_dml(self):
|
|
745
757
|
use_dml_txt_option = self.global_config.get_config('Basic Options').get('Use DirectML')
|
|
746
758
|
use_dml = False
|
|
747
759
|
if use_dml_txt_option == 'Auto':
|
|
@@ -756,7 +768,12 @@ class OkGlobals:
|
|
|
756
768
|
window_build_number = int(window_build_number_str) if window_build_number_str.isdigit() else 0
|
|
757
769
|
use_dml = window_build_number >= 18362
|
|
758
770
|
logger.info(f'use_dml result is {use_dml}')
|
|
759
|
-
self.use_dml = use_dml
|
|
771
|
+
self.use_dml = use_dml
|
|
772
|
+
|
|
773
|
+
def get_overlay_view(self):
|
|
774
|
+
if self.app and hasattr(self.app, 'get_overlay_view'):
|
|
775
|
+
return self.app.get_overlay_view()
|
|
776
|
+
return None
|
|
760
777
|
|
|
761
778
|
def get_trial_expire_util_str(self):
|
|
762
779
|
# Convert the timestamp to a datetime object
|
|
@@ -15,7 +15,9 @@ class Communicate(QObject):
|
|
|
15
15
|
loading_progress = Signal(str)
|
|
16
16
|
notification = Signal(str, str, bool, bool, str, object)
|
|
17
17
|
executor_paused: Signal = Signal(bool)
|
|
18
|
-
screenshot = Signal(object, str, bool, object)
|
|
18
|
+
screenshot = Signal(object, str, bool, object)
|
|
19
|
+
blur_overlay = Signal(object)
|
|
20
|
+
clear_blur_overlay = Signal()
|
|
19
21
|
adb_devices: Signal = Signal(bool)
|
|
20
22
|
config_validation: Signal = Signal(str)
|
|
21
23
|
tab = Signal(str)
|
|
@@ -215,14 +215,12 @@ def capture(processor=None):
|
|
|
215
215
|
if og.device_manager.capture_method is not None:
|
|
216
216
|
logger.info(f'og.device_manager.capture_method {og.device_manager.capture_method}')
|
|
217
217
|
try:
|
|
218
|
-
frame = og.device_manager.capture_method.get_frame()
|
|
219
|
-
if frame is not None:
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
og.ok.screenshot.screenshot_folder,
|
|
225
|
-
current_capture, True, None)
|
|
218
|
+
frame = og.device_manager.capture_method.get_frame()
|
|
219
|
+
if frame is not None:
|
|
220
|
+
current_capture = str(og.device_manager.capture_method) + '_' + str(time.time() * 1000)
|
|
221
|
+
file_path = og.ok.screenshot.generate_screen_shot(frame, og.ok.screenshot.ui_dict,
|
|
222
|
+
og.ok.screenshot.screenshot_folder,
|
|
223
|
+
current_capture, True, None, processor=processor)
|
|
226
224
|
|
|
227
225
|
# Use subprocess.Popen to open the file explorer and select the file
|
|
228
226
|
subprocess.Popen(r'explorer /select,"{}"'.format(file_path))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import win32api
|
|
2
|
-
from PySide6.QtCore import Qt, QPoint, QTimer, QRectF, QRect
|
|
3
|
-
from PySide6.QtGui import QPainter, QColor, QPen, QFont, QGuiApplication, QBrush
|
|
1
|
+
import win32api
|
|
2
|
+
from PySide6.QtCore import Qt, QPoint, QTimer, QRectF, QRect
|
|
3
|
+
from PySide6.QtGui import QPainter, QColor, QPen, QFont, QGuiApplication, QBrush, QImage
|
|
4
4
|
from PySide6.QtWidgets import QWidget
|
|
5
5
|
|
|
6
6
|
from ok import Logger
|
|
@@ -37,8 +37,9 @@ class OverlayWidget(QWidget):
|
|
|
37
37
|
self.log_font.setPointSize(10)
|
|
38
38
|
screen = QGuiApplication.primaryScreen()
|
|
39
39
|
self.scaling = screen.devicePixelRatio()
|
|
40
|
-
self.logs = []
|
|
41
|
-
|
|
40
|
+
self.logs = []
|
|
41
|
+
self.blur_images = []
|
|
42
|
+
communicate.log.connect(self.add_log)
|
|
42
43
|
|
|
43
44
|
def add_log(self, level_no, message):
|
|
44
45
|
for log in self.black_list_logs:
|
|
@@ -155,19 +156,59 @@ class OverlayWidget(QWidget):
|
|
|
155
156
|
return 1
|
|
156
157
|
return self.width() / og.device_manager.width
|
|
157
158
|
|
|
158
|
-
def paintEvent(self, event):
|
|
159
|
-
if not self.isVisible():
|
|
160
|
-
return
|
|
161
|
-
painter = QPainter(self)
|
|
162
|
-
self.
|
|
163
|
-
self
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
self.
|
|
169
|
-
|
|
170
|
-
|
|
159
|
+
def paintEvent(self, event):
|
|
160
|
+
if not self.isVisible():
|
|
161
|
+
return
|
|
162
|
+
painter = QPainter(self)
|
|
163
|
+
self.paint_blur(painter)
|
|
164
|
+
boxes_active = getattr(self, '_boxes_enabled', True) and getattr(self, '_boxes_active', False)
|
|
165
|
+
if boxes_active:
|
|
166
|
+
self.paint_boxes(painter)
|
|
167
|
+
self.paint_border(painter)
|
|
168
|
+
self.paint_mouse_position(painter)
|
|
169
|
+
self.paint_logs(painter)
|
|
170
|
+
self.paint_alt_overlay(painter)
|
|
171
|
+
if og.config.get('debug_cover_uid'):
|
|
172
|
+
self.paint_uid_cover(painter)
|
|
173
|
+
self.paint_custom(painter)
|
|
174
|
+
|
|
175
|
+
def set_blur_patches(self, patches):
|
|
176
|
+
images = []
|
|
177
|
+
for x, y, width, height, patch in patches:
|
|
178
|
+
if patch is None or patch.size == 0:
|
|
179
|
+
continue
|
|
180
|
+
if len(patch.shape) == 2:
|
|
181
|
+
image_data = patch.copy()
|
|
182
|
+
image_format = QImage.Format_Grayscale8
|
|
183
|
+
else:
|
|
184
|
+
image_data = patch[:, :, :3][:, :, ::-1].copy()
|
|
185
|
+
image_format = QImage.Format_RGB888
|
|
186
|
+
image = QImage(image_data.data, width, height, image_data.strides[0], image_format).copy()
|
|
187
|
+
images.append((x, y, width, height, image))
|
|
188
|
+
self.blur_images = images
|
|
189
|
+
self.update()
|
|
190
|
+
|
|
191
|
+
def clear_blur_patches(self):
|
|
192
|
+
self.blur_images = []
|
|
193
|
+
self.update()
|
|
194
|
+
|
|
195
|
+
def paint_blur(self, painter):
|
|
196
|
+
frame_ratio = self.frame_ratio()
|
|
197
|
+
for x, y, width, height, image in self.blur_images:
|
|
198
|
+
painter.drawImage(QRectF(x * frame_ratio, y * frame_ratio,
|
|
199
|
+
width * frame_ratio, height * frame_ratio), image)
|
|
200
|
+
|
|
201
|
+
def paint_custom(self, painter):
|
|
202
|
+
for key, callback in list(getattr(self, 'custom_painters', {}).items()):
|
|
203
|
+
painter.save()
|
|
204
|
+
try:
|
|
205
|
+
callback(painter, self)
|
|
206
|
+
except Exception as e:
|
|
207
|
+
logger.warning(f'custom overlay painter {key} failed: {e}')
|
|
208
|
+
finally:
|
|
209
|
+
painter.restore()
|
|
210
|
+
|
|
211
|
+
def paint_alt_overlay(self, painter):
|
|
171
212
|
if not getattr(self, '_is_alt_down', False):
|
|
172
213
|
return
|
|
173
214
|
|
|
@@ -11,7 +11,8 @@ from PySide6.QtGui import QColor
|
|
|
11
11
|
|
|
12
12
|
from ok import Box, og
|
|
13
13
|
from ok import Logger
|
|
14
|
-
from ok.gui.Communicate import communicate
|
|
14
|
+
from ok.gui.Communicate import communicate
|
|
15
|
+
from ok.util.blur import apply_blur_areas, get_blur_algorithm
|
|
15
16
|
from ok.util.file import find_first_existing_file, clear_folder, sanitize_filename, \
|
|
16
17
|
get_relative_path
|
|
17
18
|
|
|
@@ -126,10 +127,10 @@ class Screenshot(QObject):
|
|
|
126
127
|
self.generate_screen_shot(task[0], task[1], task[2], task[3], task[4], task[5])
|
|
127
128
|
self.task_queue.task_done()
|
|
128
129
|
|
|
129
|
-
def generate_screen_shot(self, frame, ui_dict, folder, name, show_box, frame_box):
|
|
130
|
-
if folder is None:
|
|
131
|
-
return
|
|
132
|
-
pil_image = self.to_pil_image(frame)
|
|
130
|
+
def generate_screen_shot(self, frame, ui_dict, folder, name, show_box, frame_box, processor=None):
|
|
131
|
+
if folder is None:
|
|
132
|
+
return
|
|
133
|
+
pil_image = self.to_pil_image(frame, processor=processor)
|
|
133
134
|
if pil_image is None:
|
|
134
135
|
return
|
|
135
136
|
|
|
@@ -180,13 +181,17 @@ class Screenshot(QObject):
|
|
|
180
181
|
if self.task_queue is not None:
|
|
181
182
|
self.task_queue.put(None)
|
|
182
183
|
|
|
183
|
-
def to_pil_image(self, frame):
|
|
184
|
-
if frame is None:
|
|
185
|
-
return None
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
if
|
|
189
|
-
|
|
184
|
+
def to_pil_image(self, frame, processor=None):
|
|
185
|
+
if frame is None:
|
|
186
|
+
return None
|
|
187
|
+
frame = apply_blur_areas(frame, og.config.get('blur_area'),
|
|
188
|
+
get_blur_algorithm(getattr(og, 'global_config', None)))
|
|
189
|
+
if processor is None:
|
|
190
|
+
processor = og.config.get('screenshot_processor')
|
|
191
|
+
if processor:
|
|
192
|
+
frame = processor(frame.copy())
|
|
193
|
+
if len(frame.shape) == 2:
|
|
194
|
+
frame = cv2.cvtColor(frame, cv2.COLOR_GRAY2BGR)
|
|
190
195
|
return Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB))
|
|
191
196
|
|
|
192
197
|
|
|
Binary file
|
|
@@ -819,12 +819,12 @@
|
|
|
819
819
|
<translation>Choose Interaction</translation>
|
|
820
820
|
</message>
|
|
821
821
|
<message>
|
|
822
|
-
<source>
|
|
823
|
-
<translation>
|
|
822
|
+
<source>Enable Boxes</source>
|
|
823
|
+
<translation>Enable Boxes</translation>
|
|
824
824
|
</message>
|
|
825
825
|
<message>
|
|
826
|
-
<source>
|
|
827
|
-
<translation>
|
|
826
|
+
<source>Disable Boxes</source>
|
|
827
|
+
<translation>Disable Boxes</translation>
|
|
828
828
|
</message>
|
|
829
829
|
<message>
|
|
830
830
|
<source>Show Log on Overlay</source>
|
|
@@ -1167,10 +1167,34 @@
|
|
|
1167
1167
|
<source>Switch between different Windows capture methods</source>
|
|
1168
1168
|
<translation>Switch between different Windows capture methods</translation>
|
|
1169
1169
|
</message>
|
|
1170
|
-
<message>
|
|
1171
|
-
<source>Basic Options</source>
|
|
1172
|
-
<translation>Basic Options</translation>
|
|
1173
|
-
</message>
|
|
1170
|
+
<message>
|
|
1171
|
+
<source>Basic Options</source>
|
|
1172
|
+
<translation>Basic Options</translation>
|
|
1173
|
+
</message>
|
|
1174
|
+
<message>
|
|
1175
|
+
<source>Enable Blur</source>
|
|
1176
|
+
<translation>Enable Blur</translation>
|
|
1177
|
+
</message>
|
|
1178
|
+
<message>
|
|
1179
|
+
<source>Blur Game UID etc to enhance OLED life</source>
|
|
1180
|
+
<translation>Blur Game UID etc to enhance OLED life</translation>
|
|
1181
|
+
</message>
|
|
1182
|
+
<message>
|
|
1183
|
+
<source>Blur Algorithm</source>
|
|
1184
|
+
<translation>Blur Algorithm</translation>
|
|
1185
|
+
</message>
|
|
1186
|
+
<message>
|
|
1187
|
+
<source>Method used to obscure configured areas</source>
|
|
1188
|
+
<translation>Method used to obscure configured areas</translation>
|
|
1189
|
+
</message>
|
|
1190
|
+
<message>
|
|
1191
|
+
<source>Blur</source>
|
|
1192
|
+
<translation>Blur</translation>
|
|
1193
|
+
</message>
|
|
1194
|
+
<message>
|
|
1195
|
+
<source>Inpaint</source>
|
|
1196
|
+
<translation>Inpaint</translation>
|
|
1197
|
+
</message>
|
|
1174
1198
|
<message>
|
|
1175
1199
|
<source>Use DirectML</source>
|
|
1176
1200
|
<translation>Use DirectML</translation>
|
|
Binary file
|
|
@@ -817,12 +817,12 @@
|
|
|
817
817
|
<translation>Elegir interacción</translation>
|
|
818
818
|
</message>
|
|
819
819
|
<message>
|
|
820
|
-
<source>
|
|
821
|
-
<translation>
|
|
820
|
+
<source>Enable Boxes</source>
|
|
821
|
+
<translation>Activar cuadros</translation>
|
|
822
822
|
</message>
|
|
823
823
|
<message>
|
|
824
|
-
<source>
|
|
825
|
-
<translation>
|
|
824
|
+
<source>Disable Boxes</source>
|
|
825
|
+
<translation>Desactivar cuadros</translation>
|
|
826
826
|
</message>
|
|
827
827
|
<message>
|
|
828
828
|
<source>Show Log on Overlay</source>
|
|
@@ -1165,10 +1165,34 @@
|
|
|
1165
1165
|
<source>Switch between different Windows capture methods</source>
|
|
1166
1166
|
<translation>Cambiar entre diferentes métodos de captura de Windows</translation>
|
|
1167
1167
|
</message>
|
|
1168
|
-
<message>
|
|
1169
|
-
<source>Basic Options</source>
|
|
1170
|
-
<translation>Opciones básicas</translation>
|
|
1171
|
-
</message>
|
|
1168
|
+
<message>
|
|
1169
|
+
<source>Basic Options</source>
|
|
1170
|
+
<translation>Opciones básicas</translation>
|
|
1171
|
+
</message>
|
|
1172
|
+
<message>
|
|
1173
|
+
<source>Enable Blur</source>
|
|
1174
|
+
<translation>Activar desenfoque</translation>
|
|
1175
|
+
</message>
|
|
1176
|
+
<message>
|
|
1177
|
+
<source>Blur Game UID etc to enhance OLED life</source>
|
|
1178
|
+
<translation>Desenfoca el UID del juego y otros elementos para prolongar la vida del OLED</translation>
|
|
1179
|
+
</message>
|
|
1180
|
+
<message>
|
|
1181
|
+
<source>Blur Algorithm</source>
|
|
1182
|
+
<translation>Algoritmo de ocultación</translation>
|
|
1183
|
+
</message>
|
|
1184
|
+
<message>
|
|
1185
|
+
<source>Method used to obscure configured areas</source>
|
|
1186
|
+
<translation>Método utilizado para ocultar las áreas configuradas</translation>
|
|
1187
|
+
</message>
|
|
1188
|
+
<message>
|
|
1189
|
+
<source>Blur</source>
|
|
1190
|
+
<translation>Desenfoque</translation>
|
|
1191
|
+
</message>
|
|
1192
|
+
<message>
|
|
1193
|
+
<source>Inpaint</source>
|
|
1194
|
+
<translation>Relleno inteligente</translation>
|
|
1195
|
+
</message>
|
|
1172
1196
|
<message>
|
|
1173
1197
|
<source>Use DirectML</source>
|
|
1174
1198
|
<translation>Usar DirectML</translation>
|
|
Binary file
|
|
@@ -813,12 +813,12 @@
|
|
|
813
813
|
<translation>操作方法の選択</translation>
|
|
814
814
|
</message>
|
|
815
815
|
<message>
|
|
816
|
-
<source>
|
|
817
|
-
<translation
|
|
816
|
+
<source>Enable Boxes</source>
|
|
817
|
+
<translation>ボックスを有効化</translation>
|
|
818
818
|
</message>
|
|
819
819
|
<message>
|
|
820
|
-
<source>
|
|
821
|
-
<translation
|
|
820
|
+
<source>Disable Boxes</source>
|
|
821
|
+
<translation>ボックスを無効化</translation>
|
|
822
822
|
</message>
|
|
823
823
|
<message>
|
|
824
824
|
<source>Show Log on Overlay</source>
|
|
@@ -1157,10 +1157,34 @@
|
|
|
1157
1157
|
<source>Switch between different Windows capture methods</source>
|
|
1158
1158
|
<translation>異なる Windows キャプチャ方式を切り替える</translation>
|
|
1159
1159
|
</message>
|
|
1160
|
-
<message>
|
|
1161
|
-
<source>Basic Options</source>
|
|
1162
|
-
<translation>基本オプション</translation>
|
|
1163
|
-
</message>
|
|
1160
|
+
<message>
|
|
1161
|
+
<source>Basic Options</source>
|
|
1162
|
+
<translation>基本オプション</translation>
|
|
1163
|
+
</message>
|
|
1164
|
+
<message>
|
|
1165
|
+
<source>Enable Blur</source>
|
|
1166
|
+
<translation>ぼかしを有効化</translation>
|
|
1167
|
+
</message>
|
|
1168
|
+
<message>
|
|
1169
|
+
<source>Blur Game UID etc to enhance OLED life</source>
|
|
1170
|
+
<translation>ゲーム UID などをぼかして OLED の寿命を延ばします</translation>
|
|
1171
|
+
</message>
|
|
1172
|
+
<message>
|
|
1173
|
+
<source>Blur Algorithm</source>
|
|
1174
|
+
<translation>マスク処理方式</translation>
|
|
1175
|
+
</message>
|
|
1176
|
+
<message>
|
|
1177
|
+
<source>Method used to obscure configured areas</source>
|
|
1178
|
+
<translation>設定領域を隠すための処理方式</translation>
|
|
1179
|
+
</message>
|
|
1180
|
+
<message>
|
|
1181
|
+
<source>Blur</source>
|
|
1182
|
+
<translation>ぼかし</translation>
|
|
1183
|
+
</message>
|
|
1184
|
+
<message>
|
|
1185
|
+
<source>Inpaint</source>
|
|
1186
|
+
<translation>インペイント</translation>
|
|
1187
|
+
</message>
|
|
1164
1188
|
<message>
|
|
1165
1189
|
<source>Use DirectML</source>
|
|
1166
1190
|
<translation>DirectMLを使用</translation>
|
|
Binary file
|
|
@@ -818,12 +818,12 @@
|
|
|
818
818
|
<translation>상호 작용 선택</translation>
|
|
819
819
|
</message>
|
|
820
820
|
<message>
|
|
821
|
-
<source>
|
|
822
|
-
<translation
|
|
821
|
+
<source>Enable Boxes</source>
|
|
822
|
+
<translation>박스 사용</translation>
|
|
823
823
|
</message>
|
|
824
824
|
<message>
|
|
825
|
-
<source>
|
|
826
|
-
<translation
|
|
825
|
+
<source>Disable Boxes</source>
|
|
826
|
+
<translation>박스 사용 안 함</translation>
|
|
827
827
|
</message>
|
|
828
828
|
<message>
|
|
829
829
|
<source>Show Log on Overlay</source>
|
|
@@ -1166,10 +1166,34 @@
|
|
|
1166
1166
|
<source>Switch between different Windows capture methods</source>
|
|
1167
1167
|
<translation>다양한 Windows 캡처 방식 간에 전환</translation>
|
|
1168
1168
|
</message>
|
|
1169
|
-
<message>
|
|
1170
|
-
<source>Basic Options</source>
|
|
1171
|
-
<translation>기본 옵션</translation>
|
|
1172
|
-
</message>
|
|
1169
|
+
<message>
|
|
1170
|
+
<source>Basic Options</source>
|
|
1171
|
+
<translation>기본 옵션</translation>
|
|
1172
|
+
</message>
|
|
1173
|
+
<message>
|
|
1174
|
+
<source>Enable Blur</source>
|
|
1175
|
+
<translation>블러 사용</translation>
|
|
1176
|
+
</message>
|
|
1177
|
+
<message>
|
|
1178
|
+
<source>Blur Game UID etc to enhance OLED life</source>
|
|
1179
|
+
<translation>게임 UID 등을 흐리게 표시하여 OLED 수명을 늘립니다</translation>
|
|
1180
|
+
</message>
|
|
1181
|
+
<message>
|
|
1182
|
+
<source>Blur Algorithm</source>
|
|
1183
|
+
<translation>가림 알고리즘</translation>
|
|
1184
|
+
</message>
|
|
1185
|
+
<message>
|
|
1186
|
+
<source>Method used to obscure configured areas</source>
|
|
1187
|
+
<translation>설정된 영역을 가리는 처리 방법</translation>
|
|
1188
|
+
</message>
|
|
1189
|
+
<message>
|
|
1190
|
+
<source>Blur</source>
|
|
1191
|
+
<translation>블러</translation>
|
|
1192
|
+
</message>
|
|
1193
|
+
<message>
|
|
1194
|
+
<source>Inpaint</source>
|
|
1195
|
+
<translation>인페인트</translation>
|
|
1196
|
+
</message>
|
|
1173
1197
|
<message>
|
|
1174
1198
|
<source>Use DirectML</source>
|
|
1175
1199
|
<translation>DirectML 사용</translation>
|
|
Binary file
|
|
@@ -819,12 +819,12 @@
|
|
|
819
819
|
<translation>选择交互方式</translation>
|
|
820
820
|
</message>
|
|
821
821
|
<message>
|
|
822
|
-
<source>
|
|
823
|
-
<translation
|
|
822
|
+
<source>Enable Boxes</source>
|
|
823
|
+
<translation>启用标记框</translation>
|
|
824
824
|
</message>
|
|
825
825
|
<message>
|
|
826
|
-
<source>
|
|
827
|
-
<translation
|
|
826
|
+
<source>Disable Boxes</source>
|
|
827
|
+
<translation>禁用标记框</translation>
|
|
828
828
|
</message>
|
|
829
829
|
<message>
|
|
830
830
|
<source>Show Log on Overlay</source>
|
|
@@ -1163,10 +1163,34 @@
|
|
|
1163
1163
|
<source>Switch between different Windows capture methods</source>
|
|
1164
1164
|
<translation>切换不同的 Windows 截图方式</translation>
|
|
1165
1165
|
</message>
|
|
1166
|
-
<message>
|
|
1167
|
-
<source>Basic Options</source>
|
|
1168
|
-
<translation>基本设置</translation>
|
|
1169
|
-
</message>
|
|
1166
|
+
<message>
|
|
1167
|
+
<source>Basic Options</source>
|
|
1168
|
+
<translation>基本设置</translation>
|
|
1169
|
+
</message>
|
|
1170
|
+
<message>
|
|
1171
|
+
<source>Enable Blur</source>
|
|
1172
|
+
<translation>启用模糊遮挡</translation>
|
|
1173
|
+
</message>
|
|
1174
|
+
<message>
|
|
1175
|
+
<source>Blur Game UID etc to enhance OLED life</source>
|
|
1176
|
+
<translation>模糊游戏 UID 等固定内容以延长 OLED 屏幕寿命</translation>
|
|
1177
|
+
</message>
|
|
1178
|
+
<message>
|
|
1179
|
+
<source>Blur Algorithm</source>
|
|
1180
|
+
<translation>遮挡算法</translation>
|
|
1181
|
+
</message>
|
|
1182
|
+
<message>
|
|
1183
|
+
<source>Method used to obscure configured areas</source>
|
|
1184
|
+
<translation>用于遮挡配置区域的处理方式</translation>
|
|
1185
|
+
</message>
|
|
1186
|
+
<message>
|
|
1187
|
+
<source>Blur</source>
|
|
1188
|
+
<translation>模糊</translation>
|
|
1189
|
+
</message>
|
|
1190
|
+
<message>
|
|
1191
|
+
<source>Inpaint</source>
|
|
1192
|
+
<translation>内容填充</translation>
|
|
1193
|
+
</message>
|
|
1170
1194
|
<message>
|
|
1171
1195
|
<source>Use DirectML</source>
|
|
1172
1196
|
<translation>使用DirectML</translation>
|
|
Binary file
|