65 lines
1.5 KiB
C++
65 lines
1.5 KiB
C++
#include <QApplication>
|
|
#include <QDateTime>
|
|
#include <QDir>
|
|
#include <QStandardPaths>
|
|
|
|
#include "gui/MainWindow.h"
|
|
#include "core/Logger.h"
|
|
|
|
// Redirect Qt log output to file logger.
|
|
void messageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
|
|
{
|
|
Q_UNUSED(context);
|
|
Logger *logger = Logger::instance();
|
|
|
|
switch (type) {
|
|
case QtDebugMsg:
|
|
logger->debug(msg);
|
|
break;
|
|
case QtInfoMsg:
|
|
logger->info(msg);
|
|
break;
|
|
case QtWarningMsg:
|
|
logger->warning(msg);
|
|
break;
|
|
case QtCriticalMsg:
|
|
case QtFatalMsg:
|
|
logger->error(msg);
|
|
break;
|
|
}
|
|
}
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
QApplication app(argc, argv);
|
|
|
|
app.setOrganizationName("Viewer");
|
|
app.setApplicationName("Viewer");
|
|
app.setApplicationVersion("0.3.3");
|
|
|
|
// Prefer LocalAppData so MSI installs under Program Files can always write logs.
|
|
QString logDir = QStandardPaths::writableLocation(QStandardPaths::AppLocalDataLocation);
|
|
if (logDir.isEmpty()) {
|
|
logDir = QCoreApplication::applicationDirPath();
|
|
}
|
|
QDir().mkpath(logDir);
|
|
|
|
const QString logPath = QDir(logDir).filePath("viewer.log");
|
|
Logger::instance()->setLogFile(logPath);
|
|
Logger::instance()->setMaxLines(10000);
|
|
|
|
qInstallMessageHandler(messageHandler);
|
|
|
|
qDebug() << "Viewer started";
|
|
qDebug() << "Log file:" << logPath;
|
|
|
|
MainWindow mainWindow;
|
|
mainWindow.show();
|
|
|
|
const int result = app.exec();
|
|
|
|
qDebug() << "Viewer exiting";
|
|
|
|
return result;
|
|
}
|