mirror of
https://gitee.com/spark-store-project/spark-web-app-runtime.git
synced 2025-08-21 03:42:23 +08:00
使用 DApplication::setSingleInstance,使用 标题_uid 创建进程锁,单例运行时新进程自动退出,并拉起原有进程主窗口显示;重写 QWebEnginePage,createWindow 时若链接与原来不同,则调用浏览器打开 Log: 支持单例运行;支持浏览器打开外部链接;修复访问深度论坛默认语言错误问题
82 lines
2.7 KiB
C++
82 lines
2.7 KiB
C++
#include "application.h"
|
|
#include "globaldefine.h"
|
|
|
|
#include <DPlatformWindowHandle>
|
|
#include <DAboutDialog>
|
|
|
|
Application::Application(int &argc, char **argv)
|
|
: DApplication(argc, argv)
|
|
{
|
|
loadTranslator();
|
|
|
|
setAttribute(Qt::AA_UseHighDpiPixmaps);
|
|
if (!DPlatformWindowHandle::pluginVersion().isEmpty()) {
|
|
setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
|
|
}
|
|
|
|
setApplicationVersion(QString(CURRENT_VER));
|
|
setOrganizationName(ORGANIZATION_NAME); // 添加组织名称,和商店主体的文件夹同在 ~/.local/share/spark-union 文件夹下
|
|
setApplicationName(APPLICATION_NAME); // 这里不要翻译,否则 ~/.local/share 中文件夹名也会被翻译
|
|
setProductName(DEFAULT_TITLE);
|
|
setApplicationDisplayName(DEFAULT_TITLE);
|
|
setApplicationLicense(" <a href='https://www.gnu.org/licenses/gpl-3.0.html'>GPLv3</a> ");
|
|
|
|
initAboutDialog();
|
|
}
|
|
|
|
void Application::handleAboutAction()
|
|
{
|
|
if (aboutDialog()) {
|
|
DApplication::handleAboutAction();
|
|
return;
|
|
}
|
|
|
|
initAboutDialog();
|
|
DApplication::handleAboutAction();
|
|
}
|
|
|
|
void Application::initAboutDialog()
|
|
{
|
|
// Customized DAboutDialog
|
|
DAboutDialog *dialog = new DAboutDialog(activeWindow());
|
|
// WindowIcon
|
|
dialog->setWindowIcon(QIcon(":/images/spark-webapp-runtime.svg"));
|
|
// ProductIcon
|
|
dialog->setProductIcon(QIcon(":/images/spark-webapp-runtime.svg"));
|
|
// ProductName
|
|
dialog->setProductName(productName());
|
|
// Version
|
|
dialog->setVersion(translate("DAboutDialog", "Version: %1").arg(applicationVersion()));
|
|
// CompanyLogo
|
|
dialog->setCompanyLogo(QPixmap(":/images/Logo-Spark.png"));
|
|
// Description
|
|
|
|
QString szDefaultDesc = QString("<a href='https://gitee.com/deepin-community-store/spark-web-app-runtime'><span style='font-size:12pt;font-weight:500;'>%1</span></a><br/>"
|
|
"<span style='font-size:12pt;'>%2</span>")
|
|
.arg(DEFAULT_TITLE)
|
|
.arg(QObject::tr("Presented By Spark developers # HadesStudio"));
|
|
|
|
dialog->setDescription(szDefaultDesc);
|
|
// WebsiteName
|
|
dialog->setWebsiteName("Spark Project");
|
|
// WebsiteLink
|
|
dialog->setWebsiteLink("https://gitee.com/deepin-community-store/");
|
|
// License
|
|
dialog->setLicense(translate("DAboutDialog", "%1 is released under %2").arg(productName()).arg(applicationLicense()));
|
|
|
|
setAboutDialog(dialog);
|
|
connect(aboutDialog(), &DAboutDialog::destroyed, this, [=] {
|
|
setAboutDialog(nullptr);
|
|
});
|
|
|
|
dialog->hide();
|
|
}
|
|
|
|
void Application::slotMainWindowClose()
|
|
{
|
|
if (aboutDialog()) {
|
|
aboutDialog()->close();
|
|
aboutDialog()->deleteLater();
|
|
}
|
|
}
|