1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
/*
* OpenRPT report writer and rendering engine
* Copyright (C) 2001-2014 by OpenMFG, LLC
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Please contact info@openmfg.com with any questions on this license.
*/
#include <QApplication>
#include <QTranslator>
#include <QSqlDatabase>
#include <QMessageBox>
#include <xsqlquery.h>
#include <dbtools.h>
#include <login.h>
#include <parameter.h>
#include "data.h"
#include "mqledit.h"
int main(int argc, char *argv[])
{
QString username = "";
bool haveUsername = false;
bool haveDatabaseURL = false;
OpenRPT::loggedIn = false;
OpenRPT::databaseURL = "";
#if defined Q_WS_WIN
OpenRPT::name = QObject::tr("MetaSQL Editor for Windows");
#elif defined Q_WS_X11
OpenRPT::name = QObject::tr("MetaSQL Editor for Linux");
#elif defined Q_WS_MAC
OpenRPT::name = QObject::tr("MetaSQL Editor for OS X");
#else
OpenRPT::name = QObject::tr("MetaSQL Editor");
#endif
QApplication app(argc, argv);
app.addLibraryPath(".");
if (argc > 1)
{
haveUsername = false;
bool havePasswd = false;
QString passwd = "";
for (int intCounter = 1; intCounter < argc; intCounter++)
{
QString argument(argv[intCounter]);
if (argument.contains("-databaseURL=")) {
haveDatabaseURL = true;
OpenRPT::databaseURL = argument.right(argument.length() - 13);
}
else if (argument.contains("-username="))
{
haveUsername = true;
username = argument.right(argument.length() - 10);
}
else if (argument.contains("-passwd="))
{
havePasswd = true;
passwd = argument.right(argument.length() - 8);
}
else if (argument.contains("-noAuth"))
{
haveUsername = true;
havePasswd = true;
}
}
if ( (haveDatabaseURL) && (haveUsername) && (havePasswd) )
{
QSqlDatabase db = databaseFromURL(OpenRPT::databaseURL);
if (!db.isValid())
{
QMessageBox::critical(0, QObject::tr("Can not load database driver"),
QObject::tr("Unable to load the database driver. Please contact your systems administrator."));
QApplication::exit(-1);
}
db.setUserName(username);
db.setPassword(passwd);
if (!db.open())
{
QMessageBox::critical(0, QObject::tr("Unable to connect to database"),
QObject::tr("Unable to connect to the database with the given information."));
QApplication::exit(-1);
}
else
OpenRPT::loggedIn = true;
}
}
OpenRPT::languages.addTranslationToDefault(":/common.qm");
OpenRPT::languages.addTranslationToDefault(":/metasql.qm");
OpenRPT::languages.installSelected();
MQLEdit mainwin;
mainwin.show();
QObject::connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit()));
return app.exec();
}
|