issues/504

This commit is contained in:
恍兮惚兮 2024-01-28 00:56:46 +08:00
parent a5c83efd7c
commit 1fde4aca87
3 changed files with 93 additions and 87 deletions

View File

@ -1,7 +1,7 @@
import functools import functools
from PyQt5.QtWidgets import QDialogButtonBox,QDialog,QHeaderView,QComboBox,QFormLayout,QDoubleSpinBox,QSpinBox,QHBoxLayout,QLineEdit,QFileDialog,QPushButton,QLabel,QTableView,QVBoxLayout from PyQt5.QtWidgets import QDialogButtonBox,QDialog,QHeaderView,QComboBox,QFormLayout,QDoubleSpinBox,QSpinBox,QHBoxLayout,QLineEdit,QFileDialog,QPushButton,QLabel,QTableView,QVBoxLayout
from PyQt5.QtCore import Qt,QSize from PyQt5.QtCore import Qt,QSize
from PyQt5.QtGui import QStandardItem, QStandardItemModel from PyQt5.QtGui import QCloseEvent, QStandardItem, QStandardItemModel
from PyQt5.QtGui import QColor from PyQt5.QtGui import QColor
import qtawesome,importlib import qtawesome,importlib
@ -11,18 +11,18 @@ from myutils.utils import makehtml
from myutils.wrapper import Singleton from myutils.wrapper import Singleton
@Singleton @Singleton
class autoinitdialog(QDialog): class autoinitdialog(QDialog):
def __init__(dialog, parent,title,width,lines,_=None ) -> None: def __init__(self, parent,title,width,lines,_=None ) -> None:
super().__init__(parent, Qt.WindowCloseButtonHint) super().__init__(parent, Qt.WindowCloseButtonHint)
dialog.setWindowTitle(_TR(title)) self.setWindowTitle(_TR(title))
dialog.resize(QSize(width,10)) self.resize(QSize(width,10))
formLayout = QFormLayout() formLayout = QFormLayout()
dialog.setLayout(formLayout) self.setLayout(formLayout)
regist=[] regist=[]
def save(callback=None): def save(callback=None):
for l in regist: for l in regist:
l[0][l[1]]=l[2]() l[0][l[1]]=l[2]()
dialog.close() self.close()
if callback: if callback:
callback() callback()
def openfiledirectory(multi,edit,isdir,filter1='*.*'): def openfiledirectory(multi,edit,isdir,filter1='*.*'):
@ -68,7 +68,7 @@ class autoinitdialog(QDialog):
lineW.currentIndexChanged.connect(functools.partial(dd.__setitem__,key)) lineW.currentIndexChanged.connect(functools.partial(dd.__setitem__,key))
elif line['t']=='okcancel': elif line['t']=='okcancel':
lineW = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel) lineW = QDialogButtonBox(QDialogButtonBox.Ok|QDialogButtonBox.Cancel)
lineW.rejected.connect(dialog.close) lineW.rejected.connect(self.close)
lineW.accepted.connect(functools.partial(save,None if 'callback' not in line else line['callback'])) lineW.accepted.connect(functools.partial(save,None if 'callback' not in line else line['callback']))
lineW.button(QDialogButtonBox.Ok).setText(_TR('确定')) lineW.button(QDialogButtonBox.Ok).setText(_TR('确定'))
@ -106,7 +106,7 @@ class autoinitdialog(QDialog):
formLayout.addRow(_TR(line['l']),lineW) formLayout.addRow(_TR(line['l']),lineW)
else: else:
formLayout.addRow( lineW) formLayout.addRow( lineW)
dialog.show() self.show()
def getsomepath1(parent,title,d,k,label,callback=None,isdir=False,filter1="*.db"): def getsomepath1(parent,title,d,k,label,callback=None,isdir=False,filter1="*.db"):
autoinitdialog(parent,title,800,[ autoinitdialog(parent,title,800,[
@ -161,34 +161,44 @@ class multicolorset(QDialog):
self.show() self.show()
@Singleton @Singleton
class postconfigdialog(QDialog): class postconfigdialog_(QDialog):
def __init__(dialog, parent,configdict,title,_=None) -> None: def closeEvent(self, a0: QCloseEvent) -> None:
if self.closeevent:
self.button.setFocus()
rows=self.model.rowCount()
newdict={}
for row in range(rows):
if self.model.item(row,0).text()=="":
continue
newdict[(self.model.item(row,0).text())]=(self.model.item(row,1).text())
self.configdict[self.key]=newdict
def __init__(self, parent,configdict,title) -> None:
super().__init__(parent,Qt.WindowCloseButtonHint) super().__init__(parent,Qt.WindowCloseButtonHint)
print(title)
dialog.setWindowTitle(_TR(title)) self.setWindowTitle(_TR(title))
#dialog.setWindowModality(Qt.ApplicationModal) #self.setWindowModality(Qt.ApplicationModal)
self.closeevent=False
formLayout = QVBoxLayout(dialog) # 配置layout formLayout = QVBoxLayout(self) # 配置layout
key=list(configdict.keys())[0] key=list(configdict.keys())[0]
lb=QLabel(dialog) lb=QLabel(self)
lb.setText(_TR(key) ) lb.setText(_TR(key) )
formLayout.addWidget(lb) formLayout.addWidget(lb)
if type(configdict[key]) in (float,int): if type(configdict[key]) in (float,int):
spin=QSpinBox(dialog) spin=QSpinBox(self)
spin.setMinimum(1) spin.setMinimum(1)
spin.setMaximum(100) spin.setMaximum(100)
spin.setValue(configdict[key]) spin.setValue(configdict[key])
spin.valueChanged.connect(lambda x:configdict.__setitem__(key,x)) spin.valueChanged.connect(lambda x:configdict.__setitem__(key,x))
formLayout.addWidget(spin) formLayout.addWidget(spin)
dialog.resize(QSize(600,1)) self.resize(QSize(600,1))
elif type(configdict[key])==type({}): elif type(configdict[key])==type({}):
# lines=QTextEdit(dialog) # lines=QTextEdit(self)
# lines.setPlainText('\n'.join(configdict[key])) # lines.setPlainText('\n'.join(configdict[key]))
# lines.textChanged.connect(lambda :configdict.__setitem__(key,lines.toPlainText().split('\n'))) # lines.textChanged.connect(lambda :configdict.__setitem__(key,lines.toPlainText().split('\n')))
# formLayout.addWidget(lines) # formLayout.addWidget(lines)
model=QStandardItemModel(len(configdict[key]),1 , dialog) model=QStandardItemModel(len(configdict[key]),1 , self)
row=0 row=0
for key1 in ( (configdict[key])): # 2 for key1 in ( (configdict[key])): # 2
@ -200,37 +210,33 @@ class postconfigdialog(QDialog):
model.setItem(row, 1, item) model.setItem(row, 1, item)
row+=1 row+=1
model.setHorizontalHeaderLabels(_TRL([ '原文内容','替换为'])) model.setHorizontalHeaderLabels(_TRL([ '原文内容','替换为']))
table = QTableView(dialog) table = QTableView(self)
table.setModel(model) table.setModel(model)
table.setWordWrap(False) table.setWordWrap(False)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
#table.setEditTriggers(QAbstractItemView.NoEditTriggers) #table.setEditTriggers(QAbstractItemView.NoEditTriggers)
#table.clicked.connect(self.show_info) #table.clicked.connect(self.show_info)
button=QPushButton(dialog) button=QPushButton(self)
button.setText(_TR('添加行')) button.setText(_TR('添加行'))
def clicked1(): def clicked1():
model.insertRow(0,[QStandardItem(''),QStandardItem('')]) model.insertRow(0,[QStandardItem(''),QStandardItem('')])
button.clicked.connect(clicked1) button.clicked.connect(clicked1)
button2=QPushButton(dialog) button2=QPushButton(self)
button2.setText(_TR('删除选中行')) button2.setText(_TR('删除选中行'))
def clicked2(): def clicked2():
model.removeRow(table.currentIndex().row()) model.removeRow(table.currentIndex().row())
button2.clicked.connect(clicked2) button2.clicked.connect(clicked2)
self.button=button
def clicked3(_): self.model=model
button.setFocus() self.key=key
rows=model.rowCount() self.configdict=configdict
newdict={} self.closeevent=True
for row in range(rows):
if model.item(row,0).text()=="":
continue
newdict[(model.item(row,0).text())]=(model.item(row,1).text())
configdict[key]=newdict
dialog.closeEvent=(clicked3)
formLayout.addWidget(table) formLayout.addWidget(table)
formLayout.addWidget(button) formLayout.addWidget(button)
formLayout.addWidget(button2) formLayout.addWidget(button2)
dialog.resize(QSize(600,400)) self.resize(QSize(600,400))
dialog.show() self.show()
def postconfigdialog(parent,configdict,title):
postconfigdialog_(parent,configdict,title)

View File

@ -3,7 +3,7 @@ import functools
from PyQt5.QtWidgets import QDialog,QLabel ,QLineEdit,QSpinBox,QPushButton ,QTableView, QVBoxLayout,QHBoxLayout,QHeaderView ,QTextEdit,QHBoxLayout,QWidget,QMenu,QAction from PyQt5.QtWidgets import QDialog,QLabel ,QLineEdit,QSpinBox,QPushButton ,QTableView, QVBoxLayout,QHBoxLayout,QHeaderView ,QTextEdit,QHBoxLayout,QWidget,QMenu,QAction
from PyQt5.QtCore import QSize,Qt,pyqtSignal,QPoint from PyQt5.QtCore import QSize,Qt,pyqtSignal,QPoint
from PyQt5.QtGui import QStandardItem, QStandardItemModel from PyQt5.QtGui import QCloseEvent, QStandardItem, QStandardItemModel
from traceback import print_exc from traceback import print_exc
from myutils.config import globalconfig ,postprocessconfig,noundictconfig,transerrorfixdictconfig,_TR,_TRL,defaultglobalconfig from myutils.config import globalconfig ,postprocessconfig,noundictconfig,transerrorfixdictconfig,_TR,_TRL,defaultglobalconfig
import functools ,gobject import functools ,gobject
@ -162,15 +162,15 @@ def setTab7_lazy(self) :
@Singleton @Singleton
class noundictconfigdialog1(QDialog): class noundictconfigdialog1(QDialog):
def __init__(dialog,parent,configdict,title,label=[ '原文','翻译'] ,_=None) -> None: def __init__(self,parent,configdict,title,label=[ '原文','翻译'] ,_=None) -> None:
super().__init__(parent,Qt.WindowCloseButtonHint) super().__init__(parent,Qt.WindowCloseButtonHint)
dialog.setWindowTitle(_TR(title)) self.setWindowTitle(_TR(title))
#dialog.setWindowModality(Qt.ApplicationModal) #self.setWindowModality(Qt.ApplicationModal)
formLayout = QVBoxLayout(dialog) # 配置layout formLayout = QVBoxLayout(self) # 配置layout
model=QStandardItemModel(len(list(configdict['dict'].keys())),1 , dialog) model=QStandardItemModel(len(list(configdict['dict'].keys())),1 , self)
row=0 row=0
for key in (configdict['dict']): # 2 for key in (configdict['dict']): # 2
@ -180,7 +180,7 @@ class noundictconfigdialog1(QDialog):
model.setItem(row, 1, item) model.setItem(row, 1, item)
row+=1 row+=1
model.setHorizontalHeaderLabels(_TRL(label)) model.setHorizontalHeaderLabels(_TRL(label))
table = QTableView(dialog) table = QTableView(self)
table.setModel(model) table.setModel(model)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
#table.setEditTriggers(QAbstractItemView.NoEditTriggers) #table.setEditTriggers(QAbstractItemView.NoEditTriggers)
@ -209,46 +209,58 @@ class noundictconfigdialog1(QDialog):
search.addWidget(button4) search.addWidget(button4)
button=QPushButton(dialog) button=QPushButton(self)
button.setText(_TR('添加行')) button.setText(_TR('添加行'))
def clicked1(): def clicked1():
model.insertRow(0,[ QStandardItem(''),QStandardItem('')]) model.insertRow(0,[ QStandardItem(''),QStandardItem('')])
button.clicked.connect(clicked1) button.clicked.connect(clicked1)
button2=QPushButton(dialog) button2=QPushButton(self)
button2.setText(_TR('删除选中行')) button2.setText(_TR('删除选中行'))
def clicked2(): def clicked2():
model.removeRow(table.currentIndex().row()) model.removeRow(table.currentIndex().row())
button2.clicked.connect(clicked2) button2.clicked.connect(clicked2)
self.button=button
def clicked3(_): self.model=model
button.setFocus() self.configdict=configdict
rows=model.rowCount()
newdict={}
for row in range(rows):
if model.item(row,0).text()=="":
continue
newdict[model.item(row,0).text()]=model.item(row,1).text()
configdict['dict']=newdict
dialog.closeEvent=clicked3
formLayout.addWidget(table) formLayout.addWidget(table)
formLayout.addLayout(search) formLayout.addLayout(search)
formLayout.addWidget(button) formLayout.addWidget(button)
formLayout.addWidget(button2) formLayout.addWidget(button2)
dialog.resize(QSize(600,400)) self.resize(QSize(600,400))
dialog.show() self.show()
def closeEvent(self, a0: QCloseEvent) -> None:
self.button.setFocus()
rows=self.model.rowCount()
newdict={}
for row in range(rows):
if self.model.item(row,0).text()=="":
continue
newdict[self.model.item(row,0).text()]=self.model.item(row,1).text()
self.configdict['dict']=newdict
@Singleton @Singleton
class noundictconfigdialog(QDialog): class noundictconfigdialog(QDialog):
def __init__(dialog,parent,configdict,title,label=['游戏ID MD5' ,'原文','翻译'] ,_=None) -> None: def closeEvent(self, a0: QCloseEvent) -> None:
self.button.setFocus()
rows=self.model.rowCount()
newdict={}
for row in range(rows):
if self.model.item(row,1).text()=="":
continue
if self.model.item(row,1).text() not in newdict:
newdict[self.model.item(row,1).text()]=[self.model.item(row,0).text(),self.model.item(row,2).text()]
else:
newdict[self.model.item(row,1).text()]+=[self.model.item(row,0).text(),self.model.item(row,2).text()]
self.configdict['dict']=newdict
def __init__(self,parent,configdict,title,label=['游戏ID MD5' ,'原文','翻译'] ,_=None) -> None:
super().__init__(parent,Qt.WindowCloseButtonHint) super().__init__(parent,Qt.WindowCloseButtonHint)
dialog.setWindowTitle(_TR(title)) self.setWindowTitle(_TR(title))
#dialog.setWindowModality(Qt.ApplicationModal) #self.setWindowModality(Qt.ApplicationModal)
formLayout = QVBoxLayout(dialog) # 配置layout formLayout = QVBoxLayout(self) # 配置layout
model=QStandardItemModel(len(list(configdict['dict'].keys())),1 , dialog) model=QStandardItemModel(len(list(configdict['dict'].keys())),1 , self)
row=0 row=0
for key in (configdict['dict']): # 2 for key in (configdict['dict']): # 2
if type(configdict['dict'][key])==str: if type(configdict['dict'][key])==str:
@ -263,12 +275,12 @@ class noundictconfigdialog(QDialog):
model.setItem(row, 2, item) model.setItem(row, 2, item)
row+=1 row+=1
model.setHorizontalHeaderLabels(_TRL(label)) model.setHorizontalHeaderLabels(_TRL(label))
table = QTableView(dialog) table = QTableView(self)
table.setModel(model) table.setModel(model)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch) table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
#table.setEditTriggers(QAbstractItemView.NoEditTriggers) #table.setEditTriggers(QAbstractItemView.NoEditTriggers)
#table.clicked.connect(self.show_info) #table.clicked.connect(self.show_info)
button=QPushButton(dialog) button=QPushButton(self)
button.setText(_TR('添加行')) button.setText(_TR('添加行'))
def clicked1(): def clicked1():
try: try:
@ -278,13 +290,13 @@ class noundictconfigdialog(QDialog):
print_exc() print_exc()
model.insertRow(0,[QStandardItem('0'),QStandardItem(''),QStandardItem('')]) model.insertRow(0,[QStandardItem('0'),QStandardItem(''),QStandardItem('')])
button.clicked.connect(clicked1) button.clicked.connect(clicked1)
button2=QPushButton(dialog) button2=QPushButton(self)
button2.setText(_TR('删除选中行')) button2.setText(_TR('删除选中行'))
def clicked2(): def clicked2():
model.removeRow(table.currentIndex().row()) model.removeRow(table.currentIndex().row())
button2.clicked.connect(clicked2) button2.clicked.connect(clicked2)
button5=QPushButton(dialog) button5=QPushButton(self)
button5.setText(_TR('设置所有词条为全局词条')) button5.setText(_TR('设置所有词条为全局词条'))
def clicked5(): def clicked5():
rows=model.rowCount() rows=model.rowCount()
@ -292,20 +304,6 @@ class noundictconfigdialog(QDialog):
model.item(row,0).setText('0') model.item(row,0).setText('0')
button5.clicked.connect(clicked5) button5.clicked.connect(clicked5)
def clicked3(_):
button.setFocus()
rows=model.rowCount()
newdict={}
for row in range(rows):
if model.item(row,1).text()=="":
continue
if model.item(row,1).text() not in newdict:
newdict[model.item(row,1).text()]=[model.item(row,0).text(),model.item(row,2).text()]
else:
newdict[model.item(row,1).text()]+=[model.item(row,0).text(),model.item(row,2).text()]
configdict['dict']=newdict
dialog.closeEvent=clicked3
search=QHBoxLayout() search=QHBoxLayout()
searchcontent=QLineEdit() searchcontent=QLineEdit()
search.addWidget(searchcontent) search.addWidget(searchcontent)
@ -341,7 +339,9 @@ class noundictconfigdialog(QDialog):
button5.clicked.connect(lambda x:gobject.baseobject.__setattr__('currentmd5',md5content.text())) button5.clicked.connect(lambda x:gobject.baseobject.__setattr__('currentmd5',md5content.text()))
button5.setText(_TR('修改')) button5.setText(_TR('修改'))
setmd5layout.addWidget(button5) setmd5layout.addWidget(button5)
self.button=button
self.model=model
self.configdict=configdict
formLayout.addLayout(setmd5layout) formLayout.addLayout(setmd5layout)
dialog.resize(QSize(600,400)) self.resize(QSize(600,400))
dialog.show() self.show()

View File

@ -1,5 +1,5 @@
{ {
"version":"v2.36.1", "version":"v2.36.2",
"language_list_show":["简体中文","日本語","English","Русский язык","Español","한국어","Français","繁體中文","Tiếng Việt","Türkçe","Polski","Українська Мова","Italiano","اللغة العربية","ภาษาไทย"] , "language_list_show":["简体中文","日本語","English","Русский язык","Español","한국어","Français","繁體中文","Tiếng Việt","Türkçe","Polski","Українська Мова","Italiano","اللغة العربية","ภาษาไทย"] ,
"language_list_translator":["简体中文","日文","英文","俄语","西班牙语","韩语","法语","繁体中文","越南语","土耳其语","波兰语","乌克兰语","意大利语","阿拉伯语","泰语"], "language_list_translator":["简体中文","日文","英文","俄语","西班牙语","韩语","法语","繁体中文","越南语","土耳其语","波兰语","乌克兰语","意大利语","阿拉伯语","泰语"],
"language_list_translator_inner":["zh", "ja", "en","ru","es","ko","fr","cht","vi","tr","pl","uk","it","ar","th"], "language_list_translator_inner":["zh", "ja", "en","ru","es","ko","fr","cht","vi","tr","pl","uk","it","ar","th"],