bugfix 4 insert aside

parent b20c1c20
......@@ -388,6 +388,7 @@ def add_to_list(mainWindow: MainWindow, element_type: str, li: list):
st_time_sec, ed_time_sec, subtitle, suggest = li
print(">>>>>>>>start time:")
print(aside_head_time)
print(st_time_sec)
if (st_time_sec != None and st_time_sec != "" and aside_head_time > float(st_time_sec)):
print(">>>>>>need del")
......
......@@ -229,6 +229,8 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.down_ocr_bottom)
self.confirm_head_aside_btn.clicked.connect(
self.confirm_head_aside)
self.detect_btn.clicked.connect(
self.show_detect_dialog)
"""视频预览相关信息
......@@ -298,13 +300,13 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# all_tableHead.resizeSection(1,100)
all_tableHead.setSectionResizeMode(
2, QtWidgets.QHeaderView.Fixed)
all_tableHead.resizeSection(2,180)
all_tableHead.resizeSection(2,175)
# all_tableHead.setSectionResizeMode(
# 3, QtWidgets.QHeaderView.Fixed)
# all_tableHead.resizeSection(3,100)
all_tableHead.setSectionResizeMode(
4, QtWidgets.QHeaderView.Fixed)
all_tableHead.resizeSection(4,400)
all_tableHead.resizeSection(4,390)
# all_tableHead.setSectionResizeMode(
# 6, QtWidgets.QHeaderView.Fixed)
# all_tableHead.resizeSection(6,50)
......@@ -1524,9 +1526,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# 只有更新语速或者更新旁白,才需要重新生成音频
if col not in constant.Content.ActivateColumns:
return
print(">>>>>>>>>>>into audio")
if self.projectContext.initial_ing == True:
print(">>>>>>>>>>>>aa11")
return
if item is None:
print("WRONG!!!! item Is None")
......@@ -1542,7 +1542,6 @@ class MainWindow(QMainWindow, Ui_MainWindow):
self.audio_player.setMedia(QMediaContent())
# 合成这一段语音
print(">>>>>>>>start audio")
self.do_generate_audio_by_aside_row_all(int(row))
except Exception as e:
print(e)
......@@ -1993,10 +1992,16 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx+1].st_time_sec, "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
# else:
# self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
if self.projectContext.all_elements[idx - 1].ed_time_sec == None or self.projectContext.all_elements[idx - 1].ed_time_sec == "":
self.projectContext.all_elements[idx - 1].ed_time_sec = self.projectContext.all_elements[idx - 1].st_time_sec
if idx < len(self.projectContext.all_elements) - 1:
self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx+1].st_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
# self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx].st_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
if idx == 0:
self.add_line_operation_slot(idx, self.projectContext.all_elements[idx].st_time_sec, self.projectContext.all_elements[idx].st_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
else:
self.add_line_operation_slot(idx, self.projectContext.all_elements[idx - 1].ed_time_sec, self.projectContext.all_elements[idx].st_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
else:
self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "0/100", "", self.projectContext.speaker_speed)
self.add_line_operation_slot(idx, self.projectContext.all_elements[idx - 1].ed_time_sec, str(cur_time+1), "", "0/100", "", self.projectContext.speaker_speed)
def insert_aside_from_cur_time(self,cur_time:float):
......@@ -2018,10 +2023,14 @@ class MainWindow(QMainWindow, Ui_MainWindow):
# self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx+1].st_time_sec, "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
# else:
# self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "插入旁白,推荐字数为0", "", self.projectContext.speaker_speed)
if self.projectContext.all_elements[idx - 1].ed_time_sec == None or self.projectContext.all_elements[idx - 1].ed_time_sec == "":
self.projectContext.all_elements[idx - 1].ed_time_sec = self.projectContext.all_elements[idx - 1].st_time_sec
if idx < len(self.projectContext.all_elements) - 1:
self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx+1].st_time_sec, "", "0", "", self.projectContext.speaker_speed)
# self.add_line_operation_slot(idx, str(cur_time), self.projectContext.all_elements[idx].st_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
self.add_line_operation_slot(idx, self.projectContext.all_elements[idx - 1].ed_time_sec, self.projectContext.all_elements[idx].st_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
else:
self.add_line_operation_slot(idx, str(cur_time), str(cur_time+1), "", "0", "", self.projectContext.speaker_speed)
# self.add_line_operation_slot(idx, self.projectContext.all_elements[idx - 1].ed_time_sec, str(cur_time+1), "", "0/100", "", self.projectContext.speaker_speed)
self.add_line_operation_slot(idx, self.projectContext.all_elements[idx - 1].ed_time_sec, self.projectContext.all_elements[idx - 1].ed_time_sec, "", "0/100", "", self.projectContext.speaker_speed)
def calculate_element_row(self, cur_time: float):
"""确认表格中适合cur_time的插入位置
......@@ -2079,9 +2088,9 @@ class MainWindow(QMainWindow, Ui_MainWindow):
speed (str): 旁白语速
"""
# 注意,这里需要用同一对象,不能生成多个Element
if end_time is None or end_time == "":
print(">>>>>>>>>>>>add line")
end_time = self.projectContext.all_elements[int(row)].st_time_sec
# if end_time is None or end_time == "":
# print(">>>>>>>>>>>>add line")
# end_time = self.projectContext.all_elements[int(row)].st_time_sec
new_element = Element(start_time, end_time, subtitle, suggest, aside, speed)
new_element.print_self()
self.projectContext.all_elements.insert(int(row), new_element)
......
......@@ -327,9 +327,16 @@ class Ui_MainWindow(object):
self.confirm_head_aside_btn = QtWidgets.QPushButton(self.centralwidget)
self.confirm_head_aside_btn.setObjectName("confirm_head_aside_btn")
self.horizontalLayout_7.addWidget(self.confirm_head_aside_btn)
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.detect_btn = QtWidgets.QPushButton(self.centralwidget)
self.detect_btn.setObjectName("detect_btn")
self.horizontalLayout_8.addWidget(self.detect_btn)
self.verticalLayout_2.addLayout(self.horizontalLayout_6)
self.verticalLayout_2.addLayout(self.horizontalLayout_7)
self.verticalLayout_2.addLayout(self.horizontalLayout_8)
self.verticalLayout_2.setStretch(0, 8)
self.verticalLayout_2.setStretch(1, 1)
self.shuiping.addLayout(self.verticalLayout_2)
......@@ -568,7 +575,7 @@ class Ui_MainWindow(object):
self.menubar.addAction(self.menu.menuAction())
# self.menubar.addAction(self.menu_2.menuAction())
# self.menubar.addAction(self.menu_7.menuAction())
self.menubar.addAction(self.action_3)
# self.menubar.addAction(self.action_3)
self.menubar.addAction(self.action_4)
self.menubar.addAction(self.action_5)
......@@ -597,6 +604,7 @@ class Ui_MainWindow(object):
self.up_ocr_bottom_btn.setText(_translate("MainWindow", "字幕下边界上移"))
self.down_ocr_bottom_btn.setText(_translate("MainWindow", "字幕下边界下移"))
self.confirm_head_aside_btn.setText(_translate("MainWindow", "片头旁白定位"))
self.detect_btn.setText(_translate("MainWindow", "旁白区间检测"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.all_tab), _translate("MainWindow", "字幕旁白"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.zm_tab), _translate("MainWindow", "字幕"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.pb_tab), _translate("MainWindow", "旁白"))
......
......@@ -279,7 +279,12 @@ class ProjectContext:
# todo:现在是只用None判断是否是字幕,后续是否也需要用""来?
for i in range(len(d["字幕"])):
st_time_sec, ed_time_sec, subtitle, suggest, aside, speed = [d[x][i] for x in self.header]
print(">>>>>>>>>>>>>>load ed time")
print(st_time_sec)
print(ed_time_sec)
if ed_time_sec == None or ed_time_sec == "":
print(">>>>into load")
ed_time_sec = st_time_sec
# 当前条目是字幕
if d["字幕"][i] != None:
st_time_sec = reverse_time_to_seconds(str(st_time_sec))
......@@ -302,13 +307,22 @@ class ProjectContext:
if d["终止时间"][i] is None:
# 如果是最后一条
if i == len(d["字幕"]) - 1:
ed_time_sec = "360000" if self.duration == 0 else self.duration # todo 默认最大时长是100h
print(1)
# ed_time_sec = "360000" if self.duration == 0 else self.duration # todo 默认最大时长是100h
else:
ed_time_sec = "%.2f"%(float(d["起始时间"][i + 1]) - 0.01)
else:
ed_time_sec = d["终止时间"][i]
st_time_sec = reverse_time_to_seconds(str(st_time_sec))
ed_time_sec = reverse_time_to_seconds(str(ed_time_sec))
if aside == None:
aside = ""
if suggest != None and suggest != "":
arrays = suggest.split("/")
if len(arrays) == 2:
suggest = str(len(aside)) + "/" + arrays[1]
else:
suggest = str(len(aside)) + "/" + arrays[0]
self.aside_list.append(Element(st_time_sec, ed_time_sec, subtitle, suggest, aside, speed))
self.all_elements.append(self.aside_list[-1])
# print("[load_excel_from_path] ", end='')
......@@ -464,15 +478,12 @@ def write_to_sheet(path: str, sheet_name: str, valuelist: list):
suggest = value[3]
print(">>>>>>>>>>>>>>>>>>>suggest:"+suggest)
if suggest != None and suggest != "":
arrays = suggest.split("/")
if len(arrays) == 2:
value[3] = str(len(value[4])) + "/" + arrays[1]
print(">>>>>>>>>>>>v3:" + value[3])
else:
value[3] = str(len(value[4])) + "/" + arrays[0]
print(">>>>>>>>>>>>v3:" + value[3])
index = len(value)
cur_row = sheet.max_row
......
......@@ -69,19 +69,21 @@ if __name__ == '__main__':
# QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
# currentExitCode = MainWindow.EXIT_CODE_REBOOT
if not os.path.exists("C:\LavFilters") and not os.path.exists("C:\Program Files (x86)\LAV Filters"):
QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
app = QApplication(sys.argv)
app.setWindowIcon(QIcon("./res/images/eagle_2.ico"))
apply_stylesheet(app, theme='dark_amber.xml')
mainWindow = MainWindow(project_path)
QtWidgets.QMessageBox.critical(mainWindow,'警告','视频解码器未正常安装',QtWidgets.QMessageBox.Yes)
else:
QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
currentExitCode = MainWindow.EXIT_CODE_REBOOT
# if not os.path.exists("C:\LavFilters") and not os.path.exists("C:\Program Files (x86)\LAV Filters"):
# QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
# QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
# app = QApplication(sys.argv)
# app.setWindowIcon(QIcon("./res/images/eagle_2.ico"))
# apply_stylesheet(app, theme='dark_amber.xml')
# mainWindow = MainWindow(project_path)
# QtWidgets.QMessageBox.critical(mainWindow,'警告','视频解码器未正常安装',QtWidgets.QMessageBox.Yes)
# else:
# QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
# QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
# currentExitCode = MainWindow.EXIT_CODE_REBOOT
QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
QCoreApplication.setAttribute(Qt.AA_UseHighDpiPixmaps)
currentExitCode = MainWindow.EXIT_CODE_REBOOT
while currentExitCode == MainWindow.EXIT_CODE_REBOOT:
app = QApplication(sys.argv)
app.setWindowIcon(QIcon("./res/images/eagle_2.ico"))
......@@ -95,6 +97,8 @@ if __name__ == '__main__':
apply_stylesheet(app, theme='dark_amber.xml')
# mainWindow.show()
mainWindow.showMaximized()
if not os.path.exists("C:\LavFilters") and not os.path.exists("C:\Program Files (x86)\LAV Filters"):
mainWindow.import_excel_dialog.show_with_msg("视频解码器未正常安装")
currentExitCode = app.exec_()
app = None
except Exception as e:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment