~feng-kylin/youker-assistant/youker-assistant

« back to all changes in this revision

Viewing changes to cleaner/cleanermainwidget.cpp

  • Committer: kobe
  • Date: 2015-02-13 07:37:10 UTC
  • Revision ID: xiangli@ubuntukylin.com-20150213073710-0jyp02ilyi5njj10
Qt Version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "cleanermainwidget.h"
 
2
#include "../component/kylintoolbutton.h"
 
3
#include <QDebug>
 
4
#include "../mainui/mainwindow.h"
 
5
 
 
6
CleanerMainWidget::CleanerMainWidget(QWidget *parent, MainWindow *window)
 
7
    : QWidget(parent), parentWindow(window)
 
8
{
 
9
    this->setFixedSize(900, 403);
 
10
    this->setAutoFillBackground(true);
 
11
    this->setObjectName("transparentWidget");
 
12
 
 
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)));
 
28
 
 
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)));
 
42
 
 
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)));
 
56
 
 
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)));
 
68
 
 
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)));
 
82
 
 
83
 
 
84
 
 
85
 
 
86
 
 
87
//    QHBoxLayout *button_layout = new QHBoxLayout();
 
88
//    QSignalMapper *signal_mapper = new QSignalMapper(this);
 
89
//    for(int i=0; i<6; i++)
 
90
//    {
 
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);
 
101
 
 
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);
 
106
//    }
 
107
//    connect(signal_mapper, SIGNAL(mapped(QString)), this, SLOT(switchPageIndex(QString)));
 
108
 
 
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()));
 
115
 
 
116
//    checkbox1 = new QCheckBox("checkbox1");
 
117
//    checkbox2 = new QCheckBox("checkbox2");
 
118
//    checkbox3 = new QCheckBox("checkbox3");
 
119
 
 
120
 
 
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);
 
128
 
 
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);
 
135
 
 
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);
 
142
 
 
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);
 
149
 
 
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);
 
157
 
 
158
    setLayout(main_layout);
 
159
    this->setLanguage();
 
160
 
 
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;
 
168
 
 
169
 
 
170
 
 
171
 
 
172
 
 
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()));
 
179
 
 
180
}
 
181
 
 
182
CleanerMainWidget::~CleanerMainWidget()
 
183
{
 
184
 
 
185
}
 
186
 
 
187
void CleanerMainWidget::setLanguage()
 
188
{
 
189
    tip_label->setText(tr("Please select the items you want to clean"));
 
190
//    main_checkbox->setText(tr("All"));
 
191
}
 
192
 
 
193
void CleanerMainWidget::onButtonClicked()
 
194
{
 
195
    QObject *object = QObject::sender();
 
196
    KylinCheckBox *checkbox = qobject_cast<KylinCheckBox *>(object);
 
197
    QString object_name = checkbox->toolTip();
 
198
    if(object_name == "cache")
 
199
    {
 
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);
 
204
            cache_items->show();
 
205
        }
 
206
        else
 
207
        {
 
208
            cache_items->hide();
 
209
        }
 
210
        if(!package_items->isHidden()) {
 
211
            package_items->hide();
 
212
        }
 
213
        if(!cookies_items->isHidden()) {
 
214
            cookies_items->hide();
 
215
        }
 
216
        if(!trace_items->isHidden()) {
 
217
            trace_items->hide();
 
218
        }
 
219
    }
 
220
    else if(object_name == "package")
 
221
    {
 
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();
 
227
        }
 
228
        else
 
229
        {
 
230
            package_items->hide();
 
231
        }
 
232
        if(!cache_items->isHidden()) {
 
233
            cache_items->hide();
 
234
        }
 
235
        if(!cookies_items->isHidden()) {
 
236
            cookies_items->hide();
 
237
        }
 
238
        if(!trace_items->isHidden()) {
 
239
            trace_items->hide();
 
240
        }
 
241
    }
 
242
    if(object_name == "cookies")
 
243
    {
 
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();
 
249
        }
 
250
        else
 
251
        {
 
252
            cookies_items->hide();
 
253
        }
 
254
        if(!cache_items->isHidden()) {
 
255
            cache_items->hide();
 
256
        }
 
257
        if(!package_items->isHidden()) {
 
258
            package_items->hide();
 
259
        }
 
260
        if(!trace_items->isHidden()) {
 
261
            trace_items->hide();
 
262
        }
 
263
    }
 
264
    if(object_name == "trace")
 
265
    {
 
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);
 
270
            trace_items->show();
 
271
        }
 
272
        else
 
273
        {
 
274
            trace_items->hide();
 
275
        }
 
276
        if(!cache_items->isHidden()) {
 
277
            cache_items->hide();
 
278
        }
 
279
        if(!package_items->isHidden()) {
 
280
            package_items->hide();
 
281
        }
 
282
        if(!cookies_items->isHidden()) {
 
283
            cookies_items->hide();
 
284
        }
 
285
    }
 
286
}