xref: /OK3568_Linux_fs/app/qsetting/qtfactory.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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