dde-dock/frame/window/components/displaysettingwidget.cpp
zhaoyingzhen a8b8e6bd00 fix: 修复跨端协同设备数量变化时列表页面显示不全的问题。
当跨端协同列表数量变化的时候,没有将子页面高度变化通知父窗口从而更新整个页面高度导致的问题。

Log: 修复跨端协同设备数量变化时列表页面显示不全的问题
But: https://pms.uniontech.com/bug-view-165835.html
Influence: 跨端协同设备变化时,页面显示。
Change-Id: I3a0ac51ea7f412cc530a075ad55b4cc710a5df90
2022-10-31 13:10:19 +08:00

74 lines
2.4 KiB
C++

/*
* Copyright (C) 2021 ~ 2022 Uniontech Software Technology Co.,Ltd.
*
* Author: zhaoyingzhen <zhaoyingzhen@uniontech.com>
*
* Maintainer: zhaoyingzhen <zhaoyingzhen@uniontech.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "displaysettingwidget.h"
#include "brightnessadjwidget.h"
#include "devcollaborationwidget.h"
#include <QPushButton>
#include <QVBoxLayout>
#include <DDBusSender>
const int ItemSpacing = 10;
DisplaySettingWidget::DisplaySettingWidget(QWidget *parent)
: QWidget(parent)
, m_brightnessAdjWidget(new BrightnessAdjWidget(this))
, m_collaborationWidget(new DevCollaborationWidget(this))
, m_settingBtn(new QPushButton(tr("Display setting"), this))
{
initUI();
connect(m_settingBtn, &QPushButton::clicked, this, [ this ](){
DDBusSender().service("org.deepin.dde.ControlCenter1")
.path("/org/deepin/dde/ControlCenter1")
.interface("org.deepin.dde.ControlCenter1")
.method("ShowPage").arg(QString("display")).call();
hide();
});
}
void DisplaySettingWidget::initUI()
{
setContentsMargins(0, 10, 0, 30);
QVBoxLayout *mainLayout = new QVBoxLayout();
mainLayout->setMargin(0);
mainLayout->setSpacing(ItemSpacing);
mainLayout->addWidget(m_brightnessAdjWidget);
mainLayout->addWidget(m_collaborationWidget);
mainLayout->addWidget(m_settingBtn);
mainLayout->addStretch();
setLayout(mainLayout);
resizeWidgetHeight();
connect(m_collaborationWidget, &DevCollaborationWidget::sizeChanged,
this, &DisplaySettingWidget::resizeWidgetHeight);
}
void DisplaySettingWidget::resizeWidgetHeight()
{
QMargins margins = this->contentsMargins();
setFixedHeight(margins.top() + margins.bottom() + m_brightnessAdjWidget->height() +
m_collaborationWidget->height() + m_settingBtn->height() + ItemSpacing * 2);
}