X-Git-Url: https://www.flypig.org.uk/git/?p=openvpnui.git;a=blobdiff_plain;f=src%2Fopenvpn-rig.cpp;fp=src%2Fopenvpn-rig.cpp;h=adfb69b360ff4aa6da633244cbe4e82829845a4e;hp=0000000000000000000000000000000000000000;hb=93e2321f381ed34de36c088a4f50a7550e148652;hpb=6bef755f7d79ccd2a8467ea9eea0db4d8532a41c diff --git a/src/openvpn-rig.cpp b/src/openvpn-rig.cpp new file mode 100644 index 0000000..adfb69b --- /dev/null +++ b/src/openvpn-rig.cpp @@ -0,0 +1,101 @@ +/* + Copyright (C) 2014 David Llewellyn-Jones + Contact: David Llewellyn-Jones + All rights reserved. + + You may use this file under the terms of BSD license as follows: + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the Jolla Ltd nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR + ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Built using the standard template from Jolla + Copyright (C) 2013 Jolla Ltd. + Contact: Thomas Perl +*/ + +#ifdef QT_QML_DEBUG +#include +#else +#include +#endif + +#include +#include "vpncontrol.h" +#include "filemodel.h" +#include "fileinfo.h" +#include "searchengine.h" +#include "engine.h" + +int main(int argc, char *argv[]) +{ + qmlRegisterType("harbour.file.browser.FileModel", 1, 0, "FileModel"); + qmlRegisterType("harbour.file.browser.FileInfo", 1, 0, "FileInfo"); + qmlRegisterType("harbour.file.browser.SearchEngine", 1, 0, "SearchEngine"); + + int result; + + setuid(0); + seteuid(0); + + // SailfishApp::main() will display "qml/template.qml", if you need more + // control over initialization, you can use: + // + // - SailfishApp::application(int, char *[]) to get the QGuiApplication * + // - SailfishApp::createView() to get a new QQuickView * instance + // - SailfishApp::pathTo(QString) to get a QUrl to a resource file + // + // To display the view, call "show()" (will show fullscreen on device). + + QScopedPointer app(SailfishApp::application(argc, argv)); + + // These values are used by QSettings to access the config file in + // /home/nemo/.local/share/flypig/OpenVPNUI.conf + QCoreApplication::setOrganizationName("flypig"); + QCoreApplication::setOrganizationDomain("www.flypig.co.uk"); + QCoreApplication::setApplicationName("OpenVPN Rig"); + + QScopedPointer view(SailfishApp::createView()); + + view->setSource(SailfishApp::pathTo("qml/harbour-openvpn-rig.qml")); + + VPNControl * vpnControl = new VPNControl (); + + view->rootContext()->setContextProperty("VpnControl", vpnControl); + + vpnControl->initialise(); + + // QML global engine object + QScopedPointer engine(new Engine); + view->rootContext()->setContextProperty("engine", engine.data()); + // Store pointer to engine to access it in any class + QVariant engineVariant = qVariantFromValue(engine.data()); + qApp->setProperty("engine", engineVariant); + + // Run the application loop + view->show(); + result = app->exec(); + + delete vpnControl; + + return result; +} +