summaryrefslogtreecommitdiffstats
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rwxr-xr-x[-rw-r--r--]src/main.cpp267
1 files changed, 138 insertions, 129 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 60e9a7a..4e64f4b 100644..100755
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -23,20 +23,23 @@
// -- #include "debugging/TSLogger.h"
// -- #include "UiGuiIniFileParser.h"
// -- #include "UiGuiSettings.h"
-// -- #include "UiGuiVersion.h"
// -- #include "UiGuiSystemInfo.h"
// -- #include "IndentHandler.h"
// -- #include "SettingsPaths.h"
// --
-// -- #include <tntqapplication.h>
-// -- #include <tntqtextcodec.h>
+// -- #include <tqapplication.h>
+// -- #include <tqtextcodec.h>
// -- #include <tqdebug.h>
// -- #include <string>
-// -- #include <iostream>
// -- #include <algorithm>
-// -- #include <tclap/CmdLine.h>
+#include "UiGuiVersion.h"
+
+#include <tqstring.h>
+
+#include <iostream>
+#include <tclap/CmdLine.h>
// -- using namespace tschweitzer::debugging;
@@ -47,134 +50,140 @@
No parameters starts without server and full gui.
A string without any parameter prefix will be loaded as file on start.
-p --plugin : Run as plugin. Server will be started with a simplified gui.
- -s --server : Run as server only without gui.
+ -s --server : Run as server only, without gui.
If -p and -s are set, -p will be used.
-v --verbose needs a following parameter defining the verbose level as a number from 0 to 3.
*/
int main(int argc, char *argv[])
{
+ TQString file2OpenOnStart = "";
+ int verboseLevel = 1;
+ bool startAsPlugin = false;
+ bool startAsServer = false;
+ bool tclapExitExceptionThrown = false;
+ int returnValue = 0;
+
return 0;
- // -- TQString file2OpenOnStart = "";
- // -- int verboseLevel = 1;
- // -- bool startAsPlugin = false;
- // -- bool startAsServer = false;
- // -- bool tclapExitExceptionThrown = false;
- // -- int returnValue = 0;
- // --
- // -- // Wrap everything in a try block. Do this every time,
- // -- // because exceptions will be thrown for problems.
- // -- try {
- // -- // Define the command line object.
- // -- TCLAP::CmdLine cmd("If -p and -s are set, -p will be used.\nGiving no parameters starts
- // full gui without server.", ' ', "UiGUI version " PROGRAM_VERSION_STRING " " PROGRAM_REVISION);
- // -- cmd.setExceptionHandling(false);
- // --
- // -- // Define a value argument and add it to the command line.
- // -- TCLAP::UnlabeledValueArg<std::string> filenameArg("file", "Opens the by
- // filename defined file on start" , false, "", "filename");
- // -- cmd.add( filenameArg );
- // --
- // -- // Define a switch and add it to the command line.
- // -- TCLAP::SwitchArg pluginSwitch("p", "plugin", "Run as plugin. Server will be started with
- // a simplified gui", false);
- // -- cmd.add( pluginSwitch );
- // --
- // -- // Define a switch and add it to the command line.
- // -- TCLAP::SwitchArg serverSwitch("s", "server", "Run as server only without gui", false);
- // -- cmd.add( serverSwitch );
- // --
- // -- // Define a value argument and add it to the command line.
- // -- TCLAP::ValueArg<int> verboselevelArg("v", "verbose", "Sets how many info is written to
- // the log. 0 means with debug info, 3 means critical messages only" , false, 1, "int");
- // -- cmd.add( verboselevelArg );
- // --
- // -- // Parse the args.
- // -- cmd.parse( argc, argv );
- // --
- // -- // Get the value parsed by each arg.
- // -- file2OpenOnStart = filenameArg.getValue().c_str();
- // -- startAsPlugin = pluginSwitch.getValue();
- // -- startAsServer = serverSwitch.getValue();
- // -- verboseLevel = verboselevelArg.getValue();
- // -- }
- // -- catch (TCLAP::ArgException &e) { // catch arg exceptions
- // -- std::cerr << std::endl << "error: " << e.error() << ". " << e.argId() << std::endl;
- // -- returnValue = 1;
- // -- }
- // -- catch (TCLAP::ExitException &e) { // catch exit exceptions
- // -- tclapExitExceptionThrown = true;
- // -- returnValue = e.getExitStatus();
- // -- }
- // -- catch (...) { // catch any exceptions
- // -- std::cerr << std::endl << "There was an error! Maybe faulty command line arguments set.
- // See --help." << std::endl;
- // -- returnValue = 1;
- // -- }
- // --
- // -- if ( returnValue != 0 || tclapExitExceptionThrown ) {
- // -- return returnValue;
- // -- }
- // --
- // -- TQApplication app(argc, argv);
- // -- UiGuiIndentServer server;
- // -- MainWindow *mainWindow = NULL;
- // -- IndentHandler *indentHandler = NULL;
- // --
- // -- // Init and install the logger function.
- // -- // Setting UTF-8 as default 8-Bit encoding to ensure that tqDebug does no false string
- // conversion.
- // -- TQTextCodec::setCodecForCStrings( TQTextCodec::codecForName("UTF-8") );
- // -- TQTextCodec::setCodecForLocale( TQTextCodec::codecForName("UTF-8") );
- // -- // Force creation of an TSLogger instance here, to avoid recursion with SettingsPaths
- // init function.
- // -- #ifdef _DEBUG
- // -- TSLogger::getInstance(0);
- // -- #else
- // -- TSLogger::getInstance(verboseLevel);
- // -- #endif
- // -- qInstallMsgHandler( TSLogger::messageHandler );
- // -- TSLogger::messageHandler( TSLoggerInfoMsg, TQString("Starting UiGUI Version %1
- // %2").arg(PROGRAM_VERSION_STRING).arg(PROGRAM_REVISION).toAscii() );
- // -- TSLogger::messageHandler( TSLoggerInfoMsg, TQString("Running on
- // %1").arg(UiGuiSystemInfo::getOperatingSystem()).toAscii() );
- // --
- // -- // Set default values for all by UniversalIndentGUI used settings objects.
- // -- TQCoreApplication::setOrganizationName("UniversalIndentGUI");
- // -- TQCoreApplication::setOrganizationDomain("universalindent.sf.net");
- // -- TQCoreApplication::setApplicationName("UniversalIndentGUI");
- // --
- // -- // Start normal with full gui and without server.
- // -- if ( !startAsPlugin && !startAsServer ) {
- // -- mainWindow = new MainWindow(file2OpenOnStart);
- // -- mainWindow->show();
- // -- }
- // -- // Start as plugin with server.
- // -- else if ( startAsPlugin ) {
- // -- server.startServer();
- // -- indentHandler = new IndentHandler(0);
- // -- indentHandler->show();
- // -- }
- // -- // Start as server only without any gui.
- // -- else if ( startAsServer ) {
- // -- server.startServer();
- // -- }
- // --
- // -- try {
- // -- returnValue = app.exec();
- // -- }
- // -- catch (std::exception &ex) {
- // -- qCritical() << __LINE__ << " " << __FUNCTION__ << ": Something went terribly wrong:"
- // << ex.what();
- // -- }
- // --
- // -- if ( startAsPlugin || startAsServer )
- // -- server.stopServer();
- // --
- // -- delete indentHandler;
- // -- delete mainWindow;
- // --
- // -- SettingsPaths::cleanAndRemoveTempDir();
- // -- TSLogger::deleteInstance();
- // --
- // -- return returnValue;
+ // Wrap everything in a try block. Do this every time,
+ // because exceptions will be thrown for problems.
+ try
+ {
+ // Define the command line object.
+ TCLAP::CmdLine cmd("If -p and -s are set, -p will be used.\n"
+ "Giving no parameters starts full gui without server.", ' ',
+ "UiGUI version " PROGRAM_VERSION_STRING " " PROGRAM_REVISION);
+ cmd.setExceptionHandling(false);
+
+ // Define a value argument and add it to the command line.
+ TCLAP::UnlabeledValueArg<std::string> filenameArg("file",
+ "Opens the by filename defined file on start" , false, "", "filename");
+ cmd.add(filenameArg);
+
+ // Define a switch and add it to the command line.
+ TCLAP::SwitchArg pluginSwitch("p", "plugin",
+ "Run as plugin. Server will be started with a simplified gui", false);
+ cmd.add(pluginSwitch);
+
+ // Define a switch and add it to the command line.
+ TCLAP::SwitchArg serverSwitch("s", "server",
+ "Run as server only without gui", false);
+ cmd.add(serverSwitch);
+
+ // Define a value argument and add it to the command line.
+ TCLAP::ValueArg<int> verboselevelArg("v", "verbose",
+ "Sets how many info is written to the log. 0 means with debug info, "
+ "3 means critical messages only" , false, 1, "int");
+ cmd.add(verboselevelArg);
+
+ // Parse the args.
+ cmd.parse(argc, argv);
+
+ // Get the value parsed by each arg.
+ file2OpenOnStart = filenameArg.getValue().c_str();
+ startAsPlugin = pluginSwitch.getValue();
+ startAsServer = serverSwitch.getValue();
+ verboseLevel = verboselevelArg.getValue();
+ }
+ catch (TCLAP::ArgException &e)
+ {
+ // catch arg exceptions
+ std::cerr << std::endl << "error: " << e.error() << ". " << e.argId() << std::endl;
+ returnValue = 1;
+ }
+ catch (TCLAP::ExitException &e)
+ {
+ // catch exit exceptions
+ tclapExitExceptionThrown = true;
+ returnValue = e.getExitStatus();
+ }
+ catch (...)
+ {
+ // catch any exceptions
+ std::cerr << std::endl << "There was an error! Maybe faulty "
+ "command line arguments set. See --help." << std::endl;
+ returnValue = 1;
+ }
+
+ if (returnValue != 0 || tclapExitExceptionThrown)
+ {
+ return returnValue;
+ }
+
+// -- TQApplication app(argc, argv);
+// -- UiGuiIndentServer server;
+// -- MainWindow *mainWindow = NULL;
+// -- IndentHandler *indentHandler = NULL;
+// --
+// -- // Init and install the logger function.
+// -- // Setting UTF-8 as default 8-Bit encoding to ensure that tqDebug does no false string conversion.
+// -- TQTextCodec::setCodecForCStrings(TQTextCodec::codecForName("UTF-8"));
+// -- TQTextCodec::setCodecForLocale(TQTextCodec::codecForName("UTF-8"));
+// -- // Force creation of an TSLogger instance here, to avoid recursion with SettingsPaths init function.
+// -- #ifdef _DEBUG
+// -- TSLogger::getInstance(0);
+// -- #else
+// -- TSLogger::getInstance(verboseLevel);
+// -- #endif
+// -- qInstallMsgHandler(TSLogger::messageHandler);
+// -- TSLogger::messageHandler(TSLoggerInfoMsg, TQString("Starting UiGUI Version %1 %2").arg(PROGRAM_VERSION_STRING).arg(PROGRAM_REVISION).toAscii());
+// -- TSLogger::messageHandler(TSLoggerInfoMsg, TQString("Running on %1").arg(UiGuiSystemInfo::getOperatingSystem()).toAscii());
+// --
+// -- // Set default values for all by UniversalIndentGUI used settings objects.
+// -- TQCoreApplication::setOrganizationName("UniversalIndentGUI");
+// -- TQCoreApplication::setOrganizationDomain("universalindent.sf.net");
+// -- TQCoreApplication::setApplicationName("UniversalIndentGUI");
+// --
+// -- // Start normal with full gui and without server.
+// -- if (!startAsPlugin && !startAsServer) {
+// -- mainWindow = new MainWindow(file2OpenOnStart);
+// -- mainWindow->show();
+// -- }
+// -- // Start as plugin with server.
+// -- else if (startAsPlugin) {
+// -- server.startServer();
+// -- indentHandler = new IndentHandler(0);
+// -- indentHandler->show();
+// -- }
+// -- // Start as server only without any gui.
+// -- else if (startAsServer) {
+// -- server.startServer();
+// -- }
+// --
+// -- try {
+// -- returnValue = app.exec();
+// -- }
+// -- catch (std::exception &ex) {
+// -- qCritical() << __LINE__ << " " << __FUNCTION__ << ": Something went terribly wrong:" << ex.what();
+// -- }
+// --
+// -- if (startAsPlugin || startAsServer)
+// -- server.stopServer();
+// --
+// -- delete indentHandler;
+// -- delete mainWindow;
+// --
+// -- SettingsPaths::cleanAndRemoveTempDir();
+// -- TSLogger::deleteInstance();
+
+ return returnValue;
}