Skip to content

Commit 5e830b5

Browse files
committed
v9.6.5
优化cg_rename,增加自定义文件夹名称格式
1 parent 70aeebd commit 5e830b5

3 files changed

Lines changed: 805 additions & 361 deletions

File tree

NFO.Editor.Qt5.py

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -579,6 +579,22 @@ def setup_signals(self):
579579
self.file_tree.itemSelectionChanged.connect(self.on_file_select)
580580
self.file_tree.itemDoubleClicked.connect(self.on_file_double_click)
581581

582+
# 设置文件树在失去焦点时仍显示选中状态
583+
self.file_tree.setStyleSheet("""
584+
QTreeWidget {
585+
selection-background-color: #3daee9;
586+
selection-color: white;
587+
}
588+
QTreeWidget::item:selected {
589+
background-color: #3daee9;
590+
color: white;
591+
}
592+
QTreeWidget::item:selected:!focus {
593+
background-color: #bfbfbf; /* 失去焦点时的背景色 */
594+
color: black;
595+
}
596+
""")
597+
582598
# 文件系统监控信号
583599
self.file_watcher.fileChanged.connect(self.on_file_changed)
584600
self.file_watcher.directoryChanged.connect(self.on_directory_changed)
@@ -816,11 +832,19 @@ def clear_target_folder(self):
816832
# 更新状态栏信息
817833
self.status_bar.showMessage("目标目录已清除")
818834

819-
def load_files_in_folder(self):
835+
def load_files_in_folder(self, auto_select=True):
820836
"""加载文件夹中的NFO文件"""
821837
if not self.folder_path:
822838
return
823839

840+
# 保存当前选中的项目信息
841+
current_selection = None
842+
if not auto_select:
843+
selected_items = self.file_tree.selectedItems()
844+
if selected_items:
845+
item = selected_items[0]
846+
current_selection = [item.text(i) for i in range(3)]
847+
824848
self.file_tree.clear()
825849
self.nfo_files = []
826850

@@ -848,16 +872,30 @@ def load_files_in_folder(self):
848872
item = QTreeWidgetItem([first_level, second_level, nfo_file])
849873
self.file_tree.addTopLevelItem(item)
850874

851-
# 选中第一项
852-
if self.file_tree.topLevelItemCount() > 0:
875+
# 选择逻辑优化
876+
if auto_select and self.file_tree.topLevelItemCount() > 0:
877+
# 初次加载时选中第一项
853878
first_item = self.file_tree.topLevelItem(0)
854879
self.file_tree.setCurrentItem(first_item)
855880
self.on_file_select()
881+
elif current_selection and self.file_tree.topLevelItemCount() > 0:
882+
# 尝试恢复之前的选择
883+
selection_restored = False
884+
for i in range(self.file_tree.topLevelItemCount()):
885+
item = self.file_tree.topLevelItem(i)
886+
if [item.text(j) for j in range(3)] == current_selection:
887+
self.file_tree.setCurrentItem(item)
888+
selection_restored = True
889+
break
890+
891+
# 如果无法恢复原选择,则清除选择状态
892+
if not selection_restored:
893+
self.file_tree.clearSelection()
856894

857895
# 更新状态栏信息
858896
total_folders = len(set(os.path.dirname(f) for f in self.nfo_files))
859897
status_msg = f"目录: {self.folder_path} (共加载 {total_folders} 个文件夹)"
860-
self.status_bar.showMessage(status_msg) # 使用 self.status_bar
898+
self.status_bar.showMessage(status_msg)
861899

862900
except Exception as e:
863901
QMessageBox.critical(self, "错误", f"加载文件失败: {str(e)}")
@@ -1497,7 +1535,8 @@ def on_file_changed(self, path):
14971535
def on_directory_changed(self, path):
14981536
"""目录变化响应"""
14991537
if path == self.folder_path:
1500-
self.load_files_in_folder()
1538+
# 目录变化时不自动选择第一项,保持当前选择状态
1539+
self.load_files_in_folder(auto_select=False)
15011540

15021541
def toggle_image_display(self):
15031542
"""切换图片显示状态"""

NFO_Editor_ui.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ def __init__(self):
4848
self.screen_dpi = self.screen().logicalDotsPerInch()
4949
self.scale_factor = self.screen_dpi / 96.0
5050

51-
self.setWindowTitle("大锤 NFO Editor Qt v9.6.3")
51+
self.setWindowTitle("大锤 NFO Editor Qt v9.6.5")
5252
self.resize(1280, 800)
5353

5454
# 初始化状态栏

0 commit comments

Comments
 (0)