feat: 限制同标题进程单例运行;网页链接调用浏览器打开

使用 DApplication::setSingleInstance,使用 标题_uid 创建进程锁,单例运行时新进程自动退出,并拉起原有进程主窗口显示;重写 QWebEnginePage,createWindow 时若链接与原来不同,则调用浏览器打开

Log: 支持单例运行;支持浏览器打开外部链接;修复访问深度论坛默认语言错误问题
This commit is contained in:
zty199
2022-11-20 15:57:54 +08:00
parent d6b5895812
commit 1aed5532a3
18 changed files with 494 additions and 285 deletions

View File

@@ -2,200 +2,108 @@
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>MainWindow</name>
<name>DAboutDialog</name>
<message>
<location filename="../mainwindow.cpp" line="41"/>
<source>Full Screen</source>
<translation></translation>
<location filename="../application.cpp" line="49"/>
<source>Version: %1</source>
<translation>%1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="42"/>
<source>Fix Size</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="43"/>
<source>Hide Buttons</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="44"/>
<source>Clear Cache</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="46"/>
<source>Show MainWindow</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="47"/>
<source>About</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="48"/>
<source>Exit</source>
<translation>退</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="53"/>
<source>Pause</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="54"/>
<source>Resume</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="55"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<source>%1Fullscreen Mode</source>
<translation type="vanished">%1</translation>
</message>
<message>
<source>%1Windowed Mode</source>
<translation type="vanished">%1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="321"/>
<source>Save As</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="376"/>
<source>%1Start downloading %2</source>
<translation>%1 %2</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="387"/>
<source>%1Wait for previous download to complete!</source>
<translation>%1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="409"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="413"/>
<source>download finished.</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="413"/>
<source>Show in file manager?</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="450"/>
<source>%1Download canceled!</source>
<translation>%1</translation>
<location filename="../application.cpp" line="65"/>
<source>%1 is released under %2</source>
<translation>%1%2</translation>
</message>
</context>
<context>
<name>QObject</name>
<message>
<location filename="../main.cpp" line="71"/>
<location filename="../application.cpp" line="57"/>
<location filename="../main.cpp" line="182"/>
<source>Presented By Spark developers # HadesStudio</source>
<translation> @ </translation>
</message>
<message>
<location filename="../main.cpp" line="63"/>
<source>Version:</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="79"/>
<source>Published under GPLv3</source>
<translation> GPLv3 </translation>
</message>
<message>
<location filename="../main.cpp" line="83"/>
<location filename="../main.cpp" line="56"/>
<source>Description: %1</source>
<translation>%1</translation>
</message>
<message>
<location filename="../main.cpp" line="89"/>
<location filename="../main.cpp" line="62"/>
<source>Enable CommandLineParser. Default is false.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="94"/>
<location filename="../main.cpp" line="67"/>
<source>The Title of Application. Default is %1.</source>
<translation> %1</translation>
</message>
<message>
<location filename="../main.cpp" line="101"/>
<location filename="../main.cpp" line="74"/>
<source>The target URL. Default is Blank.</source>
<translation> URL</translation>
</message>
<message>
<location filename="../main.cpp" line="108"/>
<location filename="../main.cpp" line="81"/>
<source>The Width of Application. Default is %1.</source>
<translation> %1</translation>
</message>
<message>
<location filename="../main.cpp" line="115"/>
<location filename="../main.cpp" line="88"/>
<source>The Height of Application. Default is %1.</source>
<translation> %1</translation>
</message>
<message>
<location filename="../main.cpp" line="122"/>
<location filename="../main.cpp" line="95"/>
<source>Enable Tray Icon. Default is false.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="126"/>
<location filename="../main.cpp" line="99"/>
<source>Run in Fullscreen Mode. Default is false.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="130"/>
<location filename="../main.cpp" line="103"/>
<source>Fix Window Size. Default is false.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="134"/>
<location filename="../main.cpp" line="107"/>
<source>Hide Control Buttons. Default is false.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="147"/>
<location filename="../main.cpp" line="112"/>
<source>The ICON of Application.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="154"/>
<location filename="../main.cpp" line="119"/>
<source>The Description of Application.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="161"/>
<location filename="../main.cpp" line="126"/>
<source>The Configuration file of Application.</source>
<translation></translation>
</message>
<message>
<location filename="../main.cpp" line="168"/>
<location filename="../main.cpp" line="133"/>
<source>The root path of the program web service.</source>
<translation> WebServer </translation>
</message>
<message>
<location filename="../main.cpp" line="175"/>
<location filename="../main.cpp" line="140"/>
<source>The port number of the program web service.</source>
<translation> WebServer </translation>
</message>
<message>
<location filename="../main.cpp" line="183"/>
<location filename="../main.cpp" line="147"/>
<source>To use GPU instead of CPU to decoding. Default True.</source>
<translation>GPU渲染</translation>
</message>
<message>
<location filename="../main.cpp" line="191"/>
<location filename="../main.cpp" line="155"/>
<source>The ssl port number of the program web service.</source>
<translation> WebServer SSL </translation>
</message>
@@ -204,5 +112,93 @@
<source>SparkWebAppRuntime</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="43"/>
<source>Full Screen</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="44"/>
<source>Fix Size</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="45"/>
<source>Hide Buttons</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="46"/>
<source>Clear Cache</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="48"/>
<source>Show MainWindow</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="55"/>
<source>Pause</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="56"/>
<source>Resume</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="57"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="339"/>
<source>Save As</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="403"/>
<source>%1Start downloading %2</source>
<translation>%1 %2</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="414"/>
<source>%1Wait for previous download to complete!</source>
<translation>%1</translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="436"/>
<source>Open</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="440"/>
<source>download finished.</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="440"/>
<source>Show in file manager?</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="478"/>
<source>%1Download canceled!</source>
<translation>%1</translation>
</message>
</context>
<context>
<name>TitleBarMenu</name>
<message>
<location filename="../mainwindow.cpp" line="49"/>
<source>About</source>
<translation></translation>
</message>
<message>
<location filename="../mainwindow.cpp" line="50"/>
<source>Exit</source>
<translation>退</translation>
</message>
</context>
</TS>