mirror of
https://github.com/HIllya51/LunaTranslator.git
synced 2024-12-26 07:04:12 +08:00
.
This commit is contained in:
parent
2b1e8f322f
commit
b1385a9e74
@ -522,6 +522,16 @@ namespace
|
||||
last = s;
|
||||
buffer->from(s);
|
||||
}
|
||||
void PCSG01036(TextBuffer *buffer, HookParam *hp)
|
||||
{
|
||||
auto s = buffer->strA();
|
||||
static std::string last;
|
||||
if (last == s)
|
||||
return buffer->clear();
|
||||
last = s;
|
||||
strReplace(s, "#n", "");
|
||||
buffer->from(s);
|
||||
}
|
||||
void FPCSG00815(TextBuffer *buffer, HookParam *hp)
|
||||
{
|
||||
auto s = buffer->strA();
|
||||
@ -795,6 +805,10 @@ namespace
|
||||
{0x8005426C, {CODEC_UTF8, 0, 0, 0, PCSG01068, "PCSG01068"}},
|
||||
// スカーレッドライダーゼクス Rev.
|
||||
{0x800BEE38, {CODEC_UTF8, 0, 0, 0, PCSG00787, "PCSG00745"}},
|
||||
// 緋色の欠片 ~おもいいろの記憶~
|
||||
{0x8007838c, {CODEC_UTF8, 5, 0, 0, PCSG01036, "PCSG01036"}},
|
||||
{0x8001154c, {CODEC_UTF8, 8, 0, 0, PCSG01036, "PCSG01036"}},
|
||||
{0x800879ee, {CODEC_UTF8, 2, 0, 0, PCSG01036, "PCSG01036"}},
|
||||
};
|
||||
return 1;
|
||||
}();
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
set(VERSION_MAJOR 6)
|
||||
set(VERSION_MINOR 15)
|
||||
set(VERSION_PATCH 2)
|
||||
set(VERSION_PATCH 3)
|
||||
set(VERSION_REVISION 0)
|
||||
set(LUNA_VERSION "{${VERSION_MAJOR},${VERSION_MINOR},${VERSION_PATCH},${VERSION_REVISION}}")
|
||||
add_library(VERSION_DEF ${CMAKE_CURRENT_LIST_DIR}/version_def.cpp)
|
||||
|
@ -96,8 +96,8 @@
|
||||
N:无视上下文
|
||||
|
||||
寄存器的data_offset:
|
||||
* 32位 -4 for EAX, -8 for ECX, -C for EDX, -10 for EBX, -14 for ESP, -18 for EBP, -1C for ESI, -20 for EDI
|
||||
* 64位 -C for RAX, -14 for RBX, -1C for RCX, -24 for RDX, and so on for RSP, RBP, RSI, RDI, R8-R15
|
||||
* 32位 EAX -4, ECX -8, EDX -C, EBX -10, ESP -14, EBP -18, ESI -1C, EDI -20
|
||||
* 64位 RAX -C, RBX -14, RCX -1C, RDX -24, RSP -2C, RBP -34, RSI -3C, RDI -44, R8 -4C, R9 -54, R10 -5C, R11 -64, R12 -6C, R13 -74, R14 -7C, R15 -84
|
||||
|
||||
1. #### JIT HOOK
|
||||
|
||||
|
@ -1089,6 +1089,7 @@ class MAINUI:
|
||||
fontsize=globalconfig["settingfontsize"] + 4,
|
||||
fonttype=globalconfig["settingfonttype"],
|
||||
)
|
||||
style+="QGroupBox#notitle{ margin-top:0px;} QGroupBox#notitle:title {margin-top: 0px;}"
|
||||
self.commonstylebase.setStyleSheet(style)
|
||||
font = QFont()
|
||||
font.setFamily(globalconfig["settingfonttype"])
|
||||
|
@ -2378,12 +2378,11 @@ class mdict(cishubase):
|
||||
csscollect: dict,
|
||||
):
|
||||
base = os.path.dirname(fn)
|
||||
src_pattern = r'src="([^"]+)"'
|
||||
href_pattern = r'href="([^"]+)"'
|
||||
|
||||
src_matches = re.findall(src_pattern, html_content)
|
||||
href_matches = re.findall(href_pattern, html_content)
|
||||
for url in src_matches + href_matches:
|
||||
matches = re.findall('src="([^"]+)"', html_content)
|
||||
matches += re.findall('href="([^"]+)"', html_content)
|
||||
matches += re.findall("""href='([^']+)'""", html_content)
|
||||
matches += re.findall("""src='([^']+)'""", html_content)
|
||||
for url in matches:
|
||||
if url.startswith("#"): # a href # 页内跳转
|
||||
continue
|
||||
try:
|
||||
@ -2468,11 +2467,11 @@ class mdict(cishubase):
|
||||
contents = []
|
||||
idx = 0
|
||||
for _, foldflow, title, res in allres:
|
||||
klass2='tab-pane_mdict_internal'
|
||||
klass1='tab-button_mdict_internal'
|
||||
if idx==0:
|
||||
klass2+=' active'
|
||||
klass1+=' active'
|
||||
klass2 = "tab-pane_mdict_internal"
|
||||
klass1 = "tab-button_mdict_internal"
|
||||
if idx == 0:
|
||||
klass2 += " active"
|
||||
klass1 += " active"
|
||||
btns.append(
|
||||
"""<button type="button" onclick="onclickbtn_mdict_internal('buttonid_mdict_internal{idx}')" id="buttonid_mdict_internal{idx}" class="{klass}" data-tab="tab_mdict_internal{idx}">{title}</button>""".format(
|
||||
idx=idx, title=title, klass=klass1
|
||||
|
@ -4,6 +4,7 @@ from qtsymbols import *
|
||||
import os, functools, uuid
|
||||
from traceback import print_exc
|
||||
import gobject, qtawesome
|
||||
from gui.inputdialog import autoinitdialog
|
||||
from gui.dynalang import LAction
|
||||
from gui.dialog_savedgame_v3 import dialog_savedgame_v3
|
||||
from gui.dialog_savedgame_legacy import dialog_savedgame_legacy
|
||||
@ -22,7 +23,6 @@ from gui.usefulwidget import (
|
||||
saveposwindow,
|
||||
getboxlayout,
|
||||
MySwitch,
|
||||
Prompt_dialog,
|
||||
IconButton,
|
||||
getsimplecombobox,
|
||||
FQLineEdit,
|
||||
@ -414,25 +414,16 @@ class dialog_savedgame_new(QWidget):
|
||||
self.clicked3_batch()
|
||||
|
||||
elif action == editname or action == addlist:
|
||||
_dia = Prompt_dialog(
|
||||
self,
|
||||
"修改列表名称" if action == editname else "创建列表",
|
||||
"",
|
||||
[
|
||||
[
|
||||
"名称",
|
||||
(
|
||||
savegametaged[calculatetagidx(self.reftagid)]["title"]
|
||||
if action == editname
|
||||
else ""
|
||||
),
|
||||
],
|
||||
],
|
||||
)
|
||||
__d = {
|
||||
"k": (
|
||||
savegametaged[calculatetagidx(self.reftagid)]["title"]
|
||||
if action == editname
|
||||
else ""
|
||||
)
|
||||
}
|
||||
|
||||
if _dia.exec():
|
||||
|
||||
title = _dia.text[0].text()
|
||||
def cb(__d):
|
||||
title = __d["k"]
|
||||
if title != "":
|
||||
i = calculatetagidx(self.reftagid)
|
||||
if action == addlist:
|
||||
@ -448,6 +439,25 @@ class dialog_savedgame_new(QWidget):
|
||||
|
||||
savegametaged[i]["title"] = title
|
||||
self.loadcombo(False)
|
||||
|
||||
autoinitdialog(
|
||||
self,
|
||||
__d,
|
||||
"修改列表名称" if action == editname else "创建列表",
|
||||
600,
|
||||
[
|
||||
{
|
||||
"type": "lineedit",
|
||||
"name": "名称",
|
||||
"k": "k",
|
||||
},
|
||||
{
|
||||
"type": "okcancel",
|
||||
"callback": functools.partial(cb, __d),
|
||||
},
|
||||
],
|
||||
exec_=True,
|
||||
)
|
||||
elif action == dellist:
|
||||
i = calculatetagidx(self.reftagid)
|
||||
savegametaged.pop(i)
|
||||
|
@ -487,6 +487,7 @@ def getalistname(parent, callback, skipid=False, skipidid=None, title="添加到
|
||||
"callback": functools.partial(__wrap, callback, __d, __uid),
|
||||
},
|
||||
],
|
||||
exec_=True
|
||||
)
|
||||
elif len(__uid):
|
||||
|
||||
|
@ -49,10 +49,12 @@ from gui.usefulwidget import (
|
||||
getsimpleswitch,
|
||||
threebuttons,
|
||||
getspinbox,
|
||||
CollapsibleBox,
|
||||
getsmalllabel,
|
||||
listediterline,
|
||||
editswitchTextBrowser,
|
||||
FocusCombo,
|
||||
VisLFormLayout,
|
||||
)
|
||||
from gui.dynalang import (
|
||||
LFormLayout,
|
||||
@ -345,14 +347,15 @@ class dialog_setting_game_internal(QWidget):
|
||||
print_exc()
|
||||
|
||||
def metadataorigin(self, formLayout: LFormLayout, gameuid):
|
||||
vislf = VisLFormLayout()
|
||||
formLayout.addRow(vislf)
|
||||
combo = getsimplecombobox(
|
||||
["无"] + list(targetmod.keys()),
|
||||
globalconfig,
|
||||
"primitivtemetaorigin",
|
||||
internal=[None] + list(targetmod.keys()),
|
||||
)
|
||||
formLayout.addRow("首选的", combo)
|
||||
formLayout.addRow(None, QLabel())
|
||||
vislf.addRow("首选的", combo)
|
||||
|
||||
def valid(idx, x):
|
||||
if x:
|
||||
@ -363,6 +366,8 @@ class dialog_setting_game_internal(QWidget):
|
||||
combo.setCurrentIndex(0)
|
||||
combo.setRowVisible(idx + 1, x)
|
||||
|
||||
linei = 1
|
||||
notvislineis = []
|
||||
for i, key in enumerate(targetmod):
|
||||
try:
|
||||
idname = targetmod[key].idname
|
||||
@ -402,18 +407,37 @@ class dialog_setting_game_internal(QWidget):
|
||||
continue
|
||||
try:
|
||||
__settting = targetmod[key].querysettingwindow
|
||||
coll = CollapsibleBox(
|
||||
functools.partial(__settting, gameuid), self, margin0=False
|
||||
)
|
||||
|
||||
def _revert(c, li):
|
||||
vis = c.isVisible()
|
||||
vislf.setRowVisible(li, not vis)
|
||||
c.toggle(not vis)
|
||||
|
||||
_vbox_internal.insert(
|
||||
2,
|
||||
getIconButton(
|
||||
functools.partial(__settting, self, gameuid), icon="fa.gear"
|
||||
functools.partial(_revert, coll, linei + 1),
|
||||
icon="fa.gear",
|
||||
),
|
||||
)
|
||||
vislf.addRow(
|
||||
key,
|
||||
getboxlayout(_vbox_internal),
|
||||
)
|
||||
vislf.addRow(coll)
|
||||
notvislineis.append(linei + 1)
|
||||
linei += 2
|
||||
except:
|
||||
pass
|
||||
formLayout.addRow(
|
||||
key,
|
||||
getboxlayout(_vbox_internal),
|
||||
)
|
||||
vislf.addRow(
|
||||
key,
|
||||
getboxlayout(_vbox_internal),
|
||||
)
|
||||
linei += 1
|
||||
for _ in notvislineis:
|
||||
vislf.setRowVisible(_, False)
|
||||
|
||||
def doaddtab(self, wfunct, exe, layout):
|
||||
w, do = wfunct(exe)
|
||||
@ -1032,6 +1056,7 @@ class dialog_setting_game_internal(QWidget):
|
||||
"callback": functools.partial(__callback, _internal, __d),
|
||||
},
|
||||
],
|
||||
exec_=True,
|
||||
)
|
||||
|
||||
def getlangtab(self, formLayout: LFormLayout, gameuid):
|
||||
|
@ -1,7 +1,7 @@
|
||||
from qtsymbols import *
|
||||
import os, functools, uuid, threading, shutil, time
|
||||
from traceback import print_exc
|
||||
import gobject, base64
|
||||
import gobject
|
||||
from myutils.config import (
|
||||
savehook_new_list,
|
||||
savehook_new_data,
|
||||
@ -18,7 +18,6 @@ from gui.specialwidget import stackedlist, shrinkableitem, shownumQPushButton
|
||||
from gui.usefulwidget import (
|
||||
pixmapviewer,
|
||||
statusbutton,
|
||||
Prompt_dialog,
|
||||
makesubtab_lazy,
|
||||
tabadd_lazy,
|
||||
listediter,
|
||||
@ -744,32 +743,8 @@ class dialog_savedgame_v3(QWidget):
|
||||
if action == startgame:
|
||||
startgamecheck(self, getreflist(self.reftagid), self.currentfocusuid)
|
||||
elif addlist == action:
|
||||
_dia = Prompt_dialog(
|
||||
self,
|
||||
"创建列表",
|
||||
"",
|
||||
[
|
||||
["名称", ""],
|
||||
],
|
||||
)
|
||||
|
||||
if _dia.exec():
|
||||
|
||||
title = _dia.text[0].text()
|
||||
if title != "":
|
||||
i = calculatetagidx(None)
|
||||
if action == addlist:
|
||||
tag = {
|
||||
"title": title,
|
||||
"games": [],
|
||||
"uid": str(uuid.uuid4()),
|
||||
"opened": True,
|
||||
}
|
||||
savegametaged.insert(i, tag)
|
||||
group0, btn = self.createtaglist(
|
||||
self.stack, title, tag["uid"], True
|
||||
)
|
||||
self.stack.insertw(i, group0)
|
||||
self.createlist(True, None)
|
||||
|
||||
elif action == delgame:
|
||||
self.shanchuyouxi()
|
||||
@ -1002,42 +977,7 @@ class dialog_savedgame_v3(QWidget):
|
||||
elif action == Downaction:
|
||||
self.taglistrerank(tagid, 1)
|
||||
elif action == editname or action == addlist:
|
||||
_dia = Prompt_dialog(
|
||||
self,
|
||||
"修改列表名称" if action == editname else "创建列表",
|
||||
"",
|
||||
[
|
||||
[
|
||||
"名称",
|
||||
(
|
||||
savegametaged[calculatetagidx(tagid)]["title"]
|
||||
if action == editname
|
||||
else ""
|
||||
),
|
||||
],
|
||||
],
|
||||
)
|
||||
|
||||
if _dia.exec():
|
||||
|
||||
title = _dia.text[0].text()
|
||||
if title != "":
|
||||
i = calculatetagidx(tagid)
|
||||
if action == addlist:
|
||||
tag = {
|
||||
"title": title,
|
||||
"games": [],
|
||||
"uid": str(uuid.uuid4()),
|
||||
"opened": True,
|
||||
}
|
||||
savegametaged.insert(i, tag)
|
||||
group0, btn = self.createtaglist(
|
||||
self.stack, title, tag["uid"], True
|
||||
)
|
||||
self.stack.insertw(i, group0)
|
||||
elif action == editname:
|
||||
self.stack.w(i).settitle(title)
|
||||
savegametaged[i]["title"] = title
|
||||
self.createlist(action == addlist, tagid)
|
||||
|
||||
elif action == dellist:
|
||||
i = calculatetagidx(tagid)
|
||||
@ -1045,6 +985,47 @@ class dialog_savedgame_v3(QWidget):
|
||||
self.stack.popw(i)
|
||||
self.reallist.pop(tagid)
|
||||
|
||||
def createlist(self, create, tagid):
|
||||
__d = {"k": ("" if create else savegametaged[calculatetagidx(tagid)]["title"])}
|
||||
|
||||
def cb(__d):
|
||||
title = __d["k"]
|
||||
if not title:
|
||||
return
|
||||
i = calculatetagidx(tagid)
|
||||
if create:
|
||||
tag = {
|
||||
"title": title,
|
||||
"games": [],
|
||||
"uid": str(uuid.uuid4()),
|
||||
"opened": True,
|
||||
}
|
||||
savegametaged.insert(i, tag)
|
||||
group0, btn = self.createtaglist(self.stack, title, tag["uid"], True)
|
||||
self.stack.insertw(i, group0)
|
||||
else:
|
||||
self.stack.w(i).settitle(title)
|
||||
savegametaged[i]["title"] = title
|
||||
|
||||
autoinitdialog(
|
||||
self,
|
||||
__d,
|
||||
"创建列表" if create else "修改列表名称",
|
||||
600,
|
||||
[
|
||||
{
|
||||
"type": "lineedit",
|
||||
"name": "名称",
|
||||
"k": "k",
|
||||
},
|
||||
{
|
||||
"type": "okcancel",
|
||||
"callback": functools.partial(cb, __d),
|
||||
},
|
||||
],
|
||||
exec_=True,
|
||||
)
|
||||
|
||||
def createtaglist(self, p, title, tagid, opened):
|
||||
|
||||
self.reallist[tagid] = []
|
||||
|
@ -265,3 +265,18 @@ class LStandardItemModel(QStandardItemModel):
|
||||
def removeColumn(self, col):
|
||||
self.__ls.pop(col)
|
||||
super().removeColumn(col)
|
||||
|
||||
|
||||
class LToolButton(QToolButton):
|
||||
def __init__(self, *argc, **kwarg):
|
||||
super().__init__(*argc, **kwarg)
|
||||
self._text = self.text()
|
||||
super().setText(_TR(self._text))
|
||||
|
||||
def setText(self, t):
|
||||
self._text = t
|
||||
super().setText(_TR(t))
|
||||
|
||||
def updatelangtext(self):
|
||||
if self._text:
|
||||
super().setText(_TR(self._text))
|
||||
|
@ -445,9 +445,17 @@ def autoinitdialog_items(dic):
|
||||
|
||||
|
||||
@Singleton_close
|
||||
class autoinitdialog__(LDialog):
|
||||
class autoinitdialog(LDialog):
|
||||
def __init__(
|
||||
self, parent, dd, title, width, lines, modelfile=None, maybehasextrainfo=None
|
||||
self,
|
||||
parent,
|
||||
dd,
|
||||
title,
|
||||
width,
|
||||
lines,
|
||||
modelfile=None,
|
||||
maybehasextrainfo=None,
|
||||
exec_=False,
|
||||
) -> None:
|
||||
super().__init__(parent, Qt.WindowType.WindowCloseButtonHint)
|
||||
self.setWindowTitle(title)
|
||||
@ -695,18 +703,10 @@ class autoinitdialog__(LDialog):
|
||||
cachecombo[comboname].currentIndexChanged.emit(
|
||||
cachecombo[comboname].currentIndex()
|
||||
)
|
||||
|
||||
self.show()
|
||||
|
||||
|
||||
def autoinitdialogx(
|
||||
parent, dd, title, width, lines, modelfile, maybehasextrainfo, _=None
|
||||
):
|
||||
autoinitdialog__(parent, dd, title, width, lines, modelfile, maybehasextrainfo)
|
||||
|
||||
|
||||
def autoinitdialog(parent, dd, title, width, lines, _=None):
|
||||
autoinitdialog__(parent, dd, title, width, lines)
|
||||
if exec_:
|
||||
self.exec_()
|
||||
else:
|
||||
self.show()
|
||||
|
||||
|
||||
def getsomepath1(
|
||||
|
@ -13,7 +13,7 @@ import subprocess
|
||||
from gui.usefulwidget import (
|
||||
D_getsimpleswitch,
|
||||
makescrollgrid,
|
||||
CollapsibleBox,
|
||||
CollapsibleBoxWithButton,
|
||||
makesubtab_lazy,
|
||||
D_getsimplecombobox,
|
||||
makegrid,
|
||||
@ -276,7 +276,7 @@ def changelog(self, basel: QHBoxLayout):
|
||||
basel.addWidget(_)
|
||||
|
||||
|
||||
def delayloadlinks(key, box):
|
||||
def delayloadlinks(key, lay):
|
||||
sources = static_data["aboutsource"][key]
|
||||
grid = []
|
||||
for source in sources:
|
||||
@ -303,24 +303,13 @@ def delayloadlinks(key, box):
|
||||
)
|
||||
]
|
||||
)
|
||||
grid = [
|
||||
[
|
||||
(
|
||||
dict(type="grid", grid=grid),
|
||||
0,
|
||||
"group",
|
||||
)
|
||||
]
|
||||
]
|
||||
w, do = makegrid(grid, delay=True, w=False)
|
||||
w.setContentsMargins(0, 0, 0, 0)
|
||||
box.content_area.setLayout(w)
|
||||
w, do = makegrid(grid, delay=True)
|
||||
lay.addWidget(w)
|
||||
do()
|
||||
|
||||
|
||||
def offlinelinks(key):
|
||||
box = CollapsibleBox("下载")
|
||||
box.setdelayload(functools.partial(delayloadlinks, key))
|
||||
box = CollapsibleBoxWithButton(functools.partial(delayloadlinks, key), "下载")
|
||||
return box
|
||||
|
||||
|
||||
|
@ -4,7 +4,6 @@ from myutils.utils import splitocrtypes
|
||||
from myutils.config import globalconfig, _TR, get_platform
|
||||
from gui.inputdialog import (
|
||||
multicolorset,
|
||||
autoinitdialogx,
|
||||
autoinitdialog_items,
|
||||
autoinitdialog,
|
||||
)
|
||||
@ -147,7 +146,7 @@ def initinternal(self, names):
|
||||
line += [
|
||||
D_getIconButton(
|
||||
callback=functools.partial(
|
||||
autoinitdialogx,
|
||||
autoinitdialog,
|
||||
self,
|
||||
globalconfig["cishu"][cishu]["args"],
|
||||
globalconfig["cishu"][cishu]["name"],
|
||||
|
@ -172,42 +172,6 @@ def createinternalfontsettings(self, forml: LFormLayout, group, _type):
|
||||
)
|
||||
|
||||
|
||||
def doinstallqweb(self, dd, base):
|
||||
if not dd["k"].endswith(base):
|
||||
getQMessageBox(self, "错误", "请选择_" + base)
|
||||
return
|
||||
with zipfile.ZipFile(dd["k"]) as zipf:
|
||||
target = gobject.gettempdir("QWebEngine/")
|
||||
zipf.extractall(target)
|
||||
bit = ["x86", "x64"][platform.architecture()[0] == "64bit"]
|
||||
copytree("{}/{}/PyQt5".format(target, bit), "files/runtime/PyQt5")
|
||||
getQMessageBox(self, "成功", "安装成功")
|
||||
|
||||
|
||||
def installqwebdialog(self, link):
|
||||
dd = {"k": ""}
|
||||
base = link.split("/")[-1]
|
||||
autoinitdialog(
|
||||
self,
|
||||
dd,
|
||||
"安装_QWebEngine",
|
||||
800,
|
||||
[
|
||||
{
|
||||
"type": "file",
|
||||
"name": "路径",
|
||||
"k": "k",
|
||||
"dir": False,
|
||||
"filter": base,
|
||||
},
|
||||
{
|
||||
"type": "okcancel",
|
||||
"callback": functools.partial(doinstallqweb, self, dd, base),
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
def resetgroudswitchcallback(self, group):
|
||||
if group == "QWebEngine":
|
||||
group = "webview"
|
||||
|
@ -2,7 +2,7 @@ from qtsymbols import *
|
||||
import functools, os
|
||||
from myutils.config import globalconfig, ocrsetting, ocrerrorfix, static_data
|
||||
from myutils.utils import splitocrtypes, dynamiclink, getimagefilefilter
|
||||
from gui.inputdialog import autoinitdialogx, postconfigdialog, autoinitdialog_items
|
||||
from gui.inputdialog import postconfigdialog, autoinitdialog_items, autoinitdialog
|
||||
from gui.usefulwidget import (
|
||||
D_getsimplecombobox,
|
||||
D_getspinbox,
|
||||
@ -142,7 +142,7 @@ def initgridsources(self, names):
|
||||
items = autoinitdialog_items(ocrsetting[name])
|
||||
_3 = D_getIconButton(
|
||||
callback=functools.partial(
|
||||
autoinitdialogx,
|
||||
autoinitdialog,
|
||||
self,
|
||||
ocrsetting[name]["args"],
|
||||
globalconfig["ocr"][name]["name"],
|
||||
|
@ -1,7 +1,7 @@
|
||||
from qtsymbols import *
|
||||
import functools, os
|
||||
import gobject, qtawesome, uuid, shutil
|
||||
from myutils.config import globalconfig, translatorsetting, static_data
|
||||
from myutils.config import globalconfig, translatorsetting
|
||||
from myutils.utils import (
|
||||
selectdebugfile,
|
||||
splittranslatortypes,
|
||||
@ -10,12 +10,11 @@ from myutils.utils import (
|
||||
dynamicapiname,
|
||||
)
|
||||
from gui.pretransfile import sqlite2json
|
||||
from gui.inputdialog import autoinitdialog, autoinitdialog_items, autoinitdialogx
|
||||
from gui.inputdialog import autoinitdialog, autoinitdialog_items
|
||||
from gui.usefulwidget import (
|
||||
D_getspinbox,
|
||||
getIconButton,
|
||||
D_getcolorbutton,
|
||||
Prompt_dialog,
|
||||
getcolorbutton,
|
||||
getsimpleswitch,
|
||||
D_getIconButton,
|
||||
@ -114,44 +113,57 @@ def getalistname(parent, copy, btnplus, callback):
|
||||
}
|
||||
)
|
||||
autoinitdialog(
|
||||
parent,
|
||||
__d,
|
||||
("删除" if copy else "复制") + "接口",
|
||||
600,
|
||||
__,
|
||||
parent, __d, ("删除" if copy else "复制") + "接口", 600, __, exec_=True
|
||||
)
|
||||
|
||||
|
||||
def renameapi(qlabel: QLabel, apiuid, _):
|
||||
def renameapi(qlabel: QLabel, apiuid, self, countnum, btnplus, _):
|
||||
menu = QMenu(qlabel)
|
||||
editname = LAction("重命名")
|
||||
delete = LAction("删除")
|
||||
menu.addAction(editname)
|
||||
which = translate_exits(apiuid, which=True)
|
||||
if which == 1:
|
||||
menu.addAction(delete)
|
||||
action = menu.exec(qlabel.mapToGlobal(_))
|
||||
if action == delete:
|
||||
selectllmcallback_2(self, countnum, btnplus, apiuid, None)
|
||||
if action == editname:
|
||||
before = dynamicapiname(apiuid)
|
||||
_dia = Prompt_dialog(
|
||||
qlabel,
|
||||
"重命名",
|
||||
"",
|
||||
[
|
||||
[
|
||||
"名称",
|
||||
before,
|
||||
],
|
||||
],
|
||||
)
|
||||
__d = {"k": before}
|
||||
|
||||
if _dia.exec():
|
||||
title = _dia.text[0].text()
|
||||
def cb(__d):
|
||||
title = __d["k"]
|
||||
if title not in ("", before):
|
||||
globalconfig["fanyi"][apiuid]["name_self_set"] = title
|
||||
qlabel.setText(title)
|
||||
|
||||
autoinitdialog(
|
||||
self,
|
||||
__d,
|
||||
"重命名",
|
||||
600,
|
||||
[
|
||||
{
|
||||
"type": "lineedit",
|
||||
"name": "名称",
|
||||
"k": "k",
|
||||
},
|
||||
{
|
||||
"type": "okcancel",
|
||||
"callback": functools.partial(cb, __d),
|
||||
},
|
||||
],
|
||||
exec_=True,
|
||||
)
|
||||
|
||||
def getrenameablellabel(uid):
|
||||
|
||||
def getrenameablellabel(uid, self, countnum, btnplus):
|
||||
name = LLabel(dynamicapiname(uid))
|
||||
name.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
|
||||
name.customContextMenuRequested.connect(functools.partial(renameapi, name, uid))
|
||||
name.customContextMenuRequested.connect(
|
||||
functools.partial(renameapi, name, uid, self, countnum, btnplus)
|
||||
)
|
||||
return name
|
||||
|
||||
|
||||
@ -164,7 +176,7 @@ def loadbutton(self, fanyi):
|
||||
aclass = "userconfig.copyed." + fanyi
|
||||
else:
|
||||
return
|
||||
return autoinitdialogx(
|
||||
return autoinitdialog(
|
||||
self,
|
||||
translatorsetting[fanyi]["args"],
|
||||
dynamicapiname(fanyi),
|
||||
@ -203,7 +215,7 @@ def selectllmcallback(self, countnum, btnplus, fanyi, name):
|
||||
icon="fa.gear",
|
||||
)
|
||||
|
||||
name = getrenameablellabel(uid)
|
||||
name = getrenameablellabel(uid, self, countnum, btnplus)
|
||||
swc = getsimpleswitch(
|
||||
globalconfig["fanyi"][uid],
|
||||
"use",
|
||||
@ -364,7 +376,7 @@ def initsome11(self, l, label=None, btnplus=False):
|
||||
else:
|
||||
last = ""
|
||||
line += [
|
||||
functools.partial(getrenameablellabel, fanyi),
|
||||
functools.partial(getrenameablellabel, fanyi, self, countnum, btnplus),
|
||||
D_getsimpleswitch(
|
||||
globalconfig["fanyi"][fanyi],
|
||||
"use",
|
||||
|
@ -34,7 +34,6 @@ from gui.usefulwidget import (
|
||||
getIconButton,
|
||||
saveposwindow,
|
||||
tabadd_lazy,
|
||||
LRButton,
|
||||
)
|
||||
from gui.dynalang import (
|
||||
LPushButton,
|
||||
@ -516,9 +515,10 @@ class AnkiWindow(QWidget):
|
||||
folder_open3.clicked.connect(functools.partial(self.selecfile2, self.editpath))
|
||||
|
||||
def createadd():
|
||||
btn = LRButton("添加")
|
||||
btn = QPushButton("添加")
|
||||
btn.clicked.connect(functools.partial(self.errorwrap, False))
|
||||
btn.rightclick.connect(functools.partial(self.errorwrap, True))
|
||||
btn.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
|
||||
btn.customContextMenuRequested.connect(functools.partial(self.errorwrap, True))
|
||||
return btn
|
||||
|
||||
layout.addLayout(
|
||||
|
@ -93,9 +93,9 @@ class transhist(closeashidewindow):
|
||||
|
||||
def refresh(self):
|
||||
with self.lock:
|
||||
self.textOutput.clear()
|
||||
for line in self.trace:
|
||||
self.textOutput.appendPlainText(self.visline(line))
|
||||
self.textOutput.setPlainText(
|
||||
"\n".join(self.visline(line) for line in self.trace)
|
||||
)
|
||||
|
||||
def visline(self, line):
|
||||
ii, line = line
|
||||
|
@ -17,6 +17,7 @@ from gui.dynalang import (
|
||||
LStandardItemModel,
|
||||
LDialog,
|
||||
LMainWindow,
|
||||
LToolButton,
|
||||
)
|
||||
|
||||
|
||||
@ -855,42 +856,6 @@ class resizableframeless(saveposwindow):
|
||||
return x, y, width, height
|
||||
|
||||
|
||||
class Prompt_dialog(LDialog):
|
||||
def __init__(self, parent, title, info, items) -> None:
|
||||
super().__init__(parent)
|
||||
self.setWindowFlags(
|
||||
self.windowFlags()
|
||||
& ~Qt.WindowType.WindowContextHelpButtonHint
|
||||
& ~Qt.WindowType.WindowCloseButtonHint
|
||||
| Qt.WindowType.WindowStaysOnTopHint
|
||||
)
|
||||
self.setWindowTitle(title)
|
||||
self.setWindowIcon(qtawesome.icon("fa-question"))
|
||||
|
||||
_layout = QVBoxLayout()
|
||||
|
||||
_layout.addWidget(LLabel(info))
|
||||
|
||||
self.text = []
|
||||
for _ in items:
|
||||
|
||||
le = QLineEdit()
|
||||
le.setText(_[1])
|
||||
self.text.append((le))
|
||||
hl = QHBoxLayout()
|
||||
hl.addWidget(LLabel(_[0]))
|
||||
hl.addWidget(le)
|
||||
_layout.addLayout(hl)
|
||||
button = QDialogButtonBox(
|
||||
QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel
|
||||
)
|
||||
button.accepted.connect(self.accept)
|
||||
button.rejected.connect(self.reject)
|
||||
_layout.addWidget(button)
|
||||
self.setLayout(_layout)
|
||||
self.resize(400, 1)
|
||||
|
||||
|
||||
def callbackwrap(d, k, call, _):
|
||||
d[k] = _
|
||||
|
||||
@ -1783,15 +1748,7 @@ def makegroupingrid(args):
|
||||
if title:
|
||||
group.setTitle(title)
|
||||
else:
|
||||
_id = "luna" + str(uuid.uuid4())
|
||||
group.setObjectName(_id)
|
||||
group.setStyleSheet(
|
||||
"QGroupBox#"
|
||||
+ _id
|
||||
+ "{ margin-top:0px;} QGroupBox#"
|
||||
+ _id
|
||||
+ ":title {margin-top: 0px;}"
|
||||
)
|
||||
group.setObjectName('notitle')
|
||||
|
||||
if _type == "grid":
|
||||
grid = QGridLayout()
|
||||
@ -1875,18 +1832,18 @@ def automakegrid(grid: QGridLayout, lis, save=False, savelist=None):
|
||||
grid.setRowMinimumHeight(nowr, 25)
|
||||
|
||||
|
||||
def makegrid(grid=None, save=False, savelist=None, savelay=None, delay=False, w=True):
|
||||
def makegrid(
|
||||
grid=None, save=False, savelist=None, savelay=None, delay=False
|
||||
):
|
||||
|
||||
class gridwidget(QWidget):
|
||||
pass
|
||||
|
||||
if w:
|
||||
gridlayoutwidget = gridwidget()
|
||||
gridlayoutwidget = gridwidget()
|
||||
gridlay = QGridLayout()
|
||||
gridlay.setAlignment(Qt.AlignmentFlag.AlignTop)
|
||||
if w:
|
||||
gridlayoutwidget.setLayout(gridlay)
|
||||
gridlayoutwidget.setStyleSheet("gridwidget{background-color:transparent;}")
|
||||
gridlayoutwidget.setLayout(gridlay)
|
||||
gridlayoutwidget.setStyleSheet("gridwidget{background-color:transparent;}")
|
||||
|
||||
def do(gridlay, grid, save, savelist, savelay):
|
||||
automakegrid(gridlay, grid, save, savelist)
|
||||
@ -1894,8 +1851,7 @@ def makegrid(grid=None, save=False, savelist=None, savelay=None, delay=False, w=
|
||||
savelay.append(gridlay)
|
||||
|
||||
__do = functools.partial(do, gridlay, grid, save, savelist, savelay)
|
||||
if not w:
|
||||
gridlayoutwidget = gridlay
|
||||
|
||||
if not delay:
|
||||
__do()
|
||||
return gridlayoutwidget
|
||||
@ -2536,16 +2492,6 @@ class FQLineEdit(QLineEdit):
|
||||
return super().mousePressEvent(a0)
|
||||
|
||||
|
||||
class LRButton(LPushButton):
|
||||
rightclick = pyqtSignal()
|
||||
|
||||
def mouseReleaseEvent(self, ev: QMouseEvent) -> None:
|
||||
if self.rect().contains(ev.pos()):
|
||||
if ev.button() == Qt.MouseButton.RightButton:
|
||||
self.rightclick.emit()
|
||||
return super().mouseReleaseEvent(ev)
|
||||
|
||||
|
||||
class VisLFormLayout(LFormLayout):
|
||||
# 简易实现
|
||||
def __init__(self, *args, **kwargs):
|
||||
@ -2593,45 +2539,47 @@ class VisLFormLayout(LFormLayout):
|
||||
self._row_vis[row_index] = visible
|
||||
|
||||
|
||||
class CollapsibleBox(QWidget):
|
||||
def setdelayload(self, func):
|
||||
self.func = func
|
||||
|
||||
def __init__(self, title="", parent=None):
|
||||
class CollapsibleBox(QGroupBox):
|
||||
def __init__(self, delayloadfunction=None, parent=None, margin0=True):
|
||||
super(CollapsibleBox, self).__init__(parent)
|
||||
self.setObjectName('notitle')
|
||||
lay = QVBoxLayout(self)
|
||||
if margin0:
|
||||
lay.setContentsMargins(0, 0, 0, 0)
|
||||
self.setLayout(lay)
|
||||
self.func = delayloadfunction
|
||||
self.toggle(False)
|
||||
|
||||
self.toggle_button = QToolButton(text=title, checkable=True, checked=False)
|
||||
def toggle(self, checked):
|
||||
if checked and self.func:
|
||||
self.func(self.layout())
|
||||
self.func = None
|
||||
self.setVisible(checked)
|
||||
|
||||
|
||||
class CollapsibleBoxWithButton(QWidget):
|
||||
|
||||
def __init__(self, delayloadfunction=None, title="", parent=None):
|
||||
super(CollapsibleBoxWithButton, self).__init__(parent)
|
||||
self.toggle_button = LToolButton(text=title, checkable=True, checked=False)
|
||||
self.toggle_button.setToolButtonStyle(
|
||||
Qt.ToolButtonStyle.ToolButtonTextBesideIcon
|
||||
)
|
||||
self.toggle_button.toggled.connect(self.on_toggled)
|
||||
self.content_area = QWidget()
|
||||
self.toggle_button.toggled.connect(self.toggled)
|
||||
self.content_area = CollapsibleBox(delayloadfunction, self)
|
||||
lay = QVBoxLayout(self)
|
||||
lay.setSpacing(0)
|
||||
lay.setContentsMargins(0, 0, 0, 0)
|
||||
lay.addWidget(self.toggle_button)
|
||||
lay.addWidget(self.content_area)
|
||||
self.func = None
|
||||
self.collapse()
|
||||
self.toggled(False)
|
||||
|
||||
def on_toggled(self, checked):
|
||||
if checked:
|
||||
if self.func:
|
||||
self.func(self)
|
||||
self.func = None
|
||||
self.toggle_button.setIcon(qtawesome.icon("fa.chevron-down"))
|
||||
self.content_area.setVisible(True)
|
||||
else:
|
||||
self.toggle_button.setIcon(qtawesome.icon("fa.chevron-right"))
|
||||
self.content_area.setVisible(False)
|
||||
|
||||
def expand(self):
|
||||
self.toggle_button.setChecked(True)
|
||||
self.on_toggled(True)
|
||||
|
||||
def collapse(self):
|
||||
self.toggle_button.setChecked(False)
|
||||
self.on_toggled(False)
|
||||
def toggled(self, checked):
|
||||
self.toggle_button.setChecked(checked)
|
||||
self.content_area.toggle(checked)
|
||||
self.toggle_button.setIcon(
|
||||
qtawesome.icon("fa.chevron-down" if checked else "fa.chevron-right")
|
||||
)
|
||||
|
||||
|
||||
class editswitchTextBrowser(QWidget):
|
||||
|
@ -5,12 +5,11 @@ import functools, time, json, gobject
|
||||
from qtsymbols import *
|
||||
from metadata.abstract import common
|
||||
from gui.dialog_savedgame import getreflist, getalistname
|
||||
from myutils.wrapper import Singleton_close, threader
|
||||
from gui.dynalang import LPushButton
|
||||
from myutils.wrapper import threader
|
||||
from gui.usefulwidget import threebuttons
|
||||
|
||||
|
||||
@Singleton_close
|
||||
class bgmsettings(QDialog):
|
||||
class bgmsettings(QFormLayout):
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
@ -118,10 +117,6 @@ class bgmsettings(QDialog):
|
||||
except:
|
||||
pass
|
||||
|
||||
def __getalistname(self, title, callback, _):
|
||||
getalistname(self, callback, title=title)
|
||||
|
||||
infosig = pyqtSignal(str)
|
||||
showhide = pyqtSignal(bool)
|
||||
|
||||
@threader
|
||||
@ -229,18 +224,17 @@ class bgmsettings(QDialog):
|
||||
print(self._ref.config)
|
||||
break
|
||||
|
||||
def __init__(self, parent, _ref: common, gameuid: str) -> None:
|
||||
super().__init__(parent, Qt.WindowType.WindowCloseButtonHint)
|
||||
def __init__(self, layout: QVBoxLayout, _ref: common, gameuid: str) -> None:
|
||||
super().__init__(None)
|
||||
layout.addLayout(self)
|
||||
self.tm = None
|
||||
self._ref = _ref
|
||||
self.resize(QSize(800, 10))
|
||||
self.setWindowTitle(self._ref.config_all["name"])
|
||||
fl = QFormLayout(self)
|
||||
vbox = QVBoxLayout()
|
||||
hbox = QHBoxLayout()
|
||||
s = QLineEdit()
|
||||
self.lbinfo = QLabel()
|
||||
s.textChanged.connect(self.checkvalid)
|
||||
s.setText(_ref.config["access-token"])
|
||||
fl2 = QFormLayout()
|
||||
fl2.setContentsMargins(0, 0, 0, 0)
|
||||
ww = QWidget()
|
||||
@ -255,29 +249,24 @@ class bgmsettings(QDialog):
|
||||
hbox.addWidget(oauth)
|
||||
oauth.clicked.connect(self.__oauth)
|
||||
vbox.addWidget(self.lbinfo)
|
||||
fl.addRow("access-token", vbox)
|
||||
btn = LPushButton("上传游戏")
|
||||
btn.clicked.connect(
|
||||
self.addRow("access-token", vbox)
|
||||
|
||||
btn = threebuttons(["上传游戏", "上传游戏列表", "获取游戏列表"])
|
||||
btn.btn1clicked.connect(
|
||||
functools.partial(self.singleupload_existsoverride, gameuid)
|
||||
)
|
||||
fl2.addRow(btn)
|
||||
btn = LPushButton("上传游戏列表")
|
||||
btn.clicked.connect(
|
||||
btn.btn2clicked.connect(
|
||||
functools.partial(
|
||||
self.__getalistname, "上传游戏列表", self.getalistname_upload
|
||||
getalistname, btn, self.getalistname_upload, "上传游戏列表"
|
||||
)
|
||||
)
|
||||
btn.btn3clicked.connect(
|
||||
functools.partial(
|
||||
getalistname, btn, self.getalistname_download, "添加到列表"
|
||||
)
|
||||
)
|
||||
fl2.addRow(btn)
|
||||
btn = LPushButton("获取游戏列表")
|
||||
btn.clicked.connect(
|
||||
functools.partial(
|
||||
self.__getalistname, "添加到列表", self.getalistname_download
|
||||
)
|
||||
)
|
||||
fl2.addRow(btn)
|
||||
fl.addRow(ww)
|
||||
s.setText(_ref.config["access-token"])
|
||||
self.show()
|
||||
self.addRow(ww)
|
||||
|
||||
|
||||
class searcher(common):
|
||||
@ -305,8 +294,8 @@ class searcher(common):
|
||||
print(resp)
|
||||
self.config["refresh_token"] = ""
|
||||
|
||||
def querysettingwindow(self, parent, gameuid):
|
||||
bgmsettings(parent, self, gameuid)
|
||||
def querysettingwindow(self, gameuid, layout):
|
||||
bgmsettings(layout, self, gameuid)
|
||||
|
||||
def getidbytitle(self, title):
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
import requests, re
|
||||
from myutils.utils import (
|
||||
simplehtmlparser,
|
||||
simplehtmlparser_all,
|
||||
initanewitem,
|
||||
gamdidchangedtask,
|
||||
)
|
||||
@ -11,11 +10,9 @@ import functools
|
||||
from qtsymbols import *
|
||||
from gui.usefulwidget import getlineedit
|
||||
from gui.dialog_savedgame import getreflist, getalistname
|
||||
from myutils.wrapper import Singleton_close
|
||||
|
||||
|
||||
@Singleton_close
|
||||
class steamsettings(QDialog):
|
||||
class steamsettings(QFormLayout):
|
||||
|
||||
def querylist(self):
|
||||
|
||||
@ -76,32 +73,26 @@ class steamsettings(QDialog):
|
||||
gamdidchangedtask(self._ref.typename, self._ref.idname, gameuid)
|
||||
reflist.insert(0, gameuid)
|
||||
|
||||
def __getalistname(self, callback, _):
|
||||
getalistname(self, callback)
|
||||
|
||||
def __init__(self, parent, _ref: common, gameuid: str) -> None:
|
||||
super().__init__(parent, Qt.WindowType.WindowCloseButtonHint)
|
||||
def __init__(self, layout:QVBoxLayout, _ref: common, gameuid: str) -> None:
|
||||
super().__init__(None)
|
||||
layout.addLayout(self)
|
||||
self._ref = _ref
|
||||
self.resize(QSize(800, 10))
|
||||
self.setWindowTitle(self._ref.config_all["name"])
|
||||
fl = QFormLayout(self)
|
||||
fl.addRow("userid", getlineedit(_ref.config, "userid"))
|
||||
fl.addRow(
|
||||
self.addRow("userid", getlineedit(_ref.config, "userid"))
|
||||
self.addRow(
|
||||
"cookie:steamLoginSecure", getlineedit(_ref.config, "steamLoginSecure")
|
||||
)
|
||||
|
||||
btn = QPushButton("wishlist")
|
||||
btn.clicked.connect(
|
||||
functools.partial(self.__getalistname, self.getalistname_download)
|
||||
functools.partial(getalistname, btn, self.getalistname_download)
|
||||
)
|
||||
fl.addRow(btn)
|
||||
self.show()
|
||||
self.addRow(btn)
|
||||
|
||||
|
||||
class searcher(common):
|
||||
|
||||
def querysettingwindow(self, parent, gameuid):
|
||||
steamsettings(parent, self, gameuid)
|
||||
def querysettingwindow(self, gameuid, layout):
|
||||
steamsettings(layout, self, gameuid)
|
||||
|
||||
def getidbytitle(self, title):
|
||||
response = requests.get(
|
||||
|
@ -6,8 +6,8 @@ import time
|
||||
from qtsymbols import *
|
||||
from metadata.abstract import common
|
||||
from gui.dialog_savedgame import getreflist, getalistname
|
||||
from myutils.wrapper import Singleton_close, threader
|
||||
from gui.dynalang import LPushButton
|
||||
from myutils.wrapper import threader
|
||||
from gui.usefulwidget import threebuttons
|
||||
|
||||
|
||||
def saferequestvndb(proxy, method, url, json=None, headers=None, failnone=True):
|
||||
@ -156,8 +156,7 @@ def getinfosbyvid(proxy, vid):
|
||||
)
|
||||
|
||||
|
||||
@Singleton_close
|
||||
class vndbsettings(QDialog):
|
||||
class vndbsettings(QFormLayout):
|
||||
|
||||
@property
|
||||
def headers(self):
|
||||
@ -259,9 +258,6 @@ class vndbsettings(QDialog):
|
||||
headers=self.headers,
|
||||
)
|
||||
|
||||
def __getalistname(self, title, callback, _):
|
||||
getalistname(self, callback, title=title)
|
||||
|
||||
showhide = pyqtSignal(bool)
|
||||
|
||||
@threader
|
||||
@ -286,17 +282,16 @@ class vndbsettings(QDialog):
|
||||
self.showhide.emit(False)
|
||||
self.lbinfo.setText(info)
|
||||
|
||||
def __init__(self, parent, _ref: common, gameuid: str) -> None:
|
||||
super().__init__(parent, Qt.WindowType.WindowCloseButtonHint)
|
||||
def __init__(self, layout: QVBoxLayout, _ref: common, gameuid: str) -> None:
|
||||
super().__init__(None)
|
||||
layout.addLayout(self)
|
||||
self.tm = None
|
||||
self._ref = _ref
|
||||
self.resize(QSize(800, 10))
|
||||
self.setWindowTitle(self._ref.config_all["name"])
|
||||
fl = QFormLayout(self)
|
||||
vbox = QVBoxLayout()
|
||||
s = QLineEdit()
|
||||
self.lbinfo = QLabel()
|
||||
s.textChanged.connect(self.checkvalid)
|
||||
s.setText(_ref.config["Token"])
|
||||
fl2 = QFormLayout()
|
||||
fl2.setContentsMargins(0, 0, 0, 0)
|
||||
ww = QWidget()
|
||||
@ -307,35 +302,29 @@ class vndbsettings(QDialog):
|
||||
self._token = s
|
||||
vbox.addWidget(s)
|
||||
vbox.addWidget(self.lbinfo)
|
||||
fl.addRow("Token", vbox)
|
||||
btn = LPushButton("上传游戏")
|
||||
btn.clicked.connect(
|
||||
self.addRow("Token", vbox)
|
||||
btn = threebuttons(["上传游戏", "上传游戏列表", "获取游戏列表"])
|
||||
btn.btn1clicked.connect(
|
||||
functools.partial(self.singleupload_existsoverride, gameuid)
|
||||
)
|
||||
fl2.addRow(btn)
|
||||
btn = LPushButton("上传游戏列表")
|
||||
btn.clicked.connect(
|
||||
btn.btn2clicked.connect(
|
||||
functools.partial(
|
||||
self.__getalistname, "上传游戏列表", self.getalistname_upload
|
||||
getalistname, btn, self.getalistname_upload, "上传游戏列表"
|
||||
)
|
||||
)
|
||||
btn.btn3clicked.connect(
|
||||
functools.partial(
|
||||
getalistname, btn, self.getalistname_download, "添加到列表"
|
||||
)
|
||||
)
|
||||
fl2.addRow(btn)
|
||||
btn = LPushButton("获取游戏列表")
|
||||
btn.clicked.connect(
|
||||
functools.partial(
|
||||
self.__getalistname, "添加到列表", self.getalistname_download
|
||||
)
|
||||
)
|
||||
fl2.addRow(btn)
|
||||
fl.addRow(ww)
|
||||
s.setText(_ref.config["Token"])
|
||||
self.show()
|
||||
self.addRow(ww)
|
||||
|
||||
|
||||
class searcher(common):
|
||||
|
||||
def querysettingwindow(self, parent, gameuid):
|
||||
vndbsettings(parent, self, gameuid)
|
||||
def querysettingwindow(self, gameuid, layout):
|
||||
vndbsettings(layout, self, gameuid)
|
||||
|
||||
def refmainpage(self, _id):
|
||||
return "https://vndb.org/v{}".format(_id)
|
||||
|
@ -1438,7 +1438,7 @@
|
||||
"max_num": {
|
||||
"type": "intspin",
|
||||
"name": "最大结果条数",
|
||||
"min": 0,
|
||||
"min": 1,
|
||||
"max": 9999,
|
||||
"step": 1
|
||||
},
|
||||
|
@ -2,7 +2,7 @@
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<title>...</title>
|
||||
<title>年度总结</title>
|
||||
<meta charset="UTF-8">
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/wordcloud@1.1.1/src/wordcloud2.js"></script>
|
||||
|
Loading…
x
Reference in New Issue
Block a user