1*4882a593Smuzhiyun
2*4882a593Smuzhiyun #include <QApplication>
3*4882a593Smuzhiyun #include <QDesktopWidget>
4*4882a593Smuzhiyun #include <QFileInfo>
5*4882a593Smuzhiyun #include <QMessageBox>
6*4882a593Smuzhiyun #include <QProcess>
7*4882a593Smuzhiyun #include "qtfactory.h"
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun #define UPDATE_EXE "/usr/bin/update"
10*4882a593Smuzhiyun
qtFactoryReset(QWidget * parent)11*4882a593Smuzhiyun qtFactoryReset::qtFactoryReset(QWidget *parent)
12*4882a593Smuzhiyun {
13*4882a593Smuzhiyun const QRect availableGeometry = QApplication::desktop()->availableGeometry(parent);
14*4882a593Smuzhiyun QFont font;
15*4882a593Smuzhiyun font.setBold(true);
16*4882a593Smuzhiyun font.setPixelSize(availableGeometry.height()/40);
17*4882a593Smuzhiyun label.setFont(font);
18*4882a593Smuzhiyun label.setText("Factory Reset will wipe all the user data.\n Make sure your device are ready.\n then click OK button.");
19*4882a593Smuzhiyun label.setAlignment(Qt::AlignCenter);
20*4882a593Smuzhiyun btn.setText("O K");
21*4882a593Smuzhiyun connect(&btn, SIGNAL(clicked(bool)), this, SLOT(on_btnClicked()));
22*4882a593Smuzhiyun vLayout.addWidget(&label);
23*4882a593Smuzhiyun vLayout.addWidget(&btn);
24*4882a593Smuzhiyun setLayout(&vLayout);
25*4882a593Smuzhiyun setStyleSheet("background-color:rgb(204,228,247)");
26*4882a593Smuzhiyun setObjectName("Factory Reset");
27*4882a593Smuzhiyun }
28*4882a593Smuzhiyun
~qtFactoryReset()29*4882a593Smuzhiyun qtFactoryReset::~qtFactoryReset()
30*4882a593Smuzhiyun {
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun }
33*4882a593Smuzhiyun
on_btnClicked()34*4882a593Smuzhiyun void qtFactoryReset::on_btnClicked()
35*4882a593Smuzhiyun {
36*4882a593Smuzhiyun QFileInfo update = QFileInfo(UPDATE_EXE);
37*4882a593Smuzhiyun QString path;
38*4882a593Smuzhiyun
39*4882a593Smuzhiyun QMessageBox::StandardButton rb = QMessageBox::question(
40*4882a593Smuzhiyun this, "Factory Reset",
41*4882a593Smuzhiyun "Do you want to reboot and do factory reset? It will wipe all your user data",
42*4882a593Smuzhiyun QMessageBox::Yes | QMessageBox::No);
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun if(rb == QMessageBox::Yes){
45*4882a593Smuzhiyun if(update.exists()){
46*4882a593Smuzhiyun QProcess p;
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun p.start(UPDATE_EXE);
49*4882a593Smuzhiyun p.waitForStarted();
50*4882a593Smuzhiyun p.waitForFinished();
51*4882a593Smuzhiyun QString err = QString::fromLocal8Bit(p.readAllStandardOutput());
52*4882a593Smuzhiyun QMessageBox::critical(this, "Error", err);
53*4882a593Smuzhiyun }else {
54*4882a593Smuzhiyun QMessageBox::warning(this, "Error", "Don't find " UPDATE_EXE "!");
55*4882a593Smuzhiyun }
56*4882a593Smuzhiyun }
57*4882a593Smuzhiyun }
58