-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmainwindow.cpp
More file actions
96 lines (73 loc) · 2.23 KB
/
mainwindow.cpp
File metadata and controls
96 lines (73 loc) · 2.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMessageBox"
#include "QProcess"
#include <QListWidgetItem>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
model = new QStringListModel(this);
connect(ui->pushBtn, SIGNAL(clicked()), this, SLOT(ClickButton()));
this->getAndroidEmulators();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::getAndroidEmulators() {
QProcess *myProcess = new QProcess(this);
QString program = "emulator";
QStringList arguments;
arguments<<"-list-avds";
myProcess->start(program, arguments);
if(!myProcess->waitForStarted())
return;
myProcess->write("Qt rocks");
myProcess->closeWriteChannel();
if(!myProcess->waitForFinished())
return;
QByteArray result = myProcess->readAll();
QString sresult = result;
// Make data
List = sresult.split("\n", QString::SkipEmptyParts);
// List << "Clair de Lune" << "Reverie" << "Prelude";
// Populate our model
model->setStringList(List);
ui->listView->setModel(model);
}
void MainWindow::ClickButton() {
QStringList list;
QString selected;
foreach(const QModelIndex &index, ui->listView->selectionModel()->selectedIndexes()) {
int row = index.row();
QString item = this->List.at(row);
selected = item;
selected.remove(QChar('\r'));
break;
}
qDebug()<<selected;
QProcess *myProcess = new QProcess(this);
QString program = "emulator";
QStringList arguments;
arguments<<"-avd"<<selected;
myProcess->setWorkingDirectory("D:/Android/Sdk/emulator/");
myProcess->start(program, arguments);
if(!myProcess->waitForStarted(2000))
return;
myProcess->closeWriteChannel();
if(!myProcess->waitForFinished(2000))
return;
QString result = myProcess->readAll();
QString error = myProcess->readAllStandardError();
qDebug()<<"Result: "<<result<<"; Error: "<<error;
QString final;
if(result.isEmpty()) {
final = error;
} else {
final = result;
}
QMessageBox::information(NULL, "Title", final, QMessageBox::Yes|QMessageBox::No, QMessageBox::Yes);
}