Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 6 additions & 10 deletions frontengine/ui/dialog/app_profile_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from frontengine.utils.app_profile.app_profile_service import normalize_profiles
from frontengine.utils.logging.loggin_instance import front_engine_logger
from frontengine.utils.multi_language.language_wrapper import language_wrapper
from frontengine.utils.multi_language.retranslate import retranslator
from frontengine.utils.multi_language.retranslate import tr
from frontengine.utils.smart_pause.pause_rules import normalize_app_name


Expand Down Expand Up @@ -50,17 +50,13 @@ def __init__(self, parent: Optional[QWidget] = None) -> None:
self.table.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
self.table.horizontalHeader().setStretchLastSection(True)

self.add_button = QPushButton(_t("app_profile_add", "Add"))
retranslator.bind(self.add_button, "app_profile_add", "Add")
self.add_button = tr(QPushButton(), "app_profile_add", "Add")
self.add_button.clicked.connect(lambda: self.add_row("", ""))
self.remove_button = QPushButton(_t("app_profile_remove", "Remove"))
retranslator.bind(self.remove_button, "app_profile_remove", "Remove")
self.remove_button = tr(QPushButton(), "app_profile_remove", "Remove")
self.remove_button.clicked.connect(self.remove_selected_row)
self.hint_label = QLabel(
_t("app_profile_hint",
"Presets are saved from the Presets menu. Without any saved preset "
"there is nothing to apply."))
retranslator.bind(self.hint_label, "app_profile_hint", "Presets are saved from the Presets menu. Without any saved preset " "there is nothing to apply.")
self.hint_label = tr(QLabel(), "app_profile_hint",
"Presets are saved from the Presets menu. Without any saved preset "
"there is nothing to apply.")
self.hint_label.setWordWrap(True)

