diff options
author | Jan Darmochwal | 2010-10-07 16:56:12 +0200 |
---|---|---|
committer | Jan Darmochwal | 2010-10-07 16:56:12 +0200 |
commit | e7e9cf2849d0000acf47ecde86e4853687a03409 (patch) | |
tree | aa811c315fa49eccf3691f932ebbc8b28d67fa14 /src/main.cpp | |
parent | Added files to parse command line options (diff) | |
download | vmchooser-e7e9cf2849d0000acf47ecde86e4853687a03409.tar.gz vmchooser-e7e9cf2849d0000acf47ecde86e4853687a03409.tar.xz vmchooser-e7e9cf2849d0000acf47ecde86e4853687a03409.zip |
Tidy up the code
* fixed compiler warnings, added -Werror to CMakeLists.txt
* removed LibXml2 and boost stuff from CMakeLists.txt
* fixed some things cpplint.py complains about:
* make single-argument constructors explicit
* add space before if/for/while/...
* don't put { on a line of its own
* remove space after ! operator
* add space between // and comment
* remove extra space before ( in function call
* remove extra space before )
* shorten lines to <= 80 characters
* remove blank lines at the start of a code block
* maybe others
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 265 |
1 files changed, 132 insertions, 133 deletions
diff --git a/src/main.cpp b/src/main.cpp index 90a9fbc..91b39e7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -13,10 +13,6 @@ #include "globals.h" #include "command_line_options.h" -#include <boost/filesystem.hpp> - -namespace bfs=boost::filesystem; - int main(int argc, char *argv[]) { QApplication a(argc, argv); @@ -26,134 +22,137 @@ int main(int argc, char *argv[]) { std::string version = "0.0.13"; - CommandLineOptions cmdOptions(argc, argv); - - std::string usage(a.translate( - "Console", - "Usage: vmchooser [ OPTIONS | FILE ]\n\n" - " -d, --default name of default session\n" - " -p, --path path to vmware .xml files\n" - " -x, --xpath path of X Session .desktop files\n" - " -s, --size window size <width>x<height>\n" - " -v, --version print version and exit\n" - " -h, --help print usage information and exit\n" - "\nFILE can be a vmware .xml or an X .desktop file\n" - ).toUtf8().data()); - - if (cmdOptions.contains("error")) { - std::cerr << usage; - return 1; - } - - if (cmdOptions.contains("usage")) { - std::cout << usage; - return 0; - } - - if (cmdOptions.contains("version")) { - std::cout << version; - return 0; - } - - if (cmdOptions.contains("file")) { - QString file(cmdOptions.value("file")); - - if (file.endsWith(".desktop")) { - XSession s; - return s.init(file) && s.run(); - } else if (file.endsWith(".xml")) { - // our XML-files can contain multiple sessions - // let's just take the first one - Session* s(VSession::readXmlFile(file).value(0)); - return s && s->run(); - } else { - std::cerr << "not a valid session file" << std::endl; - return 1; - } - } - - // read configuration file: - // file supplied as command line option or - // user vmchooser.conf or - // globel vmchooser.conf - QString confFile; - QString userConfFile(QDir::homePath() + "/" + - VMCHOOSER_USER_PATH + "/" + - VMCHOOSER_CONF_FILE); - QString globalConfFile(QString(VMCHOOSER_ETC_BASE_PATH) + "/" + - VMCHOOSER_CONF_FILE); - if (cmdOptions.contains("config")) { - confFile = cmdOptions.value("config"); - } else if (QFileInfo(userConfFile).exists()) { - confFile = userConfFile; - } else { - confFile = globalConfFile; - } - QSettings settings(confFile, QSettings::IniFormat); - settings.setIniCodec("UTF-8"); - - QString defaultSession; - if (cmdOptions.contains("default")) { - defaultSession = cmdOptions.value("default"); - } else if (settings.contains("default")) { - defaultSession = settings.value("default").toString(); - } else { - defaultSession = readSessionName(); - } - - QString vSessionXmlPath; - if (cmdOptions.contains("path")) { - vSessionXmlPath = cmdOptions.value("path"); - } else if (settings.contains("path")) { - vSessionXmlPath = settings.value("path").toString(); - } else { - vSessionXmlPath = VMCHOOSER_VMPATH; - } - - QString xSessionPath; - if (cmdOptions.contains("xpath")) { - xSessionPath = cmdOptions.value("xpath"); - } else if (settings.contains("xpath")) { - xSessionPath = settings.value("xpath").toString(); - } else { - xSessionPath = VMCHOOSER_X_SESSIONS_PATH; - } - - QString size; - if (cmdOptions.contains("size")) { - size = cmdOptions.value("size"); - } else if (settings.contains("size")) { - size = settings.value("size").toString(); - } - - int width, height; - QRegExp rx("^(\\d+)x(\\d+)$"); - if (rx.indexIn(size) != -1) { - QStringList list = rx.capturedTexts(); - width = list.value(1).toInt(); - height = list.value(2).toInt(); - } else if (!size.isEmpty()) { - std::cerr << a.translate("Console", "invlid size argument").toUtf8().data() << std::endl; - exit(1); - } else { - width = VMCHOOSER_DEFAULT_WIDTH; - height = VMCHOOSER_DEFAULT_HEIGHT; - } - - /* read session files */ - QList<Session*> xsessions(XSession::readSessions(xSessionPath)); - QList<Session*> vsessions(VSession::readXmlDir(vSessionXmlPath)); - - Dialog w; - w.resize(width, height); - if (xsessions.size()) { - w.addItems(xsessions, a.translate("Dialog", "X Sessions")); - } - if (vsessions.size()) { - w.addItems(vsessions, a.translate("Dialog", "Virtual Sessions")); - } - w.selectSession(defaultSession); - w.show(); - return a.exec(); + CommandLineOptions cmdOptions(argc, argv); + + std::string usage(a.translate( + "Console", + "Usage: vmchooser [ OPTIONS | FILE ]\n\n" + " -d, --default name of default session\n" + " -p, --path path to vmware .xml files\n" + " -x, --xpath path of X Session .desktop files\n" + " -s, --size window size <width>x<height>\n" + " -v, --version print version and exit\n" + " -h, --help print usage information and exit\n" + "\nFILE can be a vmware .xml or an X .desktop file\n") + .toUtf8().data()); + + if (cmdOptions.contains("error")) { + std::cerr << usage; + return 1; + } + + if (cmdOptions.contains("usage")) { + std::cout << usage; + return 0; + } + + if (cmdOptions.contains("version")) { + std::cout << version; + return 0; + } + + if (cmdOptions.contains("file")) { + QString file(cmdOptions.value("file")); + + if (file.endsWith(".desktop")) { + XSession s; + return s.init(file) && s.run(); + } else if (file.endsWith(".xml")) { + // our XML-files can contain multiple sessions + // let's just take the first one + Session* s(VSession::readXmlFile(file).value(0)); + return s && s->run(); + } else { + std::cerr << "not a valid session file" << std::endl; + return 1; + } + } + + // read configuration file: + // file supplied as command line option or + // user vmchooser.conf or + // globel vmchooser.conf + QString confFile; + QString userConfFile(QDir::homePath() + "/" + + VMCHOOSER_USER_PATH + "/" + + VMCHOOSER_CONF_FILE); + QString globalConfFile(QString(VMCHOOSER_ETC_BASE_PATH) + "/" + + VMCHOOSER_CONF_FILE); + if (cmdOptions.contains("config")) { + confFile = cmdOptions.value("config"); + } else if (QFileInfo(userConfFile).exists()) { + confFile = userConfFile; + } else { + confFile = globalConfFile; + } + QSettings settings(confFile, QSettings::IniFormat); + settings.setIniCodec("UTF-8"); + + QString defaultSession; + if (cmdOptions.contains("default")) { + defaultSession = cmdOptions.value("default"); + } else if (settings.contains("default")) { + defaultSession = settings.value("default").toString(); + } else { + defaultSession = readSessionName(); + } + + QString vSessionXmlPath; + if (cmdOptions.contains("path")) { + vSessionXmlPath = cmdOptions.value("path"); + } else if (settings.contains("path")) { + vSessionXmlPath = settings.value("path").toString(); + } else { + vSessionXmlPath = VMCHOOSER_VMPATH; + } + + QString xSessionPath; + if (cmdOptions.contains("xpath")) { + xSessionPath = cmdOptions.value("xpath"); + } else if (settings.contains("xpath")) { + xSessionPath = settings.value("xpath").toString(); + } else { + xSessionPath = VMCHOOSER_X_SESSIONS_PATH; + } + + QString size; + if (cmdOptions.contains("size")) { + size = cmdOptions.value("size"); + } else if (settings.contains("size")) { + size = settings.value("size").toString(); + } + + int width, height; + QRegExp rx("^(\\d+)x(\\d+)$"); + if (rx.indexIn(size) != -1) { + QStringList list = rx.capturedTexts(); + width = list.value(1).toInt(); + height = list.value(2).toInt(); + } else if (!size.isEmpty()) { + std::cerr + << a.translate("Console", + "invlid size argument").toUtf8().data() + << std::endl; + exit(1); + } else { + width = VMCHOOSER_DEFAULT_WIDTH; + height = VMCHOOSER_DEFAULT_HEIGHT; + } + + /* read session files */ + QList<Session*> xsessions(XSession::readSessions(xSessionPath)); + QList<Session*> vsessions(VSession::readXmlDir(vSessionXmlPath)); + + Dialog w; + w.resize(width, height); + if (xsessions.size()) { + w.addItems(xsessions, a.translate("Dialog", "X Sessions")); + } + if (vsessions.size()) { + w.addItems(vsessions, a.translate("Dialog", "Virtual Sessions")); + } + w.selectSession(defaultSession); + w.show(); + return a.exec(); } |