mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 09:23:03 +00:00
fix: 是否支持休眠不需要判断分区大小,直接通过后端属性判断
是否支持休眠不需要判断分区大小,直接通过后端属性判断,另外华为内核也不显示swap大小 Log: 修复任务栏关机托盘右键菜单无休眠选项问题 Bug: https://pms.uniontech.com/bug-view-138579.html Influence: 不再根据swap分区大小判断是否显示休眠选项 Change-Id: Iaf51b979049347ed2851a34b9fd580a64ac14c1d
This commit is contained in:
parent
cf2a6b3c6d
commit
201c1e69ce
@ -184,7 +184,7 @@ const QString ShutdownPlugin::itemContextMenu(const QString &itemKey)
|
||||
}
|
||||
|
||||
bool can_hibernate = enviromentVar.contains("POWER_CAN_HIBERNATE") ?
|
||||
QVariant(enviromentVar.value("POWER_CAN_HIBERNATE")).toBool() : checkSwap() && m_powerManagerInter->CanHibernate();
|
||||
QVariant(enviromentVar.value("POWER_CAN_HIBERNATE")).toBool() : m_powerManagerInter->CanHibernate();
|
||||
|
||||
if (can_hibernate) {
|
||||
QMap<QString, QVariant> hibernate;
|
||||
@ -374,39 +374,6 @@ qint64 ShutdownPlugin::get_power_image_size()
|
||||
return size;
|
||||
}
|
||||
|
||||
bool ShutdownPlugin::checkSwap()
|
||||
{
|
||||
if (!valueByQSettings<bool>("Power", "hibernate", true))
|
||||
return false;
|
||||
|
||||
bool hasSwap = false;
|
||||
QFile file("/proc/swaps");
|
||||
if (file.open(QIODevice::Text | QIODevice::ReadOnly)) {
|
||||
const QString &body = file.readAll();
|
||||
QTextStream stream(body.toUtf8());
|
||||
while (!stream.atEnd()) {
|
||||
const std::pair<bool, qint64> result =
|
||||
checkIsPartitionType(stream.readLine().simplified().split(
|
||||
" ", QString::SplitBehavior::SkipEmptyParts));
|
||||
qint64 image_size{ get_power_image_size() };
|
||||
|
||||
if (result.first) {
|
||||
hasSwap = image_size < result.second;
|
||||
}
|
||||
|
||||
if (hasSwap) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
file.close();
|
||||
} else {
|
||||
qDebug() << "open /proc/swaps failed! please check permission!!!";
|
||||
}
|
||||
|
||||
return hasSwap;
|
||||
}
|
||||
|
||||
void ShutdownPlugin::refreshPluginItemsVisible()
|
||||
{
|
||||
if (pluginIsDisable()) {
|
||||
|
@ -110,7 +110,6 @@ public:
|
||||
|
||||
private:
|
||||
void loadPlugin();
|
||||
bool checkSwap();
|
||||
void refreshPluginItemsVisible();
|
||||
|
||||
private:
|
||||
|
Loading…
x
Reference in New Issue
Block a user