2
* Copyright (C) 2013 ~ 2015 National University of Defense Technology(NUDT) & Kylin Ltd.
5
* Kobe Lee xiangli@ubuntukylin.com/kobe24_lixiang@126.com
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; version 3.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program. If not, see <http://www.gnu.org/licenses/>.
20
#include "memorywidget.h"
21
#include "computerpage.h"
22
#include "../dbusproxy/youkersystemdbus.h"
25
MemoryWidget::MemoryWidget(QWidget *parent, SystemDispatcher *proxy) :
29
this->setStyleSheet("QWidget{border: none;background-color: #ffffff;}");
30
setFixedSize(750, 403);
31
scroll_widget = new ScrollWidget(this);
32
scroll_widget->setGeometry(0, 0, 750, 403);
36
MemoryWidget::~MemoryWidget()
38
this->clear_page_list();
39
if (scroll_widget != NULL) {
45
void MemoryWidget::clear_page_list()
47
for(int i=0; i<page_list.count(); i++)
49
ComputerPage *page = page_list.at(i);
55
scroll_widget->resetWidget();
58
bool MemoryWidget::displaySwitch()
60
memory_info_map.clear();
61
memory_info_map = systemproxy->get_memory_info_qt();
62
if (memory_info_map.isEmpty() || memory_info_map.count() <= 0)
72
bool MemoryWidget::getStatus()
77
void MemoryWidget::initData()
79
this->clear_page_list();
80
memory_info_map = systemproxy->get_memory_info_qt();//?硬盘,显卡,声卡,内存界面需要重新调用?为何其他界面不需要重新调用
81
QMap<QString, QVariant>::iterator iter = memory_info_map.find("Memnum");
83
if (iter == memory_info_map.end()) {
87
memoryNum = iter.value().toInt();
93
ComputerPage *page = new ComputerPage(scroll_widget->zone, tr("Memory Info"));
94
page_list.append(page);
95
memory_info_map.remove("Memnum");
96
QMap<QString, QVariant> tmpMap;
97
QMap<QString,QVariant>::iterator it;
98
for ( it = memory_info_map.begin(); it != memory_info_map.end(); ++it ) {
99
if (it.value().toString().length() > 0) {
100
tmpMap.insert(it.key(), it.value());
103
page->setMap(tmpMap, "UBUNTUKYLIN");
105
scroll_widget->addScrollWidget(page);
107
else if(memoryNum > 1) {
108
for(int i=0;i<memoryNum;i++) {
109
ComputerPage *page = new ComputerPage(scroll_widget->zone, tr("Memory Info %1").arg(i+1));
110
page_list.append(page);
111
tmp_info_map.clear();
112
QMap<QString, QVariant>::iterator itbegin = memory_info_map.begin();
113
QMap<QString, QVariant>::iterator itend = memory_info_map.end();
114
for (;itbegin != itend; ++itbegin) {
115
if(itbegin.key() != "Memnum" && itbegin.value().toString().contains("<1_1>")) {
116
QString result = itbegin.value().toString().split("<1_1>").at(i);
117
if (result.length() > 0) {
118
tmp_info_map.insert(itbegin.key(), result);
122
page->setMap(tmp_info_map, tmp_info_map.value("MemVendor").toString().toUpper());
124
scroll_widget->addScrollWidget(page);
129
/*QMap<QString, QVariant>::iterator iter = memory_info_map.find("Memnum");
131
if (iter == memory_info_map.end())
136
memoryNum = iter.value().toInt();
138
if(memory_info_map.count() == 1 && memory_info_map.contains("kylinkobe"))
144
ComputerPage *page = new ComputerPage(scroll_widget->zone, tr("Memory Info"));
145
memory_info_map.remove("Memnum");
146
QMap<QString, QVariant> tmpMap;
147
QMap<QString,QVariant>::iterator it;
148
for ( it = memory_info_map.begin(); it != memory_info_map.end(); ++it ) {
149
if (it.value().toString().length() > 0) {
150
tmpMap.insert(it.key(), it.value());
153
page->setMap(tmpMap, "UBUNTUKYLIN");
155
scroll_widget->addScrollWidget(page);
157
else if(memoryNum > 1)
159
for(int i=0;i<memoryNum;i++)
161
ComputerPage *page = new ComputerPage(scroll_widget->zone, tr("Memory Info %1").arg(i+1));
162
tmp_info_map.clear();
163
QMap<QString, QVariant>::iterator itbegin = memory_info_map.begin();
164
QMap<QString, QVariant>::iterator itend = memory_info_map.end();
165
for (;itbegin != itend; ++itbegin)
167
if(itbegin.key() != "Memnum" && itbegin.value().toString().contains("<1_1>")) {
168
QString result = itbegin.value().toString().split("<1_1>").at(i);
169
if (result.length() > 0) {
170
tmp_info_map.insert(itbegin.key(), result);
174
page->setMap(tmp_info_map, tmp_info_map.value("MemVendor").toString().toUpper());
176
scroll_widget->addScrollWidget(page);