zhaolong 1b6db122f3 fix(bluetooth):popup and tooltips display are abnormal
bug24279 【TR4】【桌面专业版】【SP1】【华为】【Kunpeng920】【uos-20-pangu-daliy-20200505-build48】【任务栏-蓝牙】任务栏蓝牙tooltips显示异常,功能无法使用

(cherry picked from commit 882ad1ee7704dfc824019a391a3d35efd49e0e23)

# Conflicts:
#	translations/dde-dock.ts
#	widgets/tipswidget.cpp
#	widgets/tipswidget.h
2020-05-14 13:14:46 +08:00

86 lines
2.5 KiB
C++

/*
* Copyright (C) 2016 ~ 2018 Deepin Technology Co., Ltd.
*
* Author: zhaolong <zhaolong@uniontech.com>
*
* Maintainer: zhaolong <zhaolong@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 "switchitem.h"
#include "bluetoothconstants.h"
#include "bluetoothconstants.h"
#include <QHBoxLayout>
#include <QFontMetrics>
#include <QLabel>
extern void initFontColor(QWidget *widget);
SwitchItem::SwitchItem(QWidget *parent)
: QWidget(parent)
, m_title(new QLabel(this))
, m_switchBtn(new DSwitchButton(this))
, m_default(false)
{
initFontColor(m_title);
m_switchBtn->setFixedWidth(SWITCHBUTTONWIDTH);
setFixedHeight(CONTROLHEIGHT);
auto switchLayout = new QHBoxLayout;
switchLayout->setSpacing(0);
switchLayout->setMargin(0);
switchLayout->addSpacing(MARGIN);
switchLayout->addWidget(m_title);
switchLayout->addStretch();
switchLayout->addWidget(m_switchBtn);
switchLayout->addSpacing(MARGIN);
setLayout(switchLayout);
connect(m_switchBtn, &DSwitchButton::toggled, [&](bool change) {
m_checkState = change;
emit checkedChanged(change);
});
}
void SwitchItem::setChecked(const bool checked,bool notify)
{
m_checkState = checked;
if(!notify) { // 防止收到蓝牙开启或关闭信号后再触发一次打开或关闭
m_switchBtn->blockSignals(true);
m_switchBtn->setChecked(checked);
m_switchBtn->blockSignals(false);
emit justUpdateView(checked);
}
else {
m_switchBtn->setChecked(checked);
}
}
void SwitchItem::setTitle(const QString &title)
{
int width = POPUPWIDTH - MARGIN * 2 - m_switchBtn->width() - 3;
QString strTitle = QFontMetrics(m_title->font()).elidedText(title, Qt::ElideRight, width);
m_title->setText(strTitle);
}
//void SwitchItem::mousePressEvent(QMouseEvent *event)
//{
// emit clicked(m_adapterId);
// QWidget::mousePressEvent(event);
//}