Skip to content

Commit 8a91b06

Browse files
authored
Merge pull request #108 from Integration-Automation/dev
Dev
2 parents e6bdd99 + 7f51775 commit 8a91b06

File tree

17 files changed

+392
-112
lines changed

17 files changed

+392
-112
lines changed

automation_ide/automation_editor_ui/editor_main/main_ui.py

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from pathlib import Path
55
from typing import List, Dict, Type
66

7+
from automation_ide.utils.logging.logger import automation_ide_logger
8+
79
environ["LOCUST_SKIP_MONKEY_PATCH"] = "1"
810

911
from PySide6.QtCore import QTimer, QCoreApplication
@@ -24,33 +26,46 @@
2426

2527
class AutomationEditor(EditorMain):
2628

27-
def __init__(self, debug_mode: bool = False, show_system_tray_ray: bool = False):
28-
super().__init__(debug_mode, show_system_tray_ray)
29+
def __init__(self, debug_mode: bool = False, show_system_tray_ray: bool = False, extend: bool = False) -> None:
30+
super().__init__(debug_mode, show_system_tray_ray, extend=True)
31+
2932
self.current_run_code_window: List[QWidget] = list()
3033
# Project compiler if user not choose this will use which to find
3134
self.python_compiler = None
3235
# Delete JEditor help
3336
if self.help_menu:
3437
self.help_menu.deleteLater()
35-
# System tray change
36-
if self.show_system_tray_ray:
37-
self.system_tray.main_window = self
38-
self.system_tray.setToolTip(language_wrapper.language_word_dict.get("automation_editor_application_name"))
38+
3939
# Update language_dict
4040
update_language_dict()
41+
42+
# Title
43+
self.setWindowTitle(language_wrapper.language_word_dict.get("automation_editor_application_name"))
44+
self.setToolTip(language_wrapper.language_word_dict.get("automation_editor_application_name"))
45+
46+
# Windows 系統專用:設定應用程式 ID
47+
# Windows only: set application ID
48+
if not extend:
49+
self.id = language_wrapper.language_word_dict.get("automation_editor_application_name")
50+
if sys.platform in ["win32", "cygwin", "msys"]:
51+
from ctypes import windll
52+
windll.shell32.SetCurrentProcessExplicitAppUserModelID(self.id)
53+
54+
# Icon
55+
if not extend:
56+
self.icon_path = Path(os.getcwd() + "/automation_ide.ico")
57+
self.icon = QIcon(str(self.icon_path))
58+
if not self.icon.isNull():
59+
self.setWindowIcon(self.icon)
60+
4161
# Menu
4262
add_menu_to_menubar(self)
4363
syntax_extend_package(self)
64+
4465
# Tab
4566
for widget_name, widget in EDITOR_EXTEND_TAB.items():
4667
self.tab_widget.addTab(widget(), widget_name)
47-
# Icon
48-
self.icon_path = Path(os.getcwd() + "/je_driver_icon.ico")
49-
self.icon = QIcon(str(self.icon_path))
50-
self.system_tray = QSystemTrayIcon()
51-
self.system_tray.setIcon(self.icon)
52-
# Title
53-
self.setWindowTitle(language_wrapper.language_word_dict.get("automation_editor_application_name"))
68+
5469
if debug_mode:
5570
close_timer = QTimer(self)
5671
close_timer.setInterval(10000)
@@ -76,14 +91,14 @@ def start_editor(debug_mode: bool = False, **kwargs) -> None:
7691
Start editor instance
7792
:return: None
7893
"""
79-
new_editor = QCoreApplication.instance()
80-
if new_editor is None:
81-
new_editor = QApplication(sys.argv)
94+
new_ide = QCoreApplication.instance()
95+
if new_ide is None:
96+
new_ide = QApplication(sys.argv)
8297
window = AutomationEditor(debug_mode=debug_mode, **kwargs)
83-
apply_stylesheet(new_editor, theme="dark_amber.xml")
98+
apply_stylesheet(new_ide, theme="dark_amber.xml")
8499
window.showMaximized()
85100
try:
86101
window.startup_setting()
87102
except Exception as error:
88103
print(repr(error))
89-
sys.exit(new_editor.exec())
104+
sys.exit(new_ide.exec())

automation_ide/automation_editor_ui/extend_multi_language/extend_english.py

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,39 @@ def update_english_word_dict():
190190
"ai_code_review_gui_message_error": "Error",
191191
"ai_code_review_gui_status_accepted": "[Accepted]",
192192
"ai_code_review_gui_status_rejected": "[Rejected]",
193-
"ai_code_review_gui_status_save_failed": "Save failed"
193+
"ai_code_review_gui_status_save_failed": "Save failed",
194+
# Prompt Editor
195+
"prompt_editor_window_title": "Prompt Editor",
196+
"prompt_editor_groupbox_edit_file_content": "Edit File Content",
197+
"prompt_editor_button_create_file": "Create File",
198+
"prompt_editor_button_save_file": "Save",
199+
"prompt_editor_button_reload_file": "Reload",
200+
"prompt_editor_msgbox_info_title": "Info",
201+
"prompt_editor_msgbox_success_title": "Success",
202+
"prompt_editor_msgbox_error_title": "Error",
203+
"prompt_editor_msgbox_file_exists": "File {filename} already exists, no need to create",
204+
"prompt_editor_msgbox_file_created": "File {filename} has been created",
205+
"prompt_editor_msgbox_file_saved": "File {filename} saved",
206+
"prompt_editor_msgbox_no_file_selected": "No file selected",
207+
"prompt_editor_file_not_exist": "(File {filename} does not exist)",
208+
# Extend Menu
209+
"extend_tools_menu_tools_menu": "Tools",
210+
"extend_tools_menu_tools_ssh_menu": "SSH",
211+
"extend_tools_menu_tools_ai_menu": "AI",
212+
"extend_tools_menu_ssh_client_tab_action": "SSH Client Tab",
213+
"extend_tools_menu_ssh_client_tab_label": "SSH Client",
214+
"extend_tools_menu_ai_code_review_tab_action": "AI Code-Review Tab",
215+
"extend_tools_menu_ai_code_review_tab_label": "AI Code-Review",
216+
"extend_tools_menu_prompt_editor_tab_action": "Prompt Editor",
217+
"extend_tools_menu_prompt_editor_tab_label": "Prompt Editor",
218+
"extend_tools_menu_dock_ssh_menu": "SSH",
219+
"extend_tools_menu_dock_ai_menu": "AI",
220+
"extend_tools_menu_ssh_client_dock_action": "SSH Client Dock",
221+
"extend_tools_menu_ai_code_review_dock_action": "AI Code-Review Dock",
222+
"extend_tools_menu_prompt_editor_dock_action": "Prompt Editor Dock",
223+
"extend_tools_menu_ssh_client_dock_title": "SSH Client",
224+
"extend_tools_menu_ai_code_review_dock_title": "AI Code-Review",
225+
"extend_tools_menu_prompt_editor_dock_title": "PromptEditor",
194226

195227
}
196228
)

automation_ide/automation_editor_ui/extend_multi_language/extend_traditional_chinese.py

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,39 @@ def update_traditional_chinese_word_dict():
190190
"ai_code_review_gui_message_error": "錯誤",
191191
"ai_code_review_gui_status_accepted": "[已接受]",
192192
"ai_code_review_gui_status_rejected": "[已拒絕]",
193-
"ai_code_review_gui_status_save_failed": "儲存失敗"
193+
"ai_code_review_gui_status_save_failed": "儲存失敗",
194+
# Prompt Editor
195+
"prompt_editor_window_title": "提示編輯器",
196+
"prompt_editor_groupbox_edit_file_content": "編輯檔案內容",
197+
"prompt_editor_button_create_file": "建立檔案",
198+
"prompt_editor_button_save_file": "儲存",
199+
"prompt_editor_button_reload_file": "重新載入",
200+
"prompt_editor_msgbox_info_title": "資訊",
201+
"prompt_editor_msgbox_success_title": "成功",
202+
"prompt_editor_msgbox_error_title": "錯誤",
203+
"prompt_editor_msgbox_file_exists": "檔案 {filename} 已存在,無需建立",
204+
"prompt_editor_msgbox_file_created": "檔案 {filename} 已建立",
205+
"prompt_editor_msgbox_file_saved": "檔案 {filename} 已儲存",
206+
"prompt_editor_msgbox_no_file_selected": "尚未選擇檔案",
207+
"prompt_editor_file_not_exist": "(檔案 {filename} 不存在)",
208+
# Extend Menu
209+
"extend_tools_menu_tools_menu": "工具",
210+
"extend_tools_menu_tools_ssh_menu": "SSH",
211+
"extend_tools_menu_tools_ai_menu": "AI",
212+
"extend_tools_menu_ssh_client_tab_action": "SSH 用戶端分頁",
213+
"extend_tools_menu_ssh_client_tab_label": "SSH 用戶端",
214+
"extend_tools_menu_ai_code_review_tab_action": "AI 程式碼審查分頁",
215+
"extend_tools_menu_ai_code_review_tab_label": "AI 程式碼審查",
216+
"extend_tools_menu_prompt_editor_tab_action": "提示詞編輯器",
217+
"extend_tools_menu_prompt_editor_tab_label": "提示詞編輯器",
218+
"extend_tools_menu_dock_ssh_menu": "SSH",
219+
"extend_tools_menu_dock_ai_menu": "AI",
220+
"extend_tools_menu_ssh_client_dock_action": "SSH 用戶端停駐窗格",
221+
"extend_tools_menu_ai_code_review_dock_action": "AI 程式碼審查停駐窗格",
222+
"extend_tools_menu_prompt_editor_dock_action": "提示詞編輯器停駐窗格",
223+
"extend_tools_menu_ssh_client_dock_title": "SSH 用戶端",
224+
"extend_tools_menu_ai_code_review_dock_title": "AI 程式碼審查",
225+
"extend_tools_menu_prompt_editor_dock_title": "提示詞編輯器",
226+
194227
}
195228
)

automation_ide/automation_editor_ui/menu/tools/tools_menu.py

Lines changed: 65 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,56 +3,97 @@
33
from typing import TYPE_CHECKING
44

55
from PySide6.QtGui import QAction, Qt
6+
from je_editor import language_wrapper
67
from je_editor.pyside_ui.main_ui.dock.destroy_dock import DestroyDock
78
from je_editor.utils.logging.loggin_instance import jeditor_logger
89

910
from automation_ide.automation_editor_ui.connect_gui.ssh.ssh_main_widget import SSHMainWidget
1011
from automation_ide.automation_editor_ui.connect_gui.url.ai_code_review_gui import AICodeReviewClient
12+
from automation_ide.automation_editor_ui.prompt_edit_gui.main_prompt_edit_widget import PromptEditor
1113

1214
if TYPE_CHECKING:
1315
from automation_ide.automation_editor_ui.editor_main.main_ui import AutomationEditor
1416

1517

1618
def build_tools_menu(ui_we_want_to_set: AutomationEditor):
1719
# Menus
18-
ui_we_want_to_set.tools_menu = ui_we_want_to_set.menu.addMenu("Tools")
19-
ui_we_want_to_set.tools_ssh_menu = ui_we_want_to_set.tools_menu.addMenu("SSH")
20-
ui_we_want_to_set.tools_ai_menu = ui_we_want_to_set.tools_menu.addMenu("AI")
20+
ui_we_want_to_set.tools_menu = ui_we_want_to_set.menu.addMenu(language_wrapper.language_word_dict.get(
21+
"extend_tools_menu_tools_menu"
22+
))
23+
ui_we_want_to_set.tools_ssh_menu = ui_we_want_to_set.tools_menu.addMenu(language_wrapper.language_word_dict.get(
24+
"extend_tools_menu_tools_ssh_menu"
25+
))
26+
ui_we_want_to_set.tools_ai_menu = ui_we_want_to_set.tools_menu.addMenu(language_wrapper.language_word_dict.get(
27+
"extend_tools_menu_tools_ai_menu"
28+
))
2129

22-
ui_we_want_to_set.tools_ssh_client_tab_action = QAction("SSH Client Tab")
30+
ui_we_want_to_set.tools_ssh_client_tab_action = QAction(language_wrapper.language_word_dict.get(
31+
"extend_tools_menu_ssh_client_tab_action"
32+
))
2333
ui_we_want_to_set.tools_ssh_client_tab_action.triggered.connect(lambda: ui_we_want_to_set.tab_widget.addTab(
24-
SSHMainWidget(), "SSH Client"
34+
SSHMainWidget(), language_wrapper.language_word_dict.get("extend_tools_menu_ssh_client_tab_label")
2535
))
2636
ui_we_want_to_set.tools_ssh_menu.addAction(ui_we_want_to_set.tools_ssh_client_tab_action)
2737

28-
ui_we_want_to_set.tools_ai_code_review_action = QAction("AI Code-Review Tab")
38+
ui_we_want_to_set.tools_ai_code_review_action = QAction(language_wrapper.language_word_dict.get(
39+
"extend_tools_menu_ai_code_review_tab_action"
40+
))
2941
ui_we_want_to_set.tools_ai_code_review_action.triggered.connect(lambda: ui_we_want_to_set.tab_widget.addTab(
30-
AICodeReviewClient(), "AI Code-Review"
42+
AICodeReviewClient(), language_wrapper.language_word_dict.get(
43+
"extend_tools_menu_ai_code_review_tab_label"
44+
)
3145
))
3246
ui_we_want_to_set.tools_ai_menu.addAction(ui_we_want_to_set.tools_ai_code_review_action)
3347

48+
ui_we_want_to_set.tools_ai_prompt_editor_action = QAction(language_wrapper.language_word_dict.get(
49+
"extend_tools_menu_prompt_editor_tab_action"
50+
))
51+
ui_we_want_to_set.tools_ai_prompt_editor_action.triggered.connect(lambda: ui_we_want_to_set.tab_widget.addTab(
52+
PromptEditor(), language_wrapper.language_word_dict.get(
53+
"extend_tools_menu_prompt_editor_tab_label"
54+
)
55+
))
56+
ui_we_want_to_set.tools_ai_menu.addAction(ui_we_want_to_set.tools_ai_prompt_editor_action)
57+
3458

3559
def extend_dock_menu(ui_we_want_to_set: AutomationEditor):
3660
# Sub menu
3761
ui_we_want_to_set.dock_ssh_menu = ui_we_want_to_set.dock_menu.addMenu(
38-
"SSH"
62+
language_wrapper.language_word_dict.get("extend_tools_menu_dock_ssh_menu")
3963
)
4064
ui_we_want_to_set.dock_ai_menu = ui_we_want_to_set.dock_menu.addMenu(
41-
"AI"
65+
language_wrapper.language_word_dict.get("extend_tools_menu_dock_ai_menu")
4266
)
4367
# SSH
44-
ui_we_want_to_set.tools_ssh_client_dock_action = QAction("SSH Client Dock")
68+
ui_we_want_to_set.tools_ssh_client_dock_action = QAction(
69+
language_wrapper.language_word_dict.get("extend_tools_menu_ssh_client_dock_action")
70+
)
4571
ui_we_want_to_set.tools_ssh_client_dock_action.triggered.connect(
46-
lambda: add_dock(ui_we_want_to_set, "SSH")
72+
lambda: add_dock(ui_we_want_to_set, language_wrapper.language_word_dict.get(
73+
"extend_tools_menu_dock_ssh_menu"
74+
))
4775
)
4876
ui_we_want_to_set.dock_ssh_menu.addAction(ui_we_want_to_set.tools_ssh_client_dock_action)
4977
# AI
50-
ui_we_want_to_set.tools_ai_code_review_dock_action = QAction("AI Code-Review Dock")
78+
ui_we_want_to_set.tools_ai_code_review_dock_action = QAction(language_wrapper.language_word_dict.get(
79+
"extend_tools_menu_ai_code_review_dock_action"
80+
))
5181
ui_we_want_to_set.tools_ai_code_review_dock_action.triggered.connect(
52-
lambda: add_dock(ui_we_want_to_set, "AICodeReview")
82+
lambda: add_dock(ui_we_want_to_set, language_wrapper.language_word_dict.get(
83+
"extend_tools_menu_prompt_editor_dock_action"
84+
))
5385
)
5486
ui_we_want_to_set.dock_ai_menu.addAction(ui_we_want_to_set.tools_ai_code_review_dock_action)
5587

88+
ui_we_want_to_set.tools_prompt_editor_dock_action = QAction(language_wrapper.language_word_dict.get(
89+
"extend_tools_menu_prompt_editor_dock_action"))
90+
ui_we_want_to_set.tools_prompt_editor_dock_action.triggered.connect(
91+
lambda: add_dock(ui_we_want_to_set, language_wrapper.language_word_dict.get(
92+
"extend_tools_menu_prompt_editor_dock_action"
93+
))
94+
)
95+
ui_we_want_to_set.dock_ai_menu.addAction(ui_we_want_to_set.tools_prompt_editor_dock_action)
96+
5697
def add_dock(ui_we_want_to_set: AutomationEditor, widget_type: str = None):
5798
jeditor_logger.info("build_dock_menu.py add_dock_widget "
5899
f"ui_we_want_to_set: {ui_we_want_to_set} "
@@ -63,11 +104,20 @@ def add_dock(ui_we_want_to_set: AutomationEditor, widget_type: str = None):
63104
dock_widget = DestroyDock()
64105

65106
if widget_type == "SSH":
66-
dock_widget.setWindowTitle("SSH Client")
107+
dock_widget.setWindowTitle(language_wrapper.language_word_dict.get(
108+
"extend_tools_menu_ssh_client_dock_title"
109+
))
67110
dock_widget.setWidget(SSHMainWidget())
68111
elif widget_type == "AICodeReview":
69-
dock_widget.setWindowTitle("AI Code-Review")
112+
dock_widget.setWindowTitle(language_wrapper.language_word_dict.get(
113+
"extend_tools_menu_ai_code_review_dock_title"
114+
))
70115
dock_widget.setWidget(AICodeReviewClient())
116+
elif widget_type == "PromptEditor":
117+
dock_widget.setWindowTitle(language_wrapper.language_word_dict.get(
118+
"extend_tools_menu_prompt_editor_dock_title"
119+
))
120+
dock_widget.setWidget(PromptEditor())
71121

72122
# 如果成功建立了 widget,將其加到主視窗右側 Dock 區域
73123
# If widget is created, add it to the right dock area of the main window

0 commit comments

Comments
 (0)