contextweave 2.8.2__tar.gz → 2.8.3__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.
- {contextweave-2.8.2 → contextweave-2.8.3}/PKG-INFO +1 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/cat-ui.spec +2 -0
- contextweave-2.8.3/context_aware_translation/ui/constants.py +46 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/app_setup_view.py +15 -23
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/library_view.py +6 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/project_settings_pane.py +5 -5
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/queue_drawer_view.py +1 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/work_view.py +21 -24
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/workflow_profile_editor.py +5 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/app/AppShellChrome.qml +15 -24
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/dialogs/app_settings/AppSettingsPane.qml +1 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/dialogs/project_settings/ProjectSettingsPane.qml +23 -13
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/document/DocumentShellChrome.qml +15 -15
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/document/translation/DocumentTranslationPaneChrome.qml +33 -14
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/project/ProjectShellChrome.qml +14 -13
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/project/work_home/WorkHomeChrome.qml +12 -6
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/queue/QueueShellChrome.qml +17 -7
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/resources/styles.qss +89 -86
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/shell_hosts/app_settings_dialog_host.py +3 -21
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/shell_hosts/hybrid.py +19 -5
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/shell_hosts/project_settings_dialog_host.py +3 -21
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/translations/zh_CN.qm +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/translations/zh_CN.ts +7 -8
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/app_settings_pane.py +1 -3
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/document_translation_pane.py +1 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/window_controllers.py +11 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/pyproject.toml +1 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_app_settings_dialog_host.py +11 -12
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_app_settings_pane.py +33 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_app_settings_pane_viewmodel.py +1 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_app_setup_view.py +51 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_app_shell_host.py +3 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_translation_pane_viewmodel.py +1 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_library_view.py +6 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_main.py +13 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_project_settings_dialog_host.py +11 -12
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_project_settings_pane.py +56 -22
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_project_shell_host.py +2 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_qml_bootstrap.py +1 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_queue_shell_host.py +2 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_shell_host_infrastructure.py +1 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_ui_clickthrough_smoke.py +5 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_work_view.py +37 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_workflow_profile_editor.py +43 -0
- contextweave-2.8.2/context_aware_translation/ui/constants.py +0 -26
- contextweave-2.8.2/context_aware_translation/ui/qml/dialogs/app_settings/AppSettingsDialogChrome.qml +0 -77
- contextweave-2.8.2/context_aware_translation/ui/qml/dialogs/project_settings/ProjectSettingsDialogChrome.qml +0 -77
- {contextweave-2.8.2 → contextweave-2.8.3}/.github/workflows/release.yml +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/.gitignore +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/LICENSE +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/Makefile +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/README.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/README_ZH.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/files/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/files/glossary_io.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/application_event_bridge.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/task_engine.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/base_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/batch_task_overlap_guard.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/batch_translation_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/chunk_retranslation_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/export_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/glossary_export_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/glossary_extraction_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/glossary_review_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/glossary_translation_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/image_reembedding_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/import_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/ocr_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/operation_tracker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/translate_and_export_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/translation_manga_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/adapters/qt/workers/translation_text_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/app_identity.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/composition.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/app_setup.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/common.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/document.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/project_setup.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/projects.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/queue.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/terms.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/contracts/work.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/errors.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/events.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/runtime.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/_export_support.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/app_setup.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/document.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/project_setup.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/projects.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/queue.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/terms.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/application/services/work.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/cli/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/cli/config_file.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/cli/galgame_skill.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/cli/main.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/cli/output.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/cli/runtime.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/cli/wait.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/config.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/cancellation.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/context_extractor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/context_manager.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/galgame_document_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/manga_document_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/models.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/progress.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/term_memory.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/term_memory_builder.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/core/translation_strategies.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/base.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/content/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/content/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/content/ocr_content.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/content/ocr_items.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_container.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/container_model.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/container_patch.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/container_reader.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/container_shared.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/container_writer.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/inline_markers.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/nav_ops.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/slot_lines.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_support/xml_utils.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/epub_xhtml_utils.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/galgame.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/manga.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/manga_alignment.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/manga_reembed_planner.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/pdf.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/scanned_book.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/subtitle.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/documents/text.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/languages.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/batch_jobs/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/batch_jobs/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/batch_jobs/base.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/batch_jobs/gemini_gateway.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/client.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/epub_ocr.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/extractor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/glossary_translator.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/image_backend_base.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/image_backends/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/image_backends/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/image_backends/gemini_backend.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/image_backends/openai_backend.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/image_backends/qwen_backend.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/image_generator.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/language_detector.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/language_pair_prompts/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/language_pair_prompts/japanese_to_simplified_chinese.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/manga_ocr.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/manga_translator.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/ocr.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/reviewer.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/session_trace.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/summarizor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/token_tracker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/translation_strategies.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/llm/translator.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/hk2s.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/jp2s.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/s2hk.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/s2t.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/s2tw.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/s2twp.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/t2hk.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/t2s.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/t2tw.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/tw2s.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/config/tw2sp.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/HKVariants.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/HKVariantsPhrases.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/HKVariantsRev.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/HKVariantsRevPhrases.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/JPVariants.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/JPVariantsRev.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/STCharacters.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/STPhrases.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/TSCharacters.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/TSPhrases.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/TWPhrases.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/TWPhrasesRev.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/TWVariants.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/TWVariantsRev.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/opencc/dictionary/TWVariantsRevPhrases.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/tokenizers/deepseek-v3/special_tokens_map.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/tokenizers/deepseek-v3/tokenizer.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/resources/tokenizers/deepseek-v3/tokenizer_config.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/stdio.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/library/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/library/book_manager.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/models/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/models/book.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/models/config_profile.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/models/endpoint_profile.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/repositories/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/repositories/document_repository.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/repositories/llm_batch_store.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/repositories/task_store.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/repositories/term_repository.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/repositories/translation_batch_task_store.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/schema/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/schema/book_db.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/schema/registry_db.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/storage/sqlite_locking.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/chrome_sizing.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/app_settings_pane.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/document_images_view.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/document_ocr_tab.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/document_translation_view.py +1 -1
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/document_workspace_view.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/terms_table_widget.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/terms_view.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/i18n.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/json_utils.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/main.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/main_window.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/BootstrapProbe.qml +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/document/export/DocumentExportPaneChrome.qml +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/document/images/DocumentImagesPaneChrome.qml +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/document/ocr/DocumentOCRPaneChrome.qml +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/project/terms/TermsPaneChrome.qml +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml_resources.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/resources/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/shell_hosts/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/shell_hosts/app_shell_host.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/shell_hosts/document_shell_host.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/shell_hosts/project_shell_host.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/shell_hosts/queue_shell_host.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/sleep_inhibitor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/startup.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/tips.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/app_settings_dialog.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/app_shell.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/base.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/document_export_pane.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/document_images_pane.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/document_ocr_pane.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/document_shell.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/project_settings_dialog.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/project_settings_pane.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/project_shell.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/queue_shell.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/router.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/terms_pane.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/viewmodels/work_home.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/widgets/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/widgets/hybrid_controls.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/widgets/image_viewer.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/widgets/progress_widget.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/widgets/table_support.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/chunking.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/cjk_normalize.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/compression_marker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/file_utils.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/hard_wrap.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/hashing.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/image_utils.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/llm_json_cleaner.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/markdown_escape.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/pandoc_export.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/semantic_chunker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/string_similarity.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/utils/symbol_check.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/bootstrap.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/image_fetcher.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/ops/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/ops/bootstrap_ops.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/ops/export_ops.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/ops/glossary_ops.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/ops/import_ops.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/ops/import_support.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/ops/ocr_ops.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/ops/translation_ops.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/runtime.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/session.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/task_runtime.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/claims.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/engine_core.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/exceptions.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/execution/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/execution/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/execution/batch_translation_executor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/execution/batch_translation_ops.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/glossary_preflight.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/base.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/batch_translation.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/chunk_retranslation.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/glossary_export.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/glossary_extraction.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/glossary_review.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/glossary_translation.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/image_reembedding.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/ocr.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/translate_and_export.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/translation_manga.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/handlers/translation_text.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/models.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/translate_and_export_support.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/workflow/tasks/worker_deps.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/demo/The Count of Monte Cristo.epub +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/demo//345/237/272/347/235/243/345/261/261/344/274/257/347/210/265.epub" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/.nojekyll +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/examples/contextweave-cli.yaml +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/index.html +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/project-terms-manual-entry-ux.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN/API/351/205/215/347/275/256.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN/latest_new_project_dialog.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN/latest_project_work_overview.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN/latest_projects_overview.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN/latest_setup_wizard_provider_selection.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN/latest_setup_wizard_workflow_profile_review.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN/latest_terms_overview.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN//345/257/274/345/205/245.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN//345/257/274/345/207/272.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN//346/226/260/351/241/271/347/233/256.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN//346/234/257/350/257/255.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN//347/277/273/350/257/221.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN//350/256/276/347/275/256.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN//350/256/276/347/275/256/345/220/221/345/257/274.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/CN//350/256/276/347/275/256/347/273/223/346/235/237.png" +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/APISetup.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/Export.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/Import.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/InitialSetup.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/Language.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/NewProject.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/Terms.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/Translate.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/TranslateAndExport.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/Wizard.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/latest_new_project_dialog.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/latest_project_work_overview.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/latest_projects_overview.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/latest_setup_wizard_provider_selection.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/latest_setup_wizard_workflow_profile_review.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/screenshots/EN/latest_terms_overview.png +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/docs/styles.css +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/installer/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/installer/macos/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/installer/macos/entitlements.plist +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/installer/windows/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/scripts/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/scripts/build_ui.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/scripts/generate_readme_screenshots.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/scripts/run_ui_tests.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/adapters/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/adapters/files/test_glossary_io.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/fakes.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_composition.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_contracts.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_document_service.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_document_translation_service.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_events.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_export_services.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_queue_service.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_terms_service.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/application/test_ui_harness_pattern.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/architecture/test_migrated_ui_boundaries.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/architecture/test_packaging_hidden_imports.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/architecture/test_qml_ui_boundaries.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/cli/test_cli.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/config/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/config/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/config/test_endpoint_profiles.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/conftest.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/expected_batching_output.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test-terms.json +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test_context_extractor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test_context_manager.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test_galgame_document_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test_manga_document_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test_models.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test_noise_filtering_pipeline.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test_term_memory_builder.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/core/test_translation_context_manager_strategy_api.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/data/test_chunk.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/data/test_chunk2.txt +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/content/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/content/test_ocr_content.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/content/test_ocr_items.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_base.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_epub.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_epub_container.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_epub_inline_markers.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_epub_xhtml_utils.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_galgame.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_manga.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_manga_alignment.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_ocr_image_embedded_text.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_pdf.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_scanned_book.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_subtitle.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/documents/test_text.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/integration/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/integration/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/integration/test_business_logic.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_extractor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_extractor_unit.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_gemini_backend.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_gemini_batch_gateway.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_glossary_translator.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_image_generator.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_image_token_usage.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_language_detector.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_language_pair_prompts.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_llm_client.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_manga_translator.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_ocr.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_reviewer.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_session_trace.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_summarizor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_token_tracker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_token_usage_extraction.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/llm/test_translator.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_book_db.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_book_manager.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_document_repository.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_document_tables.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_llm_batch_store.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_task_store.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_term_repository.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_token_tracking.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/storage/test_translation_batch_task_store.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/test_languages.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/test_logging_handlers.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/test_stdio.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/conftest.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/tasks/test_task_engine.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_app_settings_dialog_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_app_shell_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_export_pane_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_images_pane_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_images_view.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_ocr_tab.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_shell_host.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_shell_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_translation_view.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_document_workspace_view.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_i18n_progress_messages.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_image_viewer.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_main_window_shell.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_progress_widget.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_project_settings_dialog_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_project_settings_pane_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_project_shell_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_qml_viewmodel_harness.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_queue_drawer_view.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_queue_shell_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_sleep_inhibitor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_terms_pane_viewmodel.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_terms_view.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_viewmodel_base.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/test_worker_cancellation_reporting.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_batch_task_overlap_guard.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_chunk_retranslation_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_config_snapshot_workers.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_glossary_export_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_glossary_review_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_ocr_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_operation_tracker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_translate_and_export_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_translation_manga_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/ui/workers/test_translation_text_task_worker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_chunking.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_cjk_normalize.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_file_utils.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_hard_wrap.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_hashing.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_llm_json_cleaner.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_markdown_escape.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_semantic_chunker.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_string_similarity.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/utils/test_symbol_check.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/execution/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/execution/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/execution/test_batch_translation_executor.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/AGENTS.md +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/__init__.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_batch_translation_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_chunk_retranslation_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_glossary_export_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_glossary_extraction_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_glossary_review_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_glossary_translation_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_image_reembedding_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_ocr_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_translate_and_export_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_translation_manga_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/handlers/test_translation_text_handler.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/test_claims.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/tasks/test_engine_core.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_glossary_ops_scoping.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_import_export.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_multi_document.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_ocr_required_for_translation.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_run_ocr.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_service_bootstrap_lock.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_service_cancellation_semantics.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_session.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_translator_image_fetcher.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/tests/workflow/test_translator_import_path.py +0 -0
- {contextweave-2.8.2 → contextweave-2.8.3}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: contextweave
|
|
3
|
-
Version: 2.8.
|
|
3
|
+
Version: 2.8.3
|
|
4
4
|
Summary: ContextWeave: context-aware document translation with glossary management
|
|
5
5
|
Project-URL: Homepage, https://github.com/bot-32142/ContextWeave
|
|
6
6
|
Project-URL: Documentation, https://bot-32142.github.io/ContextWeave/
|
|
@@ -20,6 +20,8 @@ APP_VERSION = _pyproject['project']['version']
|
|
|
20
20
|
|
|
21
21
|
# Collect data files
|
|
22
22
|
datas = [
|
|
23
|
+
# Runtime version source used by the About dialog.
|
|
24
|
+
(str(project_root / 'pyproject.toml'), '.'),
|
|
23
25
|
# UI resources
|
|
24
26
|
(str(project_root / 'context_aware_translation' / 'ui' / 'resources'),
|
|
25
27
|
'context_aware_translation/ui/resources'),
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"""Constants for the UI module."""
|
|
2
|
+
|
|
3
|
+
import tomllib
|
|
4
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from typing import Final
|
|
7
|
+
|
|
8
|
+
from context_aware_translation.languages import (
|
|
9
|
+
LANGUAGES,
|
|
10
|
+
display_target_language_name,
|
|
11
|
+
storage_target_language_name,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
__all__ = ("LANGUAGES", "display_target_language_name", "storage_target_language_name")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _application_version() -> str:
|
|
18
|
+
"""Return the source version in development and installed metadata in builds."""
|
|
19
|
+
source_pyproject = Path(__file__).resolve().parents[2] / "pyproject.toml"
|
|
20
|
+
try:
|
|
21
|
+
project = tomllib.loads(source_pyproject.read_text(encoding="utf-8")).get("project")
|
|
22
|
+
except (OSError, tomllib.TOMLDecodeError):
|
|
23
|
+
project = None
|
|
24
|
+
if isinstance(project, dict):
|
|
25
|
+
source_version = project.get("version")
|
|
26
|
+
if isinstance(source_version, str) and source_version:
|
|
27
|
+
return source_version
|
|
28
|
+
try:
|
|
29
|
+
return version("context-aware-translation")
|
|
30
|
+
except PackageNotFoundError: # pragma: no cover - only possible in malformed bundles
|
|
31
|
+
return "unknown"
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
APP_VERSION: Final[str] = _application_version()
|
|
35
|
+
|
|
36
|
+
# Default window dimensions
|
|
37
|
+
DEFAULT_WINDOW_WIDTH: Final[int] = 1120
|
|
38
|
+
DEFAULT_WINDOW_HEIGHT: Final[int] = 760
|
|
39
|
+
MIN_WINDOW_WIDTH: Final[int] = 800
|
|
40
|
+
MIN_WINDOW_HEIGHT: Final[int] = 600
|
|
41
|
+
|
|
42
|
+
# Sidebar width
|
|
43
|
+
SIDEBAR_WIDTH: Final[int] = 280
|
|
44
|
+
|
|
45
|
+
# Table defaults
|
|
46
|
+
DEFAULT_PAGE_SIZE: Final[int] = 50
|
{contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/app_setup_view.py
RENAMED
|
@@ -4,6 +4,7 @@ from collections.abc import Callable
|
|
|
4
4
|
from dataclasses import dataclass
|
|
5
5
|
|
|
6
6
|
from PySide6.QtCore import QT_TRANSLATE_NOOP, QCoreApplication, Qt, QTimer
|
|
7
|
+
from PySide6.QtGui import QShowEvent
|
|
7
8
|
from PySide6.QtWidgets import (
|
|
8
9
|
QButtonGroup,
|
|
9
10
|
QCheckBox,
|
|
@@ -435,13 +436,17 @@ class ConnectionEditorDialog(QDialog):
|
|
|
435
436
|
set_button_tone(self.button_box.button(QDialogButtonBox.StandardButton.Save), "primary")
|
|
436
437
|
set_button_tone(self.button_box.button(QDialogButtonBox.StandardButton.Cancel), "ghost")
|
|
437
438
|
set_button_tone(self.test_button)
|
|
438
|
-
self.form.advanced_section.toggled.connect(self.
|
|
439
|
-
self.form.tabs.currentChanged.connect(lambda _index: self.
|
|
440
|
-
self.
|
|
439
|
+
self.form.advanced_section.toggled.connect(self._schedule_content_layout)
|
|
440
|
+
self.form.tabs.currentChanged.connect(lambda _index: self._schedule_content_layout())
|
|
441
|
+
self._schedule_content_layout()
|
|
441
442
|
|
|
442
443
|
def request(self) -> SaveConnectionRequest:
|
|
443
444
|
return SaveConnectionRequest(connection=self.form.to_draft(), connection_id=self._connection_id)
|
|
444
445
|
|
|
446
|
+
def showEvent(self, event: QShowEvent) -> None:
|
|
447
|
+
super().showEvent(event)
|
|
448
|
+
self._refresh_content_layout()
|
|
449
|
+
|
|
445
450
|
def _accept_if_valid(self) -> None:
|
|
446
451
|
valid, message = self.form.validate(require_api_key=self._connection_id is None)
|
|
447
452
|
if not valid:
|
|
@@ -473,14 +478,11 @@ class ConnectionEditorDialog(QDialog):
|
|
|
473
478
|
self.uncached_input_label.setText(f"{summary.uncached_input_tokens_used:,}")
|
|
474
479
|
self.output_used_label.setText(f"{summary.output_tokens_used:,}")
|
|
475
480
|
|
|
476
|
-
def
|
|
477
|
-
QTimer.singleShot(0, self.
|
|
478
|
-
QTimer.singleShot(220, self.
|
|
481
|
+
def _schedule_content_layout(self, *_args: object) -> None:
|
|
482
|
+
QTimer.singleShot(0, self._refresh_content_layout)
|
|
483
|
+
QTimer.singleShot(220, self._refresh_content_layout)
|
|
479
484
|
|
|
480
|
-
def
|
|
481
|
-
current_tab = self.form.tabs.currentIndex()
|
|
482
|
-
is_advanced = current_tab == 0 and self.form.advanced_section.isExpanded()
|
|
483
|
-
target_width = 960 if is_advanced else 860
|
|
485
|
+
def _refresh_content_layout(self) -> None:
|
|
484
486
|
current_widget = self.form.tabs.currentWidget()
|
|
485
487
|
if current_widget is not None:
|
|
486
488
|
current_widget.adjustSize()
|
|
@@ -489,13 +491,6 @@ class ConnectionEditorDialog(QDialog):
|
|
|
489
491
|
self.form.tabs.setFixedHeight(tab_height)
|
|
490
492
|
self.layout().activate()
|
|
491
493
|
self.form.adjustSize()
|
|
492
|
-
if current_tab == 0 and not is_advanced:
|
|
493
|
-
target_height = 520
|
|
494
|
-
elif current_tab == 1:
|
|
495
|
-
target_height = 560 if self._connection_summary is not None else 500
|
|
496
|
-
else:
|
|
497
|
-
target_height = min(max(self.sizeHint().height(), 620), 760)
|
|
498
|
-
self.resize(max(self.width(), self.minimumWidth(), target_width), max(self.minimumHeight(), target_height))
|
|
499
494
|
|
|
500
495
|
def _show_test_result(self, result: ConnectionTestResult) -> None:
|
|
501
496
|
lines = [result.connection_label]
|
|
@@ -748,8 +743,8 @@ class SetupWizardDialog(QDialog):
|
|
|
748
743
|
self.page_layout.addWidget(profile_group)
|
|
749
744
|
self.page_layout.addStretch()
|
|
750
745
|
self._update_buttons()
|
|
751
|
-
QTimer.singleShot(0, self.
|
|
752
|
-
QTimer.singleShot(120, self.
|
|
746
|
+
QTimer.singleShot(0, self._refresh_page_layout)
|
|
747
|
+
QTimer.singleShot(120, self._refresh_page_layout)
|
|
753
748
|
|
|
754
749
|
def selected_providers(self) -> list[ProviderKind]:
|
|
755
750
|
checked = [provider for provider, (checkbox, _) in self._provider_inputs.items() if checkbox.isChecked()]
|
|
@@ -903,12 +898,9 @@ class SetupWizardDialog(QDialog):
|
|
|
903
898
|
self.next_button.setVisible(self._page_index < 1)
|
|
904
899
|
self.finish_button.setVisible(self._page_index == 1)
|
|
905
900
|
|
|
906
|
-
def
|
|
901
|
+
def _refresh_page_layout(self) -> None:
|
|
907
902
|
self.layout().activate()
|
|
908
903
|
self.page_content.adjustSize()
|
|
909
|
-
minimum_height = 360 if self._page_index == 0 else 520
|
|
910
|
-
target_height = min(max(self.sizeHint().height(), minimum_height), 760)
|
|
911
|
-
self.resize(max(self.width(), 780), target_height)
|
|
912
904
|
|
|
913
905
|
def _clear_page_layout(self) -> None:
|
|
914
906
|
while self.page_layout.count():
|
{contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/library_view.py
RENAMED
|
@@ -166,6 +166,8 @@ class LibraryView(QWidget):
|
|
|
166
166
|
|
|
167
167
|
def _setup_ui(self) -> None:
|
|
168
168
|
layout = QVBoxLayout(self)
|
|
169
|
+
layout.setContentsMargins(18, 14, 18, 18)
|
|
170
|
+
layout.setSpacing(12)
|
|
169
171
|
|
|
170
172
|
self.tip_label = create_tip_label(self._tip_text())
|
|
171
173
|
layout.addWidget(self.tip_label)
|
|
@@ -188,8 +190,12 @@ class LibraryView(QWidget):
|
|
|
188
190
|
self.table_view.setSortingEnabled(True)
|
|
189
191
|
self.table_view.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
|
|
190
192
|
self.table_view.verticalHeader().setVisible(False)
|
|
193
|
+
self.table_view.verticalHeader().setDefaultSectionSize(44)
|
|
194
|
+
self.table_view.verticalHeader().setMinimumSectionSize(44)
|
|
195
|
+
self.table_view.setShowGrid(False)
|
|
191
196
|
|
|
192
197
|
header = self.table_view.horizontalHeader()
|
|
198
|
+
header.setMinimumHeight(40)
|
|
193
199
|
header.setSectionResizeMode(0, QHeaderView.ResizeMode.Stretch)
|
|
194
200
|
header.setSectionResizeMode(1, QHeaderView.ResizeMode.ResizeToContents)
|
|
195
201
|
header.setSectionResizeMode(2, QHeaderView.ResizeMode.ResizeToContents)
|
|
@@ -68,11 +68,10 @@ class ProjectSettingsPane(QWidget):
|
|
|
68
68
|
context_objects={"projectSettingsPane": self.viewmodel},
|
|
69
69
|
parent=self,
|
|
70
70
|
)
|
|
71
|
-
layout.addWidget(self.chrome_host)
|
|
72
71
|
|
|
73
72
|
self.profile_section = QWidget(self)
|
|
74
73
|
profile_layout = QVBoxLayout(self.profile_section)
|
|
75
|
-
profile_layout.setContentsMargins(18,
|
|
74
|
+
profile_layout.setContentsMargins(18, 14, 18, 0)
|
|
76
75
|
profile_layout.setSpacing(6)
|
|
77
76
|
self.profile_label = QLabel(self.tr("Workflow profile"), self.profile_section)
|
|
78
77
|
self.profile_label.setStyleSheet("font-size: 14px; font-weight: 600; color: #2f251d;")
|
|
@@ -92,7 +91,7 @@ class ProjectSettingsPane(QWidget):
|
|
|
92
91
|
profile_layout.addWidget(self.profile_combo)
|
|
93
92
|
self.profile_detail_label = QLabel(self.profile_section)
|
|
94
93
|
self.profile_detail_label.setWordWrap(True)
|
|
95
|
-
self.profile_detail_label.setStyleSheet("color: #6e6154; font-size:
|
|
94
|
+
self.profile_detail_label.setStyleSheet("color: #6e6154; font-size: 13px;")
|
|
96
95
|
profile_layout.addWidget(self.profile_detail_label)
|
|
97
96
|
layout.addWidget(self.profile_section)
|
|
98
97
|
|
|
@@ -106,7 +105,7 @@ class ProjectSettingsPane(QWidget):
|
|
|
106
105
|
[],
|
|
107
106
|
[],
|
|
108
107
|
hint_text=self.tr("Use the Advanced column to edit step-specific settings."),
|
|
109
|
-
max_visible_rows=
|
|
108
|
+
max_visible_rows=3,
|
|
110
109
|
parent=self.routes_group,
|
|
111
110
|
)
|
|
112
111
|
self.routes_editor.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Maximum)
|
|
@@ -116,6 +115,7 @@ class ProjectSettingsPane(QWidget):
|
|
|
116
115
|
group_layout.addWidget(self.routes_editor)
|
|
117
116
|
layout.addWidget(self.routes_group, 0, Qt.AlignmentFlag.AlignTop)
|
|
118
117
|
layout.addStretch(1)
|
|
118
|
+
layout.addWidget(self.chrome_host)
|
|
119
119
|
self.routes_group.hide()
|
|
120
120
|
|
|
121
121
|
apply_hybrid_control_theme(self)
|
|
@@ -210,7 +210,7 @@ class ProjectSettingsPane(QWidget):
|
|
|
210
210
|
|
|
211
211
|
options: list[dict[str, object]] = []
|
|
212
212
|
option_values: list[str] = []
|
|
213
|
-
shared_detail =
|
|
213
|
+
shared_detail = ""
|
|
214
214
|
for profile in state.shared_profiles:
|
|
215
215
|
options.append(
|
|
216
216
|
{
|
{contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/queue_drawer_view.py
RENAMED
|
@@ -247,7 +247,7 @@ class QueueDrawerView(QWidget):
|
|
|
247
247
|
|
|
248
248
|
self.message_label = QLabel()
|
|
249
249
|
self.message_label.setWordWrap(True)
|
|
250
|
-
self.message_label.setStyleSheet("color: #
|
|
250
|
+
self.message_label.setStyleSheet("color: #675b4e;")
|
|
251
251
|
layout.addWidget(self.message_label)
|
|
252
252
|
|
|
253
253
|
self.body_stack = QStackedWidget(self)
|
{contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/features/work_view.py
RENAMED
|
@@ -6,6 +6,7 @@ from PySide6.QtCore import QEvent, Qt, QTimer, Signal
|
|
|
6
6
|
from PySide6.QtWidgets import (
|
|
7
7
|
QFileDialog,
|
|
8
8
|
QHBoxLayout,
|
|
9
|
+
QHeaderView,
|
|
9
10
|
QLabel,
|
|
10
11
|
QMessageBox,
|
|
11
12
|
QPushButton,
|
|
@@ -50,6 +51,7 @@ from context_aware_translation.ui.i18n import translate_backend_text
|
|
|
50
51
|
from context_aware_translation.ui.shell_hosts.hybrid import QmlChromeHost
|
|
51
52
|
from context_aware_translation.ui.tips import create_tip_label
|
|
52
53
|
from context_aware_translation.ui.viewmodels.work_home import WorkHomeViewModel
|
|
54
|
+
from context_aware_translation.ui.widgets.hybrid_controls import apply_hybrid_control_theme, set_button_tone
|
|
53
55
|
from context_aware_translation.ui.widgets.table_support import (
|
|
54
56
|
apply_header_resize_modes,
|
|
55
57
|
configure_readonly_row_table,
|
|
@@ -68,25 +70,6 @@ _TARGET_TO_SECTION: dict[NavigationTargetKind, DocumentSection] = {
|
|
|
68
70
|
class WorkView(QWidget):
|
|
69
71
|
_TABLE_MAX_VISIBLE_ROWS = 10
|
|
70
72
|
_HARD_WRAP_IMPORT_TYPES = frozenset({"text", "epub"})
|
|
71
|
-
_TOOLBAR_BUTTON_STYLE = """
|
|
72
|
-
QPushButton {
|
|
73
|
-
min-width: 150px;
|
|
74
|
-
min-height: 38px;
|
|
75
|
-
padding: 0 16px;
|
|
76
|
-
border-radius: 14px;
|
|
77
|
-
border: 1px solid #d9d0c4;
|
|
78
|
-
background: #f8f3ea;
|
|
79
|
-
color: #2f251d;
|
|
80
|
-
font-weight: 600;
|
|
81
|
-
}
|
|
82
|
-
QPushButton:hover:enabled {
|
|
83
|
-
background: #efe7da;
|
|
84
|
-
}
|
|
85
|
-
QPushButton:disabled {
|
|
86
|
-
background: #efe7da;
|
|
87
|
-
color: #8b8174;
|
|
88
|
-
}
|
|
89
|
-
"""
|
|
90
73
|
|
|
91
74
|
open_app_setup_requested = Signal()
|
|
92
75
|
open_project_setup_requested = Signal()
|
|
@@ -185,20 +168,17 @@ class WorkView(QWidget):
|
|
|
185
168
|
row_actions = QHBoxLayout()
|
|
186
169
|
self.translate_and_export_button = QPushButton(self.tr("Translate and Export"))
|
|
187
170
|
self.translate_and_export_button.setEnabled(False)
|
|
188
|
-
self.translate_and_export_button.setStyleSheet(self._TOOLBAR_BUTTON_STYLE)
|
|
189
171
|
self.translate_and_export_button.clicked.connect(self._open_selected_translate_and_export_dialog)
|
|
190
172
|
row_actions.addWidget(self.translate_and_export_button)
|
|
173
|
+
row_actions.addStretch()
|
|
191
174
|
self.reset_document_button = QPushButton(self.tr("Reset Document"))
|
|
192
175
|
self.reset_document_button.setEnabled(False)
|
|
193
|
-
self.reset_document_button.setStyleSheet(self._TOOLBAR_BUTTON_STYLE)
|
|
194
176
|
self.reset_document_button.clicked.connect(self._reset_selected_document)
|
|
195
177
|
row_actions.addWidget(self.reset_document_button)
|
|
196
178
|
self.delete_document_button = QPushButton(self.tr("Delete Document"))
|
|
197
179
|
self.delete_document_button.setEnabled(False)
|
|
198
|
-
self.delete_document_button.setStyleSheet(self._TOOLBAR_BUTTON_STYLE)
|
|
199
180
|
self.delete_document_button.clicked.connect(self._delete_selected_document)
|
|
200
181
|
row_actions.addWidget(self.delete_document_button)
|
|
201
|
-
row_actions.addStretch()
|
|
202
182
|
home_layout.addLayout(row_actions)
|
|
203
183
|
|
|
204
184
|
self.empty_label = create_tip_label(self.tr("No documents imported yet."))
|
|
@@ -208,6 +188,10 @@ class WorkView(QWidget):
|
|
|
208
188
|
|
|
209
189
|
self.stack.addWidget(self.home_page)
|
|
210
190
|
layout.addWidget(self.stack)
|
|
191
|
+
apply_hybrid_control_theme(self)
|
|
192
|
+
set_button_tone(self.translate_and_export_button, "primary", size="wide")
|
|
193
|
+
set_button_tone(self.reset_document_button, "ghost", size="wide")
|
|
194
|
+
set_button_tone(self.delete_document_button, "danger", size="wide")
|
|
211
195
|
self._sync_import_chrome_state()
|
|
212
196
|
self._schedule_chrome_resize()
|
|
213
197
|
|
|
@@ -283,6 +267,8 @@ class WorkView(QWidget):
|
|
|
283
267
|
self._schedule_chrome_resize()
|
|
284
268
|
|
|
285
269
|
def _apply_state(self, state: WorkboardState) -> None:
|
|
270
|
+
selected = self._selected_row_state()
|
|
271
|
+
selected_document_id = selected.document.document_id if selected is not None else None
|
|
286
272
|
self._state = state
|
|
287
273
|
context_summary = (
|
|
288
274
|
translate_backend_text(state.context_frontier.summary)
|
|
@@ -308,10 +294,19 @@ class WorkView(QWidget):
|
|
|
308
294
|
for row_state in state.rows:
|
|
309
295
|
self._append_row(row_state)
|
|
310
296
|
self.rows_table.resizeColumnsToContents()
|
|
311
|
-
apply_header_resize_modes(
|
|
297
|
+
apply_header_resize_modes(
|
|
298
|
+
self.rows_table,
|
|
299
|
+
((1, QHeaderView.ResizeMode.Stretch),),
|
|
300
|
+
column_widths=((3, 170), (4, 170), (5, 170)),
|
|
301
|
+
)
|
|
312
302
|
self.rows_table.horizontalHeader().setStretchLastSection(False)
|
|
313
303
|
self._ensure_row_heights()
|
|
314
304
|
self._fit_table_height()
|
|
305
|
+
if selected_document_id is not None:
|
|
306
|
+
for row, row_state in enumerate(self._row_states):
|
|
307
|
+
if row_state.document.document_id == selected_document_id:
|
|
308
|
+
self.rows_table.selectRow(row)
|
|
309
|
+
break
|
|
315
310
|
self._on_selection_changed()
|
|
316
311
|
self._schedule_chrome_resize()
|
|
317
312
|
|
|
@@ -339,6 +334,7 @@ class WorkView(QWidget):
|
|
|
339
334
|
def _build_status_badge(self, text: str, *, tooltip: str) -> QWidget:
|
|
340
335
|
background, foreground = self._status_colors(text)
|
|
341
336
|
label = QLabel(text)
|
|
337
|
+
label.setAttribute(Qt.WidgetAttribute.WA_TransparentForMouseEvents)
|
|
342
338
|
label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
|
343
339
|
label.setToolTip(tooltip)
|
|
344
340
|
label.setStyleSheet(
|
|
@@ -351,6 +347,7 @@ class WorkView(QWidget):
|
|
|
351
347
|
"}"
|
|
352
348
|
)
|
|
353
349
|
container = QWidget(self.rows_table)
|
|
350
|
+
container.setAttribute(Qt.WidgetAttribute.WA_TransparentForMouseEvents)
|
|
354
351
|
layout = QHBoxLayout(container)
|
|
355
352
|
layout.setContentsMargins(6, 2, 6, 2)
|
|
356
353
|
layout.setSpacing(0)
|
|
@@ -5,7 +5,7 @@ from collections.abc import Callable, Mapping
|
|
|
5
5
|
from dataclasses import dataclass
|
|
6
6
|
|
|
7
7
|
from PySide6.QtCore import QT_TRANSLATE_NOOP, Qt, QTimer
|
|
8
|
-
from PySide6.QtGui import QResizeEvent
|
|
8
|
+
from PySide6.QtGui import QResizeEvent, QShowEvent
|
|
9
9
|
from PySide6.QtWidgets import (
|
|
10
10
|
QCheckBox,
|
|
11
11
|
QComboBox,
|
|
@@ -1250,6 +1250,10 @@ class WorkflowProfileEditorDialog(QDialog):
|
|
|
1250
1250
|
is_default=self._original_profile.is_default,
|
|
1251
1251
|
)
|
|
1252
1252
|
|
|
1253
|
+
def showEvent(self, event: QShowEvent) -> None:
|
|
1254
|
+
super().showEvent(event)
|
|
1255
|
+
self._refresh_body_layout()
|
|
1256
|
+
|
|
1253
1257
|
def _accept_if_valid(self) -> None:
|
|
1254
1258
|
target_language = self.target_language_combo.currentText().strip()
|
|
1255
1259
|
if not target_language:
|
{contextweave-2.8.2 → contextweave-2.8.3}/context_aware_translation/ui/qml/app/AppShellChrome.qml
RENAMED
|
@@ -4,7 +4,8 @@ Rectangle {
|
|
|
4
4
|
id: root
|
|
5
5
|
objectName: "appShellChrome"
|
|
6
6
|
color: "#f6f3ed"
|
|
7
|
-
|
|
7
|
+
implicitHeight: 64
|
|
8
|
+
height: implicitHeight
|
|
8
9
|
|
|
9
10
|
signal projectsRequested
|
|
10
11
|
signal setupWizardRequested
|
|
@@ -40,21 +41,11 @@ Rectangle {
|
|
|
40
41
|
anchors.verticalCenter: parent.verticalCenter
|
|
41
42
|
spacing: 10
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
color: "#2f251d"
|
|
49
|
-
font.pixelSize: 20
|
|
50
|
-
font.bold: true
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
Text {
|
|
54
|
-
text: root.surfaceTitle
|
|
55
|
-
color: "#786b5e"
|
|
56
|
-
font.pixelSize: 12
|
|
57
|
-
}
|
|
44
|
+
Text {
|
|
45
|
+
text: root.appName
|
|
46
|
+
color: "#2f251d"
|
|
47
|
+
font.pixelSize: 21
|
|
48
|
+
font.weight: Font.DemiBold
|
|
58
49
|
}
|
|
59
50
|
}
|
|
60
51
|
|
|
@@ -76,8 +67,8 @@ Rectangle {
|
|
|
76
67
|
anchors.centerIn: parent
|
|
77
68
|
text: root.queueLabelText
|
|
78
69
|
color: "#2f251d"
|
|
79
|
-
font.pixelSize:
|
|
80
|
-
font.
|
|
70
|
+
font.pixelSize: 14
|
|
71
|
+
font.weight: Font.DemiBold
|
|
81
72
|
}
|
|
82
73
|
|
|
83
74
|
MouseArea {
|
|
@@ -98,8 +89,8 @@ Rectangle {
|
|
|
98
89
|
anchors.centerIn: parent
|
|
99
90
|
text: root.appSettingsLabelText
|
|
100
91
|
color: "#2f251d"
|
|
101
|
-
font.pixelSize:
|
|
102
|
-
font.
|
|
92
|
+
font.pixelSize: 14
|
|
93
|
+
font.weight: Font.DemiBold
|
|
103
94
|
}
|
|
104
95
|
|
|
105
96
|
MouseArea {
|
|
@@ -121,8 +112,8 @@ Rectangle {
|
|
|
121
112
|
anchors.centerIn: parent
|
|
122
113
|
text: root.setupWizardLabelText
|
|
123
114
|
color: "#2f251d"
|
|
124
|
-
font.pixelSize:
|
|
125
|
-
font.
|
|
115
|
+
font.pixelSize: 14
|
|
116
|
+
font.weight: Font.DemiBold
|
|
126
117
|
}
|
|
127
118
|
|
|
128
119
|
MouseArea {
|
|
@@ -146,8 +137,8 @@ Rectangle {
|
|
|
146
137
|
anchors.centerIn: parent
|
|
147
138
|
text: root.backToProjectsLabelText
|
|
148
139
|
color: "#2f251d"
|
|
149
|
-
font.pixelSize:
|
|
150
|
-
font.
|
|
140
|
+
font.pixelSize: 14
|
|
141
|
+
font.weight: Font.DemiBold
|
|
151
142
|
}
|
|
152
143
|
|
|
153
144
|
MouseArea {
|
|
@@ -4,8 +4,8 @@ import QtQuick.Controls
|
|
|
4
4
|
Rectangle {
|
|
5
5
|
id: root
|
|
6
6
|
objectName: "projectSettingsPaneChrome"
|
|
7
|
-
color: "#
|
|
8
|
-
implicitHeight: contentColumn.implicitHeight +
|
|
7
|
+
color: "#f8f3ea"
|
|
8
|
+
implicitHeight: contentColumn.implicitHeight + 24
|
|
9
9
|
|
|
10
10
|
signal saveRequested
|
|
11
11
|
signal openAppSetupRequested
|
|
@@ -57,12 +57,20 @@ Rectangle {
|
|
|
57
57
|
return kind === "error" ? "#b42318" : "#027a48"
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
Rectangle {
|
|
61
|
+
anchors.left: parent.left
|
|
62
|
+
anchors.right: parent.right
|
|
63
|
+
anchors.top: parent.top
|
|
64
|
+
height: 1
|
|
65
|
+
color: "#e5ddd0"
|
|
66
|
+
}
|
|
67
|
+
|
|
60
68
|
Column {
|
|
61
69
|
id: contentColumn
|
|
62
70
|
anchors.left: parent.left
|
|
63
71
|
anchors.right: parent.right
|
|
64
72
|
anchors.top: parent.top
|
|
65
|
-
anchors.margins:
|
|
73
|
+
anchors.margins: 12
|
|
66
74
|
spacing: 12
|
|
67
75
|
|
|
68
76
|
Text {
|
|
@@ -72,7 +80,7 @@ Rectangle {
|
|
|
72
80
|
text: root.titleText
|
|
73
81
|
color: "#2f251d"
|
|
74
82
|
font.pixelSize: 24
|
|
75
|
-
font.
|
|
83
|
+
font.weight: Font.DemiBold
|
|
76
84
|
wrapMode: Text.WordWrap
|
|
77
85
|
}
|
|
78
86
|
|
|
@@ -112,7 +120,7 @@ Rectangle {
|
|
|
112
120
|
width: parent.width
|
|
113
121
|
text: root.blockerText
|
|
114
122
|
color: "#9a3412"
|
|
115
|
-
font.pixelSize:
|
|
123
|
+
font.pixelSize: 13
|
|
116
124
|
wrapMode: Text.WordWrap
|
|
117
125
|
}
|
|
118
126
|
|
|
@@ -128,8 +136,8 @@ Rectangle {
|
|
|
128
136
|
anchors.centerIn: parent
|
|
129
137
|
text: root.openAppSetupLabel
|
|
130
138
|
color: root.secondaryLabelColor()
|
|
131
|
-
font.pixelSize:
|
|
132
|
-
font.
|
|
139
|
+
font.pixelSize: 13
|
|
140
|
+
font.weight: Font.DemiBold
|
|
133
141
|
}
|
|
134
142
|
|
|
135
143
|
MouseArea {
|
|
@@ -163,17 +171,19 @@ Rectangle {
|
|
|
163
171
|
anchors.margins: 10
|
|
164
172
|
text: root.messageText
|
|
165
173
|
color: root.messageTextColor(root.messageKind)
|
|
166
|
-
font.pixelSize:
|
|
167
|
-
font.
|
|
174
|
+
font.pixelSize: 13
|
|
175
|
+
font.weight: Font.DemiBold
|
|
168
176
|
wrapMode: Text.WordWrap
|
|
169
177
|
}
|
|
170
178
|
}
|
|
171
179
|
|
|
172
|
-
|
|
180
|
+
Item {
|
|
173
181
|
id: actionRow
|
|
174
|
-
|
|
182
|
+
width: parent.width
|
|
183
|
+
height: 40
|
|
175
184
|
|
|
176
185
|
Rectangle {
|
|
186
|
+
anchors.right: parent.right
|
|
177
187
|
width: saveButtonLabel.implicitWidth + 28
|
|
178
188
|
height: 40
|
|
179
189
|
radius: 14
|
|
@@ -184,8 +194,8 @@ Rectangle {
|
|
|
184
194
|
anchors.centerIn: parent
|
|
185
195
|
text: root.saveLabel
|
|
186
196
|
color: root.primaryLabelColor(root.canSave)
|
|
187
|
-
font.pixelSize:
|
|
188
|
-
font.
|
|
197
|
+
font.pixelSize: 13
|
|
198
|
+
font.weight: Font.DemiBold
|
|
189
199
|
}
|
|
190
200
|
|
|
191
201
|
MouseArea {
|
|
@@ -56,8 +56,8 @@ Rectangle {
|
|
|
56
56
|
anchors.centerIn: parent
|
|
57
57
|
text: root.backToWorkLabelText
|
|
58
58
|
color: "#2f251d"
|
|
59
|
-
font.pixelSize:
|
|
60
|
-
font.
|
|
59
|
+
font.pixelSize: 14
|
|
60
|
+
font.weight: Font.DemiBold
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
MouseArea {
|
|
@@ -75,8 +75,8 @@ Rectangle {
|
|
|
75
75
|
width: parent.width
|
|
76
76
|
text: root.surfaceTitleText
|
|
77
77
|
color: "#2f251d"
|
|
78
|
-
font.pixelSize:
|
|
79
|
-
font.
|
|
78
|
+
font.pixelSize: 23
|
|
79
|
+
font.weight: Font.DemiBold
|
|
80
80
|
wrapMode: Text.WordWrap
|
|
81
81
|
}
|
|
82
82
|
|
|
@@ -84,7 +84,7 @@ Rectangle {
|
|
|
84
84
|
width: parent.width
|
|
85
85
|
text: root.scopeTipText
|
|
86
86
|
color: "#76695d"
|
|
87
|
-
font.pixelSize:
|
|
87
|
+
font.pixelSize: 13
|
|
88
88
|
lineHeight: 1.2
|
|
89
89
|
wrapMode: Text.WordWrap
|
|
90
90
|
}
|
|
@@ -104,8 +104,8 @@ Rectangle {
|
|
|
104
104
|
anchors.centerIn: parent
|
|
105
105
|
text: root.ocrLabelText
|
|
106
106
|
color: root.ocrSelected ? "#fcfaf6" : "#2f251d"
|
|
107
|
-
font.pixelSize:
|
|
108
|
-
font.
|
|
107
|
+
font.pixelSize: 14
|
|
108
|
+
font.weight: Font.DemiBold
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
MouseArea {
|
|
@@ -125,8 +125,8 @@ Rectangle {
|
|
|
125
125
|
anchors.centerIn: parent
|
|
126
126
|
text: root.termsLabelText
|
|
127
127
|
color: root.termsSelected ? "#fcfaf6" : "#2f251d"
|
|
128
|
-
font.pixelSize:
|
|
129
|
-
font.
|
|
128
|
+
font.pixelSize: 14
|
|
129
|
+
font.weight: Font.DemiBold
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
MouseArea {
|
|
@@ -146,8 +146,8 @@ Rectangle {
|
|
|
146
146
|
anchors.centerIn: parent
|
|
147
147
|
text: root.translationLabelText
|
|
148
148
|
color: root.translationSelected ? "#fcfaf6" : "#2f251d"
|
|
149
|
-
font.pixelSize:
|
|
150
|
-
font.
|
|
149
|
+
font.pixelSize: 14
|
|
150
|
+
font.weight: Font.DemiBold
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
MouseArea {
|
|
@@ -167,8 +167,8 @@ Rectangle {
|
|
|
167
167
|
anchors.centerIn: parent
|
|
168
168
|
text: root.imagesLabelText
|
|
169
169
|
color: root.imagesSelected ? "#fcfaf6" : "#2f251d"
|
|
170
|
-
font.pixelSize:
|
|
171
|
-
font.
|
|
170
|
+
font.pixelSize: 14
|
|
171
|
+
font.weight: Font.DemiBold
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
MouseArea {
|
|
@@ -188,8 +188,8 @@ Rectangle {
|
|
|
188
188
|
anchors.centerIn: parent
|
|
189
189
|
text: root.exportLabelText
|
|
190
190
|
color: root.exportSelected ? "#fcfaf6" : "#2f251d"
|
|
191
|
-
font.pixelSize:
|
|
192
|
-
font.
|
|
191
|
+
font.pixelSize: 14
|
|
192
|
+
font.weight: Font.DemiBold
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
MouseArea {
|