From 2628b4dc6dad29439c929051c5540d316beaccae Mon Sep 17 00:00:00 2001 From: Zastian Pretorius Date: Sun, 11 Oct 2020 15:02:11 +0200 Subject: [PATCH] Created basic GUI Applecation --- HotspotShield.png | Bin 0 -> 57069 bytes HotspotShield.pro | 24 +++ HotspotShield.pro.user | 355 +++++++++++++++++++++++++++++++++ HotspotShield.pro.user.86c6db0 | 355 +++++++++++++++++++++++++++++++++ main.cpp | 12 ++ mainwindow.cpp | 71 +++++++ mainwindow.h | 28 +++ mainwindow.ui | 99 +++++++++ 8 files changed, 944 insertions(+) create mode 100644 HotspotShield.png create mode 100644 HotspotShield.pro create mode 100644 HotspotShield.pro.user create mode 100644 HotspotShield.pro.user.86c6db0 create mode 100644 main.cpp create mode 100644 mainwindow.cpp create mode 100644 mainwindow.h create mode 100644 mainwindow.ui diff --git a/HotspotShield.png b/HotspotShield.png new file mode 100644 index 0000000000000000000000000000000000000000..9673edd53112a655cce7f2ede466fe569c5db165 GIT binary patch literal 57069 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 literal 0 HcmV?d00001 diff --git a/HotspotShield.pro b/HotspotShield.pro new file mode 100644 index 0000000..d01e364 --- /dev/null +++ b/HotspotShield.pro @@ -0,0 +1,24 @@ +QT += core gui + +greaterThan(QT_MAJOR_VERSION, 4): QT += widgets + +CONFIG += c++11 + +# You can make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +SOURCES += \ + main.cpp \ + mainwindow.cpp + +HEADERS += \ + mainwindow.h + +FORMS += \ + mainwindow.ui + +# Default rules for deployment. +qnx: target.path = /tmp/$${TARGET}/bin +else: unix:!android: target.path = /opt/$${TARGET}/bin +!isEmpty(target.path): INSTALLS += target diff --git a/HotspotShield.pro.user b/HotspotShield.pro.user new file mode 100644 index 0000000..4da40ab --- /dev/null +++ b/HotspotShield.pro.user @@ -0,0 +1,355 @@ + + + + + + EnvironmentId + {d980c07e-5cf7-43df-a0ef-6a4e92e6ff48} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + true + 0 + 8 + true + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + true + true + true + true + + + 0 + true + + true + Builtin.Questionable + + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {7e35625a-3dc6-4a68-a3e5-359fb9d3d1aa} + 0 + 0 + 0 + + true + 0 + /home/mrfluffy/Documents/C++/build-HotspotShield-Desktop-Debug + /home/mrfluffy/Documents/C++/build-HotspotShield-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + 2 + 2 + + + true + 2 + /home/mrfluffy/Documents/C++/build-HotspotShield-Desktop-Release + /home/mrfluffy/Documents/C++/build-HotspotShield-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 2 + + + true + 0 + /home/mrfluffy/Documents/C++/build-HotspotShield-Desktop-Profile + /home/mrfluffy/Documents/C++/build-HotspotShield-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + dwarf + + cpu-cycles + + + 250 + + -e + cpu-cycles + --call-graph + dwarf,4096 + -F + 250 + + -F + true + 4096 + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + kcachegrind + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/mrfluffy/Documents/C++/HotspotShield/HotspotShield.pro + /home/mrfluffy/Documents/C++/HotspotShield/HotspotShield.pro + + false + + false + true + true + false + false + true + + /home/mrfluffy/Documents/C++/build-HotspotShield-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/HotspotShield.pro.user.86c6db0 b/HotspotShield.pro.user.86c6db0 new file mode 100644 index 0000000..7e86a09 --- /dev/null +++ b/HotspotShield.pro.user.86c6db0 @@ -0,0 +1,355 @@ + + + + + + EnvironmentId + {86c6db0a-a8d9-470d-991a-fb8f8767f3a1} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + true + 0 + 8 + true + 1 + true + true + true + *.md, *.MD, Makefile + false + true + + + + ProjectExplorer.Project.PluginSettings + + + true + true + true + true + true + + + 0 + true + + false + Builtin.Questionable + + true + Builtin.DefaultTidyAndClazy + 4 + + + + true + + + + + ProjectExplorer.Project.Target.0 + + Desktop + Desktop + Desktop + {07443001-3d65-4d24-9b41-1689e6beeecb} + 0 + 0 + 0 + + true + 0 + /home/mrfluffy/build-HotspotShield-Desktop-Debug + /home/mrfluffy/build-HotspotShield-Desktop-Debug + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + 2 + 2 + + + true + 2 + /home/mrfluffy/build-HotspotShield-Desktop-Release + /home/mrfluffy/build-HotspotShield-Desktop-Release + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 2 + + + true + 0 + /home/mrfluffy/build-HotspotShield-Desktop-Profile + /home/mrfluffy/build-HotspotShield-Desktop-Profile + + + true + QtProjectManager.QMakeBuildStep + + false + + + + true + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + Build + ProjectExplorer.BuildSteps.Build + + + + true + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + Clean + ProjectExplorer.BuildSteps.Clean + + 2 + false + + + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + 0 + 0 + + 3 + + + 0 + Deploy + Deploy + ProjectExplorer.BuildSteps.Deploy + + 1 + + false + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + dwarf + + cpu-cycles + + + 250 + + -e + cpu-cycles + --call-graph + dwarf,4096 + -F + 250 + + -F + true + 4096 + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + kcachegrind + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + + 2 + + Qt4ProjectManager.Qt4RunConfiguration:/home/mrfluffy/HotspotShield/HotspotShield.pro + /home/mrfluffy/HotspotShield/HotspotShield.pro + + false + + false + true + true + false + false + true + + /home/mrfluffy/build-HotspotShield-Desktop-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 22 + + + Version + 22 + + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..bdc1bb8 --- /dev/null +++ b/main.cpp @@ -0,0 +1,12 @@ +#include "mainwindow.h" + +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + a.setWindowIcon(QIcon("./HotspotShield.png")); + MainWindow w; + w.show(); + return a.exec(); +} diff --git a/mainwindow.cpp b/mainwindow.cpp new file mode 100644 index 0000000..c8e179c --- /dev/null +++ b/mainwindow.cpp @@ -0,0 +1,71 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" +#include +#include +#include +#include +#include +using namespace std; +bool connected = false; +string labletext ; + +string GetStdoutFromCommand(string cmd) { + string data; + FILE * stream; + const int max_buffer = 256; + char buffer[max_buffer]; + cmd.append(" 2>&1"); + + stream = popen(cmd.c_str(), "r"); + if (stream) { + while (!feof(stream)) + if (fgets(buffer, max_buffer, stream) != NULL) data.append(buffer); + pclose(stream); + } + return data; +} +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) + , ui(new Ui::MainWindow) +{ + ui->setupUi(this); + connect(ui->BtnConDis, SIGNAL(clicked(bool)), this, SLOT(onButtonClicked())); + timer = new QTimer(this); + connect(timer, &QTimer::timeout, this, &MainWindow::TimerSlot ); + ConnectStatus(); +} +void MainWindow::ConnectStatus(){ + ui->label->setText(GetStdoutFromCommand("hotspotshield status").c_str()); + if(ui->label->text().contains("disconnected")){ + ui->BtnConDis->setText("Connect"); + connected = false; + } + else { + ui->BtnConDis->setText("Disconnect"); + connected = true; + } + timer->start(1000); +} +MainWindow::~MainWindow() +{ + delete ui; +} +void MainWindow::onButtonClicked() +{ + if(connected == false){ + string location = "hotspotshield connect " + ui->Location->currentText().toStdString(); + const char *lc = location.c_str(); + system(lc); + } + else { + string location = "hotspotshield disconnect"; + const char *lc = location.c_str(); + system(lc); + } + ConnectStatus(); +} +void MainWindow::TimerSlot() +{ + ConnectStatus(); +} + diff --git a/mainwindow.h b/mainwindow.h new file mode 100644 index 0000000..5d0bfbc --- /dev/null +++ b/mainwindow.h @@ -0,0 +1,28 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +QT_BEGIN_NAMESPACE +namespace Ui { class MainWindow; } +QT_END_NAMESPACE + +class MainWindow : public QMainWindow +{ + Q_OBJECT + QTimer *timer; // NEW + +public: + MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + +public slots: + void onButtonClicked(); + void ConnectStatus(); + void connectionUpdate(); + void TimerSlot(); + +private: + Ui::MainWindow *ui; +}; +#endif // MAINWINDOW_H diff --git a/mainwindow.ui b/mainwindow.ui new file mode 100644 index 0000000..56e16b8 --- /dev/null +++ b/mainwindow.ui @@ -0,0 +1,99 @@ + + + MainWindow + + + + 0 + 0 + 488 + 490 + + + + Hotspot Shield + + + + + + 154 + 280 + 180 + 161 + + + + Connect + + + + + + 0 + 0 + 131 + 51 + + + + US + + + + + + + US + + + + + ZA + + + + + IN + + + + + GB + + + + + JP + + + + + + + 7 + 77 + 401 + 161 + + + + + + + + + + + 0 + 0 + 488 + 23 + + + + + + + +