1
#include "cleanermainwidget.h"
2
#include "../component/kylintoolbutton.h"
4
#include "../mainui/mainwindow.h"
6
CleanerMainWidget::CleanerMainWidget(QWidget *parent, MainWindow *window)
7
: QWidget(parent), parentWindow(window)
9
this->setFixedSize(900, 403);
10
this->setAutoFillBackground(true);
11
this->setObjectName("transparentWidget");
13
tip_label = new QLabel();
14
tip_label->setObjectName("tipLabel");
15
QStringList cache_list;
16
cache_list << tr("Cleanup Package Cache") << tr("Cleanup Software Center Cache") << tr("Cleanup Thumbnails Cache") << tr("Cleanup FireFox Cache") << tr("Cleanup Chromium Cache");
17
cache_items = new CleanerItems(cache_list, 280, tr("Cache Items"));
18
cache_btn = new KylinCheckBox(0, "://res/cache.png");
19
cache_btn->setFixedSize(260, 130);
20
cache_btn->setToolTip("cache");
21
cache_btn->setLabelText(tr("System Cache"), tr("Cleanup cache of system, software-center, thumbnails and browser"));//系统缓存垃圾 清除包、软件中心、缩略图和浏览器缓存
22
//子checkbox的状态被改变时,重新设置总按钮的状态
23
connect(cache_items, SIGNAL(notifyMainCheckBox(int)), cache_btn, SLOT(resetMainStatus(int)));
24
//点击自定义按钮后,根据总按钮的状态去改变子checkbox的状态
25
connect(cache_btn, SIGNAL(customButtonClicked()), this, SLOT(onButtonClicked()));
26
//点击总按钮后,根据总按钮的状态去改变子checkbox的状态
27
connect(cache_btn, SIGNAL(spreadStatus(int)), cache_items, SLOT(resetSubCheckbox(int)));
29
QStringList package_list;
30
package_list << tr("Uninstall unnecessary procedures") << tr("Uninstall old kernel packages") << tr("Cleanup software configfile");
31
package_items = new CleanerItems(package_list, 200, tr("Package Items"));
32
package_btn = new KylinCheckBox(0, "://res/package.png");
33
package_btn->setFixedSize(260, 130);
34
package_btn->setLabelText(tr("Packages and configfile"), tr("Cleaning up the software that installed by other software bundled, old kernel packages and configfile, to improve system performance"));//包垃圾 清除不必要的程序、旧内核包、配置文件
35
package_btn->setToolTip("package");
36
//子checkbox的状态被改变时,重新设置总按钮的状态
37
connect(package_items, SIGNAL(notifyMainCheckBox(int)), package_btn, SLOT(resetMainStatus(int)));
38
//点击自定义按钮后,根据总按钮的状态去改变子checkbox的状态
39
connect(package_btn, SIGNAL(customButtonClicked()), this, SLOT(onButtonClicked()));
40
//点击总按钮后,根据总按钮的状态去改变子checkbox的状态
41
connect(package_btn, SIGNAL(spreadStatus(int)), package_items, SLOT(resetSubCheckbox(int)));
43
QStringList cookies_list;
44
cookies_list << tr("Cleanup the Cookies saving in Firefox") << tr("Cleanup the Cookies saving in Chromium");
45
cookies_items = new CleanerItems(cookies_list , 170, tr("Cookies Items"));
46
cookies_btn = new KylinCheckBox(0, "://res/cookie.png");
47
cookies_btn->setFixedSize(260, 130);
48
cookies_btn->setLabelText(tr("Cookies"), tr("Clean up user login information, support Firefox and Chromium browser"));//清除上网、游戏、购物等记录
49
cookies_btn->setToolTip("cookies");
50
//子checkbox的状态被改变时,重新设置总按钮的状态
51
connect(cookies_items, SIGNAL(notifyMainCheckBox(int)), cookies_btn, SLOT(resetMainStatus(int)));
52
//点击自定义按钮后,根据总按钮的状态去改变子checkbox的状态
53
connect(cookies_btn, SIGNAL(customButtonClicked()), this, SLOT(onButtonClicked()));
54
//点击总按钮后,根据总按钮的状态去改变子checkbox的状态
55
connect(cookies_btn, SIGNAL(spreadStatus(int)), cookies_items, SLOT(resetSubCheckbox(int)));
57
// QStringList browser_list;
58
// browser_list << tr("Cleanup Firefox Cache") << tr("Cleanup Chromium Cache");
59
// browser_items = new CleanerItems(browser_list);
60
// browser_btn = new KylinCheckBox(0, "://res/history-max.png");
61
// browser_btn->setToolTip("browser");
62
// //子checkbox的状态被改变时,重新设置总按钮的状态
63
// connect(browser_items, SIGNAL(notifyMainCheckBox(int)), browser_btn, SLOT(resetMainStatus(int)));
64
// //点击自定义按钮后,根据总按钮的状态去改变子checkbox的状态
65
// connect(browser_btn, SIGNAL(customButtonClicked()), this, SLOT(onButtonClicked()));
66
// //点击总按钮后,根据总按钮的状态去改变子checkbox的状态
67
// connect(browser_btn, SIGNAL(spreadStatus(int)), browser_items, SLOT(resetSubCheckbox(int)));
69
QStringList trace_list;
70
trace_list << tr("Clean up the Firefox Internet records") << tr("Clean up the Chromium Internet records") << tr("Clean up the recently opened documents records");
71
trace_items = new CleanerItems(trace_list, 200, tr("Trace Items"));
72
trace_btn = new KylinCheckBox(0, "://res/trace.png");
73
trace_btn->setFixedSize(260, 130);
74
trace_btn->setLabelText(tr("History trace"), tr("Cleaning the internet and opened documents recently records"));//使用痕迹 清除浏览器和系统使用痕迹
75
trace_btn->setToolTip("trace");
76
//子checkbox的状态被改变时,重新设置总按钮的状态
77
connect(trace_items, SIGNAL(notifyMainCheckBox(int)), trace_btn, SLOT(resetMainStatus(int)));
78
//点击自定义按钮后,根据总按钮的状态去改变子checkbox的状态
79
connect(trace_btn, SIGNAL(customButtonClicked()), this, SLOT(onButtonClicked()));
80
//点击总按钮后,根据总按钮的状态去改变子checkbox的状态
81
connect(trace_btn, SIGNAL(spreadStatus(int)), trace_items, SLOT(resetSubCheckbox(int)));
87
// QHBoxLayout *button_layout = new QHBoxLayout();
88
// QSignalMapper *signal_mapper = new QSignalMapper(this);
89
// for(int i=0; i<6; i++)
91
// QToolButton *tool_button = new QToolButton();
92
// tool_button->setFocusPolicy(Qt::NoFocus);
93
// tool_button->setText(text_list.at(i));
94
// tool_button->setIcon(QIcon(icon_list.at(i)));
95
// tool_button->setIconSize(QPixmap(icon_list.at(i)).size());
96
// tool_button->setAutoRaise(true);
97
//// tool_button->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
98
// tool_button->setObjectName("commonToolButton");
99
// tool_button->setFixedSize(110, 110);
100
//// tool_button->setContentsMargins(0, 20, 0, 30);
102
// button_list.append(tool_button);
103
// connect(tool_button, SIGNAL(clicked()), signal_mapper, SLOT(map()));
104
// signal_mapper->setMapping(tool_button, QString::number(i, 10));
105
// button_layout->addWidget(tool_button, 0, Qt::AlignBottom);
107
// connect(signal_mapper, SIGNAL(mapped(QString)), this, SLOT(switchPageIndex(QString)));
109
// main_checkbox = new QCheckBox("main");//三态复选框
110
// main_checkbox->setObjectName("mainCheckBox");
111
// main_checkbox->setTristate(true);
112
// main_checkbox->setEnabled(true);
113
// main_checkbox->setCheckState(Qt::Unchecked);
114
// connect(main_checkbox, SIGNAL(clicked()), this, SLOT(reset_sub_checkboxes()));
116
// checkbox1 = new QCheckBox("checkbox1");
117
// checkbox2 = new QCheckBox("checkbox2");
118
// checkbox3 = new QCheckBox("checkbox3");
121
QHBoxLayout *tip_layout = new QHBoxLayout();
122
tip_layout->addWidget(tip_label);
123
tip_layout->addStretch();
124
// tip_layout->addWidget(main_checkbox);
125
// tip_layout->setSpacing(50);
126
tip_layout->setMargin(0);
127
tip_layout->setContentsMargins(38,20,72,0);
129
QHBoxLayout *layout1 = new QHBoxLayout;
130
layout1->addWidget(cache_btn);
131
layout1->addWidget(package_btn);
132
layout1->addWidget(cookies_btn);
133
layout1->setMargin(0);
134
layout1->setContentsMargins(0,0,0,0);
136
QHBoxLayout *layout2 = new QHBoxLayout;
137
// layout2->addWidget(browser_btn);
138
layout2->addWidget(trace_btn);
139
layout2->addStretch();
140
layout1->setMargin(0);
141
layout2->setContentsMargins(20,0,0,0);
143
QVBoxLayout *layoutbox = new QVBoxLayout;
144
layoutbox->addLayout(layout1);
145
layoutbox->addLayout(layout2);
146
layoutbox->setSpacing(20);
147
layoutbox->setMargin(0);
148
layoutbox->setContentsMargins(0,0,0,0);
150
QVBoxLayout *main_layout = new QVBoxLayout;
151
main_layout->addLayout(tip_layout);
152
main_layout->addLayout(layoutbox);
153
main_layout->addStretch();
154
main_layout->setSpacing(30);
155
main_layout->setMargin(0);
156
main_layout->setContentsMargins(0,0,0,0);
158
setLayout(main_layout);
161
// main_checkbox = new QCheckBox();
162
// main_checkbox->setFocusPolicy(Qt::NoFocus);
163
// main_checkbox->setObjectName("mainCheckBox");
164
// main_checkbox->setTristate(true);
165
// main_checkbox->setEnabled(true);
166
// main_checkbox->setCheckState(Qt::Checked);
167
// cache_items = NULL;
173
//// checkbox_list.append(checkbox1);
174
//// checkbox_list.append(checkbox2);
175
//// checkbox_list.append(checkbox3);
176
//// connect(checkbox1, SIGNAL(clicked()), this, SLOT(scan_all_checkbox()));
177
//// connect(checkbox2, SIGNAL(clicked()), this, SLOT(scan_all_checkbox()));
178
//// connect(checkbox3, SIGNAL(clicked()), this, SLOT(scan_all_checkbox()));
182
CleanerMainWidget::~CleanerMainWidget()
187
void CleanerMainWidget::setLanguage()
189
tip_label->setText(tr("Please select the items you want to clean"));
190
// main_checkbox->setText(tr("All"));
193
void CleanerMainWidget::onButtonClicked()
195
QObject *object = QObject::sender();
196
KylinCheckBox *checkbox = qobject_cast<KylinCheckBox *>(object);
197
QString object_name = checkbox->toolTip();
198
if(object_name == "cache")
200
if(cache_items->isHidden()) {
201
int w_x = parentWindow->frameGeometry().topLeft().x() + (900 / 2) - (410 / 2);
202
int w_y = parentWindow->frameGeometry().topLeft().y() + (600 /2) - (280 / 2);
203
cache_items->move(w_x, w_y);
210
if(!package_items->isHidden()) {
211
package_items->hide();
213
if(!cookies_items->isHidden()) {
214
cookies_items->hide();
216
if(!trace_items->isHidden()) {
220
else if(object_name == "package")
222
if(package_items->isHidden()) {
223
int w_x = parentWindow->frameGeometry().topLeft().x() + (900 / 2) - (410 / 2);
224
int w_y = parentWindow->frameGeometry().topLeft().y() + (600 /2) - (200 / 2);
225
package_items->move(w_x, w_y);
226
package_items->show();
230
package_items->hide();
232
if(!cache_items->isHidden()) {
235
if(!cookies_items->isHidden()) {
236
cookies_items->hide();
238
if(!trace_items->isHidden()) {
242
if(object_name == "cookies")
244
if(cookies_items->isHidden()) {
245
int w_x = parentWindow->frameGeometry().topLeft().x() + (900 / 2) - (410 / 2);
246
int w_y = parentWindow->frameGeometry().topLeft().y() + (600 /2) - (170 / 2);
247
cookies_items->move(w_x, w_y);
248
cookies_items->show();
252
cookies_items->hide();
254
if(!cache_items->isHidden()) {
257
if(!package_items->isHidden()) {
258
package_items->hide();
260
if(!trace_items->isHidden()) {
264
if(object_name == "trace")
266
if(trace_items->isHidden()) {
267
int w_x = parentWindow->frameGeometry().topLeft().x() + (900 / 2) - (410 / 2);
268
int w_y = parentWindow->frameGeometry().topLeft().y() + (600 /2) - (200 / 2);
269
trace_items->move(w_x, w_y);
276
if(!cache_items->isHidden()) {
279
if(!package_items->isHidden()) {
280
package_items->hide();
282
if(!cookies_items->isHidden()) {
283
cookies_items->hide();