From c8b822a69d424d61d4d7b8c7ded80238e1212623 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Tue, 25 Jan 2011 16:17:12 +0100 Subject: new try... --- fbbrowser/fbgui.cpp | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 fbbrowser/fbgui.cpp (limited to 'fbbrowser/fbgui.cpp') diff --git a/fbbrowser/fbgui.cpp b/fbbrowser/fbgui.cpp new file mode 100644 index 0000000..4d34fa9 --- /dev/null +++ b/fbbrowser/fbgui.cpp @@ -0,0 +1,83 @@ +#include "fbbrowser.h" + +#include +#include +#include +#include +#include + + +void printUsage() +{ + // Prints usage information, incomplete. + // Q: How is the -qws option handled, mention it here or not? + QTextStream qout(stdout); + qout << QObject::tr("Usage: ./fbbrowser [OPTIONS] ") << endl; + qout << QObject::tr("Options:") << endl; + qout << "-h or --help " << QObject::tr("Prints usage information.") << endl; + qout << "-qws " << QObject::tr("Set this application to also be the server application.") << endl; + qout << " " << QObject::tr("Skip this option if you have a QT server application") << endl; + exit(1); +} + +QString getPath(const char* c) +{ + QString appPath = c; + // Locate last '/' in the full path and remove all the chars after it. + appPath.chop(appPath.length() - 1 + - appPath.lastIndexOf("/", appPath.length()-1)); + qDebug() << "Application path: " << appPath; + return appPath; +} + +int main(int argc, char *argv[]) +{ + // Parse command line arguments. + int opt = 1; + int longIndex = 0; + // Declare the short options as a char*, these have exactly one - followed by letter from optString. + // For example: ./fbbrowser -h + // Declare the long options in the const struct, these have two - followed by a string found in longOpts[]. + // Same as: ./fbbrowser --help + // Note: I included 'qws' here to not have errors, when setting fbbrowser to be the server app aswell. + static const char *optString = "hqws"; + static const struct option longOpts[] = + { + // If an option requires parameters, write this number instead of no_argument. + // The last argument, is the corresponding char to the option string. + {"help", no_argument, NULL, 'h'} + }; + // getopt_long returns the index of the next argument to be read, -1 if there are no more arguments. + opt = getopt_long(argc, argv, optString, longOpts, &longIndex); + while (opt != -1) + { + switch(opt) + { + case 'h': + printUsage(); + break; + } + opt = getopt_long(argc, argv, optString, longOpts, &longIndex); + } + // This is the main object of a QT Application. + QApplication a(argc, argv); + // Is this really needed, since we kill the app through the fbbrowser object? + QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit())); + // Get the application path. + QString appPath = getPath(argv[0]); + // This part reads the URL to load from the arguments given through the commandline. + QUrl url; + if (argc > 1) + url = QUrl(argv[1]); + else //Default URL to load + url = QUrl("http://132.230.4.3/webkitTest.html"); + // Create a new Framebuffer-Browser object for displaying the given URL. + fbbrowser *fbb = new fbbrowser(url); + // Listen to the signalQuitAll() Signal to kill the app from within the browser. + QObject::connect(fbb, SIGNAL(signalQuitAll()), &a, SLOT(quit())); + // Display the browser. + fbb->show(); + + // Exit the application. + return a.exec(); +} -- cgit v1.2.3-55-g7522