#include "fbgui.h" #include "fbbrowser.h" #include "DownloadManager.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: ./fbgui [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); } int main(int argc, char *argv[]) { // Parse command line arguments. int opt = 0; 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 = "hqwsdiplay"; 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); // Get the application path and prints on screen. qDebug() << "Application Path: " << a.applicationDirPath(); // Is this really needed, since we kill the app through the fbbrowser object? QObject::connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit())); // 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(killApp()), &a, SLOT(quit())); // Display the browser. fbb->show(); // Execute the application. return a.exec(); }