self.button_box = QDialogButtonBox(
Expand Down
29 changes: 11 additions & 18 deletions frontengine/ui/dialog/clipboard_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
from frontengine.utils.clipboard.clipboard_history import ClipboardHistory, preview
from frontengine.utils.logging.loggin_instance import front_engine_logger
from frontengine.utils.multi_language.language_wrapper import language_wrapper
from frontengine.utils.multi_language.retranslate import retranslator
from frontengine.utils.multi_language.retranslate import tr

_PIN_MARK = "📌 "

Expand All @@ -51,30 +51,23 @@ def __init__(self, history: ClipboardHistory, parent: Optional[QWidget] = None)
self.entry_list.setSelectionMode(QAbstractItemView.SelectionMode.SingleSelection)
self.entry_list.itemDoubleClicked.connect(lambda _item: self.copy_selected())

self.copy_button = QPushButton(_t("clipboard_copy", "Copy"))
retranslator.bind(self.copy_button, "clipboard_copy", "Copy")
self.copy_button = tr(QPushButton(), "clipboard_copy", "Copy")
self.copy_button.clicked.connect(self.copy_selected)
self.pin_button = QPushButton(_t("clipboard_pin", "Pin / unpin"))
retranslator.bind(self.pin_button, "clipboard_pin", "Pin / unpin")
self.pin_button = tr(QPushButton(), "clipboard_pin", "Pin / unpin")
self.pin_button.clicked.connect(self.toggle_pin_selected)
self.remove_button = QPushButton(_t("clipboard_remove", "Remove"))
retranslator.bind(self.remove_button, "clipboard_remove", "Remove")
self.remove_button = tr(QPushButton(), "clipboard_remove", "Remove")
self.remove_button.clicked.connect(self.remove_selected)
self.clear_button = QPushButton(_t("clipboard_clear", "Clear (keep pinned)"))
retranslator.bind(self.clear_button, "clipboard_clear", "Clear (keep pinned)")
self.clear_button = tr(QPushButton(), "clipboard_clear", "Clear (keep pinned)")
self.clear_button.clicked.connect(self.clear_history)

self.persist_checkbox = QCheckBox(
_t("clipboard_persist", "Keep this history between sessions"))
retranslator.bind(self.persist_checkbox, "clipboard_persist", "Keep this history between sessions")
self.persist_checkbox = tr(QCheckBox(), "clipboard_persist",
"Keep this history between sessions")
self.persist_checkbox.setChecked(bool(user_setting_dict.get("clipboard_persist")))
self.persist_checkbox.toggled.connect(self._store_persist)
self.hint_label = QLabel(
_t("clipboard_hint",
"History stays on this machine and is never sent anywhere. Unless you tick "
"the box above it is kept in memory only, because clipboards often hold "
"passwords."))
retranslator.bind(self.hint_label, "clipboard_hint", "History stays on this machine and is never sent anywhere. Unless you tick " "the box above it is kept in memory only, because clipboards often hold " "passwords.")
self.hint_label = tr(QLabel(), "clipboard_hint",
"History stays on this machine and is never sent anywhere. Unless you tick "
"the box above it is kept in memory only, because clipboards often hold "
"passwords.")
self.hint_label.setWordWrap(True)

self.button_box = QDialogButtonBox(QDialogButtonBox.StandardButton.Close)
Expand Down
16 changes: 6 additions & 10 deletions frontengine/ui/dialog/reminder_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
from frontengine.user_setting.user_setting_file import user_setting_dict, write_user_setting
from frontengine.utils.logging.loggin_instance import front_engine_logger
from frontengine.utils.multi_language.language_wrapper import language_wrapper
from frontengine.utils.multi_language.retranslate import retranslator
from frontengine.utils.multi_language.retranslate import tr
from frontengine.utils.reminder.reminder_service import (
KIND_AT, KIND_EVERY, normalize_reminder, normalize_reminders,
)
Expand Down Expand Up @@ -55,17 +55,13 @@ def __init__(self, parent: Optional[QWidget] = None) -> None:
self.table.setSelectionBehavior(QAbstractItemView.SelectionBehavior.SelectRows)
self.table.horizontalHeader().setStretchLastSection(True)

self.add_button = QPushButton(_t("reminder_add", "Add"))
retranslator.bind(self.add_button, "reminder_add", "Add")
self.add_button = tr(QPushButton(), "reminder_add", "Add")
self.add_button.clicked.connect(lambda: self.add_row())
self.remove_button = QPushButton(_t("reminder_remove", "Remove"))
retranslator.bind(self.remove_button, "reminder_remove", "Remove")
self.remove_button = tr(QPushButton(), "reminder_remove", "Remove")
self.remove_button.clicked.connect(self.remove_selected_row)
self.hint_label = QLabel(
_t("reminder_hint",
"Tick a row to keep it active. \"Every\" takes minutes, \"At\" takes a "
"24-hour time such as 14:30."))
retranslator.bind(self.hint_label, "reminder_hint", "Tick a row to keep it active. \"Every\" takes minutes, \"At\" takes a " "24-hour time such as 14:30.")
self.hint_label = tr(QLabel(), "reminder_hint",
"Tick a row to keep it active. \"Every\" takes minutes, \"At\" takes a "
"24-hour time such as 14:30.")
self.hint_label.setWordWrap(True)

self.button_box = QDialogButtonBox(
Expand Down
31 changes: 12 additions & 19 deletions frontengine/ui/dialog/remote_control_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from frontengine.utils.logging.loggin_instance import front_engine_logger
from frontengine.utils.midi.midi_input import available as midi_available, list_devices
from frontengine.utils.multi_language.language_wrapper import language_wrapper
from frontengine.utils.multi_language.retranslate import retranslator
from frontengine.utils.multi_language.retranslate import tr
from frontengine.utils.remote.remote_server import ALLOWED_ACTIONS

MIDI_KEY = "midi_bindings"
Expand Down Expand Up @@ -60,40 +60,33 @@ def __init__(self, parent: Optional[QWidget] = None, remote=None, midi=None) ->
self._midi = midi
self._learning = False

self.remote_checkbox = QCheckBox(_t("remote_enable", "Let my phone control FrontEngine"))
retranslator.bind(self.remote_checkbox, "remote_enable", "Let my phone control FrontEngine")
self.remote_checkbox = tr(QCheckBox(), "remote_enable", "Let my phone control FrontEngine")
self.remote_checkbox.setChecked(remote_enabled())
self.remote_checkbox.toggled.connect(self._toggle_remote)
self.remote_url_label = QLabel(self.remote_status())
self.remote_url_label.setWordWrap(True)
self.remote_url_label.setTextInteractionFlags(
self.remote_url_label.textInteractionFlags().TextSelectableByMouse)
self.remote_copy_button = QPushButton(_t("remote_copy", "Copy link"))
retranslator.bind(self.remote_copy_button, "remote_copy", "Copy link")
self.remote_copy_button = tr(QPushButton(), "remote_copy", "Copy link")
self.remote_copy_button.clicked.connect(self.copy_link)
self.remote_hint = QLabel(
_t("remote_hint",
"This opens a port on this machine for your local network. The link carries a "
"one-time token that changes every time it starts, and only the buttons on the "
"page can be triggered - nothing else. It is plain HTTP, so treat it like any "
"other device on your network: someone else on the same network could read the "
"token and press the same buttons. Leave it off on networks you do not trust."))
retranslator.bind(self.remote_hint, "remote_hint", "This opens a port on this machine for your local network. The link carries a " "one-time token that changes every time it starts, and only the buttons on the " "page can be triggered - nothing else. It is plain HTTP, so treat it like any " "other device on your network: someone else on the same network could read the " "token and press the same buttons. Leave it off on networks you do not trust.")
self.remote_hint = tr(QLabel(), "remote_hint",
"This opens a port on this machine for your local network. The link carries a "
"one-time token that changes every time it starts, and only the buttons on the "
"page can be triggered - nothing else. It is plain HTTP, so treat it like any "
"other device on your network: someone else on the same network could read the "
"token and press the same buttons. Leave it off on networks you do not trust.")
self.remote_hint.setWordWrap(True)

self.midi_label = QLabel(_t("remote_midi_label", "MIDI controller"))
retranslator.bind(self.midi_label, "remote_midi_label", "MIDI controller")
self.midi_label = tr(QLabel(), "remote_midi_label", "MIDI controller")
self.midi_combobox = QComboBox()
for index, name in list_devices():
self.midi_combobox.addItem(name, index)
if self.midi_combobox.count() == 0:
self.midi_combobox.addItem(_t("remote_midi_none", "No MIDI device found"), -1)
self.learn_button = QPushButton(_t("remote_midi_learn", "Learn"))
retranslator.bind(self.learn_button, "remote_midi_learn", "Learn")
self.learn_button = tr(QPushButton(), "remote_midi_learn", "Learn")
self.learn_button.clicked.connect(self.start_learning)
self.learn_button.setEnabled(midi_available())
self.remove_button = QPushButton(_t("remote_midi_remove", "Remove"))
retranslator.bind(self.remove_button, "remote_midi_remove", "Remove")
self.remove_button = tr(QPushButton(), "remote_midi_remove", "Remove")
self.remove_button.clicked.connect(self.remove_selected)

self.table = QTableWidget(0, 2)
Expand Down
10 changes: 4 additions & 6 deletions frontengine/ui/dialog/screen_privacy_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from frontengine.user_setting.user_setting_file import user_setting_dict, write_user_setting
from frontengine.utils.logging.loggin_instance import front_engine_logger
from frontengine.utils.multi_language.language_wrapper import language_wrapper
from frontengine.utils.multi_language.retranslate import retranslator
from frontengine.utils.multi_language.retranslate import retranslator, tr
from frontengine.utils.screen_privacy import capture_affinity
from frontengine.utils.screen_privacy.share_watch import DEFAULT_SHARING_APPS
from frontengine.utils.smart_pause.pause_rules import parse_app_list
Expand Down Expand Up @@ -54,12 +54,10 @@ def __init__(self, parent: Optional[QWidget] = None) -> None:
self.setWindowTitle(_t("screen_privacy_title", "Screen-sharing privacy"))
settings = current_settings()

self.enable_checkbox = QCheckBox(
_t("screen_privacy_enable", "Hide overlays while one of these apps is open"))
retranslator.bind(self.enable_checkbox, "screen_privacy_enable", "Hide overlays while one of these apps is open")
self.enable_checkbox = tr(QCheckBox(), "screen_privacy_enable",
"Hide overlays while one of these apps is open")
self.enable_checkbox.setChecked(bool(settings.get("enabled")))
self.apps_label = QLabel(_t("screen_privacy_apps_label", "Meeting and capture apps:"))
retranslator.bind(self.apps_label, "screen_privacy_apps_label", "Meeting and capture apps:")
self.apps_label = tr(QLabel(), "screen_privacy_apps_label", "Meeting and capture apps:")
self.apps_edit = QLineEdit(", ".join(settings.get("apps", [])))
self.apps_edit.setPlaceholderText("zoom, teams, discord")
# 提示句取決於平台支不支援,登記的必須是實際選到的那個鍵
Expand Down
10 changes: 4 additions & 6 deletions frontengine/ui/dialog/screen_text_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from frontengine.user_setting.user_setting_file import user_setting_dict, write_user_setting
from frontengine.utils.logging.loggin_instance import front_engine_logger
from frontengine.utils.multi_language.language_wrapper import language_wrapper
from frontengine.utils.multi_language.retranslate import retranslator
from frontengine.utils.multi_language.retranslate import tr
from frontengine.utils.screen_text.screen_text_service import API_KEY_ENV, api_key

CONSENT_KEY = "screen_text_consent"
Expand Down Expand Up @@ -78,12 +78,10 @@ def __init__(self, text: str = "", parent: Optional[QWidget] = None) -> None:

self.text_edit = QPlainTextEdit(str(text))
self.text_edit.setReadOnly(False)
self.copy_button = QPushButton(_t("screen_text_copy", "Copy"))
retranslator.bind(self.copy_button, "screen_text_copy", "Copy")
self.copy_button = tr(QPushButton(), "screen_text_copy", "Copy")
self.copy_button.clicked.connect(self.copy_text)
self.consent_checkbox = QCheckBox(
_t("screen_text_consent_toggle", "Allow sending captures to Anthropic"))
retranslator.bind(self.consent_checkbox, "screen_text_consent_toggle", "Allow sending captures to Anthropic")
self.consent_checkbox = tr(QCheckBox(), "screen_text_consent_toggle",
"Allow sending captures to Anthropic")
self.consent_checkbox.setChecked(has_consent())
self.consent_checkbox.toggled.connect(set_consent)
self.hint_label = QLabel(self.status_text())
Expand Down
24 changes: 9 additions & 15 deletions frontengine/ui/dialog/signage_dialog.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from frontengine.user_setting.user_setting_file import user_setting_dict, write_user_setting
from frontengine.utils.logging.loggin_instance import front_engine_logger
from frontengine.utils.multi_language.language_wrapper import language_wrapper
from frontengine.utils.multi_language.retranslate import retranslator
from frontengine.utils.multi_language.retranslate import tr
from frontengine.utils.signage.signage_service import (
DEFAULT_INTERVAL_MINUTES, MAX_INTERVAL_MINUTES, MIN_INTERVAL_MINUTES, clamp_interval,
normalize_playlist,
Expand Down Expand Up @@ -52,26 +52,20 @@ def __init__(self, parent: Optional[QWidget] = None) -> None:
self.setWindowTitle(_t("signage_title", "Signage mode"))
settings = current_settings()

self.enable_checkbox = QCheckBox(_t("signage_enable", "Rotate presets"))
retranslator.bind(self.enable_checkbox, "signage_enable", "Rotate presets")
self.enable_checkbox = tr(QCheckBox(), "signage_enable", "Rotate presets")
self.enable_checkbox.setChecked(bool(settings.get("enabled")))
self.presets_label = QLabel(_t("signage_presets_label", "Presets, one per line:"))
retranslator.bind(self.presets_label, "signage_presets_label", "Presets, one per line:")
self.presets_label = tr(QLabel(), "signage_presets_label", "Presets, one per line:")
self.presets_edit = QPlainTextEdit("\n".join(settings.get("presets", [])))
self.interval_label = QLabel(_t("signage_interval_label", "Change every (minutes)"))
retranslator.bind(self.interval_label, "signage_interval_label", "Change every (minutes)")
self.interval_label = tr(QLabel(), "signage_interval_label", "Change every (minutes)")
self.interval_spinbox = QSpinBox()
self.interval_spinbox.setRange(MIN_INTERVAL_MINUTES, MAX_INTERVAL_MINUTES)
self.interval_spinbox.setValue(settings.get("interval_minutes"))
self.hide_checkbox = QCheckBox(
_t("signage_hide_window", "Hide the main window while rotating"))
retranslator.bind(self.hide_checkbox, "signage_hide_window", "Hide the main window while rotating")
self.hide_checkbox = tr(QCheckBox(), "signage_hide_window",
"Hide the main window while rotating")
self.hide_checkbox.setChecked(bool(settings.get("hide_window", True)))
self.hint_label = QLabel(
_t("signage_hint",
"Presets are saved from the Presets menu. The rotation wraps at the end, so a "
"machine left running keeps cycling."))
retranslator.bind(self.hint_label, "signage_hint", "Presets are saved from the Presets menu. The rotation wraps at the end, so a " "machine left running keeps cycling.")
self.hint_label = tr(QLabel(), "signage_hint",
"Presets are saved from the Presets menu. The rotation wraps at the end, so a "
"machine left running keeps cycling.")
self.hint_label.setWordWrap(True)

self.button_box = QDialogButtonBox(
Expand Down
Loading
Loading