mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-12-14 12:52:04 +08:00
!178 fix: 修复主窗口关闭后,关于窗口没有自动关闭的问题
* 添加 Application 类,继承 DApplication,将 main 函数中设置属性、关于信息等操作移至 Application 构造函数中进行 * 1.1. 添加 setOrganizationName 操作,设置组织名称为 spark-union,与 SWRT 保持一致 * 1.2. 设置组织名称后,QStandardPaths::AppConfigLocation 等路径相应改变,修改所有配置文件和缓存文件路径(server.list/config.ini 等) * 1.3. 关于对话框设置父对象后,对话框背景色受主窗口样式表影响,移动部分控件样式表设置方式与位置 * 修复关于窗口不显示组织 Logo 的问题,补充丢失的资源文件,整理资源文件 * 去除 .pro 文件中无效的更新翻译文件脚本调用,整理 .pro 文件,添加编译时更新 ts 文件脚本调用 * 继续修复偶现关闭客户端时崩溃问题(疑似 aria2c 进程未启动,pid 未初始化为随机值,执行 kill 操作时未判断导致) * 修复进入详情页时焦点默认在分享链接按钮上的问题 * 暂时去除没有意义的 DBus 接口,使用 DGuiApplicationHelper::newProcessInstance 获取新进程的启动参数 * 更新翻译文件,去除已经不存在的翻译
This commit is contained in:
@@ -18,11 +18,12 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
: BaseWidgetOpacity(parent), ui(new Ui::MainWindow)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setWindowTitle(QObject::tr("Spark Store"));
|
||||
initConfig();
|
||||
moveToCenter(this); // 让窗口居中显示
|
||||
|
||||
WidgetAnimation::widgetOpacity(this, true);
|
||||
|
||||
searchEdit = new DSearchEdit(ui->titlebar);
|
||||
downloadlistwidget = new DownloadListWidget;
|
||||
downloadButton = new ProgressButton(ui->titlebar);
|
||||
backButtom = new QPushButton(ui->titlebar);
|
||||
@@ -75,9 +76,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
if (themeType == DGuiApplicationHelper::DarkType) {
|
||||
//深色模式
|
||||
setMaskColor(QColor("#2a2b2b"));
|
||||
this->setStyleSheet("#mainpage{background-color: transparent;border-radius:14px;}\
|
||||
QLabel#cardtitle,QLabel#title,QLabel#title_1,QLabel#title_2,QLabel#title_3 {color:#FFFFFF}\
|
||||
");
|
||||
backButtom->setIcon(QIcon(":/icon/dark/back.svg"));
|
||||
downloadButton->setIcon(":/icon/dark/download.svg");
|
||||
downloadButton->setBackgroundColor(QColor("#444444"));
|
||||
@@ -98,9 +96,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
} else {
|
||||
//亮色模式
|
||||
setMaskColor(QColor("#f3f7f8"));
|
||||
this->setStyleSheet("#mainpage{background-color: transparent;border-radius:14px;}\
|
||||
QLabel#cardtitle,QLabel#title,QLabel#title_1,QLabel#title_2,QLabel#title_3 {color:#000000}\
|
||||
");
|
||||
backButtom->setIcon(QIcon(":/icon/light/back.svg"));
|
||||
downloadButton->setBackgroundColor(QColor("#e3e4e4"));
|
||||
downloadButton->setColor(QColor("#66CCFF"));
|
||||
@@ -153,18 +148,17 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
backButtom->hide();
|
||||
ui->titlebar->setIcon(QIcon::fromTheme(":/icon/logo.svg"));
|
||||
|
||||
// Check wayland configs
|
||||
QSettings readConfig(QDir::homePath() + "/.config/spark-store/config.ini", QSettings::IniFormat);
|
||||
|
||||
QWidget *w_titlebar = new QWidget(ui->titlebar);
|
||||
QHBoxLayout *ly_titlebar = new QHBoxLayout(w_titlebar);
|
||||
QLabel *title = new QLabel(this);
|
||||
QLabel *title = new QLabel(ui->titlebar);
|
||||
title->setText(tr("Spark Store"));
|
||||
searchEdit->setPlaceholderText(tr("Search or enter spk://"));
|
||||
ly_titlebar->addWidget(title);
|
||||
ly_titlebar->addWidget(backButtom);
|
||||
|
||||
if (!readConfig.value("build/isDeepinOS").toBool() && readConfig.value("build/useWayland").toBool())
|
||||
// Check wayland configs
|
||||
QSettings config(QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation) + "/config.ini", QSettings::IniFormat);
|
||||
if (!config.value("build/isDeepinOS").toBool() && config.value("build/useWayland").toBool())
|
||||
{
|
||||
// Wayland 搜索栏居中
|
||||
ly_titlebar->addStretch(WaylandSearchCenter);
|
||||
@@ -219,14 +213,16 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
{ openUrl(spk); });
|
||||
emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType());
|
||||
|
||||
initDbus();
|
||||
connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::newProcessInstance, this, &MainWindow::onNewProcessInstance);
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
delete searchEdit;
|
||||
delete downloadlistwidget;
|
||||
delete ui;
|
||||
|
||||
if (downloadlistwidget) {
|
||||
downloadlistwidget->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::initDbus()
|
||||
@@ -240,13 +236,21 @@ void MainWindow::initDbus()
|
||||
|
||||
void MainWindow::onGetUrl(const QString &url)
|
||||
{
|
||||
if (url.left(6) == "spk://")
|
||||
{
|
||||
if (url.trimmed().startsWith("spk://")) {
|
||||
openUrl(QUrl(url));
|
||||
}
|
||||
activateWindow();
|
||||
}
|
||||
|
||||
void MainWindow::onNewProcessInstance(qint64 pid, const QStringList &arguments)
|
||||
{
|
||||
Q_UNUSED(pid)
|
||||
|
||||
if (arguments.size() > 1) {
|
||||
onGetUrl(arguments.value(1));
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::openUrl(QUrl url)
|
||||
{
|
||||
if (url.toString().startsWith("spk://"))
|
||||
@@ -279,6 +283,7 @@ void MainWindow::switchPage(int now) // 临时方案,回家后修改
|
||||
backButtom->hide();
|
||||
}
|
||||
ui->stackedWidget->setCurrentIndex(now);
|
||||
ui->stackedWidget->currentWidget()->setFocus();
|
||||
pageHistory << now;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user