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 "cdrowwidget.h"
21
#include "computerpage.h"
23
CDRowWidget::CDRowWidget(QWidget *parent, SystemDispatcher *proxy) :
27
this->setStyleSheet("QWidget{border: none;background-color: #ffffff;}");
28
setFixedSize(750, 403);
29
scroll_widget = new ScrollWidget(this);
30
scroll_widget->setGeometry(0, 0, 750, 403);
34
CDRowWidget::~CDRowWidget()
36
this->clear_page_list();
37
if (scroll_widget != NULL) {
43
void CDRowWidget::clear_page_list()
45
for(int i=0; i<page_list.count(); i++)
47
ComputerPage *page = page_list.at(i);
53
scroll_widget->resetWidget();
56
bool CDRowWidget::getStatus()
61
void CDRowWidget::initData()
63
this->clear_page_list();
64
cdrom_info_map.clear();
65
cdrom_info_map = systemproxy->get_cdrom_info_qt();
67
if (cdrom_info_map.isEmpty() || cdrom_info_map.count() <= 0) {
71
QMap<QString, QVariant>::iterator iter = cdrom_info_map.find("Dvdnum");
72
if (iter == cdrom_info_map.end()) {
76
cdNum = iter.value().toInt();
79
ComputerPage *page = new ComputerPage(scroll_widget->zone, tr("CDROM Info"));
80
page_list.append(page);
81
cdrom_info_map.remove("Dvdnum");
82
QMap<QString, QVariant> tmpMap;
83
QMap<QString,QVariant>::iterator it;
84
for ( it = cdrom_info_map.begin(); it != cdrom_info_map.end(); ++it ) {
85
if (it.value().toString().length() > 0) {
86
tmpMap.insert(it.key(), it.value());
89
page->setMap(tmpMap, cdrom_info_map.value("DvdVendor").toString().toUpper());
91
scroll_widget->addScrollWidget(page);
95
for(int i=0;i<cdNum;i++)
97
ComputerPage *page = new ComputerPage(scroll_widget->zone, tr("CDROM Info %1").arg(i+1));
98
page_list.append(page);
100
QMap<QString, QVariant>::iterator itbegin = cdrom_info_map.begin();
101
QMap<QString, QVariant>::iterator itend = cdrom_info_map.end();
102
for (;itbegin != itend; ++itbegin)
104
if(itbegin.key() != "Dvdnum" && itbegin.value().toString().contains("<1_1>")) {
105
QString result = itbegin.value().toString().split("<1_1>").at(i);
106
if (result.length() > 0) {
107
tmp_info_map.insert(itbegin.key(), result);
111
page->setMap(tmp_info_map, tmp_info_map.value("DvdVendor").toString().toUpper());
113
scroll_widget->addScrollWidget(page);
118
/*if(cdrom_info_map.count() == 1 && cdrom_info_map.contains("kylinkobe"))
124
ComputerPage *page = new ComputerPage(scroll_widget->zone, tr("CDROM Info"));
125
cdrom_info_map.remove("Dvdnum");
126
QMap<QString, QVariant> tmpMap;
127
QMap<QString,QVariant>::iterator it;
128
for ( it = cdrom_info_map.begin(); it != cdrom_info_map.end(); ++it ) {
129
if (it.value().toString().length() > 0) {
130
tmpMap.insert(it.key(), it.value());
133
page->setMap(tmpMap, cdrom_info_map.value("DvdVendor").toString().toUpper());
135
scroll_widget->addScrollWidget(page);
139
for(int i=0;i<cdNum;i++)
141
ComputerPage *page = new ComputerPage(scroll_widget->zone, tr("CDROM Info %1").arg(i+1));
142
tmp_info_map.clear();
143
QMap<QString, QVariant>::iterator itbegin = cdrom_info_map.begin();
144
QMap<QString, QVariant>::iterator itend = cdrom_info_map.end();
145
for (;itbegin != itend; ++itbegin)
147
if(itbegin.key() != "Dvdnum" && itbegin.value().toString().contains("<1_1>")) {
148
QString result = itbegin.value().toString().split("<1_1>").at(i);
149
if (result.length() > 0) {
150
tmp_info_map.insert(itbegin.key(), result);
154
page->setMap(tmp_info_map, tmp_info_map.value("DvdVendor").toString().toUpper());
156
scroll_widget->addScrollWidget(page);