forked from openkylin/quarkai
beautify propertiesdialog and mydialog
This commit is contained in:
parent
1f2a5b8428
commit
ea8dd62555
|
@ -204,34 +204,34 @@ class Daemon(PolicyKitService):
|
|||
|
||||
@dbus.service.method(INTERFACE, in_signature='s', out_signature='')
|
||||
def adjust_cpufreq_scaling_governer(self, value):
|
||||
cpufreq_file = "/etc/init.d/cpufrequtils"
|
||||
oldvalue = ''
|
||||
if os.path.exists(cpufreq_file):
|
||||
fp = open(cpufreq_file, "rw+")
|
||||
line = fp.readline()
|
||||
while line:
|
||||
if line.startswith("GOVERNOR="):
|
||||
if value not in line:
|
||||
oldvalue = line.split("=")[1].replace('"', '').replace('\n', '')
|
||||
break
|
||||
line = fp.readline()
|
||||
fp.close()
|
||||
if oldvalue not in ['', None] and value not in ['', None]:
|
||||
cmd = "sed -i 's/%s/%s/g' %s" % (oldvalue, value, cpufreq_file)
|
||||
os.system(cmd)
|
||||
os.system('service cpufrequtils restart')
|
||||
else:
|
||||
fpath = os.path.expanduser("/sys/devices/system/cpu/")
|
||||
for line in os.listdir(fpath):
|
||||
line = line.strip('\n')
|
||||
#pattern = re.compile(r'cpu.*[0-9]$')
|
||||
pattern = re.compile(r'cpu.*\d\Z')
|
||||
m = pattern.match(line)
|
||||
if m:
|
||||
filepath = "/sys/devices/system/cpu/%s/cpufreq/scaling_governor" % line
|
||||
if os.path.exists(filepath):
|
||||
cmd = 'echo %s > %s' % (value, filepath)
|
||||
os.system(cmd)
|
||||
# cpufreq_file = "/etc/init.d/cpufrequtils"
|
||||
# oldvalue = ''
|
||||
# if os.path.exists(cpufreq_file):
|
||||
# fp = open(cpufreq_file, "rw+")
|
||||
# line = fp.readline()
|
||||
# while line:
|
||||
# if line.startswith("GOVERNOR="):
|
||||
# if value not in line:
|
||||
# oldvalue = line.split("=")[1].replace('"', '').replace('\n', '')
|
||||
# break
|
||||
# line = fp.readline()
|
||||
# fp.close()
|
||||
# if oldvalue not in ['', None] and value not in ['', None]:
|
||||
# cmd = "sed -i 's/%s/%s/g' %s" % (oldvalue, value, cpufreq_file)
|
||||
# os.system(cmd)
|
||||
# os.system('service cpufrequtils restart')
|
||||
# else:
|
||||
fpath = os.path.expanduser("/sys/devices/system/cpu/")
|
||||
for line in os.listdir(fpath):
|
||||
line = line.strip('\n')
|
||||
#pattern = re.compile(r'cpu.*[0-9]$')
|
||||
pattern = re.compile(r'cpu.*\d\Z')
|
||||
m = pattern.match(line)
|
||||
if m:
|
||||
filepath = "/sys/devices/system/cpu/%s/cpufreq/scaling_governor" % line
|
||||
if os.path.exists(filepath):
|
||||
cmd = 'echo %s > %s' % (value, filepath)
|
||||
os.system(cmd)
|
||||
|
||||
@dbus.service.method(INTERFACE, in_signature='', out_signature='as')
|
||||
def get_cpufreq_scaling_governer_list(self):
|
||||
|
|
|
@ -25,6 +25,12 @@
|
|||
#include <QImageReader>
|
||||
#include <QGraphicsDropShadowEffect>
|
||||
|
||||
#include <QtMath>
|
||||
qreal gradientDistance(qreal x)
|
||||
{
|
||||
return (1 - qCos(M_PI * x)) / 2;
|
||||
}
|
||||
|
||||
CpuBallWidget::CpuBallWidget(QWidget *parent) : QWidget(parent)
|
||||
{
|
||||
this->setFixedSize(210, 210);
|
||||
|
@ -34,6 +40,7 @@ CpuBallWidget::CpuBallWidget(QWidget *parent) : QWidget(parent)
|
|||
|
||||
m_xFrontOffset = 0;
|
||||
m_xBackOffset = this->width();
|
||||
m_prevPercentValue = 0.0;
|
||||
m_percentValue = 0.0;
|
||||
m_progressText = QString("%1%").arg(QString::number(m_percentValue, 'f', 1));
|
||||
|
||||
|
@ -47,7 +54,10 @@ CpuBallWidget::CpuBallWidget(QWidget *parent) : QWidget(parent)
|
|||
|
||||
m_waveTimer = new QTimer(this);
|
||||
connect(m_waveTimer, SIGNAL(timeout()), this, SLOT(onRepaintWaveImage()));
|
||||
m_waveTimer->setInterval(60);
|
||||
m_waveTimer->setInterval(200);
|
||||
|
||||
m_animationIndex = 0;
|
||||
m_animationCounts = 2000/200;//2000为数据更新的时间间隔,200为波浪更新的时间间隔
|
||||
}
|
||||
|
||||
CpuBallWidget::~CpuBallWidget()
|
||||
|
@ -110,7 +120,14 @@ void CpuBallWidget::onRepaintWaveImage()
|
|||
if (m_xBackOffset > m_backImage.width()) {//保留整个显示直径的大小不做处理,避免出现断层
|
||||
m_xBackOffset = 0;
|
||||
}
|
||||
this->update();//this->repaint();
|
||||
|
||||
if (m_animationIndex < m_animationCounts) {
|
||||
m_animationIndex++;
|
||||
repaint();
|
||||
} else {
|
||||
m_waveTimer->stop();
|
||||
}
|
||||
// this->update();//this->repaint();
|
||||
}
|
||||
|
||||
//value:0 ~ 100
|
||||
|
@ -119,21 +136,24 @@ void CpuBallWidget::updateCpuPercent(double value)
|
|||
if (this->m_percentValue == value || value > 100 || value < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
m_prevPercentValue = m_percentValue;
|
||||
m_percentValue = value;
|
||||
m_progressText = QString("%1%").arg(QString::number(value, 'f', 1));
|
||||
|
||||
m_animationIndex = 0;
|
||||
m_waveTimer->start();
|
||||
}
|
||||
|
||||
void CpuBallWidget::startTimer()
|
||||
{
|
||||
if (this->m_waveTimer && !this->m_waveTimer->isActive())
|
||||
this->m_waveTimer->start();
|
||||
// if (this->m_waveTimer && !this->m_waveTimer->isActive())
|
||||
// this->m_waveTimer->start();
|
||||
}
|
||||
|
||||
void CpuBallWidget::stopTimer()
|
||||
{
|
||||
if (this->m_waveTimer && this->m_waveTimer->isActive())
|
||||
this->m_waveTimer->stop();
|
||||
// if (this->m_waveTimer && this->m_waveTimer->isActive())
|
||||
// this->m_waveTimer->stop();
|
||||
}
|
||||
|
||||
//在不同的平台上得到一样的效果,但绘制的文字除外
|
||||
|
@ -145,7 +165,9 @@ void CpuBallWidget::paintEvent(QPaintEvent *)
|
|||
QRectF rect = QRectF(0, 0, this->width(), this->height());
|
||||
QSize waveSize = this->size();
|
||||
|
||||
int currentPercent = static_cast<int>(m_percentValue);
|
||||
// int currentPercent = static_cast<int>(m_percentValue);
|
||||
double percent = m_prevPercentValue + gradientDistance(m_animationIndex / m_animationCounts) * (m_percentValue - m_prevPercentValue);
|
||||
int currentPercent = static_cast<int>(percent);
|
||||
|
||||
//Step1:整个矩形背景
|
||||
QImage waveRectImage = QImage(waveSize, QImage::Format_ARGB32_Premultiplied);//创建一个Format_ARGB32_Premultiplied 格式的QIamge,大小和控件相同
|
||||
|
|
|
@ -56,9 +56,13 @@ private:
|
|||
|
||||
QString m_progressText;
|
||||
|
||||
double m_prevPercentValue;
|
||||
double m_percentValue;
|
||||
double m_xFrontOffset;
|
||||
double m_xBackOffset;
|
||||
|
||||
double m_animationCounts;
|
||||
int m_animationIndex;
|
||||
};
|
||||
|
||||
#endif // CPUBALLWIDGET_H
|
||||
|
|
|
@ -308,6 +308,8 @@ void CpuRateWidget::initWidgets()
|
|||
cpuIdleTimeLayout->addWidget(m_cpuIdleTimeTitle);
|
||||
cpuIdleTimeLayout->addWidget(m_cpuIdleTimeText);
|
||||
|
||||
|
||||
|
||||
m_labelLayout->setContentsMargins(0, 0, 0, 0);
|
||||
m_labelLayout->setSpacing(10);
|
||||
m_labelLayout->addWidget(m_title);
|
||||
|
|
|
@ -156,26 +156,29 @@ void FileSystemListItem::drawForeground(QRect rect, QPainter *painter, int colum
|
|||
}
|
||||
}
|
||||
else if (column == 6) {
|
||||
if (!m_data->usedCapactiy().isEmpty()) {
|
||||
int maxWidth = 60;
|
||||
QFont font = painter->font();
|
||||
QFontMetrics fm(font);
|
||||
QString uCapacity = fm.elidedText(m_data->usedCapactiy(), Qt::ElideRight, maxWidth);
|
||||
painter->drawText(QRect(rect.x(), rect.y(), maxWidth - textPadding, rect.height()), Qt::AlignLeft | Qt::AlignVCenter, uCapacity);
|
||||
}
|
||||
int leftPadding = 10;
|
||||
int topPadding = 5;
|
||||
int pWidth = rect.width() - 60 - 2 * leftPadding - textPadding;
|
||||
int pHeight = rect.height() - 2 * topPadding;
|
||||
int progressWidth = 100;
|
||||
int progressHeight = rect.height() - 2 * topPadding;
|
||||
int textMaxWidth = rect.width() - progressWidth - 2 * leftPadding;
|
||||
if (!m_data->usedCapactiy().isEmpty()) {
|
||||
QFont font = painter->font();
|
||||
QFontMetrics fm(font);
|
||||
QString uCapacity = fm.elidedText(m_data->usedCapactiy(), Qt::ElideRight, textMaxWidth - textPadding);
|
||||
painter->drawText(QRect(rect.x() + textPadding, rect.y(), textMaxWidth - textPadding, rect.height()), Qt::AlignLeft | Qt::AlignVCenter, uCapacity);
|
||||
}
|
||||
QPainterPath bgPath;
|
||||
bgPath.addRect(QRectF(rect.x() + 60, rect.y() + topPadding, pWidth, pHeight));
|
||||
bgPath.addRect(QRectF(rect.x() + textMaxWidth + leftPadding, rect.y() + topPadding, progressWidth, progressHeight));
|
||||
painter->fillPath(bgPath, QColor("#eeeeee"));
|
||||
QPainterPath fillPath;
|
||||
fillPath.addRect(QRectF(rect.x() + 60, rect.y() + topPadding, pWidth - m_data->usedPercentage(), pHeight));
|
||||
fillPath.addRect(QRectF(rect.x() + textMaxWidth + leftPadding, rect.y() + topPadding, m_data->usedPercentage(), progressHeight));
|
||||
painter->setOpacity(0.5);
|
||||
painter->fillPath(fillPath, QColor("#0288d1"));
|
||||
if (m_data->usedPercentage() < 75)
|
||||
painter->fillPath(fillPath, QColor("#0288d1"));
|
||||
else
|
||||
painter->fillPath(fillPath, QColor("#f8b551"));
|
||||
painter->setOpacity(1);
|
||||
painter->drawText(QRect(rect.x() + 60, rect.y() + topPadding, pWidth, pHeight), Qt::AlignHCenter | Qt::AlignVCenter, QString::number(m_data->usedPercentage()).append("%"));
|
||||
painter->drawText(QRect(rect.x() + textMaxWidth + leftPadding, rect.y() + topPadding, progressWidth, progressHeight), Qt::AlignHCenter | Qt::AlignVCenter, QString::number(m_data->usedPercentage()).append("%"));
|
||||
|
||||
/*
|
||||
QStyleOptionProgressBar progressBarStyle;//progressBarStyle.initFrom(this);
|
||||
|
|
|
@ -136,7 +136,7 @@ bool MonitorTitleWidget::eventFilter(QObject *obj, QEvent *event)
|
|||
|
||||
void MonitorTitleWidget::setSearchEditFocus()
|
||||
{
|
||||
if (m_searchEdit->text() != "") {
|
||||
if (m_searchEdit->searchedText() != "") {
|
||||
m_searchEdit->getLineEdit()->setFocus();
|
||||
} else {
|
||||
m_searchEdit->setFocus();
|
||||
|
@ -145,14 +145,14 @@ void MonitorTitleWidget::setSearchEditFocus()
|
|||
|
||||
void MonitorTitleWidget::onRefreshSearchResult()
|
||||
{
|
||||
if (m_searchEdit->text() == searchTextCache) {
|
||||
if (m_searchEdit->searchedText() == searchTextCache) {
|
||||
emit this->searchSignal(searchTextCache);
|
||||
}
|
||||
}
|
||||
|
||||
void MonitorTitleWidget::handleSearchTextChanged()
|
||||
{
|
||||
searchTextCache = m_searchEdit->text();
|
||||
searchTextCache = m_searchEdit->searchedText();
|
||||
|
||||
this->m_cancelSearchBtn->setVisible(!searchTextCache.isEmpty());
|
||||
|
||||
|
@ -165,7 +165,7 @@ void MonitorTitleWidget::handleSearchTextChanged()
|
|||
void MonitorTitleWidget::onCancelSearchBtnClicked(bool b)
|
||||
{
|
||||
this->m_cancelSearchBtn->setVisible(false);
|
||||
m_searchEdit->clearEdit();
|
||||
m_searchEdit->clearAndFocusEdit();
|
||||
emit canelSearchEditFocus();
|
||||
}
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ void NetworkIndicator::updateBgColor()
|
|||
this->m_bgColor = QColor("#f6fcfe");
|
||||
break;
|
||||
case Checked:
|
||||
this->m_outsideBorderColor = QColor("#0973b4");
|
||||
this->m_outsideBorderColor = QColor("#009944");
|
||||
this->m_bgColor = QColor("#e9f8fd");
|
||||
break;
|
||||
default:
|
||||
|
@ -243,15 +243,14 @@ void NetworkIndicator::paintEvent(QPaintEvent *event)
|
|||
path.addRect(QRectF(1, 1, width()-2, height()-2));
|
||||
painter.fillPath(path, this->m_bgColor);
|
||||
|
||||
|
||||
painter.translate((rect().width() - m_pointsCount * m_pointSpace) / 2 + 2, 40);//将坐标第原点移动到该点
|
||||
painter.scale(1, -1);//将横坐标扩大1倍,将纵坐标缩小1倍
|
||||
//使用QPainterPath画贝塞尔曲线
|
||||
painter.setPen(QPen(QColor("#1E90FF"), 1));
|
||||
painter.setPen(QPen(QColor("#009944"), 1));
|
||||
painter.setBrush(QBrush());
|
||||
painter.drawPath(m_downloadPath);//绘制前面创建的path:m_downloadPath
|
||||
painter.translate(0, -8);//将点(0,-8)设为原点
|
||||
painter.setPen(QPen(QColor("#FF0000"), 1));
|
||||
painter.setPen(QPen(QColor("#e60012"), 1));
|
||||
painter.setBrush(QBrush());
|
||||
painter.drawPath(m_uploadPath);
|
||||
|
||||
|
|
|
@ -622,7 +622,7 @@ void ProcessDialog::refreshProcessList()
|
|||
----------------------------------------------------------*/
|
||||
|
||||
std::string desktopFile;
|
||||
desktopFile = getDesktopFileFromName(pid, name, "");
|
||||
desktopFile = getDesktopFileAccordProcName(name, "");
|
||||
// qDebug() << "****************"<< QString::fromStdString(desktopFile);
|
||||
|
||||
QPixmap icon_pixmap;
|
||||
|
@ -632,14 +632,14 @@ void ProcessDialog::refreshProcessList()
|
|||
icon_pixmap = defaultPixmap;
|
||||
icon_pixmap.setDevicePixelRatio(qApp->devicePixelRatio());
|
||||
} else {
|
||||
icon_pixmap = getDesktopFileIcon(desktopFile, 24);
|
||||
icon_pixmap = getAppIconFromDesktopFile(desktopFile, 24);
|
||||
if (icon_pixmap.isNull()) {
|
||||
icon_pixmap = defaultPixmap;
|
||||
icon_pixmap.setDevicePixelRatio(qApp->devicePixelRatio());
|
||||
}
|
||||
//QPixmap pixmap = QPixmap::fromImage(img).scaled(iconSize, iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
}
|
||||
QString title = getDisplayNameFromName(name, desktopFile);
|
||||
QString title = getDisplayNameAccordProcName(name, desktopFile);
|
||||
QString displayName;
|
||||
if (whose_processes == "all") {
|
||||
displayName = QString("[%1] %2").arg(username).arg(title);
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
#include <QApplication>
|
||||
#include <QDateTime>
|
||||
#include <QPushButton>
|
||||
#include <QDebug>
|
||||
#include <QPainter>
|
||||
#include <QMouseEvent>
|
||||
|
@ -33,23 +34,35 @@
|
|||
#include <QFileInfo>
|
||||
#include <QIcon>
|
||||
|
||||
const int spacing = 8;
|
||||
|
||||
PropertiesDialog::PropertiesDialog(QWidget *parent, pid_t processId) : QDialog(parent)
|
||||
, mousePressed(false)
|
||||
{
|
||||
this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowCloseButtonHint);
|
||||
|
||||
this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowCloseButtonHint| Qt::WindowStaysOnTopHint);
|
||||
this->setAttribute(Qt::WA_TranslucentBackground);
|
||||
this->setAttribute(Qt::WA_Resized, false);
|
||||
// this->setMaximumSize(480, 600);
|
||||
// this->setMinimumWidth(320);
|
||||
|
||||
this->setMaximumSize(480, 600);
|
||||
this->setMinimumWidth(320);
|
||||
this->setFixedWidth(380);
|
||||
|
||||
pid = processId;
|
||||
|
||||
layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
m_layout = new QVBoxLayout(this);
|
||||
m_layout->setContentsMargins(0, 0, 0, 5);
|
||||
m_topLayout = new QHBoxLayout;
|
||||
m_topLeftLayout = new QHBoxLayout;
|
||||
m_topLeftLayout->setContentsMargins(20, 20, 0, 0);
|
||||
m_topLeftLayout->setSpacing(10);
|
||||
m_topRightLayout = new QHBoxLayout;
|
||||
m_topRightLayout->setMargin(0);
|
||||
m_topRightLayout->setSpacing(5);
|
||||
m_topLayout->addLayout(m_topLeftLayout);
|
||||
m_topLayout->addStretch();
|
||||
m_topLayout->addLayout(m_topRightLayout);
|
||||
|
||||
userLayout = new QHBoxLayout();
|
||||
/*userLayout = new QHBoxLayout();
|
||||
userLayout->setContentsMargins(0, 0, 0, 0);
|
||||
nameLayout = new QHBoxLayout();
|
||||
nameLayout->setContentsMargins(0, 0, 0, 0);
|
||||
|
@ -58,7 +71,13 @@ PropertiesDialog::PropertiesDialog(QWidget *parent, pid_t processId) : QDialog(p
|
|||
cpuDurationLayout = new QHBoxLayout();
|
||||
cpuDurationLayout->setContentsMargins(0, 0, 0, 0);
|
||||
startTimeLayout = new QHBoxLayout();
|
||||
startTimeLayout->setContentsMargins(0, 0, 0, 0);
|
||||
startTimeLayout->setContentsMargins(0, 0, 0, 0);*/
|
||||
|
||||
m_logoLabel = new QLabel();
|
||||
m_logoLabel->setStyleSheet("QLabel{background:transparent;border:none;}");
|
||||
m_logoLabel->setFixedSize(44, 58);
|
||||
m_logoLabel->setContentsMargins(0, 0, 0, 0);
|
||||
m_logoLabel->setPixmap(QPixmap(":/res/sub_logo.png"));
|
||||
|
||||
closeButton = new MyTristateButton();
|
||||
closeButton->setObjectName("CloseButton");
|
||||
|
@ -66,13 +85,89 @@ PropertiesDialog::PropertiesDialog(QWidget *parent, pid_t processId) : QDialog(p
|
|||
this->close();
|
||||
});
|
||||
|
||||
iconLabel = new QLabel();
|
||||
iconLabel->setFixedSize(96, 96);
|
||||
m_iconLabel = new QLabel();
|
||||
m_iconLabel->setStyleSheet("QLabel{background:transparent;border:none;}");
|
||||
m_iconLabel->setFixedSize(48, 48);
|
||||
m_iconLabel->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
titleLabel = new QLabel();
|
||||
titleLabel->setStyleSheet("QLabel { background-color : transparent; font-size: 14px; font-weight: 500; color : #303030; }");
|
||||
m_titleLabel = new QLabel();
|
||||
m_titleLabel->setStyleSheet("QLabel{background-color:transparent;font-size:18px;color:#000000;}");
|
||||
m_titleLabel->setFixedWidth(230);
|
||||
m_titleLabel->setWordWrap(true);
|
||||
|
||||
userTitleLabel = new QLabel(QString("%1:").arg(tr("User name")));
|
||||
m_topLeftLayout->addWidget(m_iconLabel, 0, Qt::AlignLeft | Qt::AlignVCenter);
|
||||
m_topLeftLayout->addWidget(m_titleLabel, 0, Qt::AlignLeft | Qt::AlignVCenter);
|
||||
|
||||
m_topRightLayout->addWidget(m_logoLabel, 0, Qt::AlignTop | Qt::AlignRight);
|
||||
m_topRightLayout->addWidget(closeButton, 0, Qt::AlignTop | Qt::AlignRight);
|
||||
|
||||
QLabel *topSplit = new QLabel();
|
||||
topSplit->setStyleSheet("QLabel{background: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #f1f1f1, stop:1 #e0e0e0);}");
|
||||
// topSplit->setStyleSheet("QLabel{background: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #f1f1f1, stop:1 #e0e0e0);}");
|
||||
topSplit->setFixedSize(320, 1);
|
||||
|
||||
QLabel *bottomSplit = new QLabel();
|
||||
bottomSplit->setStyleSheet("QLabel{background: qlineargradient(x1:0, y1:0, x2:0, y2:1,stop:0 #f1f1f1, stop:1 #e0e0e0);}");
|
||||
// bottomSplit->setStyleSheet("QLabel{background: qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 #f1f1f1, stop:1 #e0e0e0);}");
|
||||
bottomSplit->setFixedSize(320, 1);
|
||||
|
||||
m_infoFrame = new QFrame;
|
||||
m_infoFrame->setMaximumWidth(320);
|
||||
m_infoFrame->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
|
||||
m_bottomLayout = new QHBoxLayout;
|
||||
m_bottomLayout->setContentsMargins(0,0,20,0);
|
||||
m_bottomLayout->setSpacing(0);
|
||||
m_okBtn = new QPushButton;
|
||||
m_okBtn->setFixedSize(91, 25);
|
||||
m_okBtn->setObjectName("blackButton");
|
||||
m_okBtn->setFocusPolicy(Qt::NoFocus);
|
||||
m_okBtn->setText(tr("OK"));
|
||||
connect(m_okBtn, &QPushButton::clicked, this, [=] {
|
||||
this->close();
|
||||
});
|
||||
m_bottomLayout->addWidget(m_okBtn, 0, Qt::AlignBottom | Qt::AlignRight);
|
||||
|
||||
m_layout->addLayout(m_topLayout);
|
||||
m_layout->addSpacing(10);
|
||||
m_layout->addWidget(topSplit, 0, Qt::AlignCenter);
|
||||
m_layout->addSpacing(10);
|
||||
m_layout->addWidget(m_infoFrame, 0, Qt::AlignCenter);
|
||||
m_layout->addSpacing(5);
|
||||
m_layout->addWidget(bottomSplit, 0, Qt::AlignCenter);
|
||||
m_layout->addSpacing(5);
|
||||
m_layout->addLayout(m_bottomLayout);
|
||||
m_layout->addSpacing(10);
|
||||
m_layout->addStretch();
|
||||
|
||||
QGridLayout *infoGrid = new QGridLayout(m_infoFrame);
|
||||
infoGrid->setMargin(0);
|
||||
infoGrid->setHorizontalSpacing(spacing);
|
||||
infoGrid->setVerticalSpacing(spacing);
|
||||
infoGrid->setColumnStretch(0, 10);
|
||||
infoGrid->setColumnStretch(1, 100);
|
||||
|
||||
QStringList titleList;
|
||||
titleList << QObject::tr("User name:") << QObject::tr("Process name:") << QObject::tr("Command line:") << QObject::tr("CPU Time:") << QObject::tr("Started Time:");
|
||||
for (int i = 0; i < titleList.length(); ++i) {
|
||||
QLabel *titleLabel = new QLabel(titleList.value(i));
|
||||
titleLabel->setStyleSheet("QLabel{background-color:transparent;font-size:12px;color:#999999;}");
|
||||
titleLabel->setMinimumHeight(20);
|
||||
|
||||
QLabel *infoLabel = new QLabel();
|
||||
infoLabel->setStyleSheet("QLabel{background-color:transparent;font-size:12px;color:#000000;}");
|
||||
infoLabel->setWordWrap(true);
|
||||
infoLabel->setMinimumHeight(28);
|
||||
infoLabel->setMinimumWidth(220);
|
||||
infoLabel->setMaximumWidth(240);
|
||||
infoLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
infoLabel->adjustSize();
|
||||
m_labelList << infoLabel;
|
||||
infoGrid->addWidget(titleLabel);
|
||||
infoGrid->addWidget(infoLabel);
|
||||
}
|
||||
|
||||
/*userTitleLabel = new QLabel(QString("%1:").arg(tr("User name")));
|
||||
userTitleLabel->setStyleSheet("QLabel { background-color : transparent; color : #666666; }");
|
||||
userTitleLabel->setFixedWidth(100);
|
||||
userTitleLabel->setAlignment(Qt::AlignRight);
|
||||
|
@ -138,18 +233,18 @@ PropertiesDialog::PropertiesDialog(QWidget *parent, pid_t processId) : QDialog(p
|
|||
startTimeLayout->addWidget(startTimeLabel);
|
||||
startTimeLayout->addSpacing(20);
|
||||
|
||||
layout->addWidget(closeButton, 0, Qt::AlignTop | Qt::AlignRight);
|
||||
layout->addSpacing(20);
|
||||
layout->addWidget(iconLabel, 0, Qt::AlignHCenter);
|
||||
layout->addSpacing(14);
|
||||
layout->addWidget(titleLabel, 0, Qt::AlignHCenter);
|
||||
layout->addSpacing(20);
|
||||
layout->addLayout(userLayout);
|
||||
layout->addLayout(nameLayout);
|
||||
layout->addLayout(cmdlineLayout);
|
||||
layout->addLayout(cpuDurationLayout);
|
||||
layout->addLayout(startTimeLayout);
|
||||
layout->addSpacing(20);
|
||||
m_layout->addWidget(closeButton, 0, Qt::AlignTop | Qt::AlignRight);
|
||||
m_layout->addSpacing(20);
|
||||
m_layout->addWidget(m_iconLabel, 0, Qt::AlignHCenter);
|
||||
m_layout->addSpacing(14);
|
||||
m_layout->addWidget(m_titleLabel, 0, Qt::AlignHCenter);
|
||||
m_layout->addSpacing(20);
|
||||
m_layout->addLayout(userLayout);
|
||||
m_layout->addLayout(nameLayout);
|
||||
m_layout->addLayout(cmdlineLayout);
|
||||
m_layout->addLayout(cpuDurationLayout);
|
||||
m_layout->addLayout(startTimeLayout);
|
||||
m_layout->addSpacing(20);*/
|
||||
|
||||
this->moveToCenter();
|
||||
|
||||
|
@ -172,12 +267,37 @@ PropertiesDialog::~PropertiesDialog()
|
|||
}
|
||||
|
||||
delete closeButton;
|
||||
delete iconLabel;
|
||||
delete userTitleLabel;
|
||||
delete m_iconLabel;
|
||||
delete m_titleLabel;
|
||||
delete m_okBtn;
|
||||
|
||||
QLayoutItem *child;
|
||||
while ((child = m_topLeftLayout->takeAt(0)) != 0) {
|
||||
if (child->widget())
|
||||
child->widget()->deleteLater();
|
||||
delete child;
|
||||
}
|
||||
while ((child = m_topRightLayout->takeAt(0)) != 0) {
|
||||
if (child->widget())
|
||||
child->widget()->deleteLater();
|
||||
delete child;
|
||||
}
|
||||
while ((child = m_topLayout->takeAt(0)) != 0) {
|
||||
if (child->widget())
|
||||
child->widget()->deleteLater();
|
||||
delete child;
|
||||
}
|
||||
while ((child = m_bottomLayout->takeAt(0)) != 0) {
|
||||
if (child->widget())
|
||||
child->widget()->deleteLater();
|
||||
delete child;
|
||||
}
|
||||
|
||||
delete m_infoFrame;
|
||||
/*delete userTitleLabel;
|
||||
delete userLabel;
|
||||
delete nameTitleLabel;
|
||||
delete m_appNameLabel;
|
||||
delete titleLabel;
|
||||
delete cmdlineTitleLabel;
|
||||
delete cpuDurationLabel;
|
||||
delete cpuDurationTitleLabel;
|
||||
|
@ -188,8 +308,20 @@ PropertiesDialog::~PropertiesDialog()
|
|||
delete nameLayout;
|
||||
delete cmdlineLayout;
|
||||
delete cpuDurationLayout;
|
||||
delete startTimeLayout;
|
||||
delete layout;
|
||||
delete startTimeLayout;*/
|
||||
delete m_layout;
|
||||
}
|
||||
|
||||
void PropertiesDialog::updateLabelFrameHeight()
|
||||
{
|
||||
int labelTotalHeight = 0;
|
||||
foreach (QLabel *label, m_labelList) {
|
||||
label->adjustSize();
|
||||
labelTotalHeight += label->size().height() + spacing;
|
||||
}
|
||||
m_infoFrame->setFixedHeight(labelTotalHeight);
|
||||
m_infoFrame->adjustSize();
|
||||
this->adjustSize();
|
||||
}
|
||||
|
||||
void PropertiesDialog::initProcproperties()
|
||||
|
@ -205,31 +337,41 @@ void PropertiesDialog::initProcproperties()
|
|||
// long memory = info->mem;
|
||||
|
||||
std::string desktopFile;
|
||||
desktopFile = getDesktopFileFromName(pid, name, "");
|
||||
desktopFile = getDesktopFileAccordProcName(name, "");
|
||||
|
||||
QPixmap icon_pixmap;
|
||||
int iconSize = 96 * qApp->devicePixelRatio();
|
||||
int iconSize = 48 * qApp->devicePixelRatio();
|
||||
QPixmap defaultPixmap = QIcon::fromTheme("application-x-executable").pixmap(iconSize, iconSize);
|
||||
if (desktopFile.size() == 0) {
|
||||
icon_pixmap = defaultPixmap;
|
||||
icon_pixmap.setDevicePixelRatio(qApp->devicePixelRatio());
|
||||
} else {
|
||||
icon_pixmap = getDesktopFileIcon(desktopFile, 96);
|
||||
icon_pixmap = getAppIconFromDesktopFile(desktopFile, 48);
|
||||
if (icon_pixmap.isNull()) {
|
||||
icon_pixmap = defaultPixmap;
|
||||
icon_pixmap.setDevicePixelRatio(qApp->devicePixelRatio());
|
||||
}
|
||||
//QPixmap pixmap = QPixmap::fromImage(img).scaled(iconSize, iconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||
}
|
||||
QString displayName = getDisplayNameFromName(name, desktopFile);
|
||||
iconLabel->setPixmap(icon_pixmap);
|
||||
titleLabel->setText(displayName);
|
||||
userLabel->setText(username);
|
||||
QString displayName = getDisplayNameAccordProcName(name, desktopFile);
|
||||
m_iconLabel->setPixmap(icon_pixmap);
|
||||
m_titleLabel->setText(displayName);
|
||||
/*userLabel->setText(username);
|
||||
m_appNameLabel->setText(QString(info->name));
|
||||
cmdlineLabel->setText(QString(info->arguments));
|
||||
startTimeLabel->setText(QFileInfo(QString("/proc/%1").arg(pid)).created().toString("yyyy-MM-dd hh:mm:ss"));
|
||||
cpuDurationLabel->setText(formatDurationForDisplay(100 * info->cpu_time / info->frequency));
|
||||
cpuDurationLabel->setText(formatDurationForDisplay(100 * info->cpu_time / info->frequency));*/
|
||||
|
||||
QStringList valueList;
|
||||
valueList << username << QString(info->name) << QString(info->arguments)
|
||||
<< QFileInfo(QString("/proc/%1").arg(pid)).created().toString("yyyy-MM-dd hh:mm:ss")
|
||||
<< formatDurationForDisplay(100 * info->cpu_time / info->frequency);
|
||||
|
||||
for (int i = 0; i < this->m_labelList.length(); ++i) {
|
||||
this->m_labelList.value(i)->setText(valueList.value(i));
|
||||
}
|
||||
}
|
||||
this->updateLabelFrameHeight();
|
||||
}
|
||||
|
||||
void PropertiesDialog::refreshProcproperties()
|
||||
|
@ -237,8 +379,14 @@ void PropertiesDialog::refreshProcproperties()
|
|||
ProcessWorker *info;
|
||||
info = ProcessWorker::find(pid);
|
||||
if (info) {
|
||||
startTimeLabel->setText(QFileInfo(QString("/proc/%1").arg(pid)).created().toString("yyyy-MM-dd hh:mm:ss"));
|
||||
cpuDurationLabel->setText(formatDurationForDisplay(100 * info->cpu_time / info->frequency));
|
||||
for (int i = 0; i < this->m_labelList.length(); ++i) {
|
||||
if (i == 3)
|
||||
this->m_labelList.value(i)->setText(QFileInfo(QString("/proc/%1").arg(pid)).created().toString("yyyy-MM-dd hh:mm:ss"));
|
||||
if (i == 4)
|
||||
this->m_labelList.value(i)->setText(formatDurationForDisplay(100 * info->cpu_time / info->frequency));
|
||||
}
|
||||
//startTimeLabel->setText(QFileInfo(QString("/proc/%1").arg(pid)).created().toString("yyyy-MM-dd hh:mm:ss"));
|
||||
//cpuDurationLabel->setText(formatDurationForDisplay(100 * info->cpu_time / info->frequency));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -302,8 +450,8 @@ void PropertiesDialog::paintEvent(QPaintEvent *event)
|
|||
QPainter painter(this);
|
||||
|
||||
//绘制圆角矩形
|
||||
painter.setPen(QPen(QColor("#0d87ca"), 0));//边框颜色 QColor(255, 255, 255, 153)
|
||||
painter.setBrush(QColor("#e9eef0"));//背景色 #0d87ca
|
||||
painter.setPen(QPen(QColor("#0d87ca"), 0));//边框颜色 #3f96e4
|
||||
painter.setBrush(QColor("#e9eef0"));//背景色
|
||||
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||
painter.setOpacity(1);
|
||||
QRectF r(0 / 2.0, 0 / 2.0, width() - 0, height() - 0);//左边 上边 右边 下边
|
||||
|
|
|
@ -45,6 +45,7 @@ public:
|
|||
pid_t getPid();
|
||||
QRect getParentGeometry() const;
|
||||
void moveToCenter();
|
||||
void updateLabelFrameHeight();
|
||||
void initProcproperties();
|
||||
|
||||
public slots:
|
||||
|
@ -58,8 +59,9 @@ protected:
|
|||
// void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
MyTristateButton *closeButton;
|
||||
QHBoxLayout *cmdlineLayout;
|
||||
MyTristateButton *closeButton = nullptr;
|
||||
QLabel *m_logoLabel = nullptr;
|
||||
/*QHBoxLayout *cmdlineLayout;
|
||||
QHBoxLayout *userLayout;
|
||||
QHBoxLayout *nameLayout;
|
||||
QHBoxLayout *cpuDurationLayout;
|
||||
|
@ -68,19 +70,29 @@ private:
|
|||
QLabel *cmdlineTitleLabel;
|
||||
QLabel *userLabel;
|
||||
QLabel *userTitleLabel;
|
||||
QLabel *iconLabel;
|
||||
QLabel *m_appNameLabel;
|
||||
QLabel *nameTitleLabel;
|
||||
QLabel *cpuDurationLabel;
|
||||
QLabel *cpuDurationTitleLabel;
|
||||
QLabel *startTimeLabel;
|
||||
QLabel *startTimeTitleLabel;
|
||||
QLabel *titleLabel;
|
||||
QVBoxLayout *layout;
|
||||
QLabel *startTimeTitleLabel;*/
|
||||
|
||||
QVBoxLayout *m_layout = nullptr;
|
||||
QHBoxLayout *m_topLayout = nullptr;
|
||||
QHBoxLayout *m_topLeftLayout = nullptr;
|
||||
QHBoxLayout *m_topRightLayout = nullptr;
|
||||
QHBoxLayout *m_bottomLayout = nullptr;
|
||||
QLabel *m_iconLabel = nullptr;
|
||||
QLabel *m_titleLabel = nullptr;
|
||||
QPushButton *m_okBtn = nullptr;
|
||||
|
||||
pid_t pid;
|
||||
QPoint dragPosition;
|
||||
bool mousePressed;
|
||||
QTimer *timer;
|
||||
QTimer *timer = nullptr;
|
||||
|
||||
QFrame *m_infoFrame = nullptr;
|
||||
QList<QLabel *> m_labelList;
|
||||
};
|
||||
|
||||
#endif // PROPERTIESSDIALOG_H
|
||||
|
|
|
@ -17,16 +17,15 @@
|
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "util.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QIcon>
|
||||
#include <glib/gi18n.h>
|
||||
#include <glib.h>
|
||||
#include <glibtop/procstate.h>
|
||||
#include "util.h"
|
||||
#include <QDirIterator>
|
||||
|
||||
#include <glibtop/procstate.h>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <qdiriterator.h>
|
||||
|
||||
std::string make_string(char *c_str)
|
||||
{
|
||||
|
@ -59,7 +58,6 @@ QString formatDurationForDisplay(unsigned centiseconds)
|
|||
gchar *duration = NULL;
|
||||
|
||||
if (weeks) {
|
||||
/* xgettext: weeks, days */
|
||||
duration = g_strdup_printf("%uw%ud", weeks, days);
|
||||
formatTime = QString(QLatin1String(duration));
|
||||
if (duration) {
|
||||
|
@ -70,7 +68,6 @@ QString formatDurationForDisplay(unsigned centiseconds)
|
|||
}
|
||||
|
||||
if (days) {
|
||||
/* xgettext: days, hours (0 -> 23) */
|
||||
duration = g_strdup_printf("%ud%02uh", days, hours);
|
||||
formatTime = QString(QLatin1String(duration));
|
||||
if (duration) {
|
||||
|
@ -81,7 +78,6 @@ QString formatDurationForDisplay(unsigned centiseconds)
|
|||
}
|
||||
|
||||
if (hours) {
|
||||
/* xgettext: hours (0 -> 23), minutes, seconds */
|
||||
duration = g_strdup_printf("%u:%02u:%02u", hours, minutes, seconds);
|
||||
formatTime = QString(QLatin1String(duration));
|
||||
if (duration) {
|
||||
|
@ -91,7 +87,6 @@ QString formatDurationForDisplay(unsigned centiseconds)
|
|||
return formatTime;
|
||||
}
|
||||
|
||||
/* xgettext: minutes, seconds, centiseconds */
|
||||
duration = g_strdup_printf("%u:%02u.%02u", minutes, seconds, centiseconds);
|
||||
formatTime = QString(QLatin1String(duration));
|
||||
if (duration) {
|
||||
|
@ -101,18 +96,12 @@ QString formatDurationForDisplay(unsigned centiseconds)
|
|||
return formatTime;
|
||||
}
|
||||
|
||||
std::string getDesktopFileFromName(int pid, QString procName, QString cmdline)
|
||||
std::string getDesktopFileAccordProcName(QString procName, QString cmdline)
|
||||
{
|
||||
QDirIterator dir("/usr/share/applications", QDirIterator::Subdirectories);
|
||||
std::string desktopFile;
|
||||
|
||||
// Convert to lower characters.
|
||||
QString procname = procName.toLower();
|
||||
|
||||
// Replace "_" instead "-", avoid some applications desktop file can't found, such as, sublime text.
|
||||
procname.replace("_", "-");
|
||||
|
||||
// Concat desktop file.
|
||||
QString processFilename = procname + ".desktop";
|
||||
|
||||
while(dir.hasNext()) {
|
||||
|
@ -128,7 +117,7 @@ std::string getDesktopFileFromName(int pid, QString procName, QString cmdline)
|
|||
return desktopFile;
|
||||
}
|
||||
|
||||
QPixmap getDesktopFileIcon(std::string desktopFile, int iconSize)
|
||||
QPixmap getAppIconFromDesktopFile(std::string desktopFile, int iconSize)
|
||||
{
|
||||
std::ifstream in;
|
||||
in.open(desktopFile);
|
||||
|
@ -141,13 +130,11 @@ QPixmap getDesktopFileIcon(std::string desktopFile, int iconSize)
|
|||
iconName = QString::fromStdString(line);
|
||||
|
||||
if (iconName.startsWith("Icon=")) {
|
||||
iconName.remove(0,5); // remove the first 5 chars
|
||||
iconName.remove(0,5);
|
||||
} else {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (iconName.contains("/")) {
|
||||
// this is probably a path to the file, use that instead of the theme icon name
|
||||
icon = QIcon(iconName);
|
||||
} else {
|
||||
icon = QIcon::fromTheme(iconName, defaultExecutableIcon);
|
||||
|
@ -164,39 +151,35 @@ QPixmap getDesktopFileIcon(std::string desktopFile, int iconSize)
|
|||
return pixmap;
|
||||
}
|
||||
|
||||
|
||||
QString getDisplayNameFromName(QString procName, std::string desktopFile)
|
||||
QString getDisplayNameAccordProcName(QString procName, std::string desktopFile)
|
||||
{
|
||||
if (desktopFile.size() == 0) {
|
||||
return procName;
|
||||
}
|
||||
|
||||
std::ifstream in;
|
||||
in.open(desktopFile);
|
||||
QString displayName = procName;
|
||||
while(!in.eof()) {
|
||||
std::string line;
|
||||
std::getline(in,line);
|
||||
|
||||
QString lineContent = QString::fromStdString(line);
|
||||
|
||||
QString localNameFlag = QString("Name[%1]=").arg(QLocale::system().name());
|
||||
QString nameFlag = "Name=";
|
||||
QString genericNameFlag = QString("GenericName[%1]=").arg(QLocale::system().name());
|
||||
|
||||
if (lineContent.startsWith(localNameFlag)) {
|
||||
displayName = lineContent.remove(0, localNameFlag.size());
|
||||
|
||||
break;
|
||||
} else if (lineContent.startsWith(genericNameFlag)) {
|
||||
}
|
||||
else if (lineContent.startsWith(genericNameFlag)) {
|
||||
displayName = lineContent.remove(0, genericNameFlag.size());
|
||||
|
||||
break;
|
||||
} else if (lineContent.startsWith(nameFlag)) {
|
||||
}
|
||||
else if (lineContent.startsWith(nameFlag)) {
|
||||
displayName = lineContent.remove(0, nameFlag.size());
|
||||
|
||||
continue;
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
@ -205,15 +188,6 @@ QString getDisplayNameFromName(QString procName, std::string desktopFile)
|
|||
return displayName;
|
||||
}
|
||||
|
||||
QString getImagePath(QString imageName)
|
||||
{
|
||||
QDir dir(qApp->applicationDirPath());
|
||||
dir.cdUp();
|
||||
|
||||
return QDir(dir.filePath("image")).filePath(imageName);
|
||||
}
|
||||
|
||||
|
||||
QString formatProcessState(guint state)
|
||||
{
|
||||
QString status;
|
||||
|
@ -281,7 +255,6 @@ QString formatUnitSize(double v, const char** orders, int nb_orders)
|
|||
QString formatByteCount(double v)
|
||||
{
|
||||
static const char* orders[] = { "B", "KB", "MB", "GB", "TB" };
|
||||
|
||||
return formatUnitSize(v, orders, sizeof(orders)/sizeof(orders[0]));
|
||||
}
|
||||
|
||||
|
|
|
@ -29,10 +29,9 @@
|
|||
|
||||
using std::string;
|
||||
|
||||
std::string getDesktopFileFromName(int pid, QString procName, QString cmdline);
|
||||
QPixmap getDesktopFileIcon(std::string desktopFile, int iconSize = 24);
|
||||
QString getDisplayNameFromName(QString procName, std::string desktopFile);
|
||||
QString getImagePath(QString imageName);
|
||||
std::string getDesktopFileAccordProcName(QString procName, QString cmdline);
|
||||
QPixmap getAppIconFromDesktopFile(std::string desktopFile, int iconSize = 24);
|
||||
QString getDisplayNameAccordProcName(QString procName, std::string desktopFile);
|
||||
std::string make_string(char *c_str);
|
||||
QString formatProcessState(guint state);
|
||||
QString getNiceLevel(int nice);
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
#include "mytristatebutton.h"
|
||||
|
||||
#include <QLabel>
|
||||
#include <QButtonGroup>
|
||||
#include <QDebug>
|
||||
#include <QCloseEvent>
|
||||
#include <QApplication>
|
||||
|
@ -18,70 +17,57 @@ MyDialog::MyDialog(const QString &title, const QString &message, QWidget *parent
|
|||
, mousePressed(false)
|
||||
{
|
||||
this->setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint | Qt::WindowCloseButtonHint);
|
||||
|
||||
this->setAttribute(Qt::WA_TranslucentBackground);
|
||||
// this->setAttribute(Qt::WA_DeleteOnClose, false);
|
||||
this->setAttribute(Qt::WA_Resized, false);
|
||||
|
||||
topLayout = new QHBoxLayout;
|
||||
topLayout->setContentsMargins(20, 14, 20, 14);
|
||||
topLayout->setSpacing(20);
|
||||
m_topLayout = new QHBoxLayout;
|
||||
m_topLayout->setContentsMargins(20, 14, 20, 14);
|
||||
m_topLayout->setSpacing(20);
|
||||
|
||||
titleLabel = new QLabel;
|
||||
titleLabel->setStyleSheet("QLabel{padding-top: 2px;padding-bottom: 2px;font-size: 12px;color: #000000;}");
|
||||
titleLabel->hide();
|
||||
titleLabel->setAttribute(Qt::WA_TransparentForMouseEvents);
|
||||
m_titleLabel = new QLabel;
|
||||
m_titleLabel->setStyleSheet("QLabel{padding-top:3px;padding-bottom:3px;font-size:18px;color:#000000;}");
|
||||
m_titleLabel->hide();
|
||||
m_titleLabel->setAttribute(Qt::WA_TransparentForMouseEvents);
|
||||
|
||||
messageLabel = new QLabel;
|
||||
messageLabel->setStyleSheet("QLabel{padding-top: 2px;padding-bottom: 2px;font-size: 11px;color: #444444;}");
|
||||
messageLabel->hide();
|
||||
messageLabel->setAttribute(Qt::WA_TransparentForMouseEvents);
|
||||
m_messageLabel = new QLabel;
|
||||
m_messageLabel->setStyleSheet("QLabel{padding-top:3px;padding-bottom:3px;font-size:12px;color:#000000;}");
|
||||
m_messageLabel->hide();
|
||||
m_messageLabel->setAttribute(Qt::WA_TransparentForMouseEvents);
|
||||
|
||||
QVBoxLayout *textLayout = new QVBoxLayout;
|
||||
textLayout->setContentsMargins(0, 0, 0, 0);
|
||||
textLayout->setSpacing(5);
|
||||
textLayout->addStretch();
|
||||
textLayout->addWidget(titleLabel, 0, Qt::AlignLeft);
|
||||
textLayout->addWidget(messageLabel, 0, Qt::AlignLeft);
|
||||
textLayout->addWidget(m_titleLabel, 0, Qt::AlignLeft);
|
||||
textLayout->addWidget(m_messageLabel, 0, Qt::AlignLeft);
|
||||
textLayout->addStretch();
|
||||
|
||||
contentLayout = new QVBoxLayout;
|
||||
contentLayout->setContentsMargins(0, 0, 0, 0);
|
||||
contentLayout->setSpacing(0);
|
||||
contentLayout->addLayout(textLayout);
|
||||
|
||||
topLayout->addLayout(contentLayout);
|
||||
|
||||
m_topLayout->addLayout(textLayout);
|
||||
|
||||
closeButton = new MyTristateButton(this);
|
||||
closeButton->setObjectName("CloseButton");
|
||||
// closeButton->setNormalPic(":/res/tool/close_normal.png");
|
||||
// closeButton->setHoverPic(":/res/tool/close_hover.png");
|
||||
// closeButton->setPressPic(":/res/tool/close_press.png");
|
||||
connect(closeButton, &MyTristateButton::clicked, this, [=] {
|
||||
this->close();
|
||||
});
|
||||
closeButton->setAttribute(Qt::WA_NoMousePropagation);
|
||||
|
||||
m_buttonLayout = new QHBoxLayout;
|
||||
m_buttonLayout->setMargin(0);
|
||||
m_buttonLayout->setSpacing(0);
|
||||
m_buttonLayout->setContentsMargins(20, 14, 20, 14);
|
||||
|
||||
QVBoxLayout *mainLayout = new QVBoxLayout;
|
||||
mainLayout->setContentsMargins(0, 0, 0, 0);
|
||||
mainLayout->setSpacing(0);
|
||||
mainLayout->setSpacing(10);
|
||||
|
||||
mainLayout->addWidget(closeButton, 0, Qt::AlignTop | Qt::AlignRight);
|
||||
mainLayout->addLayout(topLayout);
|
||||
|
||||
buttonLayout = new QHBoxLayout;
|
||||
buttonLayout->setMargin(0);
|
||||
buttonLayout->setSpacing(0);
|
||||
buttonLayout->setContentsMargins(20, 14, 20, 14);
|
||||
mainLayout->addLayout(buttonLayout);
|
||||
mainLayout->addLayout(m_topLayout);
|
||||
mainLayout->addLayout(m_buttonLayout);
|
||||
|
||||
QAction *button_action = new QAction(this);
|
||||
|
||||
button_action->setShortcuts(QKeySequence::InsertParagraphSeparator);
|
||||
button_action->setAutoRepeat(false);
|
||||
|
||||
QObject::connect(button_action, SIGNAL(triggered(bool)), this, SLOT(onDefaultButtonTriggered()));
|
||||
connect(button_action, SIGNAL(triggered(bool)), this, SLOT(onDefaultButtonTriggered()));
|
||||
|
||||
this->setLayout(mainLayout);
|
||||
this->addAction(button_action);
|
||||
|
@ -96,17 +82,36 @@ MyDialog::MyDialog(const QString &title, const QString &message, QWidget *parent
|
|||
|
||||
MyDialog::~MyDialog()
|
||||
{
|
||||
this->clearButtons();
|
||||
delete m_messageLabel;
|
||||
delete m_titleLabel;
|
||||
delete closeButton;
|
||||
|
||||
QLayoutItem *child;
|
||||
while ((child = m_topLayout->takeAt(0)) != 0) {
|
||||
if (child->widget())
|
||||
child->widget()->deleteLater();
|
||||
delete child;
|
||||
}
|
||||
|
||||
this->buttonList.clear();
|
||||
while ((child = m_buttonLayout->takeAt(0)) != 0) {
|
||||
if (child->widget())
|
||||
child->widget()->deleteLater();
|
||||
delete child;
|
||||
}
|
||||
// while(this->m_buttonLayout->count()) {
|
||||
// QLayoutItem *item = this->m_buttonLayout->takeAt(0);
|
||||
// item->widget()->deleteLater();
|
||||
// delete item;
|
||||
// }
|
||||
}
|
||||
|
||||
void MyDialog::updateSize()
|
||||
{
|
||||
if (!this->testAttribute(Qt::WA_Resized)) {
|
||||
QSize size = this->sizeHint();
|
||||
|
||||
size.setWidth(qMax(size.width(), 440));
|
||||
size.setHeight(qMax(size.height(), 200));
|
||||
|
||||
size.setWidth(qMax(size.width(), 234));
|
||||
size.setHeight(qMax(size.height(), 196));
|
||||
this->resize(size);
|
||||
this->setAttribute(Qt::WA_Resized, false);
|
||||
}
|
||||
|
@ -115,7 +120,6 @@ void MyDialog::updateSize()
|
|||
void MyDialog::onButtonClicked()
|
||||
{
|
||||
QAbstractButton *button = qobject_cast<QAbstractButton*>(this->sender());
|
||||
|
||||
if(button) {
|
||||
clickedButtonIndex = buttonList.indexOf(button);
|
||||
emit this->buttonClicked(clickedButtonIndex, button->text());
|
||||
|
@ -138,51 +142,25 @@ int MyDialog::buttonCount() const
|
|||
return this->buttonList.count();
|
||||
}
|
||||
|
||||
int MyDialog::addButton(const QString &text, bool isDefault/*, ButtonType type*/)
|
||||
int MyDialog::addButton(const QString &text, bool isDefault)
|
||||
{
|
||||
int index = buttonCount();
|
||||
|
||||
QAbstractButton *button = new QPushButton(text);
|
||||
button->setFocusPolicy(Qt::NoFocus);
|
||||
button->setStyleSheet("QPushButton{font-size:12px;background:#ffffff;border:1px solid #bebebe;color:#000000;}QPushButton:hover{background-color:#ffffff;border:1px solid #3f96e4;color:#000000;}QPushButton:pressed{background-color:#ffffff;border:1px solid #3f96e4;color:#000000;}");
|
||||
button->setAttribute(Qt::WA_NoMousePropagation);
|
||||
button->setFixedHeight(24);
|
||||
button->setFixedSize(91, 25);
|
||||
|
||||
QLabel* label = new QLabel;
|
||||
label->setStyleSheet("QLabel{background-color:rgba(0, 0, 0, 0.1);}");
|
||||
label->setFixedWidth(1);
|
||||
label->hide();
|
||||
|
||||
if(index > 0 && index >= buttonCount()) {
|
||||
QLabel *label = qobject_cast<QLabel*>(this->buttonLayout->itemAt(this->buttonLayout->count() - 1)->widget());
|
||||
if(label)
|
||||
label->show();
|
||||
}
|
||||
|
||||
this->buttonLayout->insertWidget(index * 2, button);
|
||||
this->m_buttonLayout->insertWidget(index+1, button);
|
||||
this->buttonList << button;
|
||||
this->buttonLayout->insertWidget(index * 2 + 1, label);
|
||||
|
||||
connect(button, SIGNAL(clicked(bool)), this, SLOT(onButtonClicked()));
|
||||
|
||||
if(isDefault) {
|
||||
setDefaultButton(button);
|
||||
}
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
void MyDialog::clearButtons()
|
||||
{
|
||||
this->buttonList.clear();
|
||||
|
||||
while(this->buttonLayout->count()) {
|
||||
QLayoutItem *item = this->buttonLayout->takeAt(0);
|
||||
|
||||
item->widget()->deleteLater();
|
||||
delete item;
|
||||
}
|
||||
}
|
||||
|
||||
void MyDialog::setDefaultButton(QAbstractButton *button)
|
||||
{
|
||||
this->defaultButton = button;
|
||||
|
@ -194,27 +172,25 @@ void MyDialog::setTitle(const QString &title)
|
|||
return;
|
||||
|
||||
this->m_title = title;
|
||||
this->titleLabel->setText(title);
|
||||
this->titleLabel->setHidden(title.isEmpty());
|
||||
this->m_titleLabel->setText(title);
|
||||
this->m_titleLabel->setHidden(title.isEmpty());
|
||||
}
|
||||
|
||||
void MyDialog::setMessage(const QString &message)
|
||||
{
|
||||
if (this->m_message == message)
|
||||
return;
|
||||
|
||||
this->m_message = message;
|
||||
this->messageLabel->setText(message);
|
||||
this->messageLabel->setHidden(message.isEmpty());
|
||||
this->m_messageLabel->setText(message);
|
||||
this->m_messageLabel->setHidden(message.isEmpty());
|
||||
}
|
||||
|
||||
int MyDialog::exec()
|
||||
{
|
||||
this->clickedButtonIndex = -1;
|
||||
int ret = QDialog::exec();
|
||||
|
||||
int code = QDialog::exec();
|
||||
|
||||
return this->clickedButtonIndex >= 0 ? this->clickedButtonIndex : code;
|
||||
return this->clickedButtonIndex >= 0 ? this->clickedButtonIndex : ret;
|
||||
}
|
||||
|
||||
void MyDialog::showEvent(QShowEvent *event)
|
||||
|
@ -227,14 +203,12 @@ void MyDialog::showEvent(QShowEvent *event)
|
|||
void MyDialog::hideEvent(QHideEvent *event)
|
||||
{
|
||||
QDialog::hideEvent(event);
|
||||
|
||||
done(-1);
|
||||
}
|
||||
|
||||
void MyDialog::childEvent(QChildEvent *event)
|
||||
{
|
||||
QDialog::childEvent(event);
|
||||
|
||||
if (event->added()) {
|
||||
if (this->closeButton) {
|
||||
this->closeButton->raise();
|
||||
|
@ -246,16 +220,15 @@ QRect MyDialog::getParentGeometry() const
|
|||
{
|
||||
if (this->parentWidget()) {
|
||||
return this->parentWidget()->window()->geometry();
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
QPoint pos = QCursor::pos();
|
||||
|
||||
for (QScreen *screen : qApp->screens()) {
|
||||
if (screen->geometry().contains(pos)) {
|
||||
return screen->geometry();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return qApp->primaryScreen()->geometry();
|
||||
}
|
||||
|
||||
|
@ -272,14 +245,12 @@ void MyDialog::mousePressEvent(QMouseEvent *event)
|
|||
this->dragPosition = event->globalPos() - frameGeometry().topLeft();
|
||||
this->mousePressed = true;
|
||||
}
|
||||
|
||||
QDialog::mousePressEvent(event);
|
||||
}
|
||||
|
||||
void MyDialog::mouseReleaseEvent(QMouseEvent *event)
|
||||
{
|
||||
this->mousePressed = false;
|
||||
|
||||
QDialog::mouseReleaseEvent(event);
|
||||
}
|
||||
|
||||
|
@ -288,7 +259,6 @@ void MyDialog::mouseMoveEvent(QMouseEvent *event)
|
|||
if (this->mousePressed) {
|
||||
move(event->globalPos() - this->dragPosition);
|
||||
}
|
||||
|
||||
QDialog::mouseMoveEvent(event);
|
||||
}
|
||||
|
||||
|
@ -297,7 +267,7 @@ void MyDialog::paintEvent(QPaintEvent *event)
|
|||
QPainter painter(this);
|
||||
|
||||
//绘制圆角矩形
|
||||
painter.setPen(QPen(QColor("#0d87ca"), 0));//边框颜色 QColor(255, 255, 255, 153)
|
||||
painter.setPen(QPen(QColor("#0d87ca"), 0));//边框颜色
|
||||
painter.setBrush(QColor("#e9eef0"));//背景色 #0d87ca
|
||||
painter.setRenderHint(QPainter::Antialiasing, true);
|
||||
painter.setOpacity(1);
|
||||
|
@ -318,21 +288,21 @@ void MyDialog::resizeEvent(QResizeEvent *event)
|
|||
{
|
||||
QDialog::resizeEvent(event);
|
||||
|
||||
this->titleLabel->setWordWrap(false);
|
||||
int labelMaxWidth = maximumWidth() - this->closeButton->width() - this->titleLabel->x();
|
||||
this->m_titleLabel->setWordWrap(false);
|
||||
int labelMaxWidth = maximumWidth() - this->closeButton->width() - this->m_titleLabel->x();
|
||||
|
||||
if (this->titleLabel->sizeHint().width() > labelMaxWidth) {
|
||||
this->titleLabel->setFixedWidth(labelMaxWidth);
|
||||
this->titleLabel->setWordWrap(true);
|
||||
this->titleLabel->setFixedHeight(this->titleLabel->sizeHint().height());
|
||||
if (this->m_titleLabel->sizeHint().width() > labelMaxWidth) {
|
||||
this->m_titleLabel->setFixedWidth(labelMaxWidth);
|
||||
this->m_titleLabel->setWordWrap(true);
|
||||
this->m_titleLabel->setFixedHeight(this->m_titleLabel->sizeHint().height());
|
||||
}
|
||||
|
||||
this->messageLabel->setWordWrap(false);
|
||||
labelMaxWidth = maximumWidth() - this->closeButton->width() - this->messageLabel->x();
|
||||
this->m_messageLabel->setWordWrap(false);
|
||||
labelMaxWidth = maximumWidth() - this->closeButton->width() - this->m_messageLabel->x();
|
||||
|
||||
if (this->messageLabel->sizeHint().width() > labelMaxWidth) {
|
||||
this->messageLabel->setFixedWidth(labelMaxWidth);
|
||||
this->messageLabel->setWordWrap(true);
|
||||
this->messageLabel->setFixedHeight(this->messageLabel->sizeHint().height());
|
||||
if (this->m_messageLabel->sizeHint().width() > labelMaxWidth) {
|
||||
this->m_messageLabel->setFixedWidth(labelMaxWidth);
|
||||
this->m_messageLabel->setWordWrap(true);
|
||||
this->m_messageLabel->setFixedHeight(this->m_messageLabel->sizeHint().height());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,6 +23,7 @@ public:
|
|||
explicit MyDialog(const QString &title, const QString& message, QWidget *parent = 0);
|
||||
~MyDialog();
|
||||
|
||||
void updateSize();
|
||||
int buttonCount() const;
|
||||
QRect getParentGeometry() const;
|
||||
void moveToCenter();
|
||||
|
@ -32,11 +33,9 @@ signals:
|
|||
|
||||
public slots:
|
||||
int addButton(const QString &text, bool isDefault = false);
|
||||
void clearButtons();
|
||||
void setDefaultButton(QAbstractButton *button);
|
||||
void setTitle(const QString &title);
|
||||
void setMessage(const QString& message);
|
||||
|
||||
int exec() Q_DECL_OVERRIDE;
|
||||
|
||||
public slots:
|
||||
|
@ -54,22 +53,21 @@ protected:
|
|||
void paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
|
||||
|
||||
private:
|
||||
QString m_title;
|
||||
QString m_message;
|
||||
QLabel* messageLabel;
|
||||
QLabel* titleLabel;
|
||||
|
||||
MyTristateButton* closeButton = nullptr;
|
||||
QHBoxLayout *iconLayout;
|
||||
QVBoxLayout *contentLayout;
|
||||
QHBoxLayout *buttonLayout;
|
||||
QHBoxLayout *topLayout;
|
||||
QLabel *m_messageLabel = nullptr;
|
||||
QLabel *m_titleLabel = nullptr;
|
||||
MyTristateButton *closeButton = nullptr;
|
||||
// QVBoxLayout *contentLayout = nullptr;
|
||||
QHBoxLayout *m_buttonLayout = nullptr;
|
||||
QHBoxLayout *m_topLayout = nullptr;
|
||||
QList<QAbstractButton*> buttonList;
|
||||
QList<QWidget*> contentList;
|
||||
|
||||
QPointer<QAbstractButton> defaultButton;
|
||||
int clickedButtonIndex;
|
||||
void updateSize();
|
||||
|
||||
QString m_title;
|
||||
QString m_message;
|
||||
|
||||
QPoint dragPosition;
|
||||
bool mousePressed;
|
||||
};
|
||||
|
|
|
@ -1,19 +1,17 @@
|
|||
#include "mysearchedit.h"
|
||||
|
||||
#include <QHBoxLayout>
|
||||
#include <QSpacerItem>
|
||||
#include <QPropertyAnimation>
|
||||
#include <QDebug>
|
||||
#include <QEvent>
|
||||
#include <QFocusEvent>
|
||||
#include <QResizeEvent>
|
||||
#include <QTimer>
|
||||
|
||||
MySearchEdit::MySearchEdit(QWidget *parent)
|
||||
: QFrame(parent)
|
||||
,m_showCurve(QEasingCurve::OutCubic)
|
||||
,m_hideCurve(QEasingCurve::InCubic)
|
||||
{
|
||||
// this->setStyleSheet("QFrame{background-color:#00376a;border-radius:0px;}");
|
||||
this->setStyleSheet("QFrame{background-color:rgb(0, 55, 106, 127);border-radius:0px;}");
|
||||
this->setStyleSheet("QFrame{background-color:#00376a;border-radius:0px;}");
|
||||
|
||||
m_searchBtn = new QLabel;
|
||||
m_searchBtn->setStyleSheet("QLabel{background-color:transparent;border:none;background-image:url(:/res/search.png);}");
|
||||
|
@ -45,42 +43,45 @@ MySearchEdit::MySearchEdit(QWidget *parent)
|
|||
layout->setAlignment(m_placeHolder, Qt::AlignCenter);
|
||||
layout->addWidget(m_edit);
|
||||
layout->setAlignment(m_edit, Qt::AlignCenter);
|
||||
// layout->addStretch();
|
||||
// layout->addWidget(m_searchBtn);
|
||||
// layout->setAlignment(m_searchBtn, Qt::AlignCenter);
|
||||
layout->addStretch();
|
||||
layout->addWidget(m_clearBtn);
|
||||
layout->setAlignment(m_clearBtn, Qt::AlignCenter);
|
||||
layout->setSpacing(0);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
|
||||
// setAutoFillBackground(true);
|
||||
setFocusPolicy(Qt::StrongFocus);
|
||||
|
||||
connect(m_clearBtn, &MyTristateButton::clicked, m_edit, static_cast<void (QLineEdit::*)()>(&QLineEdit::setFocus));
|
||||
connect(m_clearBtn, &MyTristateButton::clicked, this, &MySearchEdit::clearEdit);
|
||||
connect(m_edit, &QLineEdit::textChanged, [this] {m_clearBtn->setVisible(!m_edit->text().isEmpty());});
|
||||
connect(m_edit, &QLineEdit::textChanged, this, &MySearchEdit::textChanged, Qt::DirectConnection);
|
||||
// connect(m_edit, &QLineEdit::textChanged, this, [=] {
|
||||
// emit this->textChanged();
|
||||
// });
|
||||
connect(m_clearBtn, &MyTristateButton::clicked, this, [=] {
|
||||
this->clearAndFocusEdit();
|
||||
});
|
||||
}
|
||||
|
||||
MySearchEdit::~MySearchEdit()
|
||||
{
|
||||
m_animation->deleteLater();
|
||||
delete m_edit;
|
||||
delete m_searchBtn;
|
||||
delete m_placeHolder;
|
||||
delete m_clearBtn;
|
||||
}
|
||||
|
||||
const QString MySearchEdit::text() const
|
||||
const QString MySearchEdit::searchedText() const
|
||||
{
|
||||
return m_edit->text();
|
||||
}
|
||||
|
||||
void MySearchEdit::clearAndFocusEdit()
|
||||
{
|
||||
this->clearEdit();
|
||||
this->m_edit->setFocus();
|
||||
}
|
||||
|
||||
void MySearchEdit::clearEdit()
|
||||
{
|
||||
m_edit->clear();
|
||||
// this->setStyleSheet("QFrame{background-color:#00376a;border-radius:0px;}");
|
||||
this->setStyleSheet("QFrame{background-color:rgb(0, 55, 106, 127);border-radius:0px;}");
|
||||
this->setStyleSheet("QFrame{background-color:#00376a;border-radius:0px;}");
|
||||
}
|
||||
|
||||
void MySearchEdit::mousePressEvent(QMouseEvent *event)
|
||||
|
@ -102,6 +103,7 @@ bool MySearchEdit::eventFilter(QObject *object, QEvent *event)
|
|||
if (object == m_edit && event->type() == QEvent::FocusOut && m_edit->text().isEmpty()) {
|
||||
auto focusEvent = dynamic_cast<QFocusEvent *>(event);
|
||||
if (focusEvent && focusEvent->reason() != Qt::PopupFocusReason) {
|
||||
// m_placeHolder->show();
|
||||
m_animation->stop();
|
||||
m_animation->setStartValue(m_edit->width());
|
||||
m_animation->setEndValue(0);
|
||||
|
@ -110,7 +112,6 @@ bool MySearchEdit::eventFilter(QObject *object, QEvent *event)
|
|||
connect(m_animation, &QPropertyAnimation::finished, m_placeHolder, &QLabel::show);
|
||||
}
|
||||
}
|
||||
|
||||
return QFrame::eventFilter(object, event);
|
||||
}
|
||||
|
||||
|
@ -127,10 +128,20 @@ void MySearchEdit::setEditFocus()
|
|||
m_animation->start();
|
||||
m_placeHolder->hide();
|
||||
m_edit->setFocus();
|
||||
// this->setStyleSheet("QFrame{background-color:#00376a;border:1px solid #47ccf3;border-radius:0px;}");
|
||||
this->setStyleSheet("QFrame{background-color:rgb(0, 55, 106, 127);border:1px solid #47ccf3;border-radius:0px;}");
|
||||
this->setStyleSheet("QFrame{background-color:#00376a;border:1px solid #47ccf3;border-radius:0px;}");
|
||||
}
|
||||
|
||||
void MySearchEdit::setPlaceHolder(const QString &text)
|
||||
{
|
||||
m_placeHolder->setText(text);
|
||||
}
|
||||
|
||||
void MySearchEdit::setText(const QString & text)
|
||||
{
|
||||
if (m_edit) {
|
||||
m_edit->setText(text);
|
||||
}
|
||||
}
|
||||
|
||||
QLineEdit *MySearchEdit::getLineEdit() const
|
||||
{
|
||||
|
@ -148,13 +159,9 @@ bool MySearchEdit::event(QEvent *event)
|
|||
if (event->type() == QEvent::FocusIn) {
|
||||
const QFocusEvent *ev = static_cast<QFocusEvent*>(event);
|
||||
|
||||
if (ev->reason() == Qt::TabFocusReason
|
||||
|| ev->reason() == Qt::BacktabFocusReason
|
||||
|| ev->reason() == Qt::OtherFocusReason
|
||||
|| ev->reason() == Qt::ShortcutFocusReason) {
|
||||
if (ev->reason() == Qt::TabFocusReason || ev->reason() == Qt::BacktabFocusReason || ev->reason() == Qt::OtherFocusReason || ev->reason() == Qt::ShortcutFocusReason) {
|
||||
setEditFocus();
|
||||
}
|
||||
}
|
||||
|
||||
return QFrame::event(event);
|
||||
}
|
||||
|
|
|
@ -16,16 +16,15 @@ public:
|
|||
explicit MySearchEdit(QWidget *parent = 0);
|
||||
~MySearchEdit();
|
||||
|
||||
void setPlaceHolder(const QString &text) {m_placeHolder->setText(text);}
|
||||
QSize sizeHint() const {return m_size;}
|
||||
QSize minimumSizeHint() const {return m_size;}
|
||||
const QString text() const;
|
||||
void clearAndFocusEdit();
|
||||
void setPlaceHolder(const QString &text);
|
||||
const QString searchedText() const;
|
||||
QLineEdit *getLineEdit() const;
|
||||
|
||||
public slots:
|
||||
void setEditFocus();
|
||||
void setText(const QString & text) {if (m_edit) m_edit->setText(text);}
|
||||
void clearEdit();
|
||||
void setEditFocus();
|
||||
void setText(const QString & text);
|
||||
|
||||
signals:
|
||||
void textChanged();
|
||||
|
@ -38,14 +37,14 @@ protected:
|
|||
bool eventFilter(QObject *object, QEvent *event);
|
||||
|
||||
private:
|
||||
QPropertyAnimation *m_animation = nullptr;
|
||||
QEasingCurve m_showCurve;
|
||||
QEasingCurve m_hideCurve;
|
||||
QSize m_size;
|
||||
QLineEdit *m_edit;
|
||||
QLabel *m_searchBtn;
|
||||
QLabel *m_placeHolder;
|
||||
MyTristateButton *m_clearBtn;
|
||||
QPropertyAnimation *m_animation;
|
||||
QEasingCurve m_showCurve = QEasingCurve::OutCubic;
|
||||
QEasingCurve m_hideCurve = QEasingCurve::InCubic;
|
||||
QLineEdit *m_edit = nullptr;
|
||||
QLabel *m_searchBtn = nullptr;
|
||||
QLabel *m_placeHolder = nullptr;
|
||||
MyTristateButton *m_clearBtn = nullptr;
|
||||
};
|
||||
|
||||
#endif // MYSEARCHEDIT_H
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <QSlider>
|
||||
#include <QButtonGroup>
|
||||
|
||||
EnergyWidget::EnergyWidget(QWidget *parent, /*SessionDispatcher *proxy, */QString cur_desktop, bool has_battery) :
|
||||
EnergyWidget::EnergyWidget(QStringList cpulist, QString cpu, QString cur_desktop, bool has_battery, QWidget *parent) :
|
||||
SettingModulePage(parent),desktop(cur_desktop)
|
||||
{
|
||||
gamma_label = new QLabel();
|
||||
|
@ -50,7 +50,6 @@ EnergyWidget::EnergyWidget(QWidget *parent, /*SessionDispatcher *proxy, */QStrin
|
|||
lock_delay_label = new QLabel();
|
||||
lock_delay_combo = new QComboBox();
|
||||
|
||||
|
||||
critical_low_label = new QLabel();
|
||||
suspend_low_radio = new QRadioButton();
|
||||
shutdown_radio = new QRadioButton();
|
||||
|
@ -90,7 +89,6 @@ EnergyWidget::EnergyWidget(QWidget *parent, /*SessionDispatcher *proxy, */QStrin
|
|||
sleep_ac_display_label = new QLabel();
|
||||
sleep_ac_display_combo = new QComboBox();
|
||||
|
||||
|
||||
if (this->desktop == "mate" || this->desktop == "MATE" || this->desktop == "UKUI" || this->desktop == "ukui") {
|
||||
brightness_label->hide();
|
||||
brightness_value_label->hide();
|
||||
|
@ -134,6 +132,8 @@ EnergyWidget::EnergyWidget(QWidget *parent, /*SessionDispatcher *proxy, */QStrin
|
|||
sleep_battery_display_label->setFixedWidth(260);
|
||||
sleep_ac_display_label->setFixedWidth(260);
|
||||
|
||||
|
||||
|
||||
QHBoxLayout *layout0 = new QHBoxLayout();
|
||||
layout0->setSpacing(10);
|
||||
layout0->addWidget(gamma_label);
|
||||
|
@ -200,28 +200,108 @@ EnergyWidget::EnergyWidget(QWidget *parent, /*SessionDispatcher *proxy, */QStrin
|
|||
layout11->addWidget(sleep_ac_display_combo);
|
||||
layout11->addStretch();
|
||||
|
||||
QVBoxLayout *layout = new QVBoxLayout();
|
||||
layout->addLayout(layout0);
|
||||
layout->addLayout(layout1);
|
||||
layout->addLayout(layout2);
|
||||
layout->addLayout(layout3);
|
||||
layout->addLayout(layout4);
|
||||
layout->addLayout(layout5);
|
||||
layout->addLayout(layout6);
|
||||
layout->addLayout(layout7);
|
||||
layout->addLayout(layout8);
|
||||
layout->addLayout(layout9);
|
||||
layout->addLayout(layout10);
|
||||
layout->addLayout(layout11);
|
||||
layout->addStretch();
|
||||
setLayout(layout);
|
||||
layout->setSpacing(10);
|
||||
layout->setContentsMargins(20, 20, 0, 0);
|
||||
m_layout = new QVBoxLayout(this);
|
||||
m_layout->setSpacing(10);
|
||||
m_layout->setContentsMargins(20, 20, 0, 0);
|
||||
|
||||
m_layout->addLayout(layout0);
|
||||
m_layout->addLayout(layout1);
|
||||
m_layout->addLayout(layout2);
|
||||
m_layout->addLayout(layout3);
|
||||
m_layout->addLayout(layout4);
|
||||
m_layout->addLayout(layout5);
|
||||
m_layout->addLayout(layout6);
|
||||
m_layout->addLayout(layout7);
|
||||
m_layout->addLayout(layout8);
|
||||
m_layout->addLayout(layout9);
|
||||
m_layout->addLayout(layout10);
|
||||
m_layout->addLayout(layout11);
|
||||
|
||||
//kobe reset cpu mode
|
||||
if (!cpulist.isEmpty()) {
|
||||
// qDebug() << cpulist;
|
||||
// qDebug() << cpu;
|
||||
QLabel *cpu_label = new QLabel();
|
||||
cpu_label->setText(tr("CPU FM mode:"));
|
||||
QHBoxLayout *cpu_layout = new QHBoxLayout();
|
||||
cpu_layout->setSpacing(10);
|
||||
cpu_layout->addWidget(cpu_label);
|
||||
QButtonGroup *cpuGroup = new QButtonGroup();
|
||||
|
||||
QList<QString>::Iterator it = cpulist.begin(), itend = cpulist.end();
|
||||
for(;it != itend; it++) {
|
||||
if(*it == "ondemand") {
|
||||
QRadioButton *ondemand_radio = new QRadioButton();
|
||||
ondemand_radio->setFocusPolicy(Qt::NoFocus);
|
||||
ondemand_radio->setText(tr("Ondemand"));
|
||||
ondemand_radio->setObjectName("ondemandradio");
|
||||
ondemand_radio->setChecked(false);
|
||||
cpuGroup->addButton(ondemand_radio);
|
||||
cpu_layout->addWidget(ondemand_radio);
|
||||
connect(ondemand_radio, SIGNAL(clicked()), this, SLOT(onCpuRadioButtonClicked()));
|
||||
}
|
||||
else if(*it == "powersave") {
|
||||
QRadioButton *powersave_radio = new QRadioButton();
|
||||
powersave_radio->setFocusPolicy(Qt::NoFocus);
|
||||
powersave_radio->setText(tr("Powersave"));
|
||||
powersave_radio->setObjectName("powersaveradio");
|
||||
powersave_radio->setChecked(false);
|
||||
cpuGroup->addButton(powersave_radio);
|
||||
cpu_layout->addWidget(powersave_radio);
|
||||
connect(powersave_radio, SIGNAL(clicked()), this, SLOT(onCpuRadioButtonClicked()));
|
||||
}
|
||||
else if(*it == "performance") {
|
||||
QRadioButton *performance_radio = new QRadioButton();
|
||||
performance_radio->setFocusPolicy(Qt::NoFocus);
|
||||
performance_radio->setText(tr("Performance"));
|
||||
performance_radio->setObjectName("performanceradio");
|
||||
performance_radio->setChecked(false);
|
||||
cpuGroup->addButton(performance_radio);
|
||||
cpu_layout->addWidget(performance_radio);
|
||||
connect(performance_radio, SIGNAL(clicked()), this, SLOT(onCpuRadioButtonClicked()));
|
||||
}
|
||||
}
|
||||
cpu_layout->addStretch();
|
||||
m_layout->addLayout(cpu_layout);
|
||||
|
||||
// for (auto cpuMode : cpulist)
|
||||
foreach (QAbstractButton *absbutton, cpuGroup->buttons()) {
|
||||
QRadioButton *radio = qobject_cast<QRadioButton*>(absbutton);
|
||||
if (radio) {
|
||||
QString obj_name = radio->objectName();
|
||||
if(obj_name == "ondemandradio") {
|
||||
if(cpu == "ondemand") {
|
||||
radio->setChecked(true);
|
||||
}
|
||||
else {
|
||||
radio->setChecked(false);
|
||||
}
|
||||
}
|
||||
else if(obj_name == "powersaveradio") {
|
||||
if(cpu == "powersave") {
|
||||
radio->setChecked(true);
|
||||
}
|
||||
else {
|
||||
radio->setChecked(false);
|
||||
}
|
||||
}
|
||||
else if(obj_name == "performanceradio") {
|
||||
if(cpu == "performance") {
|
||||
radio->setChecked(true);
|
||||
}
|
||||
else {
|
||||
radio->setChecked(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
m_layout->addStretch();
|
||||
|
||||
// this->initSettingData();
|
||||
this->setLanguage();
|
||||
|
||||
|
||||
// iface = new QDBusInterface("org.gnome.SettingsDaemon",
|
||||
// "/org/gnome/SettingsDaemon/Power",
|
||||
// "org.gnome.SettingsDaemon.Power.Screen",
|
||||
|
@ -346,6 +426,13 @@ EnergyWidget::~EnergyWidget()
|
|||
delete sleep_ac_display_combo;
|
||||
sleep_ac_display_combo = NULL;
|
||||
}
|
||||
|
||||
QLayoutItem *child;
|
||||
while ((child = m_layout->takeAt(0)) != 0) {
|
||||
if (child->widget())
|
||||
child->widget()->deleteLater();
|
||||
delete child;
|
||||
}
|
||||
}
|
||||
|
||||
QString EnergyWidget::settingModuleName()
|
||||
|
@ -775,7 +862,8 @@ void EnergyWidget::onSendLockAndSleepData(bool lockEnabled, const QString &lock_
|
|||
sleep_ac_combo->setCurrentIndex(initIndex4);
|
||||
}
|
||||
|
||||
void EnergyWidget::initConnect() {
|
||||
void EnergyWidget::initConnect()
|
||||
{
|
||||
connect(gamma_slider, SIGNAL(valueChanged(double)), this, SLOT(setScreenGammaValue(double)));
|
||||
connect(brightness_slider, SIGNAL(valueChanged(int)), this, SLOT(setBrightnessValue(int)));
|
||||
// connect(idle_delay_combo, SIGNAL(currentIndexChanged(QString)), this, SLOT(setIdleDelay(QString)));
|
||||
|
@ -910,6 +998,15 @@ void EnergyWidget::setLockDelay(int index)
|
|||
//// sessionproxy->set_current_lock_delay_qt(value.toInt());
|
||||
}
|
||||
|
||||
void EnergyWidget::onCpuRadioButtonClicked()
|
||||
{
|
||||
QRadioButton *button = qobject_cast<QRadioButton*>(this->sender());
|
||||
if (button) {
|
||||
QString obj_name = button->objectName();
|
||||
emit setCurrentCpuMode(obj_name);
|
||||
}
|
||||
}
|
||||
|
||||
void EnergyWidget::setRadioButtonRowStatus()
|
||||
{
|
||||
QObject *obj = sender(); //返回发出信号的对象,用QObject类型接收
|
||||
|
|
|
@ -32,6 +32,7 @@ class QComboBox;
|
|||
class QDoubleSpinBox;
|
||||
class QSlider;
|
||||
class QRadioButton;
|
||||
class QVBoxLayout;
|
||||
|
||||
#include "settingmodulelpage.h"
|
||||
|
||||
|
@ -39,7 +40,7 @@ class EnergyWidget : public SettingModulePage
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit EnergyWidget(QWidget *parent = 0, /*SessionDispatcher *proxy = 0,*/ QString cur_desktop = "", bool has_battery = false);
|
||||
explicit EnergyWidget(QStringList cpulist, QString cpu, QString cur_desktop, bool has_battery = false, QWidget *parent = 0);
|
||||
~EnergyWidget();
|
||||
void setLanguage();
|
||||
void initConnect();
|
||||
|
@ -54,6 +55,7 @@ public slots:
|
|||
void setLockEnabled();
|
||||
// void setLockDelay(QString value);
|
||||
void setLockDelay(int index);
|
||||
void onCpuRadioButtonClicked();
|
||||
void setRadioButtonRowStatus();
|
||||
void setSleepTimeoutBattery(int index);
|
||||
void setSleepTimeoutAC(int index);
|
||||
|
@ -63,8 +65,6 @@ public slots:
|
|||
void onSendIdleAndGammaData(double gamma, const QStringList &aclist, int brightnessValue, const QString &sleepTimeoutDisplayBattery, const QString &sleepTimeoutFisplayAC, const QString &idle_delay, const QStringList &idledelaylist);
|
||||
void onSendLockAndSleepData(bool lockEnabled, const QString &lock_delay, const QStringList &lockdelaylist, const QString &critical_low, const QString &laptop_battery, const QString &laptop_ac, const QString &sleepTimeoutBattery, const QStringList &batterylist, const QString &sleepTimeoutAc);
|
||||
|
||||
|
||||
|
||||
signals:
|
||||
void requestPowerAndBatteryData();
|
||||
void resetScreenGammaValue(double value);
|
||||
|
@ -79,6 +79,7 @@ signals:
|
|||
void resetSleepTimeoutAC(int index, int value);
|
||||
void resetSleepTimeoutDisplayBattery(int index, int value);
|
||||
void resetSleepTimeoutDisplayAC(int index, int value);
|
||||
void setCurrentCpuMode(const QString &mode);
|
||||
|
||||
private:
|
||||
QString desktop;
|
||||
|
@ -119,6 +120,7 @@ private:
|
|||
QComboBox *sleep_ac_display_combo;
|
||||
|
||||
QStringList m_aclist;
|
||||
QVBoxLayout *m_layout = nullptr;
|
||||
};
|
||||
|
||||
#endif // ENERGYWIDGET_H
|
||||
|
|
|
@ -399,7 +399,6 @@ void MenuWidget::onSendMatePanelIconValue(int topIconSize, int bottomIconSize, b
|
|||
|
||||
void MenuWidget::onSendUnityIconValue(int iconSize, bool iconHide, bool desktopIconShowed, double launcherTransparency, int iconColourIndex, const QStringList &colourlist)
|
||||
{
|
||||
qDebug() << "MenuWidget::onSendUnityIconValue============";
|
||||
size_slider->setValue(iconSize);
|
||||
size_value_label->setText(QString::number(iconSize));
|
||||
hide_switcher->switchedOn = iconHide;
|
||||
|
|
|
@ -64,6 +64,7 @@ void DataWorker::initDataWorker()
|
|||
sessioninterface = new SessionDispatcher;
|
||||
ThreadPool::Instance()->moveToNewThread(sessioninterface);
|
||||
this->m_existBattery = sessioninterface->judge_power_is_exists_qt();
|
||||
|
||||
connect(sessioninterface, SIGNAL(string_value_notify(QString,QString)), this, SIGNAL(string_value_notify(QString,QString)));
|
||||
connect(sessioninterface, SIGNAL(bool_value_notify(QString,bool)), this, SIGNAL(bool_value_notify(QString,bool)));
|
||||
connect(sessioninterface, SIGNAL(int_value_notify(QString,int)), this, SIGNAL(int_value_notify(QString,int)));
|
||||
|
@ -85,6 +86,8 @@ void DataWorker::initDataWorker()
|
|||
systemThread->start();*/
|
||||
|
||||
this->m_existSensor = systeminterface->judge_sensors_exists_qt();
|
||||
this->m_cpulist = systeminterface->get_cpufreq_scaling_governer_list_qt();
|
||||
this->m_currentCpuMode = systeminterface->get_current_cpufreq_scaling_governer_qt();
|
||||
|
||||
connect(systeminterface, SIGNAL(finishCleanWorkMain(QString)), this, SIGNAL(finishCleanWorkMain(QString)));
|
||||
connect(systeminterface, SIGNAL(finishCleanWorkMainError(QString)), this, SIGNAL(finishCleanWorkMainError(QString)));
|
||||
|
@ -103,6 +106,16 @@ void DataWorker::doWork()
|
|||
emit dataLoadFinished();
|
||||
}
|
||||
|
||||
const QStringList DataWorker::cpuModeList() const
|
||||
{
|
||||
return this->m_cpulist;
|
||||
}
|
||||
|
||||
const QString DataWorker::cpuCurrentMode() const
|
||||
{
|
||||
return this->m_currentCpuMode;
|
||||
}
|
||||
|
||||
bool DataWorker::deleteAppointedFile(QString filename)
|
||||
{
|
||||
bool result = systeminterface->delete_file_qt(filename);
|
||||
|
@ -1063,6 +1076,19 @@ void DataWorker::onResetSleepTimeoutDisplayAC(int index, int value)
|
|||
}
|
||||
}
|
||||
|
||||
void DataWorker::onSetCurrentCpuMode(const QString &mode)
|
||||
{
|
||||
// qDebug() << "set cpu mode="<<mode;
|
||||
if(mode == "ondemandradio") {
|
||||
systeminterface->adjust_cpufreq_scaling_governer_qt("ondemand");
|
||||
}
|
||||
else if(mode == "powersaveradio") {
|
||||
systeminterface->adjust_cpufreq_scaling_governer_qt("powersave");
|
||||
}
|
||||
else if(mode == "performanceradio") {
|
||||
systeminterface->adjust_cpufreq_scaling_governer_qt("performance");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//-------------------file manager
|
||||
|
|
|
@ -40,6 +40,9 @@ public:
|
|||
bool isBatteryExist() { return m_existBattery; }
|
||||
bool isSensorExist() { return m_existSensor; }
|
||||
|
||||
const QStringList cpuModeList() const;
|
||||
const QString cpuCurrentMode() const;
|
||||
|
||||
public slots:
|
||||
void doWork();
|
||||
void updateSensorValue();
|
||||
|
@ -190,6 +193,7 @@ public slots:
|
|||
void onResetSleepTimeoutAC(int index, int value);
|
||||
void onResetSleepTimeoutDisplayBattery(int index, int value);
|
||||
void onResetSleepTimeoutDisplayAC(int index, int value);
|
||||
void onSetCurrentCpuMode(const QString &mode);
|
||||
|
||||
//file manager
|
||||
void onRequestFileManagerData();
|
||||
|
@ -331,6 +335,8 @@ private:
|
|||
|
||||
bool m_existBattery;
|
||||
bool m_existSensor;
|
||||
QStringList m_cpulist;
|
||||
QString m_currentCpuMode;
|
||||
|
||||
QTimer *m_sensorTimer = nullptr;
|
||||
};
|
||||
|
|
|
@ -326,6 +326,8 @@ void MainWindow::onInitDataFinished()
|
|||
{
|
||||
this->battery = m_dataWorker->isBatteryExist();
|
||||
this->sensor = m_dataWorker->isSensorExist();
|
||||
this->m_cpulist = m_dataWorker->cpuModeList();
|
||||
this->m_currentCpuMode = m_dataWorker->cpuCurrentMode();
|
||||
|
||||
this->displayMainWindow();
|
||||
|
||||
|
@ -350,8 +352,6 @@ void MainWindow::onInitDataFinished()
|
|||
connect(m_dataWorker, SIGNAL(finishCleanWorkMainError(QString)), home_action_widget, SLOT(finishCleanError(QString)));
|
||||
connect(m_dataWorker, SIGNAL(quickCleanProcess(QString,QString)), home_action_widget, SLOT(getCleaningMessage(QString,QString)));
|
||||
|
||||
|
||||
|
||||
//theme
|
||||
connect(setting_widget, SIGNAL(changeSystemTheme(QString)), m_dataWorker, SLOT(onChangeSystemTheme(QString)));
|
||||
connect(setting_widget, SIGNAL(requestThemeData()), m_dataWorker, SLOT(onRequestThemeData()));
|
||||
|
@ -368,7 +368,6 @@ void MainWindow::onInitDataFinished()
|
|||
connect(setting_widget, SIGNAL(displayRecycleBinIcon(bool)), m_dataWorker, SLOT(onDisplayRecycleBinIcon(bool)));
|
||||
connect(setting_widget, SIGNAL(displayDiskIcon(bool)), m_dataWorker, SLOT(onDisplayDiskIcon(bool)));
|
||||
|
||||
|
||||
//mouse
|
||||
connect(setting_widget, SIGNAL(requestMouseData()), m_dataWorker, SLOT(onRequestMouseData()));
|
||||
connect(m_dataWorker, SIGNAL(sendMouseThemeAndCusorSize(QString,QStringList,int)), setting_widget, SIGNAL(sendMouseThemeAndCusorSize(QString,QStringList,int)));
|
||||
|
@ -404,7 +403,6 @@ void MainWindow::onInitDataFinished()
|
|||
connect(setting_widget, SIGNAL(resetShowIcon(bool)), m_dataWorker, SLOT(onResetShowIcon(bool)));
|
||||
connect(setting_widget, SIGNAL(resetShowPlaces(bool)), m_dataWorker, SLOT(onResetShowPlaces(bool)));
|
||||
|
||||
|
||||
//launcher menu
|
||||
connect(setting_widget, SIGNAL(requestMateOrUnityMenuData(bool)), m_dataWorker, SLOT(onRequestMateOrUnityMenuData(bool)));
|
||||
connect(m_dataWorker, SIGNAL(sendMatePanelIconValue(int,int,bool,bool)), setting_widget, SIGNAL(sendMatePanelIconValue(int,int,bool,bool)));
|
||||
|
@ -438,7 +436,6 @@ void MainWindow::onInitDataFinished()
|
|||
connect(setting_widget, SIGNAL(resetMouseRightClick(QString)), m_dataWorker, SLOT(onResetMouseRightClick(QString)));
|
||||
connect(setting_widget, SIGNAL(resetWindowButtonLeftOrRightAlign(bool)), m_dataWorker, SLOT(onResetWindowButtonLeftOrRightAlign(bool)));
|
||||
|
||||
|
||||
//font
|
||||
connect(setting_widget, SIGNAL(requestFontData()), m_dataWorker, SLOT(onRequestFontData()));
|
||||
connect(m_dataWorker, SIGNAL(sendFontValue(QString)), setting_widget, SIGNAL(sendFontValue(QString)));
|
||||
|
@ -462,7 +459,6 @@ void MainWindow::onInitDataFinished()
|
|||
connect(setting_widget, SIGNAL(restoreDocumentDefaultFont(bool)), m_dataWorker, SLOT(onRestoreDocumentDefaultFont(bool)));
|
||||
connect(setting_widget, SIGNAL(restoreTitlebarDefaultFont(bool)), m_dataWorker, SLOT(onRestoreTitlebarDefaultFont(bool)));
|
||||
|
||||
|
||||
//touchpad
|
||||
connect(setting_widget, SIGNAL(requestMateOrUnityTouchpadData(bool)), m_dataWorker, SLOT(onRequestMateOrUnityTouchpadData(bool)));
|
||||
connect(m_dataWorker, SIGNAL(sendTouchPadValue(bool,bool,QString,int,QString)), setting_widget, SIGNAL(sendTouchPadValue(bool,bool,QString,int,QString)));
|
||||
|
@ -472,8 +468,6 @@ void MainWindow::onInitDataFinished()
|
|||
connect(setting_widget, SIGNAL(setMateTouchscrollingMode(int)), m_dataWorker, SLOT(onSetMateTouchscrollingMode(int)));
|
||||
connect(setting_widget, SIGNAL(setUnityTouchscrollingMode(int)), m_dataWorker, SLOT(onSetUnityTouchscrollingMode(int)));
|
||||
|
||||
|
||||
|
||||
//ac and battery
|
||||
connect(setting_widget, SIGNAL(requestPowerAndBatteryData()), m_dataWorker, SLOT(onRequestPowerAndBatteryData()));
|
||||
connect(m_dataWorker, SIGNAL(sendIdleAndGammaData(double,QStringList,int,QString,QString,QString,QStringList)), setting_widget, SIGNAL(sendIdleAndGammaData(double,QStringList,int,QString,QString,QString,QStringList)));
|
||||
|
@ -491,7 +485,7 @@ void MainWindow::onInitDataFinished()
|
|||
connect(setting_widget, SIGNAL(resetSleepTimeoutAC(int,int)), m_dataWorker, SLOT(onResetSleepTimeoutAC(int,int)));
|
||||
connect(setting_widget, SIGNAL(resetSleepTimeoutDisplayBattery(int,int)), m_dataWorker, SLOT(onResetSleepTimeoutDisplayBattery(int,int)));
|
||||
connect(setting_widget, SIGNAL(resetSleepTimeoutDisplayAC(int,int)), m_dataWorker, SLOT(onResetSleepTimeoutDisplayAC(int,int)));
|
||||
|
||||
connect(setting_widget, SIGNAL(setCurrentCpuMode(QString)), m_dataWorker, SLOT(onSetCurrentCpuMode(QString)));
|
||||
|
||||
//file manager
|
||||
connect(setting_widget, SIGNAL(requestFileManagerData()), m_dataWorker, SLOT(onRequestFileManagerData()));
|
||||
|
@ -994,7 +988,6 @@ void MainWindow::initOtherPages()
|
|||
connect(m_dataWorker, SIGNAL(tellCleanerMainStatus(QString, QString)), cleaner_action_widget, SLOT(showCleanerStatus(QString, QString)));
|
||||
connect(m_dataWorker, SIGNAL(sendCleanErrorSignal(QString)), cleaner_action_widget, SLOT(showCleanerError(QString)));
|
||||
|
||||
|
||||
connect(cleaner_widget, SIGNAL(startScanSystem(QMap<QString,QVariant>)), m_dataWorker, SLOT(onStartScanSystem(QMap<QString,QVariant>)));
|
||||
connect(cleaner_widget, SIGNAL(startCleanSystem(QMap<QString,QVariant>)), m_dataWorker, SLOT(onStartCleanSystem(QMap<QString,QVariant>)));
|
||||
|
||||
|
@ -1013,7 +1006,6 @@ void MainWindow::initOtherPages()
|
|||
// connect(sessioninterface, SIGNAL(tellCleanerDetailStatus(QString)), cleaner_action_widget, SLOT(showCleanReciveStatus(QString)));
|
||||
// connect(sessioninterface, SIGNAL(tellCleanerDetailError(QString)), cleaner_action_widget, SLOT(showCleanReciveError(QString)));
|
||||
|
||||
|
||||
connect(cleaner_action_widget, SIGNAL(sendScanSignal()),cleaner_widget, SIGNAL(transScanSignal()));
|
||||
connect(cleaner_widget, SIGNAL(tranActionAnimaitonSignal()),cleaner_action_widget, SLOT(displayAnimation()));
|
||||
connect(cleaner_widget, SIGNAL(tranScanOverSignal(bool)),cleaner_action_widget, SLOT(accordScanOverStatusToChange(bool)));
|
||||
|
@ -1090,7 +1082,7 @@ void MainWindow::initOtherPages()
|
|||
|
||||
|
||||
if(setting_widget == NULL)
|
||||
setting_widget = new SettingWidget(this->desktop, this->battery);//20180101
|
||||
setting_widget = new SettingWidget(this->m_cpulist, this->m_currentCpuMode, this->desktop, this->battery);//20180101
|
||||
setting_widget->setParentWindow(this);
|
||||
// setting_widget->setSessionDbusProxy(sessioninterface);
|
||||
// setting_widget->setSystemDbusProxy(systeminterface);
|
||||
|
|
|
@ -159,6 +159,8 @@ private:
|
|||
QString arch;
|
||||
bool battery;
|
||||
bool sensor;
|
||||
QStringList m_cpulist;
|
||||
QString m_currentCpuMode;
|
||||
QParallelAnimationGroup *spreadGroup;
|
||||
QParallelAnimationGroup *gatherGroup;
|
||||
PAGESTATUS status;
|
||||
|
|
|
@ -25,8 +25,12 @@
|
|||
#include "../setting/settingmodel.h"
|
||||
#include "../setting/settingdelegate.h"
|
||||
|
||||
SettingWidget::SettingWidget(QString cur_desktop, bool has_battery, QWidget *parent) :
|
||||
QWidget(parent), desktop(cur_desktop), battery(has_battery)
|
||||
SettingWidget::SettingWidget(QStringList cpulist, QString cpu, QString cur_desktop, bool has_battery, QWidget *parent) :
|
||||
QWidget(parent)
|
||||
,m_cpuList(cpulist)
|
||||
,m_currentCpu(cpu)
|
||||
,desktop(cur_desktop)
|
||||
,battery(has_battery)
|
||||
{
|
||||
this->setFixedSize(900, 403);
|
||||
// setStyleSheet("background-color: rgba(155, 255, 255, .238);");
|
||||
|
@ -140,7 +144,7 @@ void SettingWidget::initUI(/*QString skin*/)
|
|||
font_widget = new FontWidget(this, p_mainwindow, desktop, "");//TODO:read skin from ini file
|
||||
touchpad_widget = new TouchpadWidget(this, desktop);
|
||||
// deadpixel_widget = new DeadpixelWidget(this);
|
||||
conserve_widget = new EnergyWidget(this, desktop, battery);
|
||||
conserve_widget = new EnergyWidget(m_cpuList, m_currentCpu, desktop, battery, this);
|
||||
nautilus_widget = new FileManagerWidget(this);
|
||||
stacked_widget->addWidget(theme_widget);
|
||||
stacked_widget->addWidget(icon_widget);
|
||||
|
@ -306,7 +310,7 @@ void SettingWidget::initUI(/*QString skin*/)
|
|||
connect(conserve_widget, SIGNAL(resetSleepTimeoutAC(int,int)), this, SIGNAL(resetSleepTimeoutAC(int,int)));
|
||||
connect(conserve_widget, SIGNAL(resetSleepTimeoutDisplayBattery(int,int)), this, SIGNAL(resetSleepTimeoutDisplayBattery(int,int)));
|
||||
connect(conserve_widget, SIGNAL(resetSleepTimeoutDisplayAC(int,int)), this, SIGNAL(resetSleepTimeoutDisplayAC(int,int)));
|
||||
|
||||
connect(conserve_widget, SIGNAL(setCurrentCpuMode(QString)), this, SIGNAL(setCurrentCpuMode(QString)));
|
||||
|
||||
//file manager
|
||||
connect(nautilus_widget, SIGNAL(requestFileManagerData()), this, SIGNAL(requestFileManagerData()));
|
||||
|
|
|
@ -55,7 +55,7 @@ class SettingWidget : public QWidget
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit SettingWidget(QString cur_desktop = "", bool has_battery = false, QWidget *parent = 0);
|
||||
explicit SettingWidget(QStringList cpulist, QString cpu, QString cur_desktop, bool has_battery = false, QWidget *parent = 0);
|
||||
~SettingWidget();
|
||||
void setParentWindow(MainWindow* window) { p_mainwindow = window;}
|
||||
void initUI(/*QString skin*/);
|
||||
|
@ -199,6 +199,7 @@ signals:
|
|||
void resetSleepTimeoutAC(int index, int value);
|
||||
void resetSleepTimeoutDisplayBattery(int index, int value);
|
||||
void resetSleepTimeoutDisplayAC(int index, int value);
|
||||
void setCurrentCpuMode(const QString &mode);
|
||||
|
||||
//file manager
|
||||
void requestFileManagerData();
|
||||
|
@ -231,6 +232,8 @@ private:
|
|||
MainWindow *p_mainwindow;
|
||||
QString desktop;
|
||||
bool battery;
|
||||
QStringList m_cpuList;
|
||||
QString m_currentCpu;
|
||||
|
||||
QStackedWidget *stacked_widget;
|
||||
ThemeWidget *theme_widget;
|
||||
|
|
Loading…
Reference in New Issue